<?xml version="1.0" encoding="utf-8"?>
<templates>
  <template type="admin" title="LOGIN_CONTAINER" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<!DOCTYPE html>
<html id="XF" lang="{$xf.language.language_code}" dir="{$xf.language.text_direction}"
	class="has-no-js p-adminLogin {{ $template ? 'template-' . $template : '' }}" data-template="{$template}"
	data-app="admin"
	data-cookie-prefix="{$xf.cookie.prefix}"
	{{ $xf.runJobs ? ' data-run-jobs=""' : '' }}>
<head>
	<meta charset="utf-8" />
	<meta name="robots" content="noindex" />
	<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
	<meta name="viewport" content="width=device-width, initial-scale=1">

	<title>{{ phrase('admin_login') }} | {$xf.options.boardTitle}</title>
	<xf:foreach loop="$head" value="$head">
		{$head}
	</xf:foreach>

	<xf:macro id="admin:helper_js_global::head" arg-app="admin" />
</head>
<body>

<div class="adminLogin-wrapper">
	<div class="adminLogin-content {{ $loginWide ? 'adminLogin-content--wide' : '' }}">
		{$content|raw}
		<xf:if contentcheck="true">
			<div class="adminLogin-debug">
				<xf:contentcheck>
					<xf:macro id="public:debug_macros::debug"
						arg-controller="{$controller}"
						arg-action="{$actionMethod}"
						arg-template="{$template}" />
				</xf:contentcheck>
			</div>
		</xf:if>
	</div>
</div>

<xf:macro id="admin:helper_js_global::body" arg-jsState="{$jsState}" />

</body>
</html>]]></template>
  <template type="admin" title="PAGE_CONTAINER" version_id="2030053" version_string="2.3.0 Release Candidate 3"><![CDATA[<!DOCTYPE html>
<html id="XF" lang="{$xf.language.language_code}" dir="{$xf.language.text_direction}"
	class="has-no-js {{ $template ? 'template-' . $template : '' }} {{ $xf.visitor.Admin.advanced ? 'acp--advanced-mode' : 'acp--simple-mode' }}" data-template="{$template}"
	data-xf="{$xf.versionVisible}"
	data-app="admin"
	{{ ($xf.style.isVariationsEnabled() && $xf.visitor.Admin.admin_style_variation) ? 'data-variation="' . $xf.visitor.Admin.admin_style_variation . '"' : '' }}
	{{ ($xf.style.isVariationsEnabled() && $xf.visitor.Admin.admin_style_variation) ? 'data-color-scheme="' . property_variation('styleType', $xf.visitor.Admin.admin_style_variation) . '"' : '' }}
	data-cookie-prefix="{$xf.cookie.prefix}"
	data-csrf="{{ csrf_token()|escape('js') }}"
	{{ $xf.runJobs ? ' data-run-jobs=""' : '' }}>
<head>

	<meta charset="utf-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
	<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">

	<xf:if is="$xf.style.isVariationsEnabled()">
		<xf:if is="$xf.visitor.Admin.admin_style_variation">
			<meta name="theme-color" content="{{ parse_less_color(property_variation('metaThemeColor', $xf.visitor.Admin.admin_style_variation)) }}" />
		<xf:else />
			<xf:if is="$xf.style.hasAlternateStyleTypeVariation()">
				<meta name="theme-color" media="(prefers-color-scheme: {{ $xf.style.getDefaultStyleType() }})" content="{{ parse_less_color(property_variation('metaThemeColor', 'default')) }}" />
				<meta name="theme-color" media="(prefers-color-scheme: {{ $xf.style.getAlternateStyleType() }})" content="{{ parse_less_color(property_variation('metaThemeColor', $xf.style.getAlternateStyleTypeVariation())) }}" />
			<xf:else />
				<meta name="theme-color" content="{{ parse_less_color(property_variation('metaThemeColor', 'default')) }}" />
			</xf:if>
		</xf:if>
	<xf:else />
		<meta name="theme-color" content="{{ parse_less_color(property_variation('metaThemeColor', 'default')) }}" />
	</xf:if>

	<title>
		<xf:title formatter="%s | {$xf.options.boardTitle} - {{ phrase('admin_control_panel') }}" fallback="{$xf.options.boardTitle} - {{ phrase('admin_control_panel') }}" />
	</title>

	<xf:if is="!$head.meta_referrer">
		<meta name="referrer" content="same-origin" />
	</xf:if>

	<xf:foreach loop="$head" value="$headTag">
		{$headTag}
	</xf:foreach>

	<xf:macro id="admin:helper_js_global::head" arg-app="admin" />
</head>
<body>

<!-- HEADER -->

<header class="p-header">
	<div class="p-header-buttons p-header-buttons--main">
		<a class="p-header-button p-header-button--nav"
			data-xf-click="off-canvas"
			data-menu="#js-nav"
			role="button"
			tabindex="0"
			aria-label="{{ phrase('menu')|for_attr }}">
			<xf:fa icon="fa-bars" />
		</a>
		<a href="{{ link('index') }}" class="p-header-button" aria-label="{{ phrase('home')|for_attr }}"><xf:fa icon="fa-home" /></a>
		<a href="{{ link_type('public', 'index') }}" class="p-header-button p-header-button--title" target="_blank">{$xf.options.boardTitle}</a>
	</div>

	<div class="p-header-buttons p-header-buttons--opposite">
		<xf:if is="$xf.visitor.hasAdminPermission('option')">
			<a class="p-header-button" data-xf-key="{{ phrase('shortcut.options')|for_attr }}" data-xf-click="menu" role="button" tabindex="0"
				aria-label="{{ phrase('options')|for_attr }}"
				aria-expanded="false"
				aria-haspopup="true">
				<xf:fa icon="fa-cogs" />
			</a>
			<div class="menu menu--structural menu--superWide" data-menu="menu" aria-hidden="true"
				data-href="{{ link('options/menu') }}"
				data-load-target=".js-optionGroupsMenuBody">
				<div class="menu-content js-optionGroupsMenuBody">
					<div class="menu-row">
						{{ phrase('loading...') }}
					</div>
				</div>
			</div>
		</xf:if>
		<xf:if is="$xf.development">
			<xf:macro id="developer_menu" />
		</xf:if>
		<a class="p-header-button" data-xf-key="{{ phrase('shortcut.search_menu')|for_attr }}" data-xf-click="menu" role="button" tabindex="0"
			aria-label="{{ phrase('search')|for_attr }}"
			aria-expanded="false"
			aria-haspopup="true">
			<xf:fa icon="fa-search" />
		</a>
		<form action="{{ link('search/search') }}" class="menu menu--structural menu--veryWide" data-xf-init="admin-search" data-menu="menu" aria-hidden="true">
			<div class="menu-content">
				<h3 class="menu-header">{{ phrase('search...') }}</h3>
				<div class="menu-row">
					<input type="text" name="q" autocomplete="off" class="input js-adminSearchInput" data-menu-autofocus="" />
				</div>
				<div class="menu-scroller p-quickSearchResultsWrapper js-adminSearchResultsWrapper">
					<div class="p-quickSearchResults js-adminSearchResults"></div>
				</div>
			</div>
		</form>
	</div>
</header>

<!-- BODY -->

<div class="p-body-container">
	<div class="p-body">
		<nav class="p-nav" id="js-nav" data-ocm-class="offCanvasMenu offCanvasMenu--adminNav" data-ocm-builder="acpNav">
			<div data-ocm-class="offCanvasMenu-backdrop" data-menu-close="true"></div>
			<div class="p-nav-inner" data-xf-init="admin-nav" data-ocm-class="offCanvasMenu-content">
				<div class="offCanvasMenu-shown offCanvasMenu-header">
					{{ phrase('menu') }}
					<a class="offCanvasMenu-closer" data-menu-close="true" role="button" tabindex="0" aria-label="{{ phrase('close')|for_attr }}"></a>
				</div>
				<div class="p-nav-content">
					<xf:macro id="navigation_list"
						arg-children="{$navigation}"
						arg-selectedTab="{$selectedNavTab}"
						arg-selectedLink="{$selectedNavLink}" />
				</div>
				<div class="p-nav-tester js-navTester"></div>
			</div>
		</nav>

		<div class="p-main">
			<main class="p-main-inner">

				<!--XF:EXTRA_OUTPUT-->

				<xf:macro id="public:browser_warning_macros::javascript" />
				<xf:macro id="public:browser_warning_macros::browser" />

				<xf:if is="$upgradeCheck">
					<xf:macro id="upgrade_check_macros::serious_errors" arg-upgradeCheck="{$upgradeCheck}" />
				</xf:if>

				<xf:if is="$upgradePending">
					<div class="blockMessage blockMessage--important blockMessage--iconic">
						<xf:include template="public:notice_upgrade_pending" />
					</div>
				</xf:if>

				<xf:if is="$listenersDisabled">
					<div class="blockMessage blockMessage--important blockMessage--iconic">
						{{ phrase('code_listeners_extensions_disabled_warning') }}
					</div>
				</xf:if>

				<xf:if is="$mailDisabled">
					<div class="blockMessage blockMessage--important blockMessage--iconic">
						{{ phrase('mail_has_been_disabled_warning') }}
					</div>
				</xf:if>

				<xf:if is="$breadcrumbs is not empty">
					<ul class="p-breadcrumbs">
						<xf:foreach loop="$breadcrumbs" value="$breadcrumb">
							<li><a href="{$breadcrumb.href}">{$breadcrumb.value}</a></li>
						</xf:foreach>
					</ul>
				</xf:if>

				<xf:if contentcheck="true">
					<div class="p-main-header">
					<xf:contentcheck>
						<xf:if contentcheck="true">
							<div class="p-title {{ $noH1 ? 'p-title--noH1' : '' }}">
							<xf:contentcheck>
								<xf:if is="!$noH1">
									<h1 class="p-title-value">
										<xf:h1 fallback="{$xf.options.boardTitle}" />
									</h1>
								</xf:if>
								<xf:if contentcheck="true">
									<div class="p-title-pageAction"><xf:contentcheck><xf:pageaction /></xf:contentcheck></div>
								</xf:if>
							</xf:contentcheck>
							</div>
						</xf:if>

						<xf:if contentcheck="true">
							<div class="p-description"><xf:contentcheck><xf:description /></xf:contentcheck></div>
						</xf:if>
					</xf:contentcheck>
					</div>
				</xf:if>

				<div class="p-content" id="content">
					{$content|raw}
				</div>
			</main>
		</div>
	</div>
</div>

<footer class="p-footer">
	<div class="p-footer-row">
		<div class="p-footer-row-main">
			<a href="{{ link('login/logout', null, {'t': csrf_token()}) }}">{{ phrase('log_out') }}</a>
		</div>

		<div class="p-footer-row-opposite">
			<span class="p-footer-copyright">
				<xf:copyright /> {{ phrase('extra_copyright') }}
			</span>
			<span class="p-footer-version">v{$xf.version}</span>

			<a href="{{ link('account/style-variation') }}" rel="nofollow"
				class="js-styleVariationsLink"
				data-xf-init="tooltip" title="{{ phrase('style_variation') }}"
				data-xf-click="menu" role="button" aria-expanded="false" aria-haspopup="true">

				<xf:fa icon="{{ $xf.style.getVariationIcon($xf.visitor.Admin.admin_style_variation) }}" title="{{ phrase('style_variation') }}" />
			</a>
			<div class="menu" data-menu="menu" aria-hidden="true">
				<div class="menu-content js-styleVariationsMenu">
					<xf:macro name="public:style_variation_macros::variation_menu"
						arg-style="{$xf.style}"
						arg-routeType="admin"
						arg-route="account/style-variation"
						arg-selectedVariation="{$xf.visitor.Admin.admin_style_variation}"
						arg-live="{{ true }}" />
				</div>
			</div>

			<xf:if is="$xf.visitor.canChangeLanguage()">
				<a href="{{ link('account/language') }}" data-xf-click="overlay" data-xf-init="tooltip" title="{{ phrase('language_chooser')|for_attr }}">
					<xf:fa icon="fa-globe" /> {$xf.language.title}
				</a>
			</xf:if>
		</div>
	</div>

	<xf:if contentcheck="true">
		<div class="p-footer-debug">
		<xf:contentcheck>
			<xf:macro id="public:debug_macros::debug"
				arg-controller="{$controller}"
				arg-action="{$actionMethod}"
				arg-template="{$template}" />
		</xf:contentcheck>
		</div>
	</xf:if>
</footer>

<div class="u-bottomFixer js-bottomFixTarget"></div>

<xf:macro id="admin:helper_js_global::body" arg-jsState="{$jsState}" />

</body>
</html>

<xf:macro id="navigation_list"
	arg-children="!"
	arg-selectedTab="!"
	arg-selectedLink="!"
	arg-navigation=""
	arg-depth="1">

	<xf:if is="$children is not empty">
		<xf:if is="$depth == 1">
			<ul class="p-nav-listRoot" id="js-navAccordion">
		<xf:elseif is="$depth == 2" />
			<ul class="p-nav-listSection {{ $navigation.navigation_id == $selectedTab ? 'is-active' : '' }}">
		<xf:else />
			<ul class="p-nav-subList p-nav-list--depth{$depth}">
		</xf:if>
		<xf:foreach loop="$children" value="$child">
			<xf:macro id="navigation_list_entry"
				arg-navigation="{$child.record}"
				arg-children="{$child.children}"
				arg-selectedTab="{$selectedTab}"
				arg-selectedLink="{$selectedLink}"
				arg-depth="{$depth}" />
		</xf:foreach>
		</ul>
	</xf:if>
</xf:macro>
<xf:macro id="navigation_list_entry" arg-navigation="!" arg-children="!" arg-selectedTab="!" arg-selectedLink="!" arg-depth="1">
	<xf:if is="$depth == 1">
		<li class="p-nav-section{{ $navigation.navigation_id == $selectedTab ? ' is-active' : '' }}" data-navigation-id="{$navigation.navigation_id}">
			<div class="p-nav-sectionHeader">
				<a href="{{ link({$navigation.link}) }}" class="p-nav-sectionLink js-navSectionToggle">
					<xf:fa icon="{{ $navigation.icon|substr(0, 3) === 'fa-' ? 'fad ' : '' }}{$navigation.icon} fa-fw" /> <span>{$navigation.title}</span>
				</a>
				<a class="p-nav-sectionToggle js-navSectionToggle" role="button" tabindex="0" aria-label="{{ phrase('toggle_expanded')|for_attr }}"></a>
			</div>
	<xf:elseif is="$depth == 2" />
		<li class="{{ $children ? 'p-nav-subSection' : 'p-nav-el' }} {{ $navigation.navigation_id == $selectedLink ? ' is-active' : '' }}" data-navigation-id="{$navigation.navigation_id}">
			<xf:if is="$children OR !$navigation.link">
				<span>
					<xf:if is="{$navigation.icon}"><xf:fa icon="{$navigation.icon} fa-fw" /> </xf:if>{$navigation.title}</span>
			<xf:else />
				<a href="{{ link($navigation.link) }}">{$navigation.title}</a>
			</xf:if>
	<xf:else />
		<li class="p-nav-el {{ $navigation.navigation_id == $selectedLink ? ' is-active' : '' }}" data-navigation-id="{$navigation.navigation_id}">
			<xf:if is="{$navigation.link}">
				<a href="{{ link($navigation.link) }}">{$navigation.title}</a>
			<xf:else />
				<span>{$navigation.title}</span>
			</xf:if>
	</xf:if>
		<xf:macro id="navigation_list"
			arg-navigation="{$navigation}"
			arg-children="{$children}"
			arg-selectedTab="{$selectedTab}"
			arg-selectedLink="{$selectedLink}"
			arg-depth="{{ $depth + 1 }}" />
	</li>
</xf:macro>

<xf:macro id="developer_menu">
	<a class="p-header-button" data-xf-key="{{ phrase('shortcut.development_menu')|for_attr }}" data-xf-click="menu" role="button" tabindex="0"
		aria-label="{{ phrase('development')|for_attr }}"
		aria-expanded="false"
		aria-haspopup="true">
		<xf:fa icon="fa-code" />
	</a>
	<div class="menu menu--structural" data-menu="menu" aria-hidden="true">
		<div class="menu-content js-optionGroupsMenuBody">
			<h4 class="menu-header menu-header--small">{{ phrase('public') }}</h4>
			<a class="menu-linkRow" data-xf-click="overlay" href="{{ link('templates/add', null, {'style_id': 0, 'type': 'public'}) }}">
				<xf:fa icon="fab fa-html5" /> {{ phrase('add_template') }}</a>
			<a class="menu-linkRow" data-xf-click="overlay" href="{{ link('template-modifications/add', null, {'type': 'public'}) }}">
				<xf:fa icon="fa-file-search" /> {{ phrase('add_template_modification') }}</a>
			<a class="menu-linkRow" data-xf-click="overlay" href="{{ link('navigation/add') }}">
				<xf:fa icon="fa-link" /> {{ phrase('add_navigation') }}</a>
			<hr class="menu-separator menu-separator--hard">

			<h4 class="menu-header menu-header--small">{{ phrase('admin') }}</h4>
			<a class="menu-linkRow" data-xf-click="overlay" href="{{ link('templates/add', null, {'style_id': 0, 'type': 'admin'}) }}">
				<xf:fa icon="fab fa-html5" /> {{ phrase('add_template') }}</a>
			<a class="menu-linkRow" data-xf-click="overlay" href="{{ link('template-modifications/add', null, {'type': 'admin'}) }}">
				<xf:fa icon="fa-file-search" /> {{ phrase('add_template_modification') }}</a>
			<a class="menu-linkRow" data-xf-click="overlay" href="{{ link('admin-navigation/add') }}">
				<xf:fa icon="fa-link" /> {{ phrase('add_navigation') }}</a>
			<hr class="menu-separator menu-separator--hard">

			<h4 class="menu-header menu-header--small">{{ phrase('admin_navigation.appearance') }}</h4>
			<a class="menu-linkRow" data-xf-click="overlay" href="{{ link('style-properties/add', null, {'style_id': 0}) }}">
				<xf:fa icon="fab fa-css3-alt" /> {{ phrase('add_property') }}</a>
			<a class="menu-linkRow" data-xf-click="overlay" href="{{ link('phrases/add', null, {'language_id': 0}) }}">
				<xf:fa icon="fa-language" /> {{ phrase('add_phrase') }}</a>
			<hr class="menu-separator menu-separator--hard">

			<h4 class="menu-header menu-header--small">{{ phrase('code') }}</h4>
			<a class="menu-linkRow" data-xf-click="overlay" href="{{ link('routes/add') }}">
				<xf:fa icon="fa-route" /> {{ phrase('add_route') }}</a>
			<a class="menu-linkRow" data-xf-click="overlay" href="{{ link('content-types/add') }}">
				<xf:fa icon="fa-puzzle-piece" /> {{ phrase('add_content_type_field') }}</a>
			<a class="menu-linkRow" data-xf-click="overlay" href="{{ link('class-extensions/add') }}">
				<xf:fa icon="fa-code-branch" /> {{ phrase('add_class_extension') }}</a>
			<a class="menu-linkRow" data-xf-click="overlay" href="{{ link('code-events/listeners/add') }}">
				<xf:fa icon="fa-headphones" /> {{ phrase('add_code_event_listener') }}</a>
		</div>
	</div>
</xf:macro>]]></template>
  <template type="admin" title="PAGE_RUN_JOB" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<!DOCTYPE html>
<html id="XF" lang="{$xf.language.language_code}" dir="{$xf.language.text_direction}" class="has-no-js p-runJob"
	data-app="admin"
	{{ ($xf.style.isVariationsEnabled() && $xf.visitor.Admin.admin_style_variation) ? 'data-variation="' . $xf.visitor.Admin.admin_style_variation . '"' : '' }}
	{{ ($xf.style.isVariationsEnabled() && $xf.visitor.Admin.admin_style_variation) ? 'data-color-scheme="' . property_variation('styleType', $xf.visitor.Admin.admin_style_variation) . '"' : '' }}>
<head>

	<meta charset="utf-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
	<meta name="viewport" content="width=device-width, initial-scale=1">

	<title>
		<xf:title formatter="%s | {$xf.options.boardTitle} - {{ phrase('admin_control_panel') }}" fallback="{$xf.options.boardTitle} - {{ phrase('admin_control_panel') }}" />
	</title>
	<xf:foreach loop="$head" value="$headTag">
		{$headTag}
	</xf:foreach>

	<xf:macro id="admin:helper_js_global::head" arg-app="admin" />
</head>
<body>

<main class="p-runJobContent">
	<div class="p-main-header">
		<div class="p-title">
			<h1 class="p-title-value">
				<xf:h1 fallback="{$xf.options.boardTitle}" />
			</h1>
			<xf:if contentcheck="true">
				<div class="p-title-pageAction"><xf:contentcheck><xf:pageaction /></xf:contentcheck></div>
			</xf:if>
		</div>
	</div>

	{$content|raw}
</main>


<xf:if contentcheck="true">
	<div class="p-runJobDebug">
	<xf:contentcheck>
		<xf:macro id="public:debug_macros::debug"
			arg-controller="{$controller}"
			arg-action="{$actionMethod}"
			arg-template="{$template}"
			arg-link="{{ false }}" />
	</xf:contentcheck>
	</div>
</xf:if>

<xf:macro id="admin:helper_js_global::body" arg-jsState="{$jsState}" />

</body>
</html>]]></template>
  <template type="admin" title="activity_summary_definition_chooser" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:title>{{ phrase('choose_activity_summary_definition') }}</xf:title>

<xf:form action="{{ link('activity-summary/add') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:radiorow name="definition_id" label="{{ phrase('activity_summary_definition') }}">
				<xf:foreach loop="$definitions" value="$definition">
					<xf:option value="{$definition.definition_id}">
						<xf:label>{$definition.title}</xf:label>
						<xf:hint>{$definition.description}</xf:hint>
					</xf:option>
				</xf:foreach>
			</xf:radiorow>
		</div>
		<xf:submitrow submit="{{ phrase('add_section') }}" icon="add" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="activity_summary_definition_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$definition.isInsert()">
	<xf:title>{{ phrase('add_activity_summary_definition') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_activity_summary_definition:') }} {$definition.title}</xf:title>
</xf:if>

<xf:pageaction if="$definition.isUpdate()">
	<xf:button href="{{ link('activity-summary/definitions/delete', $definition) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('activity-summary/definitions/save', $definition) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="definition_id" value="{$definition}"
				label="{{ phrase('definition_id') }}"
				dir="ltr" />

			<xf:textboxrow name="title" value="{$definition}"
				label="{{ phrase('title') }}" />

			<xf:textarearow name="description" value="{$definition}" autosize="true"
				label="{{ phrase('description') }}" />

			<xf:textboxrow name="definition_class" value="{$definition}"
				label="{{ phrase('definition_class') }}"
				explain="{{ phrase('class_implement_relevant_activity_summary_section_behaviors') }}"
				dir="ltr" />

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$definition.addon_id}" />
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="activity_summary_definition_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('activity_summary_definitions') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('activity-summary/definitions/add') }}" icon="add">{{ phrase('add_activity_summary_definition') }}</xf:button>
</xf:pageaction>

<xf:if is="$definitions is not empty">
	<div class="block">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="activity-summary-definitions" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$definitions" value="$definition">
						<xf:datarow
							label="{$definition.title}"
							hint="{$definition.definition_class}"
							explain="{$definition.description}"
							href="{{ link('activity-summary/definitions/edit', $definition) }}"
							delete="{{ link('activity-summary/definitions/delete', $definition) }}">

							<xf:action href="{{ link('activity-summary/add', null, {'definition_id': $definition.definition_id}) }}">
								{{ phrase('add_activity_summary') }}
							</xf:action>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($definitions) }}</span>
			</div>
		</div>
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="activity_summary_options_latest_posts" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<hr class="formRowSep" />

<xf:numberboxrow name="options[limit]" value="{$options.limit}" min="1"
	label="{{ phrase('maximum_entries') }}" />

<xf:selectrow name="options[node_ids][]" value="{{ $options.node_ids ?: '' }}" multiple="multiple" size="7"
	label="{{ phrase('forum_limit') }}"
	explain="{{ phrase('only_include_posts_in_selected_forums') }}">

	<xf:option value="">{{ phrase('all_forums') }}</xf:option>
	<xf:foreach loop="$nodeTree.getFlattened(0)" value="$treeEntry">
		<xf:option value="{$treeEntry.record.node_id}" disabled="{{ $treeEntry.record.node_type_id != 'Forum' }}">
			{{ repeat('&nbsp;&nbsp;', $treeEntry.depth)|raw }} {$treeEntry.record.title}
		</xf:option>
	</xf:foreach>
</xf:selectrow>

<xf:checkboxrow label="{{ phrase('only_include_posts_with') }}..." rowtype="noColon">
	<xf:option label="{{ phrase('reaction_score_at_least_x') }}" selected="$options.min_reaction_score !== null">
		<xf:numberbox name="options[min_reaction_score]" value="{{ $options.min_reaction_score ?: 0 }}" />
	</xf:option>
</xf:checkboxrow>

<xf:formrow rowtype="input"
	label="{{ phrase('sort') }}">

	<div class="inputPair">
		<xf:select name="options[order]" value="{$options.order}">
			<xf:options source="{$sortOrders}" />
		</xf:select>
		<xf:select name="options[direction]" value="{$options.direction}">
			<xf:option value="ASC">{{ phrase('ascending') }}</xf:option>
			<xf:option value="DESC">{{ phrase('descending') }}</xf:option>
		</xf:select>
	</div>
</xf:formrow>]]></template>
  <template type="admin" title="activity_summary_options_latest_threads" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<hr class="formRowSep" />

<xf:numberboxrow name="options[limit]" value="{$options.limit}" min="1"
	label="{{ phrase('maximum_entries') }}" />

<xf:selectrow name="options[node_ids][]" value="{{ $options.node_ids ?: '' }}" multiple="multiple" size="7"
	label="{{ phrase('forum_limit') }}"
	explain="{{ phrase('only_include_threads_in_selected_forums') }}">

	<xf:option value="">{{ phrase('all_forums') }}</xf:option>
	<xf:foreach loop="$nodeTree.getFlattened(0)" value="$treeEntry">
		<xf:option value="{$treeEntry.record.node_id}" disabled="{{ $treeEntry.record.node_type_id != 'Forum' }}">
			{{ repeat('&nbsp;&nbsp;', $treeEntry.depth)|raw }} {$treeEntry.record.title}
		</xf:option>
	</xf:foreach>
</xf:selectrow>

<xf:radiorow name="options[condition]" label="{{ phrase('include_threads') }}" value="{$options.condition}">
	<xf:option value="last_post_date">{{ phrase('updated_since_last_email') }}</xf:option>
	<xf:option value="post_date">{{ phrase('created_since_last_email') }}</xf:option>
</xf:radiorow>

<xf:checkboxrow label="{{ phrase('only_include_threads_with') }}..." rowtype="noColon">
	<xf:option label="{{ phrase('at_least_x_replies') }}" selected="$options.min_replies !== null">
		<xf:numberbox name="options[min_replies]" value="{{ $options.min_replies ?: 0}}" min="0" />
	</xf:option>

	<xf:option label="{{ phrase('reaction_score_at_least_x') }}" selected="$options.min_reaction_score !== null">
		<xf:numberbox name="options[min_reaction_score]" value="{{ $options.min_reaction_score ?: 0 }}" />
	</xf:option>
</xf:checkboxrow>

<xf:formrow rowtype="input"
	label="{{ phrase('sort') }}">

	<div class="inputPair">
		<xf:select name="options[order]" value="{$options.order}">
			<xf:options source="{$sortOrders}" />
		</xf:select>
		<xf:select name="options[direction]" value="{$options.direction}">
			<xf:option value="ASC">{{ phrase('ascending') }}</xf:option>
			<xf:option value="DESC">{{ phrase('descending') }}</xf:option>
		</xf:select>
	</div>
</xf:formrow>]]></template>
  <template type="admin" title="activity_summary_section_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$section.isInsert()">
	<xf:title>{{ phrase('add_activity_summary_section') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_activity_summary_section:') }} {$section.title}</xf:title>
</xf:if>

<xf:pageaction if="$section.isUpdate()">
	<xf:button href="{{ link('activity-summary/delete', $section) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('activity-summary/save', $section) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">

			<xf:formrow
				label="{{ phrase('activity_summary_definition') }}"
				explain="{$definition.description}">
				{$definition.title}
				<xf:hiddenval name="definition_id">{$definition.definition_id}</xf:hiddenval>
			</xf:formrow>

			<hr class="formRowSep" />

			<xf:textboxrow name="title" value="{$section}"
				label="{{ phrase('title') }}"
				hint="{{ phrase('optional') }}"
				explain="{{ phrase('you_may_choose_enter_title_for_section_if_not_default') }}" />

			<xf:macro id="display_order_macros::row" arg-value="{$section}" />

			<xf:checkboxrow>
				<xf:option name="show_value" value="1" selected="$section.show_value"
					label="{{ phrase('display_total_count_in_summary') }}" />
				<xf:explain>{{ phrase('if_enabled_total_found_section_displayed_top_activity_summary_email') }}</xf:explain>
			</xf:checkboxrow>

			<xf:checkboxrow>
				<xf:option name="active" value="1" selected="$section.active">
					{{ phrase('enabled') }}
				</xf:option>
			</xf:checkboxrow>

			{$section.renderOptions()|raw}
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="activity_summary_section_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('activity_summary') }}</xf:title>

<xf:if is="$testSuccess AND $xf.visitor.email">
	<div class="blockMessage blockMessage--success blockMessage--iconic">{{ phrase('test_activity_summary_email_sent_to_x_successfully', {'email': $xf.visitor.email|email_display}) }}</div>
</xf:if>

<xf:if is="$isImportRunning AND $xf.options.activitySummaryEmail.enabled">
	<div class="blockMessage blockMessage--important blockMessage--iconic">
		{{ phrase('while_import_running_sending_activity_summary_disabled') }}
	</div>
</xf:if>

<xf:pageaction>
	<div class="buttonGroup">
		<xf:button href="{{ link('activity-summary/add') }}" icon="add" overlay="true">{{ phrase('add_activity_summary_section') }}</xf:button>
		<xf:button href="{{ link('activity-summary/sort') }}" icon="sort" overlay="true" />
	</div>

	<xf:if is="$sections is not empty AND $xf.visitor.email">
		<xf:button href="{{ link('activity-summary/send-test-email') }}" fa="fa-envelope" overlay="true">{{ phrase('send_test_email') }}</xf:button>
	</xf:if>
</xf:pageaction>

<xf:if is="$sections is not empty">
	<xf:form action="{{ link('activity-summary/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="activity-summary-sections" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$sections" value="$section">
						<xf:datarow
							label="{$section.title}"
							href="{{ link('activity-summary/edit', $section) }}"
							delete="{{ link('activity-summary/delete', $section) }}">
							<xf:toggle name="active[{$section.section_id}]" selected="$section.active"
								class="dataList-cell--separated" submit="true"
								tooltip="{{ phrase('enable_disable_x', {'title': $section.title}) }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($sections) }}</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>

<xf:macro id="option_macros::option_form_block" arg-options="{$options}" />]]></template>
  <template type="admin" title="activity_summary_section_sort" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('sort_activity_summary_sections') }}</xf:title>

<xf:macro id="public:nestable_macros::setup" />

<xf:form action="{{ link('activity-summary/sort') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<div class="nestable-container" data-xf-init="nestable" data-max-depth="1" data-value-function="serialize">
				<xf:macro id="section_list" arg-sections="{$sections}" />
				<xf:hiddenval name="sections" value="" />
			</div>
		</div>
		<xf:submitrow icon="save" rowtype="simple" />
	</div>
</xf:form>

<xf:macro id="section_list" arg-sections="!">
	<ol class="nestable-list">
		<xf:foreach loop="$sections" key="$id" value="$section">
			<li class="nestable-item" data-id="{$id}">
				<div class="nestable-handle" aria-label="{{ phrase('drag_handle')|for_attr }}"><xf:fa icon="fa-bars" /></div>
				<div class="nestable-content">
					{$section.title}
				</div>
			</li>
		</xf:foreach>
	</ol>
</xf:macro>]]></template>
  <template type="admin" title="activity_summary_send_test_email" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:title>{{ phrase('activity_summary:') }} {{ phrase('send_test_email') }}</xf:title>

<xf:form action="{{ link('activity-summary/send-test-email') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('you_sure_want_generate_receive_test_activity_summary_email_to_x', {'email': $xf.visitor.email}) }}
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('send_test_email') }}" rowtype="simple" fa="fa-envelope" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="addon_action_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="summary" arg-errors="{{ [] }}" arg-warnings="{{ [] }}">
	<xf:if contentcheck="true">
		<div class="block-row">
			<xf:contentcheck>
				<xf:macro id="addon_action_macros::errors" arg-errors="{$errors}" />
				<xf:macro id="addon_action_macros::warnings" arg-warnings="{$warnings}" />
			</xf:contentcheck>
		</div>
	</xf:if>
</xf:macro>

<xf:macro id="action" arg-errors="{{ [] }}" arg-warnings="{{ [] }}" arg-submit="!">
	<xf:if is="!$errors">
		<xf:if is="$warnings">
			<div class="block-body">
				<xf:checkboxrow rowtype="fullWidth noLabel">
					<xf:option name="confirm" data-xf-init="disabler" data-container=".js-submitDisable">
						<xf:label>{{ phrase('i_have_reviewed_warnings_and_i_still_wish_to_proceed') }}</xf:label>
					</xf:option>
				</xf:checkboxrow>
			</div>
		</xf:if>
		<xf:submitrow submit="{$submit}" rowtype="simple" rowclass="js-submitDisable" />
	</xf:if>
</xf:macro>

<xf:macro id="errors" arg-errors="{{ [] }}">
	<xf:if is="$errors">
		<div class="block-rowMessage block-rowMessage--error block-rowMessage--iconic">
			{{ phrase('following_errors_must_be_resolved_before_continuing:') }}
			<ul>
				<xf:foreach loop="$errors" value="$error">
					<li>{$error}</li>
				</xf:foreach>
			</ul>
		</div>
	</xf:if>
</xf:macro>

<xf:macro id="warnings" arg-warnings="{{ [] }}">
	<xf:if is="$warnings">
		<div class="block-rowMessage block-rowMessage--warning block-rowMessage--iconic">
			{{ phrase('prevent_potential_issues_please_resolve_following_warnings_before_continuing:') }}
			<ul>
				<xf:foreach loop="$warnings" value="$warning">
					<li>{$warning}</li>
				</xf:foreach>
			</ul>
		</div>
	</xf:if>
</xf:macro>]]></template>
  <template type="admin" title="addon_controls" version_id="2020470" version_string="2.2.4"><![CDATA[<xf:if contentcheck="false">
	<xf:contentcheck>
		<xf:if contentcheck="false">
			<xf:contentcheck>
				<xf:if is="$hasOptions AND $addOn.active AND $xf.visitor.hasAdminPermission('option')">
					<a href="{{ $hasOptions === true ? link('add-ons/options', $addOn) : link($hasOptions) }}" class="menu-linkRow">{{ phrase('options') }}</a>
				</xf:if>
				<xf:if is="$hasPublicTemplates AND $xf.visitor.hasAdminPermission('style')">
					<a href="{{ link('styles/templates', $style, {'addon_id': $addOn.addon_id, 'type': 'public'}) }}" class="menu-linkRow">{{ phrase('public_templates') }}</a>
				</xf:if>
				<xf:if is="$hasEmailTemplates AND $xf.visitor.hasAdminPermission('style')">
					<a href="{{ link('styles/templates', $style, {'addon_id': $addOn.addon_id, 'type': 'email'}) }}" class="menu-linkRow">{{ phrase('email_templates') }}</a>
				</xf:if>
				<xf:if is="$hasAdminTemplates AND $xf.visitor.hasAdminPermission('style')">
					<a href="{{ link('styles/templates', $masterStyle, {'addon_id': $addOn.addon_id, 'type': 'admin'}) }}" class="menu-linkRow">{{ phrase('admin_templates') }}</a>
				</xf:if>
				<xf:if is="$hasPhrases AND $xf.visitor.hasAdminPermission('language')">
					<a href="{{ link('languages/phrases', $language, {'addon_id': $addOn.addon_id}) }}" class="menu-linkRow">{{ phrase('phrases') }}</a>
				</xf:if>
			</xf:contentcheck>

			<hr class="menu-separator" />
		</xf:if>

		<xf:if contentcheck="false">
			<xf:contentcheck>
				<xf:if is="($addOn.isInstalled() OR $addOn.canUpgrade()) AND !$addOn.isLegacy()">
					<a href="{{ link('add-ons/toggle', $addOn, {'t': csrf_token()}) }}" class="menu-linkRow">{{ $addOn.active ? phrase('disable') : phrase('enable') }}</a>
				</xf:if>
				<xf:if is="$addOn.hasPendingChanges() AND $xf.development">
					<a href="{{ link('add-ons/sync-changes', $addOn, {'t': csrf_token()}) }}" class="menu-linkRow">{{ phrase('sync_changes') }}</a>
				</xf:if>
				<xf:if is="$addOn.isFileVersionValid() AND $addOn.canRebuild()">
					<a href="{{ link('add-ons/rebuild', $addOn) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('rebuild') }}</a>
				</xf:if>
				<xf:if is="$addOn.isInstalled() AND !$addOn.canUpgrade()">
					<a href="{{ link('add-ons/uninstall', $addOn) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('uninstall') }}</a>
				</xf:if>
			</xf:contentcheck>
		</xf:if>
	</xf:contentcheck>
<xf:else />
	<div class="menu-row">{{ phrase('no_items_to_display') }}</div>
</xf:if>]]></template>
  <template type="admin" title="addon_delete_files" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>
	<xf:if is="!$undeletableFiles">
		{{ phrase('confirm_file_deletion_for_x', {'title': $addOn.title}) }}
	<xf:else />
		{{ phrase('unable_to_delete_files_for_x', {'title': $addOn.title}) }}
	</xf:if>
</xf:title>

<xf:if is="!$undeletableFiles">
	<xf:form action="{{ link('add-ons/delete-files', $addOn) }}" class="block" ajax="true">

		<div class="block-container">
			<div class="block-body">
				<xf:inforow rowtype="confirm">
					{{ phrase('please_confirm_that_you_wish_to_delete_files_from_following_add_on:') }}
					<strong>{$addOn.title} {$addOn.version_string}</strong>
				</xf:inforow>

				<xf:if is="$conflictingFiles">
					<div class="block-row">
						<div class="block-rowMessage block-rowMessage--iconic block-rowMessage--warning">
							{{ phrase('following_files_not_deletable_as_they_may_be_in_use_by_another_add_on') }}
						</div>
						<ul>
							<xf:foreach loop="$conflictingFiles" value="$conflictingFile">
								<li><code>{$conflictingFile}</code></li>
							</xf:foreach>
						</ul>
					</div>
				</xf:if>
				<div class="block-row">
					<div class="block-rowMessage block-rowMessage--iconic block-rowMessage--important">
						{{ phrase('all_files_known_to_be_associated_with_this_add_on_will_be_deleted') }}
					</div>
				</div>
			</div>

			<h3 class="block-formSectionHeader">
				<span class="collapseTrigger collapseTrigger--block" data-xf-click="toggle" data-target="< :up:next">
					{{ phrase('view_files_to_be_deleted') }}
				</span>
			</h3>
			<div class="block-body block-body--contained block-body--collapsible" tabindex="-1">
				<div class="block-row">
					<ul>
						<xf:foreach loop="$filesToDelete" value="$file">
							<li><code>{$file}</code></li>
						</xf:foreach>
					</ul>
				</div>
			</div>

			<xf:submitrow submit="{{ phrase('delete_files') }}" rowtype="simple" />
		</div>

		<xf:redirect />
	</xf:form>
<xf:else />
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:inforow>
					<div class="block-rowMessage block-rowMessage--error">
						{{ phrase('following_files_or_directories_not_deletable_due_to_file_permissions') }}
					</div>
					<ul>
						<xf:foreach loop="$undeletableFiles" value="$undeletableFile">
							<li><code>{$undeletableFile}</code></li>
						</xf:foreach>
					</ul>
				</xf:inforow>
			</div>
		</div>
	</div>
</xf:if>]]></template>
  <template type="admin" title="addon_install" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('add-ons/install', $addOn) }}" class="block">

	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<xf:if is="$errors">
					{{ phrase('we_found_some_errors_while_trying_to_install_following_add_on:') }}
				<xf:elseif is="$warnings" />
					{{ phrase('please_review_warnings_and_confirm_you_wish_to_proceed_installing:') }}
				<xf:else />
					{{ phrase('please_confirm_that_you_want_to_install_following_add_on:') }}
				</xf:if>
				<strong>{$addOn.title} {$addOn.version_string}</strong>
			</xf:inforow>
		</div>

		<xf:macro id="addon_action_macros::summary"
			arg-errors="{$errors}"
			arg-warnings="{$warnings}" />

		<xf:macro id="addon_action_macros::action"
			arg-errors="{$errors}"
			arg-warnings="{$warnings}"
			arg-submit="{{ phrase('install') }}" />
	</div>

	<xf:redirect />

</xf:form>]]></template>
  <template type="admin" title="addon_install_from_archive" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:title>{{ phrase('install_upgrade_from_archive') }}</xf:title>

<xf:form action="{{ link('add-ons/install-from-archive') }}" upload="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:uploadrow name="uploads[]" multiple="multiple" required="required" accept=".zip"
				label="{{ phrase('add_on_archives') }}" />
		</div>
		<xf:submitrow icon="upload" submit="{{ phrase('upload') }}" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="addon_install_from_archive_complete" version_id="2020470" version_string="2.2.4"><![CDATA[<xf:title>{{ phrase('add_on_batch_result') }}</xf:title>

<xf:if is="$hasErrors">
	<div class="blockMessage blockMessage--error">
		{{ phrase('one_or_more_of_add_ons_in_this_batch_failed_to_install_upgrade') }}
	</div>
<xf:else />
	<div class="blockMessage blockMessage--success">
		{{ phrase('all_add_ons_in_this_batch_installed_upgraded_successfully') }}
	</div>
</xf:if>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:datalist data-xf-init="responsive-data-list">
				<xf:datarow rowtype="header">
					<xf:cell>{{ phrase('add_on') }}</xf:cell>
					<xf:cell>{{ phrase('action') }}</xf:cell>
					<xf:cell>{{ phrase('version') }}</xf:cell>
				</xf:datarow>
				<xf:foreach loop="$batch.results" key="$addOnId" value="$result">
					<xf:set var="$addOn" value="{{ $addOns.{$addOnId} ?: $batch.addon_ids.{$addOnId} }}" />
					<xf:datarow rowclass="dataList-row--noHover">
						<xf:cell>{{ $addOn.title ?: $addOnId }}</xf:cell>
						<xf:cell>
							<xf:if is="$result.status == 'error'">
								<span data-xf-init="tooltip" data-trigger="hover focus click" title="{$result.error}">
									<xf:fa icon="fas fa-exclamation-circle" style="color: #c84448;" />
									{{ phrase('error') }}
								</span>
							<xf:else />
								<span data-xf-init="tooltip" data-trigger="hover focus click"
									title="{{ phrase('action_completed_successfully')|for_attr }}">
									<xf:fa icon="fas fa-check-circle" style="color: #63b265;" />
									<xf:if is="$result.action == 'install'">
										{{ phrase('install') }}
									<xf:elseif is="$result.action == 'upgrade'" />
										{{ phrase('upgrade') }}
									<xf:elseif is="$result.action == 'rebuild'" />
										{{ phrase('rebuild') }}
									</xf:if>
								</span>
							</xf:if>
						</xf:cell>
						<xf:cell>
							<xf:if is="$action.action == 'upgrade'">
								{$result.old_version} -&gt; {$addOn.version_string}
							<xf:else />
								{$addOn.version_string}
							</xf:if>
						</xf:cell>
					</xf:datarow>
				</xf:foreach>
			</xf:datalist>
		</div>
		<div class="block-footer">
			<span class="block-footer-controls"><a
				href="{{ link('add-ons') }}">{{ phrase('view_all_add_ons') }}</a></span>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="addon_install_from_archive_confirm" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:title>{{ phrase('install_upgrade_from_archive') }}</xf:title>

<xf:form action="{{ link('add-ons/install-from-archive-confirm') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:datalist data-xf-init="responsive-data-list">
				<xf:datarow rowtype="header">
					<xf:cell>{{ phrase('add_on') }}</xf:cell>
					<xf:cell>{{ phrase('action') }}</xf:cell>
					<xf:cell>{{ phrase('version') }}</xf:cell>
				</xf:datarow>
				<xf:foreach loop="$plannedActions" key="$addOnId" value="$action">
					<xf:datarow rowclass="dataList-row--noHover">
						<xf:cell><span data-xf-init="tooltip" title="{$addOnId}">{$action.title}</span></xf:cell>
						<xf:cell>
							<xf:if is="$action.action == 'install'">
								{{ phrase('install') }}
							<xf:elseif is="$action.action == 'upgrade'" />
								{{ phrase('upgrade') }}
								<xf:set var="$displayAdvanced" value="{{ true }}" />
							<xf:elseif is="$action.action == 'rebuild'" />
								{{ phrase('rebuild') }}
								<xf:set var="$displayAdvanced" value="{{ true }}" />
							</xf:if>
						</xf:cell>
						<xf:cell>
							<xf:if is="$action.action == 'upgrade'">
								{$action.oldVersion} -&gt; {$action.version}
							<xf:else />
								{$action.version}
							</xf:if>
						</xf:cell>
					</xf:datarow>
				</xf:foreach>
			</xf:datalist>
		</div>
		<xf:if is="$displayAdvanced">
			<h3 class="block-formSectionHeader">
				{{ phrase('advanced_options') }}
			</h3>
			<div class="block-body">
				<xf:checkboxrow rowtype="fullWidth">
					<xf:option name="force_overwrite">
						<xf:label>{{ phrase('addon_force_overwrite') }}</xf:label>
						<xf:hint>{{ phrase('addon_force_overwrite_hint') }}</xf:hint>
					</xf:option>
				</xf:checkboxrow>
			</div>
		</xf:if>
		<xf:submitrow submit="{{ phrase('confirm_actions') }}" rowtype="simple"/>
	</div>
	<xf:hiddenval name="batch_id">{$batch.batch_id}</xf:hiddenval>
</xf:form>]]></template>
  <template type="admin" title="addon_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('add_ons') }}</xf:title>

<xf:css src="addon_list.less" />

<xf:pageaction>
	<xf:button href="{{ link('add-ons/install-from-archive') }}" overlay="true" icon="add">
		{{ phrase('install_upgrade_from_archive') }}
	</xf:button>
	<xf:if is="$disabled">
		<xf:button href="{{ link('add-ons/mass-toggle', null, {'enable': 1}) }}" overlay="true" data-cache="0">
			{{ phrase('enable') }}
		</xf:button>
	</xf:if>
	<xf:button href="{{ link('add-ons/mass-toggle', null, {'enable': 0}) }}" overlay="true" data-cache="0">
		{{ phrase('disable_all') }}
	</xf:button>
</xf:pageaction>

<xf:if is="$hasProcessing">
	<div class="blockMessage blockMessage--error blockMessage--iconic">
		{{ phrase('addon_action_pending_warning') }}
	</div>
</xf:if>

<xf:if is="$upgradeCheck">
	<xf:macro id="upgrade_check_macros::installable_add_ons" arg-upgradeCheck="{$upgradeCheck}" />
</xf:if>

<xf:macro id="addon_list_macros::addon_list_filter" />

<xf:if is="$total">
	<div class="addOnList">
		<!--[XF:list_block:top]-->
		<xf:macro id="addon_list_macros::addon_list_block"
			arg-addOns="{$upgradeable}"
			arg-heading="{{ phrase('upgradeable_add_ons') }}" />
		<!--[XF:list_block:below_upgradeable]-->
		<xf:macro id="addon_list_macros::addon_list_block"
			arg-addOns="{$installable}"
			arg-heading="{{ phrase('installable_add_ons') }}"
			arg-addOnDirWritable="{$addOnDirWritable}" />
		<!--[XF:list_block:below_installable]-->
		<xf:macro id="addon_list_macros::addon_list_block"
			arg-addOns="{$installed}"
			arg-heading="{{ phrase('installed_add_ons') }}" />
		<!--[XF:list_block:below_installed]-->
		<xf:macro id="addon_list_macros::addon_list_block"
			arg-addOns="{$legacy}"
			arg-heading="{{ phrase('legacy_add_ons') }}"
			arg-desc="{{ phrase('legacy_add_ons_desc') }}" />
		<!--[XF:list_block:bottom]-->
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_add_ons_installed_or_available_to_be_installed') }}</div>
</xf:if>]]></template>
  <template type="admin" title="addon_list.less" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[.addOnList
{
	.block,
	.blockMessage
	{
		&.is-hidden
		{
			display: none;
		}
	}
}

.addOnList-row
{
	&.is-disabled
	{
		.contentRow-figure,
		.contentRow-header,
		.contentRow-lesser
		{
			opacity: 0.5;
		}

		.contentRow-header
		{
			text-decoration: line-through;
		}

		.contentRow-extra
		{
			// this is needed to move this above the semi-transparent layer that's created above
			position: relative;
			z-index: 2;
		}
	}

	&.is-hidden
	{
		display: none;
	}

	.contentRow-lesser
	{
		&.no-description
		{
			visibility: hidden;
		}
	}

	.is-match
	{
		text-decoration: underline;
		color: red;
	}
}

]]></template>
  <template type="admin" title="addon_list_macros" version_id="2030070" version_string="2.3.0"><![CDATA[<xf:macro id="addon_list_filter">
	<div class="block">
		<div class="block-outer">
			<xf:js src="xf/filter.js" min="1" />
			<div class="block-outer-opposite quickFilter u-jsOnly"
				data-xf-init="filter"
				data-key="addOns"
				data-search-target=".addOnList"
				data-search-row=".addOnList-row"
				data-search-row-group=".block"
				data-search-limit=".js-filterSearchable"
				data-no-results-format="<div class=&quot;blockMessage js-filterNoResults&quot;>%s</div>">

				<div class="inputGroup inputGroup--inline inputGroup--joined">
					<input type="search" class="input js-filterInput" placeholder="{{ phrase('filter...') }}" />
					<span class="inputGroup-text">
						<xf:checkbox standalone="true">
							<xf:option class="js-filterPrefix" label="{{ phrase('prefix_search') }}" />
						</xf:checkbox>
					</span>
					<i class="inputGroup-text js-filterClear is-disabled" aria-hidden="true"></i>
				</div>
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="addon_list_block" arg-addOns="!" arg-heading="!" arg-desc="" arg-addOnDirWritable="{{ false }}">
	<xf:if is="$addOns is not empty">
		<div class="block">
			<div class="block-container">
				<h3 class="block-header">
					{$heading}
					<xf:if is="$desc">
						<span class="block-desc">
							{$desc}
						</span>
					</xf:if>
				</h3>
				<ol class="block-body">
					<xf:foreach loop="$addOns" value="$addOn">
						<xf:macro id="addon_list_item" arg-addOn="{$addOn}" arg-addOnDirWritable="{$addOnDirWritable}" />
					</xf:foreach>
				</ol>
			</div>
		</div>
	</xf:if>
</xf:macro>

<xf:macro id="addon_list_item" arg-addOn="!" arg-addOnDirWritable="{{ false }}">
	<xf:css src="addon_list.less" />

	<li class="block-row block-row--separated addOnList-row{{ ($addOn.isInstalled() && !$addOn.active) ? ' is-disabled' : '' }}">
		<div class="contentRow">
			<xf:macro id="addon_list_item_icon" arg-addOn="{$addOn}" />
			<div class="contentRow-main">
				<xf:macro id="addon_list_item_menu" arg-addOn="{$addOn}" arg-addOnDirWritable="{$addOnDirWritable}" />
				<h3 class="contentRow-header js-filterSearchable">
					{$addOn.title} <span class="contentRow-muted">{$addOn.version_string}</span>
					<xf:if is="$addOn.is_processing">
						<span class="label label--error" data-xf-init="tooltip" title="{{ phrase('last_action:')|for_attr }} {{ $addOn.last_pending_action ?: phrase('n_a')|for_attr }}">{{ phrase('action_pending') }}</span>
					</xf:if>
				</h3>
				<div class="contentRow-lesser js-filterSearchable{{ !$addOn.description ? ' no-description' : '' }}">
					{{ $addOn.description ? snippet($addOn.description, 200)|nl2br : '&nbsp;' }}
				</div>
				<xf:macro id="addon_list_item_footer" arg-addOn="{$addOn}" />
			</div>
		</div>
	</li>
</xf:macro>

<xf:macro id="addon_list_item_icon" arg-addOn="!">
	<div class="contentRow-figure">
		<div class="contentRow-figureIcon">
			<xf:if is="$addOn.hasFaIcon()">
				<xf:fa icon="{$addOn.icon} fa-3x" />
			<xf:elseif is="$addOn.hasIcon()" />
				<img src="{$addOn.getIconUri()}" alt="{$addOn.title}" />
			<xf:elseif is="$addOn.isLegacy()" />
				<xf:fa icon="fa-question-circle fa-3x" />
			<xf:else />
				<xf:fa icon="fa-puzzle-piece fa-3x" />
			</xf:if>
		</div>
	</div>
</xf:macro>

<xf:macro id="addon_list_item_menu" arg-addOn="!" arg-addOnDirWritable="{{ false }}">
	<div class="contentRow-extra">
		<xf:if is="$addOn.canUpgrade()">
			<xf:button href="{{ link('add-ons/upgrade', $addOn) }}" overlay="true" data-cache="0" class="button--primary">
				{{ phrase('upgrade') }}
			</xf:button>
		<xf:elseif is="$addOn.canInstall()" />
			<xf:if is="$addOnDirWritable AND $addOn.canDeleteFiles()">
				<xf:button href="{{ link('add-ons/delete-files', $addOn) }}" overlay="true" data-cache="0">
					{{ phrase('delete_files') }}
				</xf:button>
			</xf:if>
			<xf:button href="{{ link('add-ons/install', $addOn) }}" overlay="true" data-cache="0" class="button--primary">
				{{ phrase('install') }}
			</xf:button>
		</xf:if>
		<xf:if is="$addOn.isInstalled()">
			<xf:button class="button--link menuTrigger"
				data-xf-click="menu"
				aria-label="{{ phrase('more_options') }}"
				aria-expanded="false"
				aria-haspopup="true">
				<xf:fa icon="fa-cog" />
			</xf:button>
			<div class="menu" data-menu="menu" aria-hidden="true"
				data-href="{{ link('add-ons/controls', $addOn) }}"
				data-load-target=".js-controlsMenuBody">
				<div class="menu-content">
					<div class="js-controlsMenuBody">
						<div class="menu-row">{{ phrase('loading...') }}</div>
					</div>
				</div>
			</div>
		</xf:if>
	</div>
</xf:macro>

<xf:macro id="addon_list_item_footer" arg-addOn="!">
	<div class="contentRow-minor">
		<ul class="listInline listInline--bullet">
			<xf:if is="$addOn.isInstalled() && !$addOn.canUpgrade()">
				<xf:if is="$addOn.isLegacy()">
					<li class="addOnList-row-noSearch">
						<span class="label label--red" data-xf-init="tooltip"
							title="{{ phrase('this_legacy_add_on_cannot_be_enabled')|for_attr }}">
							{{ phrase('legacy_add_on') }}
						</span>
					</li>
				<xf:elseif is="$addOn.hasMissingFiles()" />
					<li class="addOnList-row-noSearch">
						<span class="label label--red" data-xf-init="tooltip"
							title="{{ phrase('some_files_or_directories_for_this_add_on_missing_x', {
								'missing_files': $addOn.missing_files|join(', ')
							})|for_attr }}">
							{{ phrase('missing_files') }}
						</span>
					</li>
				<xf:elseif is="!$addOn.isFileVersionValid()" />
					<li class="addOnList-row-noSearch">
						<span class="label label--primary" data-xf-init="tooltip"
							title="{{ phrase('add_on_files_do_not_appear_to_be_from_correct_version')|for_attr }}">
							{{ phrase('version_mismatch') }}
						</span>
					</li>
				<xf:elseif is="$addOn.hasPendingChanges()" />
					<li class="addOnList-row-noSearch">
						<span class="label label--primary" data-xf-init="tooltip"
							title="{{ phrase('this_add_on_has_pending_metadata_changes')|for_attr }}">
							{{ phrase('pending_changes') }}
						</span>
					</li>
				</xf:if>
			</xf:if>
			<xf:if is="$addOn.dev || $addOn.dev_url">
				<li>
					<xf:if is="$addOn.dev && $addOn.dev_url">
						<span class="addOnList-row-noSearch">{{ phrase('developer:') }}</span> <a href="{$addOn.dev_url}" target="_blank">{$addOn.dev}</a>
					<xf:elseif is="$addOn.dev" />
						<span class="addOnList-row-noSearch">{{ phrase('developer:') }}</span> {$addOn.dev}
					<xf:elseif is="$addOn.dev_url" />
						<span class="addOnList-row-noSearch">{{ phrase('developer:') }}</span> <a href="{$addOn.dev_url}" target="_blank">{$addOn.dev_url}</a>
					</xf:if>
				</li>
			</xf:if>
			<xf:if is="$addOn.faq_url">
				<li><a href="{$addOn.faq_url}" target="_blank">{{ phrase('faq') }}</a></li>
			</xf:if>
			<xf:if is="$addOn.support_url">
				<li><a href="{$addOn.support_url}" target="_blank">{{ phrase('support') }}</a></li>
			</xf:if>
			<xf:if is="$addOn.extra_urls is not empty">
				<xf:foreach loop="$addOn.extra_urls" key="$text" value="$url">
					<li><a href="{$url}" target="_blank">{$text}</a></li>
				</xf:foreach>
			</xf:if>
		</ul>
	</div>
</xf:macro>]]></template>
  <template type="admin" title="addon_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="addon_edit" arg-addOnId="!" arg-row="{{ true }}" arg-includeAny="{{ false }}">
	<xf:set var="$addOnRepo" value="{{ $xf.app.em.getRepository('XF:AddOn') }}" />
	<xf:if is="$addOnRepo.canChangeAddOn()">
		<xf:macro id="addon_select" arg-addOnId="{$addOnId}" arg-row="{$row}" arg-includeAny="{$includeAny}" />
	<xf:else />
		<xf:hiddenval name="addon_id">{$addOnId}</xf:hiddenval>
	</xf:if>
</xf:macro>

<xf:macro id="addon_change_menu"
	arg-addOns="!"
	arg-route="!"
	arg-routeData="!"
	arg-routeParams="{{ {} }}"
	arg-currentAddOn="{{ null }}"
	arg-linkClass="button button--link">

	<a class="{$linkClass} menuTrigger"
		data-xf-click="menu"
		role="button"
		tabindex="0"
		aria-expanded="false"
		aria-haspopup="true">{{ phrase('add_on:') }} {{ $currentAddOn ? $currentAddOn.title : phrase('(any)') }}</a>

	<div class="menu" data-menu="menu" aria-hidden="true">
		<div class="menu-content">
			<h3 class="menu-header">{{ phrase('add_ons') }}</h3>
			<a href="{{ link($route, $routeData, {'addon_id': null} + $routeParams) }}"
				class="menu-linkRow {{ !$currentAddOn ? 'is-selected' : '' }}">
				{{ phrase('(any)') }}
			</a>
			<xf:foreach loop="$addOns" value="$addOn">
				<a href="{{ link($route, $routeData, {'addon_id': $addOn.addon_id} + $routeParams) }}"
					class="menu-linkRow {{ ($currentAddOn && $currentAddOn.addon_id == $addOn.addon_id) ? 'is-selected' : '' }}">
					{$addOn.title}
				</a>
			</xf:foreach>
		</div>
	</div>
</xf:macro>

<xf:macro id="addon_select" arg-addOnId="!" arg-row="{{ true }}" arg-class="" arg-includeAny="{{ false }}" arg-emptyValue="">
	<xf:set var="$addOnRepo" value="{{ $xf.app.em.getRepository('XF:AddOn') }}" />
	<xf:set var="$select">
		<xf:select name="addon_id" value="{{ $addOnId === false ? $addOnRepo.getDefaultAddOnId() : $addOnId }}" class="{$class}">
			<xf:option value="{$emptyValue}"></xf:option>
			<xf:if is="$includeAny">
				<xf:option value="_any">{{ phrase('(any)') }}</xf:option>
			</xf:if>
			<xf:foreach loop="{{ $addOnRepo.findAddOnsForList().fetch() }}" value="$addOn">
				<xf:option value="{$addOn.addon_id}">{$addOn.title}</xf:option>
			</xf:foreach>
		</xf:select>
	</xf:set>
	<xf:if is="$row">
		<xf:formrow rowtype="input"
			label="{{ phrase('add_on') }}">

			{$select|raw}
		</xf:formrow>
	<xf:else />
		{$select|raw}
	</xf:if>
</xf:macro>]]></template>
  <template type="admin" title="addon_mass_disable" version_id="2000036" version_string="2.0.0 Beta 6"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('add-ons/mass-toggle', null, {'enable': 0}) }}" class="block" ajax="true">

	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<p>{{ phrase('you_sure_you_want_to_disable_all_add_ons') }}</p>
				<xf:if is="!$disabled">
					<div class="blockMessage blockMessage--important blockMessage--iconic">
						{{ phrase('note_this_action_will_overwrite_previously_cached_disabled_add_ons_list') }}
					</div>
				</xf:if>
			</xf:inforow>
		</div>

		<xf:submitrow submit="{{ phrase('disable_all') }}" rowtype="simple" icon="disable" />
	</div>

	<xf:redirect />

</xf:form>]]></template>
  <template type="admin" title="addon_mass_enable" version_id="2000036" version_string="2.0.0 Beta 6"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('add-ons/mass-toggle', null, {'enable': 1}) }}" class="block" ajax="true">

	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<p>{{ phrase('you_sure_you_want_to_re_enable_previously_disabled_add_ons') }}</p>
				<p>{{ phrase('you_may_control_which_add_ons_re_enabled_from_list_below:') }}</p>
			</xf:inforow>

			<xf:checkboxrow name="to_enable">
				<xf:foreach loop="$addOns" key="$addOnId" value="$addOn">
					<xf:option value="{$addOnId}" selected="in_array($addOnId, $disabled)" label="{$addOn.title}">
						<xf:hint>{{ $addOn.active ? phrase('this_add_on_is_already_enabled') : '' }}</xf:hint>
					</xf:option>
				</xf:foreach>
			</xf:checkboxrow>
		</div>

		<xf:submitrow submit="{{ phrase('enable') }}" icon="disable" />
	</div>

	<xf:redirect />

</xf:form>]]></template>
  <template type="admin" title="addon_options" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('options:') }} {$addOn.title}</xf:title>

<xf:if is="$groups is not empty">
	<xf:form action="{{ link('options/update') }}" ajax="true" class="block">
		<div class="block-container">
			<xf:foreach loop="$groups" key="$groupId" value="$group">
				<xf:if is="{$groupedOptions.{$groupId}} is not empty">
					<h3 class="block-formSectionHeader">
						<span class="{{ $groups.count() > 1 ? 'collapseTrigger collapseTrigger--block' : '' }} is-active" data-xf-click="{{ $groups.count() > 1 ? 'toggle' : '' }}" data-target="< :up:next">
							{$group.title}
						</span>
						<span class="block-desc">
							{$group.description}
						</span>
					</h3>
					<div class="block-body {{ $groups.count() > 1 ? 'block-body--collapsible' : '' }} is-active">

						<xf:set var="$hundred" value="0" />

						<xf:foreach loop="{$groupedOptions.{$groupId}}" value="{$option}">

							<xf:if is="$group">
								<xf:set var="$curHundred" value="{{ floor($option.Relations.{$group.group_id}.display_order / 100) }}" />
								<xf:if is="{{ $curHundred > $hundred }}">
									<xf:set var="$hundred" value="{$curHundred}" />
									<hr class="formRowSep" />
								</xf:if>
							</xf:if>

							<xf:macro id="option_macros::option_row" arg-group="{$group}" arg-option="{$option}" arg-includeAddOnHint="{{ false }}" />
						</xf:foreach>
					</div>
				</xf:if>
			</xf:foreach>
			<xf:submitrow sticky="true" icon="save" />
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="addon_rebuild" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('add-ons/rebuild', $addOn) }}" class="block">

	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<xf:if is="$errors">
					{{ phrase('we_found_some_errors_while_trying_to_rebuild_following_add_on:') }}
				<xf:elseif is="$warnings" />
					{{ phrase('please_review_warnings_and_confirm_you_wish_to_proceed_rebuilding:') }}
				<xf:else />
					{{ phrase('please_confirm_that_you_want_to_rebuild_following_add_on:') }}
				</xf:if>
				<strong>{$addOn.title} {$addOn.version_string}</strong>
			</xf:inforow>
		</div>

		<xf:macro id="addon_action_macros::summary"
			arg-errors="{$errors}"
			arg-warnings="{$warnings}" />

		<xf:macro id="addon_action_macros::action"
			arg-errors="{$errors}"
			arg-warnings="{$warnings}"
			arg-submit="{{ phrase('rebuild') }}" />
	</div>

	<xf:redirect />

</xf:form>]]></template>
  <template type="admin" title="addon_run_step" version_id="2000170" version_string="2.0.1"><![CDATA[<xf:title>{$actionText}{$xf.language.ellipsis}</xf:title>
<xf:page option="template">PAGE_RUN_JOB</xf:page>

<form action="{{ link($actionRoute, $addOn) }}" method="post"
	class="blockMessage"
	data-xf-init="auto-submit">

	<div>
		{$actionText}
		<strong>{$addOn.title} {$addOn.version_string}{{ repeat(' . ', $count ) }}</strong>
	</div>

	<div class="u-noJsOnly"><xf:button type="submit">{{ phrase('proceed...') }}</xf:button></div>

	<xf:hiddenval name="_xfProcessing">{$isProcessing}</xf:hiddenval>

	<xf:hiddenval name="continue">1</xf:hiddenval>
	<xf:hiddenval name="confirm">1</xf:hiddenval>

	<xf:hiddenval name="params">{$params|json}</xf:hiddenval>
	<xf:hiddenval name="count">{$count}</xf:hiddenval>
	<xf:hiddenval name="finished">{{ $finished ? 1 : 0 }}</xf:hiddenval>

	<xf:csrf />
</form>]]></template>
  <template type="admin" title="addon_uninstall" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('add-ons/uninstall', $addOn) }}" class="block">

	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_uninstall_following_add_on:') }}
				<strong>{$addOn.title} {$addOn.version_string}</strong>
				<xf:if is="$addOn.isLegacy()">
					<div class="blockMessage blockMessage--warning blockMessage--iconic">
						{{ phrase('uninstalling_legacy_add_ons_may_leave_orphaned_data') }}
					</div>
				<xf:else />
					<div class="blockMessage blockMessage--important blockMessage--iconic">
						{{ phrase('this_will_remove_any_data_created_by_add_on') }}
					</div>
				</xf:if>
			</xf:inforow>
		</div>

		<xf:submitrow submit="{{ phrase('uninstall') }}" rowtype="simple" icon="delete" />
	</div>

	<xf:redirect />

</xf:form>]]></template>
  <template type="admin" title="addon_upgrade" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('add-ons/upgrade', $addOn) }}" class="block">

	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<xf:if is="$errors">
					{{ phrase('we_found_some_errors_while_trying_to_upgrade_following_add_on:') }}
				<xf:elseif is="$warnings" />
					{{ phrase('please_review_warnings_and_confirm_you_wish_to_proceed_upgrading:') }}
				<xf:else />
					{{ phrase('please_confirm_that_you_want_to_upgrade_following_add_on:') }}
				</xf:if>
				<strong>{$addOn.title} &middot; {$addOn.version_string} -&gt; {$addOn.json_version_string}</strong>
			</xf:inforow>
		</div>

		<xf:macro id="addon_action_macros::summary"
			arg-errors="{$errors}"
			arg-warnings="{$warnings}" />

		<xf:macro id="addon_action_macros::action"
			arg-errors="{$errors}"
			arg-warnings="{$warnings}"
			arg-submit="{{ phrase('upgrade') }}" />
	</div>

	<xf:redirect />

</xf:form>]]></template>
  <template type="admin" title="admin_delete" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('admins/delete', $admin) }}" class="block" ajax="true">

	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('confirm_that_you_want_to_remove_following_user_as_an_admin:') }}
				<strong><a href="{{ link('admins/edit', $admin) }}">{$admin.username}</a></strong>
			</xf:inforow>

			<xf:passwordboxrow name="visitor_password"
				label="{{ phrase('your_password') }}"
				explain="{{ phrase('you_must_enter_your_current_password_to_validate_this_request') }}" />
		</div>

		<xf:submitrow icon="delete" />
	</div>

</xf:form>]]></template>
  <template type="admin" title="admin_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$admin.isInsert()">
	<xf:title>{{ phrase('add_administrator') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_administrator:') }} {$admin.username}</xf:title>
</xf:if>

<xf:pageaction if="$admin.isUpdate()">
	<xf:button href="{{ link('admins/delete', $admin) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('admins/save', $admin) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:passwordboxrow name="visitor_password"
				label="{{ phrase('your_password') }}"
				explain="{{ phrase('you_must_enter_your_current_password_to_validate_this_request') }}" />

			<hr class="formRowSep" />

			<xf:if is="!$admin.user_id">
				<xf:textboxrow name="username" ac="single"
					label="{{ phrase('user') }}"
					data-xf-init="input-validator"
					data-validation-url="{{ link('admins/admin-warnings') }}"
					data-error-target="< dd | .js-adminWarnings">

					<xf:explain>
						<div class="block-rowMessage block-rowMessage--important u-hidden u-hidden--transition js-adminWarnings"></div>
					</xf:explain>
				</xf:textboxrow>
			</xf:if>

			<xf:checkboxrow name="extra_user_group_ids" value="{$admin.extra_user_group_ids}" listclass="listColumns"
				label="{{ phrase('add_user_to_user_groups') }}">
				<xf:hint><br />
					<xf:checkbox standalone="true"><xf:option check-all="< .formRow" label="{{ phrase('select_all') }}" /></xf:checkbox>
				</xf:hint>
				<xf:options source="$userGroups" />
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<xf:checkboxrow>
				<xf:option name="advanced" selected="{$admin.advanced}">{{ phrase('show_advanced_control_panel_options') }}</xf:option>
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<xf:radiorow name="is_super_admin" value="{$admin}" label="{{ phrase('administrator_type') }}">

				<xf:option value="1"
					label="{{ phrase('super_administrator') }}"
					hint="{{ phrase('super_admins_have_all_admin_permissions_and_can_manage_other_admins') }}" />
				<xf:option value="0" data-hide="true" data-xf-init="disabler" data-container=".js-adminPermissions"
					label="{{ phrase('regular_administrator') }}" />
			</xf:radiorow>

			<div class="js-adminPermissions">
				<xf:checkboxrow name="permission_cache" value="{{ array_keys($admin.permission_cache) }}" listclass="listColumns"
					label="{{ phrase('permissions') }}">
					<xf:hint><br />
						<xf:checkbox standalone="true"><xf:option check-all="< .formRow" label="{{ phrase('select_all') }}" /></xf:checkbox>
					</xf:hint>
					<xf:options source="$permissions" />
				</xf:checkboxrow>
			</div>
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="admin_list" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('administrators') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('admins/add') }}" icon="add">{{ phrase('add_administrator') }}</xf:button>
</xf:pageaction>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:datalist>
				<xf:foreach loop="$admins" value="$admin">
					<xf:datarow>
						<xf:cell class="dataList-cell--min dataList-cell--image dataList-cell--imageSmall"
							href="{{ link('admins/edit', $admin) }}">
							<xf:avatar user="$admin.User" size="s" href="" />
						</xf:cell>
						<xf:main href="{{ link('admins/edit', $admin) }}" label="{$admin.User.username}">
							<xf:hint>
								<ul class="listInline listInline--bullet listInline--selfInline">
									<li>{{ phrase('last_login:') }} {{ $admin.last_login ? date_dynamic($admin.last_login) : phrase('n_a') }}</li>
									<xf:if is="$admin.is_super_admin">
										<li>{{ phrase('super_administrator') }}</li>
									</xf:if>
								</ul>
							</xf:hint>
						</xf:main>
						<xf:action href="{{ link('users/edit', $admin.User) }}">{{ phrase('user_info') }}</xf:action>
						<xf:delete href="{{ link('admins/delete', $admin) }}" overlay="true" />
					</xf:datarow>
				</xf:foreach>
			</xf:datalist>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="admin_navigation_delete" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('admin-navigation/delete', $navigation) }}" class="block" ajax="true">

	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				<strong><a href="{{ link('admin-navigation/edit', $navigation) }}">{$navigation.title}</a></strong>
			</xf:inforow>

			<xf:if is="$hasChildren">
				<xf:inforow>
					<p class="block-rowMessage block-rowMessage--warning block-rowMessage--iconic">
						<strong>{{ phrase('note:') }}</strong>
						{{ phrase('deleting_parent_also_deletes_children') }}
					</p>
				</xf:inforow>
			</xf:if>
		</div>

		<xf:submitrow rowtype="simple" icon="delete" />
	</div>

	<xf:redirect />

</xf:form>]]></template>
  <template type="admin" title="admin_navigation_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$navigation.isInsert()">
	<xf:title>{{ phrase('add_navigation') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_navigation:') }} {$navigation.title}</xf:title>
</xf:if>

<xf:pageaction if="$navigation.isUpdate()">
	<xf:button href="{{ link('admin-navigation/delete', $navigation) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('admin-navigation/save', $navigation) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="navigation_id" value="{$navigation}"
				label="{{ phrase('admin_navigation_id') }}"
				dir="ltr" />
			<xf:textboxrow name="title" value="{$navigation}"
				label="{{ phrase('title') }}" />
			<xf:textboxrow name="link" value="{$navigation}"
				label="{{ phrase('link') }}"
				dir="ltr" />
			<xf:textboxrow name="icon" value="{$navigation}"
				label="{{ phrase('font_awesome_icon') }}"
				explain="{{ phrase('admin_navigation_icon_explain') }}"
				dir="ltr" />

			<hr class="formRowSep" />

			<xf:selectrow name="parent_navigation_id" value="{$navigation}"
				label="{{ phrase('parent_navigation_entry') }}">

				<xf:option>&nbsp;</xf:option>
				<xf:foreach loop="$navigationTree.getFlattened()" value="$treeEntry">
					<xf:option value="{$treeEntry.record.navigation_id}" class="u-indentDepth{$treeEntry.depth}">{{ (repeat('--', $treeEntry.depth)|raw) }}
						{$treeEntry.record.title}
						({$treeEntry.record.display_order})
					</xf:option>
				</xf:foreach>
			</xf:selectrow>

			<xf:macro id="display_order_macros::row" arg-value="{$navigation}" />

			<hr class="formRowSep" />

			<xf:selectrow name="admin_permission_id" value="{$navigation}"
				label="{{ phrase('required_admin_permission') }}">

				<xf:option>&nbsp;</xf:option>
				<xf:foreach loop="$adminPermissions" value="$adminPermission">
					<xf:option value="{$adminPermission.admin_permission_id}">{$adminPermission.title}</xf:option>
				</xf:foreach>
			</xf:selectrow>
			<xf:checkboxrow>
				<xf:option name="debug_only" selected="$navigation.debug_only">{{
					phrase('display_this_navigation_in_debug_mode_only') }}
				</xf:option>
				<xf:option name="development_only" selected="$navigation.development_only">{{
					phrase('display_this_navigation_in_development_mode_only') }}
				</xf:option>
				<xf:option name="hide_no_children" selected="$navigation.hide_no_children">{{
					phrase('hide_this_navigation_when_there_no_viewable_children') }}
				</xf:option>
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$navigation.addon_id}" />

		</div>

		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="admin_navigation_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('admin_navigation') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('admin-navigation/add') }}" icon="add">{{ phrase('add_navigation') }}</xf:button>
</xf:pageaction>

<div class="block">
	<div class="block-outer">
		<xf:macro id="filter_macros::quick_filter" arg-key="admin-navigation" arg-class="block-outer-opposite" />
	</div>
	<div class="block-container">
		<div class="block-body">
			<xf:datalist>
				<xf:macro id="navigation_list" arg-children="{$tree}" />
			</xf:datalist>
		</div>
		<div class="block-footer">
			<span class="block-footer-counter">{{ display_totals($tree.getFlattened(0)) }}</span>
		</div>
	</div>
</div>

<xf:macro id="navigation_list" arg-children="!" arg-depth="1">
	<xf:foreach loop="$children" value="$child">
		<xf:macro id="navigation_list_entry" arg-navigation="{$child.record}" arg-children="{$child.children}" arg-depth="{$depth}" />
	</xf:foreach>
</xf:macro>

<xf:macro id="navigation_list_entry" arg-navigation="!" arg-children="!" arg-depth="1">
	<xf:if is="$depth == 1">
		<xf:datarow rowtype="subsection">
			<xf:cell href="{{ link('admin-navigation/edit', $navigation) }}" hash="{$navigation.navigation_id}">
				<div class="dataList-textRow">
					<xf:if is="{$navigation.icon}"><xf:fa icon="{$navigation.icon} fa-fw" /></xf:if>
					{$navigation.title}
					<xf:if is="{$navigation.link}"><span class="dataList-hint" dir="auto">{$navigation.link}</span></xf:if>
				</div>
			</xf:cell>
			<xf:cell class="dataList-cell--min dataList-cell--hint">{$navigation.display_order}</xf:cell>
			<xf:cell>&nbsp;</xf:cell>
			<xf:delete href="{{ link('admin-navigation/delete', $navigation) }}" />
		</xf:datarow>
	<xf:else />
		<xf:datarow>
			<xf:cell href="{{ link('admin-navigation/edit', $navigation) }}"
				class="dataList-cell--d{{ $depth - 1 }}"
				hash="{$navigation.navigation_id}">

				<div class="dataList-textRow">
					<xf:if is="$navigation.icon"><xf:fa icon="{$navigation.icon}" /></xf:if>
					{$navigation.title}
					<xf:if is="{$navigation.link}"><span class="dataList-hint" dir="auto">{$navigation.link}</span></xf:if>
				</div>
			</xf:cell>
			<xf:cell class="dataList-cell--min dataList-cell--hint">{$navigation.navigation_id} / {$navigation.display_order}</xf:cell>
			<xf:popup class="dataList-cell--action u-hideMedium"
				label="{{ phrase('add...') }}">

				<div class="menu" data-menu="menu" aria-hidden="true">
					<div class="menu-content">
						<h3 class="menu-header">{{ phrase('add...') }}</h3>
						<a href="{{ link('admin-navigation/add', null, {'parent_navigation_id': $navigation.parent_navigation_id}) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('sibling') }}</a>
						<a href="{{ link('admin-navigation/add', null, {'parent_navigation_id': $navigation.navigation_id}) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('child') }}</a>
					</div>
				</div>
			</xf:popup>
			<xf:delete href="{{ link('admin-navigation/delete', $navigation) }}" />
		</xf:datarow>
	</xf:if>
	<xf:macro id="navigation_list" arg-children="{$children}" arg-depth="{{ $depth + 1 }}" />
</xf:macro>]]></template>
  <template type="admin" title="admin_navigation_sort" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('sort_admin_navigation') }}</xf:title>

<xf:macro id="public:nestable_macros::setup" />

<xf:form action="{{ link('admin-navigation/sort') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<div class="nestable-container" data-xf-init="nestable" data-parent-id="">
				<xf:macro id="navigation_list" arg-children="{$navTree}" />
				<xf:hiddenval name="navigation" value="" />
			</div>
		</div>
		<xf:submitrow icon="save" rowtype="simple" />
	</div>
</xf:form>

<xf:macro id="navigation_list" arg-children="!">
	<ol class="nestable-list">
		<xf:foreach loop="$children" key="$id" value="$child">
			<xf:macro id="navigation_list_entry" arg-nav="{$child.record}" arg-children="{$child.children}" />
		</xf:foreach>
	</ol>
</xf:macro>

<xf:macro id="navigation_list_entry" arg-nav="!" arg-children="!">
	<li class="nestable-item" data-id="{$nav.navigation_id}">
		<div class="nestable-handle" aria-label="{{ phrase('drag_handle')|for_attr }}"><xf:fa icon="fa-bars" /></div>
		<div class="nestable-content">{$nav.title}</div>
		<xf:if is="$children is not empty">
			<xf:macro id="navigation_list" arg-children="{$children}" />
		</xf:if>
	</li>
</xf:macro>]]></template>
  <template type="admin" title="admin_permission_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$permission.isInsert()">
	<xf:title>{{ phrase('add_admin_permission') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_admin_permission:') }} {$permission.title}</xf:title>
</xf:if>

<xf:pageaction if="$permission.isUpdate()">
	<xf:button href="{{ link('admin-permissions/delete', $permission) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('admin-permissions/save', $permission) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">

			<xf:textboxrow name="admin_permission_id" value="{$permission}"
				label="{{ phrase('permission_id') }}"
				dir="ltr" />

			<xf:textboxrow name="title" value="{$permission}"
				label="{{ phrase('title') }}" />

			<xf:macro id="display_order_macros::row" arg-value="{$permission}" />

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$permission.addon_id}" />
		</div>

		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="admin_permission_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('admin_permissions') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('admin-permissions/add') }}" icon="add">{{ phrase('add_admin_permission') }}</xf:button>
</xf:pageaction>

<xf:form action="" class="block">
	<div class="block-outer">
		<xf:macro id="filter_macros::quick_filter" arg-key="admin-permissions" arg-class="block-outer-opposite" />
	</div>
	<div class="block-container">
		<div class="block-body">
			<xf:datalist>
				<xf:foreach loop="$permissions" value="$permission">
					<xf:datarow href="{{ link('admin-permissions/edit', $permission) }}"
						label="{$permission.title}"
						hint="{$permission.admin_permission_id}"
						delete="{{ link('admin-permissions/delete', $permission) }}" />
				</xf:foreach>
			</xf:datalist>
		</div>
		<div class="block-footer">
			<span class="block-footer-counter">{{ display_totals($permissions) }}</span>
		</div>
	</div>
</xf:form>]]></template>
  <template type="admin" title="admin_section" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{$title}</xf:title>

<xf:macro id="section_nav_macros::section_nav" arg-section="{$entry.navigation_id}" />]]></template>
  <template type="admin" title="advertising_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$ad.isInsert()">
	<xf:title>{{ phrase('add_advertisement') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_advertisement:') }} {$ad.title}</xf:title>
</xf:if>

<xf:pageaction if="$ad.isUpdate()">
	<xf:button href="{{ link('advertising/delete', $ad) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('advertising/save', $ad) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">

			<xf:textboxrow name="title" value="{$ad}"
				label="{{ phrase('title') }}"
				explain="{{ phrase('provide_short_title_for_this_advertisement') }}" />

			<xf:selectrow name="position_id" value="{$ad}"
				data-xf-init="desc-loader"
				data-desc-url="{{ link('advertising/get-position-description') }}"
				label="{{ phrase('position') }}">
				<xf:option />
				<xf:options source="{$advertisingPositions}" />
				<xf:html>
					<div class="js-descTarget formRow-explain">{$ad.AdvertisingPosition.description|raw}</div>
				</xf:html>
			</xf:selectrow>

			<xf:codeeditorrow name="ad_html" value="{$ad}" class="codeEditor--short" mode="html"
				label="{{ phrase('html') }}"
				explain="{{ phrase('you_may_use_xenforo_template_syntax_here') }}" />

			<xf:checkboxrow
				label="{{ phrase('display_criteria') }}"
				explain="{{ phrase('use_above_criteria_to_restrict_display_of_this_advertisement') }}">

				<xf:option selected="{$ad.display_criteria.user_groups}"
					label="{{ phrase('user_is_member_of_any_of_selected_user_groups:') }}">

					<xf:select name="display_criteria[user_groups]" size="4" multiple="true" value="{$ad.display_criteria.user_groups}">
						<xf:foreach loop="$userGroups" key="$userGroupId" value="$userGroupTitle">
							<xf:option value="{$userGroupId}">{$userGroupTitle}</xf:option>
						</xf:foreach>
					</xf:select>
				</xf:option>

				<xf:option selected="{$ad.display_criteria.not_user_groups}"
					label="{{ phrase('user_is_not_member_of_any_of_selected_user_groups:') }}">

					<xf:select name="display_criteria[not_user_groups]" size="4" multiple="true" value="{$ad.display_criteria.not_user_groups}">
						<xf:foreach loop="$userGroups" key="$userGroupId" value="$userGroupTitle">
							<xf:option value="{$userGroupId}">{$userGroupTitle}</xf:option>
						</xf:foreach>
					</xf:select>
				</xf:option>
			</xf:checkboxrow>

			<xf:macro id="display_order_macros::row"
				arg-value="{$ad}"
				arg-explain="{{ phrase('enter_display_order_relative_to_other_ads_in_same_position') }}" />

			<xf:checkboxrow>
				<xf:option name="active" value="1" selected="$ad.active">{{ phrase('advertisement_is_active') }}</xf:option>
			</xf:checkboxrow>
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="advertising_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('advertising') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('advertising/add') }}" icon="add">{{ phrase('add_advertisement') }}</xf:button>
</xf:pageaction>

<xf:if is="$ads is not empty">
	<xf:form action="{{ link('advertising/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="advertising" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$positions" key="$positionId" value="$position">
						<xf:if is="{$ads.{$positionId}} is not empty">
							<tbody class="dataList-rowGroup">
								<xf:datarow
									colspan="3"
									label="{$position.title}"
									explain="{$position.description|raw}"
									rowtype="subsection"
									rowclass="dataList-row--noHover" />
								<xf:foreach loop="{$ads.{$positionId}}" value="$ad">
									<xf:datarow
										label="{$ad.title}"
										href="{{ link('advertising/edit', $ad) }}"
										delete="{{ link('advertising/delete', $ad) }}">

										<xf:toggle name="active[{$ad.ad_id}]" selected="$ad.active"
											class="dataList-cell--separated" submit="true"
											tooltip="{{ phrase('enable_disable_x', {'title': $ad.title}) }}" />
									</xf:datarow>
								</xf:foreach>
							</tbody>
						</xf:if>
					</xf:foreach>
				</xf:datalist>
				<div class="block-footer">
					<span class="block-footer-counter">{{ display_totals($totalAds) }}</span>
				</div>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>

<xf:macro id="option_macros::option_form_block" arg-options="{$options}" />]]></template>
  <template type="admin" title="advertising_position_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$advertisingPosition.isInsert()">
	<xf:title>{{ phrase('add_advertising_position') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_advertising_position:') }} {$advertisingPosition.title}</xf:title>
</xf:if>

<xf:pageaction if="$advertisingPosition.isUpdate()">
	<xf:button href="{{ link('advertising/positions/delete', $advertisingPosition) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('advertising/positions/save', $advertisingPosition) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">

			<xf:textboxrow name="position_id" value="{$advertisingPosition}"
				label="{{ phrase('position_id') }}"
				dir="ltr" />

			<xf:textboxrow name="title" value="{$advertisingPosition}"
				label="{{ phrase('title') }}" />

			<xf:codeeditorrow name="description" value="{$advertisingPosition}"
				mode="html" data-line-wrapping="true"
				class="codeEditor--autoSize codeEditor--proportional"
				label="{{ phrase('description') }}"
				hint="{{ phrase('you_may_use_html') }}" />

			<xf:formrow rowtype="input"
				label="{{ phrase('arguments') }}"
				explain="{{ phrase('list_arguments_that_this_advertising_position_requires') }}">

				<ul class="listPlain inputGroup-container">
					<xf:foreach loop="$advertisingPosition.arguments" key="$counter" value="$argument">
						<li class="inputGroup">
							<xf:textbox name="arguments[{$counter}][argument]" value="{$argument.argument}" placeholder="{{ phrase('name_of_argument') }}" size="20" />
							<span class="inputGroup-splitter"></span>

							<xf:checkbox value="{$argument.required}" standalone="true">
								<xf:option name="arguments[{$counter}][required]" value="1" labelclass="inputGroup-text">{{ phrase('required') }}</xf:option>
							</xf:checkbox>
						</li>
					</xf:foreach>

					<li class="inputGroup" data-xf-init="field-adder" data-increment-format="arguments[{counter}]">
						<xf:textbox name="arguments[{$nextCounter}][argument]" placeholder="{{ phrase('name_of_argument') }}" size="20" />
						<span class="inputGroup-splitter"></span>

						<xf:checkbox standalone="true">
							<xf:option name="arguments[{$nextCounter}][required]" value="1" labelclass="inputGroup-text">{{ phrase('required') }}</xf:option>
						</xf:checkbox>
					</li>
				</ul>
			</xf:formrow>

			<xf:checkboxrow>
				<xf:option name="active" value="1" selected="$advertisingPosition.active">{{ phrase('advertising_position_is_active') }}</xf:option>
			</xf:checkboxrow>

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$advertisingPosition.addon_id}" />
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="advertising_position_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('advertising_positions') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('advertising/positions/add') }}" icon="add">{{ phrase('add_advertising_position') }}</xf:button>
</xf:pageaction>

<xf:if is="$advertisingPositions is not empty">
	<xf:form action="{{ link('advertising/positions/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="advertising-positions" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$advertisingPositions" value="$advertisingPosition">
						<xf:datarow
							label="{$advertisingPosition.title}"
							explain="{$advertisingPosition.description|raw}"
							href="{{ link('advertising/positions/edit', $advertisingPosition) }}"
							delete="{{ link('advertising/positions/delete', $advertisingPosition) }}">

							<xf:toggle name="active[{$advertisingPosition.position_id}]" selected="$advertisingPosition.active"
								class="dataList-cell--separated" submit="true"
								tooltip="{{ phrase('enable_disable_x', {'title': $advertisingPosition.position_id}) }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($advertisingPositions) }}</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="api_key_edit" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:if is="$apiKey.isInsert()">
	<xf:title>{{ phrase('add_api_key') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_api_key') }}</xf:title>
</xf:if>

<xf:pageaction if="$apiKey.isUpdate()">
	<xf:button href="{{ link('api-keys/delete', $apiKey) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('api-keys/save', $apiKey) }}" ajax="true" data-force-flash-message="on" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$apiKey.isUpdate()">
				<xf:formrow label="{{ phrase('api_key') }}" rowtype="button">
					<code>{$apiKey.api_key_snippet}</code>
					<xf:button href="{{ link('api-keys/view-key', $apiKey) }}"
						data-xf-click="overlay"
						class="button--link">{{ phrase('view_full_key') }}
					</xf:button>

					<xf:button href="{{ link('api-keys/regenerate', $apiKey) }}"
						data-xf-click="overlay"
						class="button--link">{{ phrase('regenerate_key') }}
					</xf:button>
				</xf:formrow>
			</xf:if>

			<xf:textboxrow name="title" value="{$apiKey}"
				label="{{ phrase('title') }}">
				<xf:explain>{{ phrase('provide_title_for_key_seen_list_api_keys') }}</xf:explain>
			</xf:textboxrow>

			<xf:if is="$apiKey.isUpdate()">
				<xf:macro id="api_key_macros::key_type_row" arg-apiKey="{$apiKey}" />

				<xf:formrow label="{{ phrase('created') }}">
					<xf:date time="{$apiKey.creation_date}" />
					&middot;
					{{ phrase('by_user_x', {'name': $apiKey.Creator.username ?: phrase('n_a') }) }}
				</xf:formrow>

				<xf:formrow label="{{ phrase('last_used') }}">
					<xf:if is="$apiKey.last_use_date">
						<xf:date time="{$apiKey.last_use_date}" />
					<xf:else />
						{{ phrase('n_a') }}
					</xf:if>
				</xf:formrow>
			<xf:else />
				<xf:radiorow name="key_type" value="guest" label="{{ phrase('key_type') }}">
					<xf:option value="guest">{{ phrase('guest_key') }}</xf:option>
					<xf:option label="{{ phrase('user_key') }}" value="user"
						data-xf-init="disabler">
						<xf:textbox name="username" ac="single"
							value="{{ $apiKey.key_type == 'user' ? $apiKey.User.username : '' }}"
							maxlength="{{ max_length($xf.visitor, 'username') }}" />
						<xf:afterhint>{{ phrase('enter_username_key_authenticate_as') }}</xf:afterhint>
					</xf:option>
					<xf:option value="super">{{ phrase('super_user_key') }}</xf:option>
					<xf:explain>{{ phrase('cannot_be_changed_after_creation_requires_new_api_key') }}</xf:explain>
				</xf:radiorow>
			</xf:if>

			<xf:radiorow label="{{ phrase('allowed_scopes') }}" name="allow_all_scopes"
				value="{$apiKey.allow_all_scopes}">
				<xf:option value="0" label="{{ phrase('selected_scopes_only') }}:">
					<xf:checkbox>
						<xf:foreach loop="$scopes" value="$scope">
							<xf:option name="scopes[]"
								value="{$scope.api_scope_id}"
								checked="{$apiKey.scopes.{$scope.api_scope_id}}"
								label="{$scope.api_scope_id}"
								hint="{$scope.description}" />
						</xf:foreach>
					</xf:checkbox>
				</xf:option>
				<xf:option value="1" label="{{ phrase('all_scopes') }}"/>
				<xf:explain>{{ phrase('api_scopes_explain') }}</xf:explain>
			</xf:radiorow>

			<hr class="formRowSep" />

			<xf:checkboxrow>
				<xf:option name="active" selected="$apiKey.active"
					label="{{ phrase('api_key_is_active') }}"
					hint="{{ phrase('use_this_to_disable_api_key') }}"/>
			</xf:checkboxrow>
		</div>
		<xf:submitrow icon="save" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="api_key_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('api_keys') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('api-keys/add') }}" icon="add">{{ phrase('add_api_key') }}</xf:button>
</xf:pageaction>

<xf:if is="$newKey">
	<div class="blockMessage blockMessage--important blockMessage--iconic">
		{{ phrase('api_key_x_created_or_updated_key_use_follows', {'title': $newKey.title}) }}
		<div style="margin: 1em 0; text-align: center"><xf:macro id="api_key_macros::copy_key" arg-apiKey="{$newKey}" /></div>
		<xf:macro id="api_key_macros::key_usage" arg-apiKey="{$newKey}" />
	</div>
</xf:if>

<xf:if is="$apiKeys is not empty">
	<xf:form action="{{ link('api-keys/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="apiKeys" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$apiKeys" value="$apiKey">
						<xf:datarow
							label="{$apiKey.title}"
							href="{{ link('api-keys/edit', $apiKey) }}"
							delete="{{ link('api-keys/delete', $apiKey) }}">
							<xf:explain>
								<ul class="listInline listInline--bullet">
									<li>{$apiKey.api_key_snippet}</li>
									<li>
										<xf:macro id="api_key_macros::key_type" arg-apiKey="{$apiKey}" />
									</li>
									<li>
										{{ phrase('created') }}:
										<xf:date time="{$apiKey.creation_date}"/>
									</li>
									<xf:if is="$apiKey.last_use_date">
										<li>
											{{ phrase('last_used') }}:
											<xf:date time="{$apiKey.last_use_date}"/>
										</li>
									</xf:if>
								</ul>
							</xf:explain>
							<xf:toggle name="active[{$apiKey.api_key_id}]" selected="$apiKey.active"
								class="dataList-cell--separated" submit="true"
								tooltip="{{ phrase('enable_disable_x', {'title': $apiKey.title}) }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="api_key_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="key_type" arg-apiKey="!">
	<xf:if is="$apiKey.key_type == 'super'">
		{{ phrase('super_user_key') }}
	<xf:elseif is="$apiKey.key_type == 'user'"/>
		{{ phrase('user_key') }}:
		<xf:username user="$apiKey.User" href="" defaultname="{{ phrase('deleted_member') }}"/>
	<xf:else/>
		{{ phrase('guest_key') }}
	</xf:if>
</xf:macro>

<xf:macro id="key_type_row" arg-apiKey="!">
	<xf:formrow label="{{ phrase('key_type') }}"
		explain="{{ phrase('cannot_be_changed_after_creation_requires_new_api_key') }}">
		<xf:macro id="key_type" arg-apiKey="{$apiKey}" />
	</xf:formrow>
</xf:macro>

<xf:macro id="copy_key_row" arg-apiKey="!">
	<xf:formrow label="{{ phrase('api_key') }}" rowtype="button">
		<xf:macro id="copy_key" arg-apiKey="{$apiKey}" />

		<div class="formRow-explain">
			<xf:macro id="key_usage" arg-apiKey="{$apiKey}" />
		</div>
	</xf:formrow>
</xf:macro>

<xf:macro id="copy_key" arg-apiKey="!">
	<code class="js-copyTarget">{$apiKey.api_key}</code>
	<xf:button icon="copy"
		data-xf-init="copy-to-clipboard"
		data-copy-target=".js-copyTarget"
		data-success="{{ phrase('api_key_copied_to_clipboard') }}"
		class="button--link is-hidden" />
</xf:macro>

<xf:macro id="key_usage" arg-apiKey="!">
	{{ phrase('key_provided_to_api_via_header') }}

	<xf:if is="$apiKey.key_type == 'super'">
		{{ phrase('as_super_user_key_include_user_header') }}
	</xf:if>
</xf:macro>]]></template>
  <template type="admin" title="api_key_regenerate" version_id="2010132" version_string="2.1.1 Beta 2"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('api-keys/regenerate', $apiKey) }}" class="block" ajax="true">

	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_regenerate_following_api_key') }}:
				<strong><a href="{{ link('api-keys/edit', $apiKey) }}">{$apiKey.title}</a></strong>
				<span>{{ phrase('applications_using_old_key_not_function_until_update') }}</span>
			</xf:inforow>
		</div>

		<xf:submitrow rowtype="simple" submit="{{ phrase('regenerate_key') }}"/>
	</div>

</xf:form>]]></template>
  <template type="admin" title="api_key_view" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('api_key_details') }}: {$apiKey.title}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:macro id="api_key_macros::copy_key_row" arg-apiKey="{$apiKey}" />
			<xf:macro id="api_key_macros::key_type_row" arg-apiKey="{$apiKey}" />
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="api_scope_edit" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:if is="$scope.isInsert()">
	<xf:title>{{ phrase('add_api_scope') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_api_scope') }}: {$scope.api_scope_id}</xf:title>
</xf:if>

<xf:pageaction if="$scope.isUpdate()">
	<xf:button href="{{ link('api-scopes/delete', $scope) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('api-scopes/save', $scope) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">

			<xf:textboxrow name="api_scope_id" value="{$scope}"
				label="{{ phrase('scope_id') }}"
				dir="ltr" />

			<xf:textboxrow name="description" value="{$scope}"
				label="{{ phrase('description') }}" />

			<xf:checkboxrow>
				<xf:option name="usable_with_oauth_clients" selected="$scope.usable_with_oauth_clients"
					label="{{ phrase('allow_this_scope_to_be_used_with_oauth2_clients') }}" />
			</xf:checkboxrow>

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$scope.addon_id}" />
		</div>

		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="api_scope_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('api_scopes') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('api-scopes/add') }}" icon="add">{{ phrase('add_api_scope') }}</xf:button>
</xf:pageaction>

<xf:form action="" class="block">
	<div class="block-outer">
		<xf:macro id="filter_macros::quick_filter" arg-key="api-scopes" arg-class="block-outer-opposite" />
	</div>
	<div class="block-container">
		<div class="block-body">
			<xf:datalist>
				<xf:foreach loop="$scopes" value="$scope">
					<xf:datarow href="{{ link('api-scopes/edit', $scope) }}"
						label="{$scope.api_scope_id}"
						hint="{$scope.description}"
						hash="{$scope.api_scope_id_url}"
						delete="{{ link('api-scopes/delete', $scope) }}" />
				</xf:foreach>
			</xf:datalist>
		</div>
		<div class="block-footer">
			<span class="block-footer-counter">{{ display_totals($scopes) }}</span>
		</div>
	</div>
</xf:form>]]></template>
  <template type="admin" title="app.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[@_adminPage-maxWidth: 1100px; // this does not include the navigation sidebar

.m-pageWidth()
{
	width: 100%;
	max-width: @_adminPage-maxWidth;
	margin: 0 auto;
}

.m-pageInset(@defaultVPadding: @xf-paddingLarge, @defaultHPadding: @xf-pageEdgeSpacer)
{
	padding: @defaultVPadding @defaultHPadding;

	// iPhone X/Xr/Xs support
	@supports(padding: max(0px))
	{
		&
		{
			padding-left: ~"max(@{defaultHPadding}, env(safe-area-inset-left))";
			padding-right: ~"max(@{defaultHPadding}, env(safe-area-inset-right))";
		}
	}
}

.m-thinScrollbar(@width; @background: rgba(0, 0, 0, 0.25); @foreground: rgba(255, 255, 255, 0.4))
{
	.has-no-hiddenscroll &
	{
		scrollbar-gutter: stable;
		scrollbar-width: thin;

		&::-webkit-scrollbar
		{
			width: @width;
			background-color: @background;
		}

		&::-webkit-scrollbar-thumb
		{
			border: calc(@width / 4) solid transparent;
			border-radius: calc(@width / 2);
			background-color: @foreground;
			background-clip: content-box;
		}

		&::-webkit-scrollbar-thumb:hover
		{
			background-color: darken(@foreground, 15%);
		}

		&::-webkit-scrollbar-thumb:active
		{
			background-color: darken(@foreground, 30%);
		}
	}
}

html
{
	.xf-pageBackground();
}

// ##################################### HEADER ###############################

@_adminHeader-height: 40px;
@_adminHeader-shadowHeight: 8px;
@_adminHeader-offset: 10px;
@_adminHeader-bg: @xf-paletteColor5;

.u-anchorTarget
{
	height: (@_adminHeader-height + @_adminHeader-shadowHeight + @_adminHeader-offset);
	margin-top: ((@_adminHeader-height + @_adminHeader-shadowHeight + @_adminHeader-offset) * -1);
}

.p-header
{
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: @_adminHeader-height;
	line-height: @_adminHeader-height;
	overflow: hidden;
	.m-clearFix();
	z-index: @zIndex-4;
	background: @_adminHeader-bg;
	color: contrast(@_adminHeader-bg);
	text-align: center;
	.m-dropShadow(0, 0, @_adminHeader-shadowHeight, 3px, 0.3);
}

.p-header-buttons
{
	&.p-header-buttons--main
	{
		float: left;
	}

	&.p-header-buttons--opposite
	{
		float: right;
	}
}

.p-header-button
{
	display: inline-block;
	color: inherit;
	cursor: pointer;
	text-decoration: none;
	text-align: center;
	min-width: @_adminHeader-height;
	overflow: hidden;
	.m-transition();

	.m-pageInset(0px);

	&:hover,
	&:active,
	&.is-active
	{
		background: xf-diminish(@_adminHeader-bg, 8%);
		color: inherit;
		text-decoration: none;
	}

	&.p-header-button--title
	{
		.m-overflowEllipsis();
		max-width: 250px;
	}

	&.p-header-button--nav
	{
		display: none;
	}

	.fa--xf svg
	{
		width: 1.25em;
	}
}

@media (max-width: @_adminNav-hideWidth)
{
	.p-header-button.p-header-button--nav
	{
		display: inline-block;
	}
}

@media (max-width: @xf-responsiveNarrow)
{
	.p-header-button.p-header-button--title
	{
		max-width: 150px;
	}
}

// ##################################### BODY AREA SETUP ##########################

.p-body-container
{
}

.p-body
{
	display: flex;
}

@media (max-width: @_adminNav-hideWidth)
{
	.p-body
	{
		display: block;
	}
}

// ###################################### SIDEBAR NAVIGATION #######################

@_adminNav-bg: @xf-paletteColor5;
@_adminNav-strongBg: xf-intensify(@xf-paletteColor5, 8%);
@_adminNav-color: @xf-paletteColor2;
@_adminNav-strongColor: @xf-paletteColor1;
@_adminNav-selectedBorder: @xf-borderColorFeature;
@_adminNav-width: 260px;
@_adminNav-scroll-width: 8px;
@_adminNav-hideWidth: @xf-responsiveWide;
@_adminNav-activelElBg: rgba(0, 0, 0, .1);

.p-nav
{
	min-height: 100vh;
	width: (@_adminNav-width + @_adminNav-scroll-width);
	background: @_adminNav-bg;
	color: @_adminNav-strongColor;
	vertical-align: top;
	flex-shrink: 0;
}

.p-nav-tester
{
	display: none;
	font-family: 'default';
}

.p-nav-inner
{
	position: sticky;
	top: @_adminHeader-height;

	height: calc(100vh - @_adminHeader-height);
	overflow: clip auto;
	.m-thinScrollbar(@_adminNav-scroll-width);
}

.p-nav-listRoot
{
	.m-listPlain();
	padding-bottom: 30px;
}

.p-nav-section
{
	.m-transition();

	.p-nav-listSection
	{
		.m-transitionFadeDown();
	}

	&.is-active
	{
		padding-bottom: 10px;
		.m-gradient(@_adminNav-strongBg, mix(@_adminNav-strongBg, @_adminNav-bg), @_adminNav-strongBg);
		box-shadow: inset 0 -10px 15px -10px rgba(0, 0, 0, .3), inset 0 10px 15px -10px rgba(0, 0, 0, .3);

		.p-nav:not(.offCanvasMenu) &:first-child
		{
			box-shadow: inset 0 -10px 15px -10px rgba(0, 0, 0, .3);
		}
	}
}

.p-nav-sectionHeader
{
	display: flex;
	color: @_adminNav-color;
	font-size: @xf-fontSizeLarge;
	.m-transition();
	.m-highResolution({
		font-weight: @xf-fontWeightLight;
	});

	&:hover
	{
		color: xf-diminish(@_adminNav-color, 3%);
		background: xf-intensify(@_adminNav-bg, 3%);
		text-decoration: none;
	}

	.p-nav-section.is-active &:hover
	{
		background: none;
	}

	a
	{
		color: inherit;

		&:hover
		{
			text-decoration: none;
		}
	}

	.p-nav-sectionLink
	{
		display: block;
		padding: 20px 10px;
		border-top: @xf-borderSize solid xf-intensify(@_adminNav-bg, 4%);
		flex-grow: 1;

		.far, .fal, .fas, .fab, .fad
		{
			color: @_adminNav-strongColor;
			font-size: @xf-fontSizeLarger;
			vertical-align: -2px;
		}
	}

	.p-nav-sectionToggle
	{
		display: inline-block;
		padding: 20px 10px;
		border-top: @xf-borderSize solid xf-intensify(@_adminNav-bg, 4%);
		text-decoration: none;
		flex-grow: 0;

		&:hover
		{
			text-decoration: none;
		}

		&:after
		{
			font-size: 80%;
			.m-faContent(@fa-var-solid-chevron-down); //, 1em
		}

		.p-nav-section.is-active &:after
		{
			.m-faContent(@fa-var-solid-chevron-up); //, 1em
		}
	}
}

.p-nav-listSection
{
	.m-listPlain();
}

.p-nav-subSection
{
	margin-top: 15px;
	border-top: @xf-borderSize solid transparent;
	overflow: hidden;
	.m-transition();

	&:first-child
	{
		margin-top: 0;
	}

	> span,
	> a
	{
		display: block;
		padding: 3px 10px;
		font-size: @xf-fontSizeSmaller;
		font-weight: @xf-fontWeightHeavy;
		color: @_adminNav-strongColor;
		position: relative;

		> .far, > .fal, > .fas, > .fab, > .fad
		{
			color: fade(@_adminNav-strongColor, 2.5%);
			font-size: 60px;

			position: absolute;
			top: 5px;
			right: .05em;
			pointer-events: none;

			.m-transition();
		}
	}

	+ .p-nav-el
	{
		margin-top: 15px;
	}

	&:hover
	{
		background: linear-gradient(180deg, fade(@_adminNav-strongColor, 7.5%), transparent 30%);
		border-top-color: fade(@_adminNav-strongColor, 10%);
		.m-transition();

		> span,
		> a
		{
			> .far, > .fal, > .fas, > .fab, > .fad
			{
				color: fade(@_adminNav-strongColor, 10%);

				top: 10px;
				right: .1em;

				.m-transition();
			}
		}
	}
}

.p-nav-subList
{
	.m-listPlain();
}

.p-nav-el
{
	> span,
	> a
	{
		display: block;
		padding: 6px 10px;
		color: @_adminNav-color;
		font-size: @xf-fontSizeSmaller;
		.m-transition();

		&:hover
		{
			background: @_adminNav-activelElBg;
			text-decoration: none;
		}
	}

	&.is-active > a
	{
		background: @_adminNav-activelElBg;
		border-right: 4px solid @_adminNav-selectedBorder;
	}
}

@media (max-width: @_adminNav-hideWidth)
{
	.p-nav
	{
		display: none;
		position: fixed;
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: @zIndex-7;
		padding: 0;
		background: none;
		height: 100vh;
		width: auto;
		overflow: auto;

		-webkit-tap-highlight-color: rgba(0, 0, 0, 0);

		.p-nav-sectionLink,
		.p-nav-sectionToggle
		{
			//padding: 10px;
		}
	}

	.p-nav-tester
	{
		// let's us know in JS when this breakpoint has triggered
		font-family: 'off-canvas';
	}

	.p-nav-listRoot
	{
		padding-bottom: 0;
	}
}

// ############################ OFF CANVAS SIDEBAR VARIANT ####################

.offCanvasMenu--adminNav
{
	.offCanvasMenu-content
	{
		background: @_adminNav-bg;
	}

	.offCanvasMenu-header
	{
		background: xf-intensify(@_adminNav-bg, 4%);
		border-bottom-color: xf-intensify(@_adminNav-bg, 8%);
		color: @_adminNav-color;
	}
}

// ###################################### MAIN COLUMN #########################

.p-main
{
	min-height: 100vh;
	vertical-align: top;
	padding-top: @_adminHeader-height;
	flex-grow: 1;
	min-width: 0;
}

.p-main-inner
{
	.m-pageWidth();
	.m-pageInset();
}

.p-breadcrumbs
{
	.m-listPlain();
	.m-clearFix();

	margin-bottom: 5px;
	line-height: 1.5;

	> li
	{
		float: left;
		margin-right: .5em;
		font-size: @xf-fontSizeSmall;

		a
		{
			display: inline-block;
			color: @xf-textColorMuted;
			vertical-align: bottom;
			max-width: 300px;
			.m-overflowEllipsis();
		}

		&:after,
		&:before
		{
			.m-faBase();
			font-size: 90%;
			color: @xf-textColorMuted;
		}

		&:after
		{
			.m-faContent(@fa-var-angle-right, false, ltr); // .5em
			.m-faContent(@fa-var-angle-left, false, rtl); // .5em
			margin-left: .5em;
		}

		&:last-child
		{
			margin-right: 0;

			a
			{
				font-weight: @xf-fontWeightHeavy;
			}
		}
	}
}

.p-main-header
{
	margin-bottom: (@xf-elementSpacer / 2);
}

.p-title
{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	max-width: 100%;
	margin-bottom: -5px;

	&.p-title--noH1
	{
		flex-direction: row-reverse;
	}
}

.p-title-value
{
	padding: 0;
	margin: 0 0 5px 0;
	font-size: @xf-fontSizeLargest;
	font-weight: @xf-fontWeightNormal;
	min-width: 0;
	margin-right: auto;
}

.p-title-pageAction
{
	margin-bottom: 5px;
}

.p-description
{
	margin: 5px 0 0;
	padding: 0;
	font-size: @xf-fontSizeSmall;
	color: @xf-textColorMuted;
}

.p-content
{
	margin: 0;

	> :first-child
	{
		margin-top: 0;
	}
	> :last-child
	{
		margin-bottom: 0;
	}
}

@media (max-width: @_adminNav-hideWidth)
{
	.p-main
	{
		display: block;
		height: auto;
		min-height: 100vh;
	}
}

@media (max-width: @xf-responsiveMedium)
{
	.p-breadcrumbs > li a
	{
		max-width: 200px;
	}
}

@media (max-width: @xf-responsiveNarrow)
{
	.p-breadcrumbs
	{
		> li
		{
			display: none;
			font-size: @xf-fontSizeSmallest;

			&:last-child
			{
				display: block;
			}

			a
			{
				max-width: 90vw;
			}

			&:after
			{
				display: none;
			}

			&:before
			{
				.m-faContent(@fa-var-chevron-left, false, ltr); // .72em
				.m-faContent(@fa-var-chevron-right, false, rtl); // .72em
				margin-right: .5em;
			}
		}
	}

	.p-title-value
	{
		font-size: @xf-fontSizeLarger;
	}
}

// ####################################### FOOTER AREA ########################

@_adminFooter-bg: darken(@_adminHeader-bg, 8%);
@_adminFooter-color: @xf-paletteColor2;
@_adminFooter-linkColor: @xf-paletteColor1;

.p-footer
{
	background: @_adminFooter-bg;
	border-top: @xf-borderSize solid xf-intensify(@_adminFooter-bg, 4%);
	color: @_adminFooter-color;
	font-size: @xf-fontSizeSmall;

	.m-pageInset();

	a
	{
		color: @_adminFooter-linkColor;
	}
}

.p-footer-row
{
	.m-clearFix();

	margin-bottom: (@xf-paddingLarge * -1);

	a
	{
		display: inline-block;
		padding: 2px 4px;
		border-radius: @xf-borderRadiusSmall;

		&:hover
		{
			text-decoration: none;
			background-color: fade(@_adminFooter-linkColor, 10%);
		}

		&.u-concealed
		{
			text-decoration: none !important;
		}
	}
}

.p-footer-row-main
{
	float: left;
	margin-bottom: @xf-paddingLarge;
	margin-left: -2px;
}

.p-footer-row-opposite
{
	float: right;
	margin-bottom: @xf-paddingLarge;
	margin-right: -2px;
}

.p-footer-copyright
{
	margin-top: @xf-paddingLarge;
	text-align: center;
	font-size: @xf-fontSizeSmallest;
}

.p-footer-debug
{
	margin-top: @xf-paddingLarge;
	text-align: right;
	font-size: @xf-fontSizeSmallest;

	.pairs > dt { color: inherit; }
}

.p-footer-version {}

@media (max-width: @xf-responsiveMedium)
{
	.p-footer-row
	{
		margin-bottom: @xf-paddingLarge;
	}

	.p-footer-row-main,
	.p-footer-row-opposite
	{
		float: none;
		display: inline;
	}

	.p-footer-copyright
	{
		text-align: left;
		padding: 0 4px; // aligns with other links
	}
}

// ##################################### QUICK SEARCH RESULTS ################

.p-quickSearchResultsWrapper
{
	&.is-active
	{
		border-top: @xf-borderSize solid @xf-borderColor;
	}
}

.p-quickSearchResults
{
	.m-transitionFadeDown();
}

.p-quickSearchResultSet
{
	margin: 0;
	padding: 0;

	display: table;
	width: 100%;
	table-layout: fixed;

	> dt
	{
		display: table-cell;
		width: 140px;
		padding: @xf-paddingMedium;
		margin: 0;
		background: @xf-contentAltBg;
		border-right: @xf-borderSize solid @xf-borderColor;
		text-align: right;
		font-size: @xf-fontSizeSmall;
	}

	> dd
	{
		display: table-cell;
		padding: 0;
		margin: 0;

	}

	@media (max-width: 400px)
	{
		display: block;

		> dt
		{
			display: block;
			width: auto;
			text-align: left;
			font-weight: @xf-fontWeightHeavy;
			border-right: none;
			border-bottom: @xf-borderSize solid @xf-borderColorFaint;
		}

		> dd
		{
			display: block;
			border-bottom: @xf-borderSize solid @xf-borderColorHeavy;
		}

		&:last-child > dd
		{
			border-bottom: none;
		}
	}
}

.p-quickSearchResultList
{
	.m-listPlain();

	a
	{
		display: block;
		padding: @xf-paddingMedium;
		font-size: @xf-fontSizeSmall;

		&:hover,
		&.is-active
		{
			text-decoration: none;
			background: @xf-contentHighlightBg;
		}

		.p-quickSearchResult-extra
		{
			font-size: @xf-fontSizeSmaller;
			color: fade(@xf-textColorMuted, 75%);
		}

		.p-quickSearchResult-meta
		{
			font-size: @xf-fontSizeSmallest;
			color: @xf-textColorMuted;
			//text-align: right;
			//display: block;
		}
	}
}

// ##################################### ADMIN LOGIN #####################

@_adminLogin-bg: @xf-paletteColor5;
@_adminLogin-inputColor: @xf-paletteColor1;
@_adminLogin-color: @xf-paletteColor2;

.p-adminLogin
{
	min-height: 100%;
	background: @_adminLogin-bg;
	color: @_adminLogin-color;

	.m-textColoredLinks();

	.adminLogin-wrapper
	{
		display: flex;
		padding: 2vh 2vw;
		height: 100vh;
		min-height: 300px;
		max-width: 100%;
		align-items: center;
		justify-content: center;
	}

	.adminLogin-content
	{
		width: 100%;
		max-width: 400px;

		&.adminLogin-content--wide
		{
			max-width: 800px;
		}
	}

	.adminLogin-contentForm
	{
		background: xf-intensify(@_adminLogin-bg, 3%);
		border: 1px solid xf-intensify(@_adminLogin-bg, 6%);
		padding: 20px 40px;
		border-radius: 10px;
		color: @_adminLogin-color;

		.m-dropShadow(0, 5px, 20px);
	}

	.adminLogin-row
	{
		margin: 20px 0;

		> dt
		{
			margin-bottom: 5px;
			display: none;
		}
		> dd
		{
			margin: 0;
			position: relative;

			input
			{
				border: none;
				padding: 10px;
				padding-left: 30px;
				background: xf-intensify(@_adminLogin-bg, 6%);
				font-weight: @xf-fontWeightHeavy;
				font-size: 16px;
				color: @_adminLogin-inputColor;
				.m-placeholder({color: fade(@_adminLogin-color, 60%); });

				& + .far,
				& + .fal,
				& + .fas,
				& + .fab,
				& + .fad
				{
					position: absolute;
					top: 0;
					left: 0;
					bottom: 0;
					width: 30px;
					display: flex;
					align-items: center;
					justify-content: center;

					color: @_adminLogin-color;
					font-size: 16px;
					line-height: @xf-lineHeightDefault;
					text-shadow: 1px 1px 2px rgba(0, 0, 0, .5);
				}

				&:-webkit-autofill
				{
					+ .far,
					+ .fal,
					+ .fas,
					+ .fab,
					+ .fad
					{
						color: black;
					}

					~ .inputGroup-text
					{
						color: black;
						background: rgb(250, 255, 189); // this is the color used by Chrome autofill
						border-color: transparent;
					}
				}
			}

			.inputGroup-text.inputGroup-text // ugly specificity hack ;)
			{
				border: none;
				border-left: @xf-borderSize solid xf-intensify(@_adminLogin-bg, 9%);
				background: xf-intensify(@_adminLogin-bg, 6%);
				color: fade(@_adminLogin-color, 80%);
			}
		}
	}

	.adminLogin-row--submit
	{
		//text-align: right;

		.button
		{
			width: 100%;
		}
	}

	.adminLogin-boardTitle
	{
		text-align: center;
		font-size: @xf-fontSizeSmaller;
		margin-top: 5px;
		color: fade(@_adminLogin-color, 50%);
	}

	.adminLogin-debug
	{
		text-align: center;
		margin: 2em auto 0;
		font-size: @xf-fontSizeSmallest;
		.m-hiddenLinks();

		.pairs > dt { color: inherit; }
	}
}

// ----------------

.p-runJob
{
	min-height: 100%;
}

.p-runJobContent
{
	width: 600px;
	max-width: 100%;
	margin: 10px auto 10px;
	margin-top: 10vh;
	padding: 0 10px;
}

.p-runJobTitle
{
	margin: 0;
	padding: 0;
	font-size: @xf-fontSizeLargest;
	font-weight: @xf-fontWeightNormal;
}

.p-runJobDebug
{
	text-align: center;
	margin: 10px auto 0;
	font-size: @xf-fontSizeSmallest;
}

// ################################## MISC STYLES ########################

.iconicLinks
{
	margin-bottom: @xf-elementSpacer;
}

.iconicLinks-list
{
	.m-listPlain();
	margin-bottom: (@xf-paddingMedium * -1);
	margin-right: (@xf-paddingMedium * -1);
	font-size: 0;

	display: flex;
	flex-flow: row wrap;

	> li
	{
		flex: auto;

		width: 160px;
		max-width: 320px;

		position: relative;
		overflow: hidden;

		margin-right: @xf-paddingMedium;
		margin-bottom: @xf-paddingMedium;
		vertical-align: top;
		text-align: center;
		font-size: @xf-fontSizeNormal;
		.xf-contentBase();
		.xf-blockBorder();
		border-radius: @xf-blockBorderRadius;

		&.iconicLinks-placeholder
		{
			margin-top: 0;
			margin-bottom: 0;
			height: 0;
			border: none;
		}

		> a
		{
			display: block;
			padding: @xf-paddingMedium;
			background: fade(@xf-contentHighlightBg, 0%);
			.m-transition();

			&:hover
			{
				background: @xf-contentHighlightBg;
				text-decoration: none;

				.iconicLinkList-icon
				{
					opacity: 1;
				}
			}
		}
	}
}

.iconicLinks-icon
{
	font-size: 3em;
	opacity: .6;
	.m-transition(opacity);
}

.iconicLinks-title
{
	.m-overflowEllipsis();
}

.graphList
{
	.m-listPlain();
	display: flex;
	flex-wrap: wrap;
	justify-content: center;

	> li
	{
		width: 50%;
	}

	@media (max-width: @xf-responsiveMedium)
	{
		display: block;

		> li
		{
			width: 100%;
		}
	}
}

.nodeIcon
{
	.m-faBase();
	color: @xf-textColorDimmed;

	&--Forum:before
	{
		.m-faContent(@fa-var-comments);
	}

	&--SearchForum::before
	{
		.m-faContent(@fa-var-search);
	}

	&--Category:before
	{
		.m-faContent(@fa-var-bars);
	}

	&--LinkForum:before
	{
		.m-faContent(@fa-var-link);
	}

	&--Page:before
	{
		.m-faContent(@fa-var-file-alt);
	}
}

.username--banned
{
	text-decoration: line-through;
}

.acp--simple-mode .acp--advanced,
.acp--advanced-mode .acp--simple
{
	display: none;
}

.formRow--avatar
{
	.avatar
	{
		.m-transition(border-radius);
		margin-bottom: @xf-paddingMedium;

		&:not(:hover)
		{
			border-radius: 10px;
		}
	}
}

.formRow--memberProfileBanner
{
	.memberProfileBanner
	{
		border-radius: 10px;
	}
}

// printable version

@media print
{
	.p-header,
	.p-nav,
	.p-footer,
	.p-breadcrumbs,
	.p-title-pageAction,
	.pageNavWrapper
	{
		display: none;
	}

	.p-main-inner
	{
		padding: 0;
	}
}

// sticky labels for formRows
.formRow.formRow--stickyLabel .formRow-labelWrapper
{
	position: sticky;
	top: @_adminHeader-height + @xf-formRowPaddingV;
}]]></template>
  <template type="admin" title="attachment_delete" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('attachments/delete', null, $linkFilters) }}" class="block" ajax="true">

	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<xf:if is="$attachment">
					{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
					<strong><a href="{{ link('attachments/view', $attachment) }}">{$attachment.filename}</a></strong>
				<xf:else />
					{{ phrase('please_confirm_that_you_want_to_delete_x_attachments', {'number': count($attachmentIds)}) }}
				</xf:if>
			</xf:inforow>
		</div>

		<xf:submitrow rowtype="simple" icon="delete" />
	</div>

	<xf:foreach loop="$attachmentIds" value="$attachmentId">
		<xf:hiddenval name="attachment_ids[]">{$attachmentId}</xf:hiddenval>
	</xf:foreach>

</xf:form>]]></template>
  <template type="admin" title="attachment_filter" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:form action="{{ link('attachments') }}">
	<div class="menu-row">
		{{ phrase('content_type:') }}
		<div class="u-inputSpacer">
			<xf:select name="content_type" value="{$conditions.content_type}">
				<xf:option>{{ phrase('(all_content_types)') }}</xf:option>
				<xf:foreach loop="$handlers" key="$contentType" value="$handler">
					<xf:option value="{$contentType}">{$handler.getContentTypePhrase()}</xf:option>
				</xf:foreach>
			</xf:select>
		</div>
	</div>

	<div class="menu-row menu-row--separated">
		{{ phrase('user_name:') }}
		<div class="u-inputSpacer">
			<xf:textbox name="username" ac="single" value="{$conditions.username}" dir="ltr" />
		</div>
	</div>

	<div class="menu-row">
		{{ phrase('attached_between:') }}
		<div class="u-inputSpacer inputGroup inputGroup--auto">
			<xf:dateinput name="start" value="{{ $conditions.start ? date($conditions.start, 'Y-m-d') : '' }}" />
			<span class="inputGroup-text">-</span>
			<xf:dateinput name="end" value="{{ $conditions.end ? date($conditions.end, 'Y-m-d') : '' }}" />
		</div>
	</div>
	<div class="menu-row menu-row--separated">
		{{ phrase('date_presets:') }}
		<div class="u-inputSpacer">
			<xf:select name="date_preset" class="js-presetChange filterBlock-input">
				<xf:option label="" value="-1" />
				<xf:options source="{$datePresets}" />
				<xf:option value="1995-01-01">{{ phrase('all_time') }}</xf:option>
			</xf:select>
		</div>
	</div>

	<div class="menu-row">
		{{ phrase('sort_by:') }}
		<div class="u-inputSpacer inputGroup">
			<xf:select name="order" value="{{ $conditions.order ?: 'attach_date' }}">
				<xf:option value="attach_date">{{ phrase('attach_date') }}</xf:option>
				<xf:option value="file_size">{{ phrase('file_size') }}</xf:option>
			</xf:select>
			<span class="inputGroup-splitter"></span>
			<xf:select name="direction" value="{{ $conditions.direction ?: 'desc' }}">
				<xf:option value="desc">{{ phrase('descending') }}</xf:option>
				<xf:option value="asc">{{ phrase('ascending') }}</xf:option>
			</xf:select>
		</div>
	</div>

	<div class="menu-footer">
		<span class="menu-footer-controls">
			<xf:button type="submit" icon="search" class="button--primary">{{ phrase('filter') }}</xf:button>
		</span>
	</div>
</xf:form>

<xf:js>
	const ctrl = document.querySelector('.js-presetChange')
	XF.on(ctrl, 'change', e =>
	{
		const value = ctrl.value
		const form = ctrl.closest('form')

		if (value == -1)
		{
			return
		}

		form.querySelector(ctrl.dataset.start || 'input[name=start]').value = value
		form.querySelector(ctrl.dataset.end || 'input[name=end]').value = ''
	})
</xf:js>]]></template>
  <template type="admin" title="attachment_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('attachment_browser') }}</xf:title>

<xf:css>
	.attachment-tooltip-image
	{
		display: block;
	}
</xf:css>

<xf:form action="{{ link('attachments') }}" class="block" ajax="true"
	data-xf-init="select-plus"
	data-sp-checkbox="input[name='attachment_ids[]']"
	data-sp-container=".dataList-row">

	<div class="block-container">
		<xf:macro name="filter_macros::filter_bar"
			arg-route="attachments"
			arg-content="{{ null }}"
			arg-params="{$linkParams}"
			arg-displayValues="{$filterDisplay}"
			arg-phrases="{{ {
				'key:content_type':  phrase('content_type:'),
				'key:username': phrase('user_name:'),
				'key:start': phrase('start_date:'),
				'key:end': phrase('end_date:'),
				'key:order': phrase('sort_by:'),
				'val:file_size_desc': phrase('largest'),
				'val:file_size_asc': phrase('smallest'),
				'val:attach_date_desc': phrase('most_recent'),
				'val:attach_date_asc': phrase('least_recent')
			} }}"
			arg-menu="attachments/filter"
			arg-menuTitle="{{ phrase('filter') }}" />

		<xf:if is="$attachments is not empty">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$attachments" value="$attachment">
						<xf:datarow>
							<xf:toggle name="attachment_ids[]" value="{$attachment.attachment_id}" />

							<xf:if is="$attachment.has_thumbnail">
								<xf:cell class="dataList-cell--attachment"
									href="{{ link('attachments/view', $attachment) }}"
									style="background-image: url({$attachment.thumbnail_url})"
									alt="{$attachment.filename}"
									data-xf-init="element-tooltip" data-element="| .tooltip-element">
									<span class="tooltip-element"><img src="{$attachment.thumbnail_url}" class="attachment-tooltip-image" /></span>
								</xf:cell>
							<xf:else />
								<xf:cell class="dataList-cell--attachment"
									href="{{ link('attachments/view', $attachment) }}">
									<xf:fa icon="fa-file fa-2x" />
								</xf:cell>
							</xf:if>

							<xf:cell href="{{ link('attachments/view', $attachment) }}" class="dataList-cell--main">
								<div class="dataList-mainRow">{$attachment.filename}</div>
								<div class="dataList-subRow">
									<ul class="listInline listInline--bullet">
										<li><xf:date time="{$attachment.Data.upload_date}" /></li>
										<li>{{ $attachment.Data.User.username ?: phrase('unknown_user') }}</li>
										<li>{$attachment.file_size|file_size}</li>
									</ul>
								</div>
							</xf:cell>

							<xf:cell
								href="{{ (!$attachment.unassociated && $attachment.getContainerLink()) ? $attachment.getContainerLink() : link('attachments/view', $attachment) }}"
								target="{{ !$attachment.unassociated ? '_blank' : '' }}"
								class="dataList-cell--action">
								<xf:if is="!$attachment.unassociated">
									{{ phrase('view_host_content') }}
									<span class="dataList-secondRow">{$attachment.getContentTypePhrase()|parens}</span>
								<xf:else />
									{{ phrase('unassociated') }}
								</xf:if>
							</xf:cell>

							<xf:delete href="{{ link('attachments/delete', $attachment, $linkParams) }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer block-footer--split">
				<span class="block-footer-counter">{{ display_totals($attachments, $total) }}</span>
				<span class="block-footer-select"><xf:checkbox standalone="true"><xf:option check-all="< .block-container" label="{{ phrase('select_all') }}" /></xf:checkbox></span>
				<span class="block-footer-controls">
					<xf:button type="submit" name="delete_attachments" icon="delete" />
				</span>
			</div>
		<xf:else />
			<div class="block-body block-row">{{ phrase('no_results_found') }}</div>
		</xf:if>
	</div>
	<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
		link="attachments" params="{$linkParams}"
		wrapperclass="block-outer block-outer--after" />

</xf:form>]]></template>
  <template type="admin" title="ban_email_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('banned_emails') }}</xf:title>

<xf:pageaction>
	<div class="buttonGroup">
		<xf:button href="{{ link('banning/emails/import') }}" icon="import" overlay="true" />
		<xf:if is="$emailBans is not empty">
			<xf:button href="{{ link('banning/emails/export', null, {'t': csrf_token()}) }}" icon="export" />
		</xf:if>
	</div>
</xf:pageaction>

<xf:if is="$emailBans is not empty">
	<xf:form action="{{ link('banning/emails/delete') }}" ajax="true" class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<colgroup>
						<col style="width: 1%">
						<col style="width: 15%">
						<col style="width: 15%">
						<col style="width: 15%">
						<col style="width: 15%">
						<col>
					</colgroup>
					<xf:datarow rowtype="header">
						<xf:cell><xf:checkbox standalone="true"><xf:option check-all="< .block-container" data-xf-init="tooltip" title="{{ phrase('select_all') }}" /></xf:checkbox></xf:cell>
						<xf:cell href="{{ link('banning/emails', '', {'order': 'banned_email', 'direction': ($direction == 'desc' || !$direction)  ? 'asc' : ''}) }}">
							{{ phrase('email') }}
						</xf:cell>
						<xf:cell href="{{ link('banning/emails', '', {'order': '', 'direction': ($direction == 'desc' || !$direction)  ? 'asc' : ''}) }}">
							{{ phrase('date') }}
						</xf:cell>
						<xf:cell href="{{ link('banning/emails', '', {'order': 'last_triggered_date', 'direction': ($direction == 'desc' || !$direction)  ? 'asc' : ''}) }}">
							{{ phrase('last_triggered') }}
						</xf:cell>
						<xf:cell>{{ phrase('by') }}</xf:cell>
						<xf:cell>{{ phrase('reason') }}</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$emailBans" value="$emailBan">
						<xf:datarow>
							<xf:toggle name="delete[]" value="{$emailBan.banned_email}" />
							<xf:cell>{$emailBan.banned_email}</xf:cell>
							<xf:cell>{{ $emailBan.create_date ? date($emailBan.create_date) : phrase('n_a') }}</xf:cell>
							<xf:cell>
								{{ $emailBan.last_triggered_date ? date_dynamic($emailBan.last_triggered_date) : phrase('never') }}
							</xf:cell>
							<xf:cell>{{ $emailBan.User ? $emailBan.User.username : phrase('n_a') }}</xf:cell>
							<xf:cell>{{ $emailBan.reason ? $emailBan.reason : phrase('n_a') }}</xf:cell>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer block-footer--split">
				<span class="block-footer-counter">{{ display_totals($emailBans, $total) }}</span>
				<span class="block-footer-select"><xf:checkbox standalone="true"><xf:option check-all="< .block-container" label="{{ phrase('select_all') }}" /></xf:checkbox></span>
				<span class="block-footer-controls"><xf:button type="submit" icon="delete" /></span>
			</div>
		</div>
		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}" link="banning/emails"
			params="{{ {
				'order': ($order != 'create_date' ? $order : ''),
				'direction': ($direction != 'desc' ? $direction : '')
			} }}"
			wrapperclass="block-outer block-outer--after" />
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_email_addresses_have_been_banned') }}</div>
</xf:if>

<xf:form action="{{ link('banning/emails/add') }}" ajax="true" class="block">
	<div class="block-container">
		<h3 class="block-header">{{ phrase('add_email_ban') }}</h3>
		<div class="block-body">
			<xf:textboxrow name="email" value="{$newEmail}" column="banned_email"
				label="{{ phrase('email_to_ban') }}"
				explain="{{ phrase('you_may_use_star_to_represent_wildcards_automatically_added') }}" />
			<xf:textboxrow name="reason" value="{$newEmail}"
				label="{{ phrase('reason') }}"
				hint="{{ phrase('optional') }}" />
		</div>
		<xf:submitrow icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="ban_ip" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('banning/ips/add', null, {'ip': $ip.ip}) }}" ajax="true" data-redirect="off" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_ban_following_ip:') }}
				<strong><a href="{{ link('users/ip-users', null, {'ip': $ip.ip}) }}" dir="ltr">{$ip.ip}</a></strong>
			</xf:inforow>

			<xf:textboxrow name="reason" value="{$ip}"
				label="{{ phrase('reason') }}"
				hint="{{ phrase('optional') }}" />
		</div>
		<xf:submitrow icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="ban_ip_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('banned_ip_addresses') }}</xf:title>

<xf:pageaction>
	<div class="buttonGroup">
		<xf:button href="{{ link('banning/ips/import') }}" icon="import" overlay="true" />
		<xf:if is="$ipBans is not empty">
			<xf:button href="{{ link('banning/ips/export', null, {'t': csrf_token()}) }}" icon="export" />
		</xf:if>
	</div>
</xf:pageaction>

<xf:if is="$ipBans is not empty">
	<xf:form action="{{ link('banning/ips/delete') }}" ajax="true" class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<colgroup>
						<col style="width: 1%">
						<col style="width: 15%">
						<col style="width: 15%">
						<col style="width: 15%">
						<col style="width: 15%">
						<col>
					</colgroup>
					<xf:datarow rowtype="header">
						<xf:cell><xf:checkbox standalone="true"><xf:option check-all="< .block-container" data-xf-init="tooltip" title="{{ phrase('select_all') }}" /></xf:checkbox></xf:cell>
						<xf:cell href="{{ link('banning/ips', '', {'order': 'start_range', 'direction': ($direction == 'desc' || !$direction)  ? 'asc' : ''}) }}">
							{{ phrase('ip') }}
						</xf:cell>
						<xf:cell href="{{ link('banning/ips', '', {'order': '', 'direction': ($direction == 'desc' || !$direction)  ? 'asc' : ''}) }}">
							{{ phrase('date') }}
						</xf:cell>
						<xf:cell href="{{ link('banning/ips', '', {'order': 'last_triggered_date', 'direction': ($direction == 'desc' || !$direction)  ? 'asc' : ''}) }}">
							{{ phrase('last_triggered') }}
						</xf:cell>
						<xf:cell>{{ phrase('by') }}</xf:cell>
						<xf:cell>{{ phrase('reason') }}</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$ipBans" value="$ipBan">
						<xf:datarow>
							<xf:toggle name="delete[]" value="{$ipBan.ip}" />
							<xf:cell class="u-ltr">{$ipBan.ip}</xf:cell>
							<xf:cell>{{ $ipBan.create_date ? date($ipBan.create_date) : phrase('n_a') }}</xf:cell>
							<xf:cell>
								{{ $ipBan.last_triggered_date ? date_dynamic($ipBan.last_triggered_date) : phrase('never') }}
							</xf:cell>
							<xf:cell>{{ $ipBan.User ? $ipBan.User.username : phrase('n_a') }}</xf:cell>
							<xf:cell>{{ $ipBan.reason ? $ipBan.reason : phrase('n_a') }}</xf:cell>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer block-footer--split">
				<span class="block-footer-counter">{{ display_totals($ipBans, $total) }}</span>
				<span class="block-footer-select"><xf:checkbox standalone="true"><xf:option check-all="< .block-container" label="{{ phrase('select_all') }}" /></xf:checkbox></span>
				<span class="block-footer-controls"><xf:button type="submit" icon="delete" /></span>
			</div>
		</div>
			<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}" link="banning/ips"
				params="{{ {
					'order': ($order != 'create_date' ? $order : ''),
					'direction': ($direction != 'desc' ? $direction : '')
				} }}"
				wrapperclass="block-outer block-outer--after" />
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_ips_have_been_banned') }}</div>
</xf:if>

<xf:form action="{{ link('banning/ips/add') }}" ajax="true" class="block">
	<div class="block-container">
		<h3 class="block-header">{{ phrase('add_ip_ban') }}</h3>
		<div class="block-body">
			<xf:textboxrow name="ip" value="{$ip}"
				label="{{ phrase('ip_to_ban') }}"
				explain="{{ phrase('you_may_enter_partial_ip_v4_v6') }}"
				dir="ltr" />
			<xf:textboxrow name="reason" value="{$newIp}"
				label="{{ phrase('reason') }}"
				hint="{{ phrase('optional') }}" />
		</div>
		<xf:submitrow icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="ban_user_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$userBan.isInsert()">
	<xf:title>{{ phrase('ban_user') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_banned_user:') }} {$userBan.User.username}</xf:title>
</xf:if>

<xf:pageaction if="$userBan.isUpdate()">
	<xf:button href="{{ link('banning/users/lift', $userBan) }}" overlay="true">{{ phrase('lift_ban') }}</xf:button>
</xf:pageaction>

<xf:form action="{{ link('banning/users/save', $userBan) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="!$userBan.user_id">
				<xf:textboxrow name="username" ac="single" value="{$addName}"
					label="{{ phrase('user_name') }}" />
			<xf:else />
				<xf:formrow label="{{ phrase('user_name') }}">{$userBan.User.username}</xf:formrow>

				<xf:formrow label="{{ phrase('banned_by') }}">{$userBan.BanUser.username}</xf:formrow>

				<xf:formrow label="{{ phrase('ban_started') }}">{{ date($userBan.ban_date) }}</xf:formrow>

				<xf:formrow label="{{ phrase('ban_ends') }}">
					<xf:if is="$userBan.end_date">
						{{ date($userBan.end_date) }}
					<xf:else />
						{{ phrase('never') }}
					</xf:if>
				</xf:formrow>
			</xf:if>

			<xf:radiorow name="ban_length" value="{{ !$userBan.end_date ? 'permanent' : 'temporary' }}"
				label="{{ phrase('ban_length') }}">

				<xf:option label="{{ phrase('permanent') }}" value="permanent" />
				<xf:option label="{{ phrase('until:') }}" value="temporary">
					<xf:dateinput name="end_date" value="{{ $userBan.end_date ? date($userBan.end_date, 'Y-m-d') : '' }}" />
				</xf:option>
			</xf:radiorow>

			<xf:textboxrow name="user_reason" value="{$userBan}"
				label="{{ phrase('reason_for_banning') }}"
				explain="{{ phrase('this_will_be_shown_to_user_if_provided') }}" />
		</div>

		<xf:submitrow icon="save" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="ban_user_lift" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('banning/users/lift', $userBan) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_lift_ban_on_following_user:') }}
				<strong><a href="{{ link('banning/users', $userBan) }}">{$userBan.User.username}</a></strong>
			</xf:inforow>
			<xf:formrow label="{{ phrase('banned_by') }}">{$userBan.BanUser.username}</xf:formrow>
			<xf:formrow label="{{ phrase('ban_started') }}">{{ date($userBan.ban_date) }}</xf:formrow>
			<xf:formrow label="{{ phrase('ban_ends') }}">
				<xf:if is="$userBan.end_date">
					{{ date($userBan.end_date) }}
				<xf:else />
					{{ phrase('never') }}
				</xf:if>
			</xf:formrow>

			<xf:if is="$userBan.user_reason">
				<xf:formrow label="{{ phrase('reason_for_ban') }}">
					{$userBan.user_reason}
				</xf:formrow>
			</xf:if>
		</div>
		<xf:submitrow submit="{{ phrase('lift') }}" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="ban_user_list" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('banned_users') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('banning/users/add') }}" icon="add">{{ phrase('ban_user') }}</xf:button>
</xf:pageaction>

<xf:if is="$userBans is not empty">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('user_name') }}</xf:cell>
						<xf:cell>{{ phrase('end_date') }}</xf:cell>
						<xf:cell>{{ phrase('reason') }}</xf:cell>
						<xf:cell>&nbsp;</xf:cell>
						<xf:cell>&nbsp;</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$userBans" value="$userBan">
						<xf:datarow>
							<xf:cell href="{{ link('banning/users', $userBan.User) }}">{$userBan.User.username}</xf:cell>
							<xf:cell href="{{ link('banning/users', $userBan.User) }}">{{ $userBan.end_date ? date($userBan.end_date) : phrase('permanent') }}</xf:cell>
							<xf:cell href="{{ link('banning/users', $userBan.User) }}">{{ $userBan.user_reason ?: phrase('n_a') }}</xf:cell>
							<xf:action href="{{ link('users/edit', $userBan.User) }}">{{ phrase('user') }}</xf:action>
							<xf:delete href="{{ link('banning/users/lift', $userBan.User) }}" tooltip="{{ phrase('lift_ban') }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($userBans, $total) }}</span>
			</div>
		</div>

		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="banning/users"
			wrapperclass="block-outer block-outer--after" />
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('there_no_banned_users') }}</div>
</xf:if>]]></template>
  <template type="admin" title="banning_import" version_id="2000631" version_string="2.0.6 Beta 1"><![CDATA[<xf:include template="xml_import" />]]></template>
  <template type="admin" title="base_custom_field_delete" version_id="2001070" version_string="2.0.10"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link($prefix . '/delete', $field) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				<strong><a href="{{ link($prefix . '/edit', $field) }}">{$field.title|htmlspecialchars}</a></strong>
			</xf:inforow>
		</div>
		<xf:submitrow icon="delete" rowtype="simple" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="base_custom_field_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$field.isInsert()">
	<xf:title>{{ phrase('add_field') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_field:') }} {$field.title|htmlspecialchars}</xf:title>
</xf:if>

<xf:pageaction if="$field.isUpdate()">
	<xf:button href="{{ link($prefix . '/delete', $field) }}" overlay="true" icon="delete" />
</xf:pageaction>

<xf:js src="xf/sort.js, vendor/dragula/dragula.js"/>
<xf:css src="public:dragula.less"/>

<xf:form action="{{ link($prefix . '/save', $field) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="{{ $field.exists() }}">
				<xf:formrow label="{{ phrase('field_id') }}"
					explain="{{ phrase('this_is_unique_identifier_for_field_cannot_be_changed') }}">
					<span class="u-ltr">{$field.field_id}</span>
				</xf:formrow>
			<xf:else />
				<xf:textboxrow name="field_id" value="{$field}" id="ctrl_field_id"
					label="{{ phrase('field_id') }}"
					explain="{{ phrase('this_is_unique_identifier_for_field_cannot_be_changed') }}"
					dir="ltr" />
			</xf:if>

			<hr class="formRowSep" />

			<xf:textboxrow name="title" value="{$field}"
				label="{{ phrase('title') }}" />

			<xf:textarearow name="description" value="{$field}"
				autosize="true"
				label="{{ phrase('description') }}"
				hint="{{ phrase('you_may_use_html') }}" />

			<hr class="formRowSep" />

			<xf:radiorow name="display_group" value="{$field}"
				label="{{ phrase('display_location') }}">
				<xf:options source="$displayGroups" />
			</xf:radiorow>

			<xf:macro id="display_order_macros::row" arg-value="{$field}" />

			{$displayOptions|raw}

			<hr class="formRowSep" />

			<xf:radiorow name="field_type" value="{$field}" listclass="listColumns"
				label="{{ phrase('field_type') }}">

				<xf:foreach loop="$fieldTypes"
					key="$fieldType"
					value="$fieldDef"
					if="!$existingType || $fieldDef.compatible == $existingType.compatible">

					<xf:option class="{$fieldDef.type}" value="{$fieldType}">{$fieldDef.label}</xf:option>
				</xf:foreach>
			</xf:radiorow>
		</div>

		<xf:if is="!$existingType || $existingType.options == 'text'">
			<h3 class="block-formSectionHeader">
				<span class="collapseTrigger collapseTrigger--block" data-xf-click="toggle" data-target="< :up:next">
					<span class="block-formSectionHeader-aligner">{{ phrase('options_for_text_fields') }}</span>
				</span>
			</h3>
			<div class="block-body block-body--collapsible">
				<xf:radiorow name="match_type" value="{$field}" listclass="_listColumns"
					label="{{ phrase('value_match_requirements') }}"
					hint="{{ phrase('empty_values_always_allowed') }}">

					<xf:option value="none">{$matchTypes.none}</xf:option>
					<xf:option value="number" data-hide="true"
						label="{$matchTypes.number}">
						<xf:dependent><xf:macro id="number_dependent" arg-field="{$field}" /></xf:dependent>
					</xf:option>
					<xf:option value="alphanumeric">{$matchTypes.alphanumeric}</xf:option>
					<xf:option value="email">{$matchTypes.email}</xf:option>
					<xf:option value="url">{$matchTypes.url}</xf:option>
					<xf:option value="color">{$matchTypes.color}</xf:option>
					<xf:option value="date" data-hide="true"
						label="{$matchTypes.date}">
						<xf:dependent><xf:macro id="date_dependent" arg-field="{$field}" /></xf:dependent>
					</xf:option>
					<xf:option value="regex" data-hide="true"
						label="{$matchTypes.regex}">
						<xf:dependent><xf:macro id="regex_dependent" arg-field="{$field}" /></xf:dependent>
					</xf:option>
					<xf:option value="callback"  data-hide="true"
						label="{$matchTypes.callback}">
						<xf:dependent>
							<xf:macro id="helper_callback_fields::callback_fields"
								arg-className="match_params[callback_class]"
								arg-methodName="match_params[callback_method]"
								arg-classValue="{$field.match_params.callback_class}"
								arg-methodValue="{$field.match_params.callback_method}"
								arg-size="23" />
							<p class="formRow-explain">
								<code>
									<em>\XF\CustomField\Definition</em> $definition,
									&amp;$value,
									&amp;$error
								</code>
							</p>
						</xf:dependent>
					</xf:option>
					<xf:option value="validator" data-hide="true"
						label="{$matchTypes.validator}">
						<xf:dependent><xf:macro id="validator_dependent" arg-field="{$field}" /></xf:dependent>
					</xf:option>
				</xf:radiorow>

				<hr class="formRowSep" />

				<xf:numberboxrow name="max_length" value="{$field}"
					label="{{ phrase('maximum_length') }}" />
			</div>
		</xf:if>

		<xf:if is="!$existingType || $existingType.options == 'choice'">
			<h3 class="block-formSectionHeader">
				<span class="collapseTrigger collapseTrigger--block" data-xf-click="toggle" data-target="< :up:next">
					<span class="block-formSectionHeader-aligner">{{ phrase('options_for_choice_fields') }}</span>
				</span>
			</h3>
			<div class="block-body block-body--collapsible">
				<xf:formrow rowtype="input"
					label="{{ phrase('possible_choices') }}"
					explain="{{ phrase('value_represents_internal_value_for_choice_text_is_displayed') }}">

					<div class="inputGroup-container" data-xf-init="list-sorter" data-drag-handle=".dragHandle">
						<xf:foreach loop="$field.field_choices" key="$choice" value="$text">
							<div class="inputGroup">
								<span class="inputGroup-text dragHandle"
									aria-label="{{ phrase('drag_handle')|for_attr }}"></span>
								<xf:textbox name="field_choice[]" value="{$choice}"
									placeholder="{{ phrase('value_a_z_0_9_and_only') }}"
									size="24" maxlength="25"
									dir="ltr" />
								<span class="inputGroup-splitter"></span>
								<xf:textbox name="field_choice_text[]" value="{$text}"
									placeholder="{{ phrase('text') }}" size="24" />
							</div>
						</xf:foreach>
						<div class="inputGroup is-undraggable js-blockDragafter" data-xf-init="field-adder"
							data-remove-class="is-undraggable js-blockDragafter">
							<span class="inputGroup-text dragHandle"
								aria-label="{{ phrase('drag_handle')|for_attr }}"></span>
							<xf:textbox name="field_choice[]"
								placeholder="{{ phrase('value_a_z_0_9_and_only') }}"
								size="24" maxlength="25" data-i="0"
								dir="ltr" />
							<span class="inputGroup-splitter"></span>
							<xf:textbox name="field_choice_text[]"
								placeholder="{{ phrase('text') }}"
								size="24" data-i="0" />
						</div>
					</div>
				</xf:formrow>
			</div>
		</xf:if>

		<h3 class="block-formSectionHeader">
			<span class="collapseTrigger collapseTrigger--block" data-xf-click="toggle" data-target="< :up:next">
				<span class="block-formSectionHeader-aligner">{{ phrase('general_options') }}</span>
			</span>
		</h3>
		<div class="block-body block-body--collapsible">
			<xf:if is="$extraOptions is not empty">
				{$extraOptions|raw}

				<hr class="formRowSep" />
			</xf:if>

			<xf:codeeditorrow name="display_template" value="{$field.display_template}"
				mode="html" data-line-wrapping="true"
				class="codeEditor--autoSize"
				label="{{ phrase('value_display_html') }}"
				explain="{{ phrase('field_display_html_description', {'fieldId': $field.field_id}) }}" />

			<xf:if is="$hasWrapperTemplate">
				<xf:codeeditorrow name="wrapper_template" value="{$field.wrapper_template}"
					mode="html" data-line-wrapping="true"
					class="codeEditor--autoSize"
					label="{{ phrase('wrapper_display_html') }}"
					explain="{{ phrase('wrapper_template_html_description', {'fieldId': $field.field_id}) }}" />
			</xf:if>
		</div>

		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>

<xf:macro id="number_dependent" arg-field="!">
	<div class="inputGroup inputGroup--numbers">
		<xf:numberbox name="match_params[number_min]" value="{$field.match_params.number_min}" size="5"
			class="input--numberNarrow"
			placeholder="{{ phrase('minimum') }}" />
		&nbsp;
		<xf:numberbox name="match_params[number_max]" value="{$field.match_params.number_max}" size="5"
			class="input--numberNarrow"
			placeholder="{{ phrase('maximum') }}" />
	</div>
	<xf:checkbox>
		<xf:option name="match_params[number_integer]" selected="{$field.match_params.number_integer}">{{ phrase('field_definition_require_whole_number') }}</xf:option>
	</xf:checkbox>
</xf:macro>

<xf:macro id="regex_dependent" arg-field="!">
	<xf:textbox name="match_params[regex]" value="{$field.match_params.regex}"
		placeholder="{{ phrase('regular_expression') }}"
		code="true" />
</xf:macro>

<xf:macro id="validator_dependent" arg-field="!">
	<xf:textbox name="match_params[validator]" value="{$field.match_params.validator}"
		placeholder="{{ phrase('validator') }}"
		dir="ltr" />
</xf:macro>

<xf:macro id="date_dependent" arg-field="!">
	<xf:radio name="match_params[date_constraint]" value="{{ $field.match_params.date_constraint ?: '' }}">
		<xf:option value="past">{{ phrase('field_definition_require_past_date') }}</xf:option>
		<xf:option value="future">{{ phrase('field_definition_require_future_date') }}</xf:option>
		<xf:option value="">{{ phrase('any') }}</xf:option>
	</xf:radio>
</xf:macro>]]></template>
  <template type="admin" title="base_custom_field_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:pageaction>
	<xf:button href="{{ link($prefix . '/add') }}" icon="add">{{ phrase('add_field') }}</xf:button>
</xf:pageaction>

<xf:if is="$fieldsGrouped is not empty">
	<xf:form action="{{ link($prefix . '/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="user-fields" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$displayGroups" key="$displayGroupId" value="$displayGroup">
						<xf:if is="{$fieldsGrouped.{$displayGroupId}} is not empty">
							<tbody class="dataList-rowGroup">
								<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
									<xf:cell colspan="2">{$displayGroup}</xf:cell>
								</xf:datarow>
								<xf:foreach loop="{$fieldsGrouped.{$displayGroupId}}" value="$field">
									<xf:datarow
										label="{$field.title|htmlspecialchars}"
										href="{{ link($prefix . '/edit', $field) }}"
										delete="{{ link($prefix . '/delete', $field) }}"
										hash="{$field.field_id}">
										<xf:hint>
											{$fieldTypes.{$field.field_type}.label}
										</xf:hint>
									</xf:datarow>
								</xf:foreach>
							</tbody>
						</xf:if>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($displayGroups) }}</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="base_custom_field_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="common_options" arg-field="!"
	arg-supportsRequired="{{ true }}"
	arg-supportsUserEditable="{{ false }}"
	arg-supportsEditableOnce="{{ false }}"
	arg-supportsModeratorEditable="{{ false }}"
	arg-supportsGroupEditable="{{ false }}">

	<xf:checkboxrow hideempty="true">
		<xf:if is="$supportsRequired">
			<xf:option name="required" selected="$field.required">{{ phrase('field_is_required') }}</xf:option>
		</xf:if>
		<xf:if is="$supportsUserEditable">
			<xf:option name="user_editable" value="yes" selected="$field.user_editable != 'never'"
				label="{{ phrase('user_editable') }}">

				<xf:checkbox>
					<xf:if is="$supportsEditableOnce">
						<xf:option name="user_editable" value="once" selected="$field.user_editable == 'once'">{{ phrase('editable_only_once') }}</xf:option>
					</xf:if>
				</xf:checkbox>
			</xf:option>
		</xf:if>
		<xf:if is="$supportsModeratorEditable">
			<xf:option name="moderator_editable" selected="$field.moderator_editable">{{ phrase('moderator_editable') }}</xf:option>
		</xf:if>
	</xf:checkboxrow>

	<xf:if is="$supportsGroupEditable">
		<xf:macro id="helper_user_group_edit::checkboxes"
			arg-label="{{ phrase('editable_by_user_groups') }}"
			arg-id="editable_user_group"
			arg-selectedUserGroups="{{ $field.field_id ? $field.editable_user_group_ids : [-1] }}" />
	</xf:if>
</xf:macro>]]></template>
  <template type="admin" title="base_prefix_delete" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link($linkPrefix . '/delete', $prefix) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				<strong><a href="{{ link($linkPrefix . '/edit', $prefix) }}">{$prefix.title}</a></strong>
			</xf:inforow>
		</div>
		<xf:submitrow rowtype="simple" icon="delete" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="base_prefix_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$prefix.isInsert()">
	<xf:title>{{ phrase('add_prefix') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_prefix:') }} {$prefix.title}</xf:title>
</xf:if>

<xf:pageaction if="$prefix.isUpdate()">
	<xf:button href="{{ link($linkPrefix . '/delete', $prefix) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link($linkPrefix . '/save', $prefix) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">

			<xf:textboxrow name="title" value="{$prefix}"
				label="{{ phrase('title') }}" />

			<xf:if is="$prefix.hasRelation('MasterDescription')">
				<xf:codeeditorrow name="description" value="{$prefix}"
					mode="html" data-line-wrapping="true"
					rows="1"
					readonly="0"
					class="codeEditor--autoSize"
					label="{{ phrase('description') }}"
					explain="{{ phrase('prefix_description_explain') }}" />
			</xf:if>

			<xf:if is="$prefix.hasRelation('MasterUsageHelp')">
				<xf:codeeditorrow name="usage_help" value="{$prefix}"
					mode="html" data-line-wrapping="true"
					readonly="0"
					class="codeEditor--autoSize"
					label="{{ phrase('prefix_usage_help') }}"
					explain="{{ phrase('prefix_usage_help_explain') }}" />
			</xf:if>

			<xf:macro id="base_prefix_edit_macros::display_style" arg-prefix="{$prefix}"
				arg-displayStyles="{$displayStyles}" />

			<hr class="formRowSep" />

			<xf:macro id="base_prefix_edit_macros::prefix_groups" arg-prefix="{$prefix}"
				arg-prefixGroups="{$prefixGroups}" />

			<xf:macro id="display_order_macros::row" arg-value="{$prefix}" />

			<hr class="formRowSep" />

			<xf:macro id="helper_user_group_edit::checkboxes"
				arg-selectedUserGroups="{{ $prefix.prefix_id ? $prefix.allowed_user_group_ids : [-1] }}" />

			{$extraOptions|raw}
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="base_prefix_edit_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="display_style" arg-prefix="!" arg-displayStyles="!" arg-withRow="1">
	<xf:set var="$inner">
		<xf:radio name="css_class" value="{{ $prefix.css_class ?: 'label label--hidden' }}" listclass="listColumns listColumns--4">
			<xf:foreach loop="$displayStyles" value="$class">
				<xf:option value="{$class}"><span title="{$class}" class="{$class}" data-xf-init="tooltip" style="display: inline">{{ phrase('prefix') }}</span></xf:option>
			</xf:foreach>
		</xf:radio>
		<xf:radio name="css_class" value="{{ $prefix.css_class ?: 'label label--hidden' }}">
			<xf:option value="" selected="$prefix.css_class AND !in_array($prefix.css_class, $displayStyles)" label="{{ phrase('other:') }}">
				<xf:textbox
					name="css_class"
					placeholder="{{ phrase('custom_css_class_names') }}"
					value="{{ ($prefix.css_class AND !in_array($prefix.css_class, $displayStyles)) ? $prefix.css_class : '' }}"
					maxlength="{{ max_length($prefix, 'css_class') }}" />
			</xf:option>
		</xf:radio>
	</xf:set>

	<xf:if is="$withRow">
		<xf:formrow label="{{ phrase('display_styling') }}">
			{$inner|raw}
		</xf:formrow>
	<xf:else />
		{$inner|raw}
	</xf:if>
</xf:macro>

<xf:macro id="prefix_groups" arg-prefix="!" arg-prefixGroups="!" arg-withRow="1">

	<xf:if is="$withRow">
		<xf:selectrow name="prefix_group_id" value="{$prefix}" label="{{ phrase('prefix_group') }}">
			<xf:option value="" label="{{ phrase('(none)') }}" />
			<xf:options source="{$prefixGroups}" />
		</xf:selectrow>
	<xf:else />
		<xf:select name="prefix_group_id" value="{$prefix.prefix_group_id}">
			<xf:option value="" label="{{ phrase('(none)') }}" />
			<xf:options source="{$prefixGroups}" />
		</xf:select>
	</xf:if>
</xf:macro>]]></template>
  <template type="admin" title="base_prefix_group_delete" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link($groupLinkPrefix . '/delete', $prefixGroup) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				<strong><a href="{{ link($groupLinkPrefix . '/edit', $prefixGroup) }}" data-xf-click="overlay">{$prefixGroup.title}</a></strong>
				{{ phrase('prefixes_belonging_to_this_group_will_be_disassociated_rather_than_deleted') }}
			</xf:inforow>
		</div>
		<xf:submitrow rowtype="simple" icon="delete" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="base_prefix_group_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$prefixGroup.isInsert()">
	<xf:title>{{ phrase('add_prefix_group') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_prefix_group:') }} {$prefixGroup.title}</xf:title>
</xf:if>

<xf:pageaction if="$prefixGroup.isUpdate()">
	<xf:button href="{{ link($groupLinkPrefix . '/delete', $prefixGroup) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link($groupLinkPrefix . '/save', $prefixGroup) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="title" value="{$prefixGroup}"
				label="{{ phrase('title') }}" />

			<xf:macro id="display_order_macros::row" arg-value="{$prefixGroup}" />
		</div>
		<xf:submitrow icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="base_prefix_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:pageaction>
	<div class="buttonGroup">
		<xf:button href="{{ link($linkPrefix . '/add') }}" icon="add">{{ phrase('add_prefix') }}</xf:button>
		<xf:button href="{{ link($groupLinkPrefix . '/add') }}" icon="add" overlay="true">{{ phrase('add_prefix_group') }}</xf:button>
	</div>
</xf:pageaction>

<xf:if is="$prefixesGrouped is not empty OR count($prefixGroups) > 1">
	<xf:form action="{{ link($linkPrefix . '/quick-set') }}" ajax="true" class="block"

		data-xf-init="select-plus"
		data-sp-checkbox=".dataList-cell--toggle input[type='checkbox']"
		data-sp-container=".dataList-row"
		data-sp-control=".dataList-cell a">

		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="{$linkPrefix}" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$prefixGroups" key="$prefixGroupId" value="$prefixGroup">
						<tbody class="dataList-rowGroup" id="js-prefixGroup{$prefixGroupId}">

						<xf:if is="{{ count($prefixGroups) > 1 }}">
							<xf:datarow rowtype="subsection" rowclass="{{ !$prefixGroupId ? 'dataList-row--noHover' : '' }}">
								<xf:if is="{{ $prefixGroupId > 0 }}">
									<xf:cell class="dataList-cell--min">
										<xf:if is="{{ count($prefixesGrouped.{$prefixGroupId}) }}">
											<xf:checkbox standalone="true"><xf:option check-all="#js-prefixGroup{$prefixGroupId}" /></xf:checkbox>
										</xf:if>
									</xf:cell>
									<xf:cell href="{{ link($groupLinkPrefix . '/edit', $prefixGroup) }}" overlay="true">
										{$prefixGroup.title}
									</xf:cell>
									<xf:delete href="{{ link($groupLinkPrefix . '/delete', $prefixGroup) }}" />
								<xf:elseif is="{{ count($prefixesGrouped.{$prefixGroupId}) }}" />
									<xf:cell class="dataList-cell--min">
										<xf:checkbox standalone="true"><xf:option check-all="#js-prefixGroup{$prefixGroupId}" /></xf:checkbox>
									</xf:cell>
									<xf:cell>{{ phrase('(ungrouped)') }}</xf:cell>
									<xf:cell>&nbsp;</xf:cell>
								</xf:if>
							</xf:datarow>
						</xf:if>

						<xf:foreach loop="{$prefixesGrouped.{$prefixGroupId}}" key="$prefixId" value="$prefix">
							<xf:datarow rowclass="prefixGroup{$prefixGroupId}">
								<xf:toggle name="prefix_ids[]" value="{$prefix.prefix_id}" />
								<xf:cell href="{{ link($linkPrefix . '/edit', $prefix) }}" class="dataList-cell">
									{$prefix.title}
								</xf:cell>
								<xf:delete href="{{ link($linkPrefix . '/delete', $prefix) }}" />
							</xf:datarow>
						<xf:else />
							<xf:if is="{{ count($prefixesGrouped.{$prefixGroupId}) || $prefixGroupId > 0 }}">
								<xf:datarow rowclass="dataList-row--noHover">
									<xf:cell colspan="3" class="dataList-cell--noSearch">
										<xf:if is="{{ count($prefixGroups) > 1 }}">
											{{ phrase('no_prefixes_have_been_added_to_this_group_yet') }}
										<xf:else />
											{{ phrase('no_prefixes_have_been_added_yet') }}
										</xf:if>
									</xf:cell>
								</xf:datarow>
							</xf:if>
						</xf:foreach>
						</tbody>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer block-footer--split">
				<span class="block-footer-counter">{{ display_totals($prefixTotal) }}</span>
				<span class="block-footer-select"><xf:checkbox standalone="true"><xf:option check-all=".dataList" label="{{ phrase('select_all') }}" /></xf:checkbox></span>
				<span class="block-footer-controls"><xf:button type="submit" name="quickset" value="1">{{ phrase('quick_set') }}</xf:button></span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="base_prefix_quickset_chooser" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('quick_set_prefixes') }}</xf:title>

<xf:form action="{{ link($linkPrefix . '/quick-set') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:selectrow name="prefix_id"
				label="{{ phrase('copy_settings_from') }}"
				explain="{{ phrase('on_next_page_you_may_apply_settings_to_all_selected_prefixes') }}">

				<xf:option value="-1">{{ phrase('(none)') }}</xf:option>
				<xf:foreach loop="$prefixGroups" key="$groupId" value="$prefixGroup" if="{{ count($prefixesGrouped.{$groupId}) > 0 }}">
					<xf:optgroup label="{{ prefix_group($prefixType, $groupId) }}">
						<xf:foreach loop="{$prefixesGrouped.{$groupId}}" key="$prefixId" value="$cssClass">
							<xf:option value="{$prefixId}" label="{{ prefix_title($prefixType, $prefixId) }}" />
						</xf:foreach>
					</xf:optgroup>
				</xf:foreach>

			</xf:selectrow>
		</div>
		<xf:submitrow submit="{{ phrase('proceed...') }}" name="quickset" value="1" />
	</div>
	<xf:foreach loop="$prefixIds" value="$prefixId">
		<xf:hiddenval name="prefix_ids[]">{$prefixId}</xf:hiddenval>
	</xf:foreach>
</xf:form>]]></template>
  <template type="admin" title="base_prefix_quickset_editor" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('quick_set_prefixes') }}</xf:title>

<xf:form action="{{ link($linkPrefix . '/quick-set') }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:checkboxrow name="prefix_ids" listclass="inputChoices--inline"
				label="{{ phrase('apply_options_to_these_prefixes') }}">

				<xf:foreach loop="$prefixes" key="$prefixId" value="$_prefix">
					<xf:option value="{$prefixId}" checked="checked">
						<xf:label><span class="{$_prefix.css_class}">{$_prefix.title}</span></xf:label>
					</xf:option>
				</xf:foreach>
			</xf:checkboxrow>

			<xf:checkboxrow name="apply_css_class"
				label="{{ phrase('display_styling') }}">

				<xf:option label="{{ phrase('apply_display_styling_options:') }}">
					<xf:dependent>
						<xf:macro id="base_prefix_edit_macros::display_style"
							arg-prefix="{$prefix}"
							arg-displayStyles="{$displayStyles}"
							arg-withRow="0" />
					</xf:dependent>
				</xf:option>
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<xf:checkboxrow name="apply_prefix_group_id"
				label="{{ phrase('prefix_group') }}">

				<xf:option label="{{ phrase('apply_prefix_group_options:') }}">
					<xf:dependent>
						<xf:macro id="base_prefix_edit_macros::prefix_groups"
							arg-prefix="{$prefix}"
							arg-prefixGroups="{$prefixGroups}"
							arg-withRow="0" />
					</xf:dependent>
				</xf:option>
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<xf:checkboxrow name="apply_user_group_ids"
				label="{{ phrase('usable_by_user_groups') }}">

				<xf:option label="{{ phrase('apply_user_group_options:') }}">
					<xf:dependent>
						<xf:macro id="helper_user_group_edit::checkboxes"
							arg-selectedUserGroups="{{ $prefix.prefix_id ? $prefix.allowed_user_group_ids : [-1] }}"
							arg-withRow="0" />
					</xf:dependent>
				</xf:option>
			</xf:checkboxrow>

			{$extraOptions|raw}
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="base_prompt_delete" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link($linkPrefix . '/delete', $prompt) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				<strong><a href="{{ link($linkPrefix . '/edit', $prompt) }}">{$prompt.title}</a></strong>
			</xf:inforow>
		</div>
		<xf:submitrow rowtype="simple" icon="delete" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="base_prompt_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$prompt.isInsert()">
	<xf:title>{{ phrase('add_prompt') }}</xf:title>
	<xf:else />
	<xf:title>{{ phrase('edit_prompt:') }} {$prompt.title}</xf:title>
</xf:if>

<xf:pageaction if="$prompt.isUpdate()">
	<xf:button href="{{ link($linkPrefix . '/delete', $prompt) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link($linkPrefix . '/save', $prompt) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">

			<xf:textboxrow name="title" value="{$prompt}"
				label="{{ phrase('title') }}" />

			<hr class="formRowSep" />

			<xf:macro id="base_prompt_edit_macros::prompt_groups" arg-prompt="{$prompt}"
				arg-promptGroups="{$promptGroups}" />

			<xf:macro id="display_order_macros::row" arg-value="{$prompt}" />

			<hr class="formRowSep" />

			{$extraOptions|raw}
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="base_prompt_edit_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="prompt_groups" arg-prompt="!" arg-promptGroups="!" arg-withRow="1">

	<xf:if is="$withRow">
		<xf:selectrow name="prompt_group_id" value="{$prompt}" label="{{ phrase('prompt_group') }}">
			<xf:option value="" label="{{ phrase('(none)') }}" />
			<xf:options source="{$promptGroups}" />
		</xf:selectrow>
	<xf:else />
		<xf:select name="prompt_group_id" value="{$prompt}">
			<xf:option value="" label="{{ phrase('(none)') }}" />
			<xf:options source="{$promptGroups}" />
		</xf:select>
	</xf:if>
</xf:macro>]]></template>
  <template type="admin" title="base_prompt_group_delete" version_id="2000035" version_string="2.0.0 Beta 5"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link($groupLinkPrefix . '/delete', $promptGroup) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				<strong><a href="{{ link($groupLinkPrefix . '/edit', $promptGroup) }}" data-xf-click="overlay">{$promptGroup.title}</a></strong>
				{{ phrase('prompts_belonging_to_this_group_will_be_disassociated_rather_than_deleted') }}
			</xf:inforow>
		</div>
		<xf:submitrow rowtype="simple" icon="delete" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="base_prompt_group_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$promptGroup.isInsert()">
	<xf:title>{{ phrase('add_prompt_group') }}</xf:title>
	<xf:else />
	<xf:title>{{ phrase('edit_prompt_group:') }} {$promptGroup.title}</xf:title>
</xf:if>

<xf:pageaction if="$promptGroup.isUpdate()">
	<xf:button href="{{ link($groupLinkPrefix . '/delete', $promptGroup) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link($groupLinkPrefix . '/save', $promptGroup) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="title" value="{$promptGroup}"
				label="{{ phrase('title') }}" />

			<xf:macro id="display_order_macros::row" arg-value="{$promptGroup}" />
		</div>
		<xf:submitrow icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="base_prompt_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:pageaction>
	<div class="buttonGroup">
		<xf:button href="{{ link($linkPrefix . '/add') }}" icon="add">{{ phrase('add_prompt') }}</xf:button>
		<xf:button href="{{ link($groupLinkPrefix . '/add') }}" icon="add" overlay="true">{{ phrase('add_prompt_group') }}</xf:button>
	</div>
</xf:pageaction>

<xf:if is="$promptsGrouped is not empty OR count($promptGroups) > 1">
	<xf:form action="{{ link($linkPrefix . '/quick-set') }}" ajax="true" class="block"

		data-xf-init="select-plus"
		data-sp-checkbox=".dataList-row:not(.dataList-row--subSection) input[type='checkbox']"
		data-sp-container=".dataList-row:not(.dataList-row--subSection, .dataList-row--noHover)"
		data-sp-control=".dataList-cell a">

		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="{$linkPrefix}" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$promptGroups" key="$promptGroupId" value="$promptGroup">
						<tbody class="dataList-rowGroup" id="js-promptGroup{$promptGroupId}">

						<xf:if is="{{ count($promptGroups) > 1 }}">
							<xf:datarow rowtype="subsection" rowclass="{{ !$promptGroupId ? 'dataList-row--noHover' : '' }}">
								<xf:if is="{{ $promptGroupId > 0 }}">
									<xf:cell class="dataList-cell--min">
										<xf:if is="{{ count($promptsGrouped.{$promptGroupId}) }}">
											<xf:checkbox standalone="true"><xf:option check-all="#js-promptGroup{$promptGroupId}" /></xf:checkbox>
										</xf:if>
									</xf:cell>
									<xf:cell href="{{ link($groupLinkPrefix . '/edit', $promptGroup) }}" overlay="true">
										{$promptGroup.title}
									</xf:cell>
									<xf:delete href="{{ link($groupLinkPrefix . '/delete', $promptGroup) }}" />
									<xf:elseif is="{{ count($promptsGrouped.{$promptGroupId}) }}" />
									<xf:cell class="dataList-cell--min">
										<xf:checkbox standalone="true"><xf:option check-all="#js-promptGroup{$promptGroupId}" /></xf:checkbox>
									</xf:cell>
									<xf:cell>{{ phrase('(ungrouped)') }}</xf:cell>
									<xf:cell>&nbsp;</xf:cell>
								</xf:if>
							</xf:datarow>
						</xf:if>

						<xf:foreach loop="{$promptsGrouped.{$promptGroupId}}" key="$promptId" value="$prompt">
							<xf:datarow rowclass="promptGroup{$promptGroupId}">
								<xf:toggle name="prompt_ids[]" value="{$prompt.prompt_id}" />
								<xf:cell href="{{ link($linkPrefix . '/edit', $prompt) }}" class="dataList-cell">
									{$prompt.title}
								</xf:cell>
								<xf:delete href="{{ link($linkPrefix . '/delete', $prompt) }}" />
							</xf:datarow>
							<xf:else />
							<xf:if is="{{ count($promptsGrouped.{$promptGroupId}) || $promptGroupId > 0 }}">
								<xf:datarow rowclass="dataList-row--noHover">
									<xf:cell colspan="3" class="dataList-cell--noSearch">
										<xf:if is="{{ count($promptGroups) > 1 }}">
											{{ phrase('no_prompts_have_been_added_to_this_group_yet') }}
											<xf:else />
											{{ phrase('no_prompts_have_been_added_yet') }}
										</xf:if>
									</xf:cell>
								</xf:datarow>
							</xf:if>
						</xf:foreach>
						</tbody>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer block-footer--split">
				<span class="block-footer-counter">{{ display_totals($promptTotal) }}</span>
				<span class="block-footer-select"><xf:checkbox standalone="true"><xf:option check-all=".dataList" label="{{ phrase('select_all') }}" /></xf:checkbox></span>
				<span class="block-footer-controls"><xf:button type="submit" name="quickset" value="1">{{ phrase('quick_set') }}</xf:button></span>
			</div>
		</div>
	</xf:form>
	<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="base_prompt_quickset_chooser" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('quick_set_prompts') }}</xf:title>

<xf:form action="{{ link($linkPrefix . '/quick-set') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:selectrow name="prompt_id"
				label="{{ phrase('copy_settings_from') }}"
				explain="{{ phrase('on_next_page_you_may_apply_settings_to_all_selected_prompts') }}">

				<xf:option value="-1">{{ phrase('(none)') }}</xf:option>
				<xf:foreach loop="$promptGroups" key="$groupId" value="$promptGroup" if="{{ count($promptsGrouped.{$groupId}) > 0 }}">
					<xf:optgroup label="{{ $groupId ? $promptGroup.title : phrase('ungrouped') }}">
						<xf:foreach loop="{$promptsGrouped.{$groupId}}" key="$promptId" value="$prompt">
							<xf:option value="{$promptId}" label="{$prompt.title}" />
						</xf:foreach>
					</xf:optgroup>
				</xf:foreach>

			</xf:selectrow>
		</div>
		<xf:submitrow submit="{{ phrase('proceed...') }}" name="quickset" value="1" />
	</div>
	<xf:foreach loop="$promptIds" value="$promptId">
		<xf:hiddenval name="prompt_ids[]">{$promptId}</xf:hiddenval>
	</xf:foreach>
</xf:form>]]></template>
  <template type="admin" title="base_prompt_quickset_editor" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('quick_set_prompts') }}</xf:title>

<xf:form action="{{ link($linkPrefix . '/quick-set') }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:checkboxrow name="prompt_ids" listclass="_listInline"
				label="{{ phrase('apply_options_to_these_prompts') }}">

				<xf:foreach loop="$prompts" key="$promptId" value="$_prompt">
					<xf:option value="{$promptId}" checked="checked">
						<xf:label>{$_prompt.title}</xf:label>
					</xf:option>
				</xf:foreach>
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<xf:checkboxrow name="apply_prompt_group_id"
				label="{{ phrase('prompt_group') }}">

				<xf:option label="{{ phrase('apply_prompt_group_options:') }}">
					<xf:dependent>
						<xf:macro id="base_prompt_edit_macros::prompt_groups"
							arg-prompt="{$prompt}"
							arg-promptGroups="{$promptGroups}"
							arg-withRow="0" />
					</xf:dependent>
				</xf:option>
			</xf:checkboxrow>

			<hr class="formRowSep" />

			{$extraOptions|raw}
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="bb_code_button_manager_dropdown_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>
	<xf:if is="$dropdown.isInsert()">
		{{ phrase('add_dropdown') }}
	<xf:else />
		{{ phrase('edit_dropdown:') }} {$dropdown.title}
	</xf:if>
</xf:title>

<xf:macro id="bb_code_button_manager_editor::setup" />

<xf:form action="{{ link('button-manager/dropdown/save', $dropdown) }}" ajax="true" data-xf-init="editor-manager" data-command-tray-class=".js-dragList-commandTrayDropdown">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:if is="$dropdown.isInsert()">
					<xf:textboxrow name="cmd" label="{{ phrase('command_id') }}" />
				<xf:else />
					<xf:formrow label="{{ phrase('command_id') }}">{$dropdown.cmd}</xf:formrow>
				</xf:if>

				<xf:textboxrow name="title" value="{$dropdown}" label="{{ phrase('title') }}" />

				<xf:textboxrow name="icon" value="{$dropdown}" label="{{ phrase('icon') }}">
					<xf:explain>{{ phrase('you_can_preview_icons_and_their_names_here') }}</xf:explain>
				</xf:textboxrow>

				<xf:macro id="display_order_macros::row" arg-value="{$dropdown}" />

				<xf:checkboxrow label="">
					<xf:option name="active" selected="$dropdown.active"
						label="{{ phrase('dropdown_is_active') }}" />
				</xf:checkboxrow>
			</div>
		</div>
	</div>

	<div class="block">
		<div class="block-container">
			<h2 class="block-header">
				{{ phrase('available_buttons') }}
			</h2>
			<xf:macro id="bb_code_button_manager_editor::toolbar_block"
				arg-buttons="{{ array_keys($buttonData) }}"
				arg-buttonData="{$buttonData}"
				arg-toolbarType="commandTrayDropdown"
				arg-displayTooltips="{{ true }}" />

			<div class="block-row block-row--minor u-muted">
				{{ phrase('note_not_all_buttons_supported_inside_dropdowns') }}
			</div>
		</div>
	</div>

	<div class="block">
		<div class="block-container">
			<h2 class="block-header">
				{{ phrase('dropdown_buttons') }}
			</h2>

			<xf:macro id="bb_code_button_manager_editor::toolbar_block"
				arg-name="buttons"
				arg-buttons="{$dropdown.buttons}"
				arg-buttonData="{$buttonData}"
				arg-toolbarType="toolbarDropdown" />

			<xf:submitrow icon="save" />
		</div>
	</div>
</xf:form>]]></template>
  <template type="admin" title="bb_code_button_manager_editor" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:title>{{ phrase('edit_toolbar') }}: {$typeTitle}</xf:title>

<xf:macro id="setup" />

<xf:pageaction>

	<a class="button menuTrigger"
		data-xf-click="menu"
		role="button"
		tabindex="0"
		aria-expanded="false"
		aria-haspopup="true">{$typeTitle}</a>

	<div class="menu" data-menu="menu" aria-hidden="true">
		<div class="menu-content">
			<h3 class="menu-header">{{ phrase('editor_toolbars') }}</h3>
			<xf:foreach loop="$toolbarTypes" key="$_toolbarTypeId" value="$_toolbarType">
				<a href="{{ link('button-manager/edit', [], {'type': $_toolbarTypeId}) }}"
					class="menu-linkRow {{ ($_toolbarTypeId == $type) ? 'is-selected' : '' }}">
					{$_toolbarType.title}
				</a>
			</xf:foreach>
		</div>
	</div>

	<xf:button href="{{ link('button-manager/reset', null, {'type': $type}) }}" data-xf-click="overlay" icon="refresh">
		{{ phrase('reset_button_configuration') }}
	</xf:button>
</xf:pageaction>

<script type="application/json" id="js-toolbarButtons">{$json}</script>
<script type="application/json" id="js-buttonData">{$buttonData|json|raw}</script>

<xf:css>
.toolbarWidthLimit { margin: 0 auto; }
.toolbarWidthLimit.toolbarWidthLimit--toolbarButtons   { width: {$toolbarSizes.LG}px; }
.toolbarWidthLimit.toolbarWidthLimit--toolbarButtonsMD { width: {$toolbarSizes.MD}px; }
.toolbarWidthLimit.toolbarWidthLimit--toolbarButtonsSM { width: {$toolbarSizes.SM}px; }
.toolbarWidthLimit.toolbarWidthLimit--toolbarButtonsXS { width: 320px; }
</xf:css>

<xf:form action="{{ link('button-manager/save', null, {'type': $type}) }}" ajax="true" data-xf-init="editor-manager" data-force-flash-message="on">
	<div class="block">
		<div class="block-container">
			<h2 class="block-header">
				{{ phrase('available_buttons_and_dropdown_menus') }}
			</h2>

			<div class="block-body">
				<div class="block-row">
					<div class="fr-box fr-box--editor fr-box--editor--{$type} fr-ltr fr-basic fr-top">
						<div class="js-dragList js-dragList-commandTray toolbar-commandTray fr-toolbar fr-ltr fr-desktop fr-top fr-basic">
							<xf:foreach loop="{{ array_keys($buttonData) }}" value="$cmd">
								<xf:if is="{$buttonData.{$cmd}}">
									<xf:macro id="toolbar_button"
										arg-button="{$buttonData.{$cmd}}"
										arg-cmd="{$cmd}"
										arg-displayTooltips="{{ true }}"
										arg-includeDropdownControls="{{ true }}" />
								<xf:elseif is="$cmd == '-hr'" />
									<div class="hr"></div>
								</xf:if>
							</xf:foreach>
							<xf:if is="$name">
								<xf:hiddenval name="{$name}" class="js-dragListValue" />
							</xf:if>
						</div>
					</div>
				</div>
			</div>

			<div class="block-row block-row--minor u-muted">
				{{ phrase('available_buttons_and_dropdown_menus_desc') }}
			</div>
		</div>
	</div>

	<div class="block">
		<div class="block-container">
			<h3 class="block-header">
				{$typeTitle}
			</h3>

			<div class="block-body">
				<xf:foreach loop="$toolbarButtons.toolbarButtons" key="$key" value="$data">
					<xf:macro id="button_group"
						arg-key="{$key}"
						arg-data="{$data}"
						arg-buttonData="{$buttonData}" />
				</xf:foreach>
			</div>

			<div class="block-row block-row--minor u-muted">
				{$typeDescription}
			</div>

			<xf:hiddenval name="editor_toolbar_config[{$type}]" data-toolbar-type="{$type}" class="js-dragListValue" />
			<xf:submitrow icon="save" rowtype="simple" />
		</div>
	</div>
</xf:form>

<xf:form action="{{ link('button-manager/dummy-post', $thread) }}" class="block" ajax="true"
	draft="{{ link('button-manager/dummy-draft') }}"
	data-xf-init="attachment-manager">

	<div class="block-container">
		<div class="block-body">
			<p></p>

			<!--this overrides the normal toolbar json sent to the RTE as document.querySelector('.js-editorToolbars')-->
			<script class="js-editorToolbars" type="application/json">{$toolbarButtons|json|raw}</script>


			<div class="toolbarWidthLimit toolbarWidthLimit--{$type}">
				<xf:editor name="button_layout_preview"
					value=""
					attachments="{{ [] }}"
					data-min-height="50"
					data-max-height="100"
					placeholder="{{ phrase('this_is_preview_of_your_button_layout') }}..."
					data-deferred="off"
					data-xf-key="{{ phrase('shortcut.quick_reply') }}"
					data-preview-url="{{ link('button-manager/dummy-preview') }}" />
				<xf:macro id="public:helper_attach_upload::upload_block" arg-attachmentData="{{ {'constraints': { 'extensions': ['txt','mp4','png'] } } }}" />
			</div>

			<p></p>

		</div>
	</div>
</xf:form>

<xf:macro id="button_group" arg-key="!" arg-data="!" arg-buttonData="!">
	<div class="block-row block-row--buttonGroup js-buttonGroup" id="js-buttonGroup--{$key}">
		<div class="block-row--buttons">
			<div class="js-dragList toolbar toolbar--dragTarget toolbar--{$key}" id="js-toolbar--{$key}">
				<xf:foreach loop="$data.buttons" value="$cmd">
					<xf:macro id="toolbar_button"
						arg-button="{$buttonData.{$cmd}}"
						arg-cmd="{$cmd}"
						arg-displayTooltips="{{ true }}"
						arg-includeDropdownControls="{{ false }}" />
				</xf:foreach>
			</div>
		</div>
		<div class="block-row--buttonMenu">
			<xf:button class="menuTrigger button--link button--icon button--iconOnly"
				data-xf-click="menu"
				aria-expanded="false"
				aria-haspopup="true"
				fa="fa-tools"
				notfa="fa-info-circle" />
			<div class="menu" data-menu="menu" aria-hidden="true" id="js-toolbar-menu--{$key}">
				<div class="menu-content">
					<h3 class="menu-header">{{ phrase('group_options') }}</h3>

					<div class="menu-row menu-row--separated">
						{{ phrase('buttons_visible:') }}
						<div class="u-inputSpacer">
							<xf:numberbox name="buttonsVisible" value="{$data.buttonsVisible}"
								autofocus="autofocus" min="0"
								data-button-smaller="1" />
						</div>
					</div>

					<div class="menu-row menu-row--separated">
						{{ phrase('group_alignment:') }}
						<div class="u-inputSpacer">
							<xf:select name="align" value="{$data.align}">
								<xf:option value="left">{{ phrase('left') }}</xf:option>
								<xf:option value="right">{{ phrase('right') }}</xf:option>
							</xf:select>
						</div>
					</div>
				</div>
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="toolbar_block"
	arg-type=""
	arg-name=""
	arg-buttons="!"
	arg-buttonData="!"
	arg-toolbarType="!"
	arg-displayTooltips="{{ false }}"
	arg-includeDropdownControls="{{ false }}">
	<div class="block-body">
		<div class="block-row">
			<div class="fr-box fr-box--editor fr-box--editor--{$type} fr-ltr fr-basic fr-top">
				<div class="toolbar--dragTarget js-dragList js-dragList-{$toolbarType} toolbar-{$toolbarType} fr-toolbar fr-ltr fr-desktop fr-top fr-basic">
					<xf:foreach loop="$buttons" value="$cmd">
						<xf:if is="{$buttonData.{$cmd}}">
							<xf:macro id="toolbar_button"
								arg-button="{$buttonData.{$cmd}}"
								arg-cmd="{$cmd}"
								arg-displayTooltips="{$displayTooltips}"
								arg-includeDropdownControls="{$includeDropdownControls}" />
						</xf:if>
					</xf:foreach>
					<xf:if is="$name">
						<xf:hiddenval name="{$name}" class="js-dragListValue" />
					</xf:if>
				</div>
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="toolbar_button" arg-button="!" arg-cmd="!" arg-displayTooltips="{{ false }}" arg-includeDropdownControls="{{ false }}">
	<div data-cmd="{$cmd}" data-xf-init="{{ $displayTooltips ? 'tooltip' : '' }}" title="{{ $displayTooltips ? $button.title : '' }}"
		class="{{ $button.type ? 'toolbar-' . $button.type : '' }} fr-command fr-btn {{ ($button.type == 'dropdown' OR $button.type == 'editable_dropdown') ? 'fr-dropdown' : '' }} {{ $button.fa ? 'fr-btn-font_awesome' : ($button.text ? 'fr-btn-text' : 'fr-btn-image') }}">
		<xf:macro id="toolbar_icon" arg-button="{$button}" />
		<span class="fr-sr-only">{$button.title}</span>
	</div>
</xf:macro>

<xf:macro id="toolbar_icon" arg-button="!">
	<xf:if is="$button.fa">
		<xf:fa icon="{$button.fa}" />
	<xf:elseif is="$button.image" />
		<img src="{$button.image}" alt="" />
	<xf:elseif is="$button.text" />
		<span style="text-align: center;">{$button.text}</span>
	<xf:elseif is="$button.svg" />
		<svg class="fr-svg" focusable="false" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
			<path d="{$button.svg}"></path>
		</svg>
	</xf:if>
</xf:macro>

<xf:macro id="setup">
	<xf:css src="public:editor.less" />
	<xf:css src="button_manager.less" />
	<xf:js dev="vendor/dragula/dragula.js, xf/editor_manager.js" prod="xf/editor_manager-compiled.js" />

	<script class="js-extraPhrases" type="application/json">
		{
			"buttons_menus_may_not_be_duplicated": "{{ phrase('buttons_menus_may_not_be_duplicated')|escape('json') }}",
			"button_removed": "{{ phrase('button_removed')|escape('json') }}"
		}
	</script>
</xf:macro>]]></template>
  <template type="admin" title="bb_code_button_manager_list" version_id="2010033" version_string="2.1.0 Beta 3"><![CDATA[<xf:title>{{ phrase('bb_code_button_manager') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('button-manager/dropdown/add') }}" icon="add">{{ phrase('add_dropdown') }}</xf:button>
</xf:pageaction>

<div class="block">
	<div class="block-container">
		<h2 class="block-header">
			{{ phrase('editor_toolbars') }}
			<span class="block-desc">{{ phrase('rich_text_editor_supports_four_button_configs') }}</span>
		</h2>
		<div class="block-body">
			<xf:datalist>
				<xf:foreach loop="$toolbarTypes" key="$type" value="$phrases">
					<xf:datarow
						label="{$phrases.title}"
						explain="{$phrases.description}"
						href="{{ link('button-manager/edit', null, {'type': $type}) }}" />
				</xf:foreach>
			</xf:datalist>
		</div>
	</div>
</div>

<xf:if is="$editorDropdowns is not empty">
	<xf:form action="{{ link('button-manager/dropdown/toggle') }}" class="block" ajax="true">
		<div class="block-container">
			<h2 class="block-header">
				{{ phrase('editor_dropdowns') }}
			</h2>
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$editorDropdowns" value="$editorDropdown">
						<xf:datarow
							label="{$editorDropdown.title}"
							href="{{ link('button-manager/dropdown/edit', $editorDropdown) }}"
							icon="{{ $editorDropdown.icon ?: 'none' }}"
							delete="{{ link('button-manager/dropdown/delete', $editorDropdown) }}">
							<xf:toggle name="active[{$editorDropdown.cmd}]" selected="$editorDropdown.active"
								class="dataList-cell--separated" submit="true"
								tooltip="{{ phrase('enable_disable_x', {'title': $editorDropdown.title}) }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
		</div>
	</xf:form>
</xf:if>]]></template>
  <template type="admin" title="bb_code_button_manager_reset" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:title>{{ phrase('reset_button_configuration') }}</xf:title>

<xf:form action="{{ link('button-manager/reset', null, {'type': $type}) }}" ajax="true" class="block" data-force-flash-message="on">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm close">
				{{ phrase('please_confirm_that_you_want_to_reset_following_button_configuration:') }}
				<strong><a href="{{ link('button-manager/edit', null, {'type': $type}) }}">{$typeTitle}</a></strong>
			</xf:inforow>
			<xf:inforow>
				<p class="block-rowMessage block-rowMessage--warning block-rowMessage--iconic">
					<strong>{{ phrase('note:') }}</strong>
					{{ phrase('button_manager_reset_it_is_not_possible_to_reverse_this_action') }}
				</p>
			</xf:inforow>
		</div>
		<xf:submitrow rowtype="simple" icon="refresh" submit="{{ phrase('reset_button_configuration') }}" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="bb_code_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$bbCode.isInsert()">
	<xf:title>{{ phrase('add_bb_code') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_bb_code:') }} [{$bbCode.bb_code_id}]</xf:title>
</xf:if>

<xf:pageaction if="$bbCode.isUpdate() AND $bbCode.canEdit()">
	<xf:button href="{{ link('bb-codes/delete', $bbCode) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:if is="{{ !$bbCode.canEdit() }}">
	<div class="blockMessage blockMessage--important blockMessage--iconic">
		{{ phrase('only_limited_fields_in_item_may_be_edited') }}
	</div>
</xf:if>

<xf:form action="{{ link('bb-codes/save', $bbCode) }}" ajax="true" class="block">
	<div class="block-container">

		<div class="block-body">
			<xf:textboxrow name="bb_code_id" value="{$bbCode}"
				readonly="{{ !$bbCode.canEdit() }}"
				label="{{ phrase('bb_code_tag') }}"
				dir="ltr" />

			<xf:textboxrow name="title" value="{$bbCode}"
				readonly="{{ !$bbCode.canEdit() }}"
				label="{{ phrase('title') }}" />
			<xf:textarearow name="desc" value="{$bbCode}" autosize="true"
				readonly="{{ !$bbCode.canEdit() }}"
				label="{{ phrase('description') }}" />

			<xf:radiorow name="bb_code_mode" value="{$bbCode}"
				readonly="{{ !$bbCode.canEdit() }}"
				label="{{ phrase('replacement_mode') }}">

				<xf:option value="replace">{{ phrase('simple_replacement') }}</xf:option>
				<xf:option value="callback">{{ phrase('php_callback') }}</xf:option>
			</xf:radiorow>

			<xf:radiorow name="has_option" value="{$bbCode}"
				readonly="{{ !$bbCode.canEdit() }}"
				label="{{ phrase('supports_option_parameter') }}">

				<xf:option value="yes">{{ phrase('yes') }}</xf:option>
				<xf:option value="no">{{ phrase('no') }}</xf:option>
				<xf:option value="optional" explain="{{ phrase('bb_code_tag_will_work_with_and_without_option_provided') }}">
					{{ phrase('optional') }}
				</xf:option>
			</xf:radiorow>

			<xf:codeeditorrow name="replace_html" value="{$bbCode.replace_html}"
				mode="html" data-line-wrapping="true"
				readonly="{{ !$bbCode.canEdit() }}"
				class="codeEditor--autoSize"
				label="{{ phrase('html_replacement') }}"
				explain="{{ phrase('use_option_and_text_in_custom_bb_code') }}" />

			<xf:macro id="helper_callback_fields::callback_row"
				arg-label="{{ phrase('php_callback') }}"
				arg-explain="{{ phrase('custom_bb_code_callback_will_receive_parameters') }}"
				arg-data="{$bbCode}"
				arg-readOnly="{{ !$bbCode.canEdit() }}" />

			<hr class="formRowSep" />

			<xf:radiorow name="editor_icon_type" value="{$bbCode}"
				readonly="{{ !$bbCode.canEdit() }}"
				label="{{ phrase('editor_icon') }}">

				<xf:option value="">{{ phrase('none') }}</xf:option>
				<xf:option value="fa" label="{{ phrase('font_awesome_icon') }}">
					<xf:textbox name="editor_icon_fa"
						readonly="{{ !$bbCode.canEdit() }}"
						value="{{ $bbCode.editor_icon_type == 'fa' ? $bbCode.editor_icon_value : '' }}"
						maxlength="{{ max_length($bbCode, 'editor_icon_value') }}"
						dir="ltr" />
				</xf:option>
				<xf:option value="image" label="{{ phrase('image') }}">
					<xf:assetupload name="editor_icon_image" asset="editor_icons"
						readonly="{{ !$bbCode.canEdit() }}"
						value="{{ $bbCode.editor_icon_type == 'image' ? $bbCode.editor_icon_value : '' }}"
						maxlength="{{ max_length($bbCode, 'editor_icon_value') }}" />
				</xf:option>
			</xf:radiorow>

			<hr class="formRowSep" />

			<xf:textarearow name="example" value="{$bbCode}" autosize="true"
				readonly="{{ !$bbCode.canEdit() }}"
				label="{{ phrase('example_usage') }}"
				explain="{{ phrase('if_provide_example_bb_code_appear_on_bb_code_help_page') }}" />

			<xf:textarearow name="output" value="{$bbCode}" autosize="true"
				readonly="{{ !$bbCode.canEdit() }}"
				label="{{ phrase('example_output') }}"
				explain="{{ phrase('control_how_example_appear_on_bb_code_help_page') }}" />

			<hr class="formRowSep" />

			<xf:checkboxrow>
				<xf:option name="allow_signature" value="1" selected="$bbCode.allow_signature">
					{{ phrase('allow_this_bb_code_in_signatures') }}
				</xf:option>
			</xf:checkboxrow>

			<xf:checkboxrow>
				<xf:option name="active" value="1" selected="$bbCode.active"
					hint="{{ ($xf.development AND $bbCode.addon_id) ? phrase('field_value_maintained_addon_upgrade_explain') : '' }}">
					{{ phrase('enabled') }}
				</xf:option>
			</xf:checkboxrow>

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$bbCode.addon_id}" />
		</div>

		<h3 class="block-formSectionHeader">
			<span class="collapseTrigger collapseTrigger--block" data-xf-click="toggle" data-target="< :up:next">
				<span class="block-formSectionHeader-aligner">{{ phrase('advanced_options') }}</span>
			</span>
		</h3>
		<div class="block-body block-body--collapsible">
			<xf:textarearow name="option_regex" value="{$bbCode}" code="true" autosize="true"
				readonly="{{ !$bbCode.canEdit() }}"
				label="{{ phrase('option_match_regular_expression') }}"
				explain="{{ phrase('if_provided_tag_only_be_valid_if_option_matches_regex') }}" />

			<xf:checkboxrow label="{{ phrase('within_this_bb_code') }}" readonly="{{ !$bbCode.canEdit() }}">
				<xf:option name="disable_smilies" value="1" selected="$bbCode.disable_smilies">
					{{ phrase('disable_smilies') }}
				</xf:option>
				<xf:option name="disable_nl2br" value="1" selected="$bbCode.disable_nl2br">
					{{ phrase('disable_line_break_conversion') }}
				</xf:option>
				<xf:option name="disable_autolink" value="1" selected="$bbCode.disable_autolink">
					{{ phrase('disable_auto_linking') }}
				</xf:option>
				<xf:option name="plain_children" value="1" selected="$bbCode.plain_children">
					{{ phrase('stop_parsing_bb_code') }}
				</xf:option>
			</xf:checkboxrow>

			<xf:checkboxrow readonly="{{ !$bbCode.canEdit() }}">
				<xf:option name="allow_empty" value="1" selected="$bbCode.allow_empty"
					label="{{ phrase('display_html_replacement_when_empty') }}"
					explain="{{ phrase('if_selected_replacement_html_displayed_no_text_inside_bb_code') }}" />
			</xf:checkboxrow>

			<xf:numberboxrow name="trim_lines_after" value="{$bbCode}"
				readonly="{{ !$bbCode.canEdit() }}"
				label="{{ phrase('trim_line_breaks_after') }}"
				explain="{{ phrase('if_tag_is_block_level_may_want_to_ignore_line_breaks') }}" />

			<hr class="formRowSep" />

			<xf:codeeditorrow name="replace_html_email" value="{$bbCode.replace_html_email}"
				mode="html" data-line-wrapping="true"
				readonly="{{ !$bbCode.canEdit() }}"
				class="codeEditor--autoSize"
				label="{{ phrase('html_email_replacement') }}"
				explain="{{ phrase('if_provided_bb_code_replace_html_email_desc') }}" />

			<xf:codeeditorrow name="replace_text" value="{$bbCode.replace_text}"
				mode="text" data-line-wrapping="true"
				readonly="{{ !$bbCode.canEdit() }}"
				class="codeEditor--autoSize"
				label="{{ phrase('text_replacement') }}"
				explain="{{ phrase('if_provided_bb_code_replace_text_desc') }}" />
		</div>

		<xf:submitrow sticky="true" icon="save" />
	</div>

</xf:form>]]></template>
  <template type="admin" title="bb_code_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('custom_bb_codes') }}</xf:title>

<xf:pageaction>
	<div class="buttonGroup">
		<xf:button href="{{ link('bb-codes/add') }}" icon="add">{{ phrase('add_bb_code') }}</xf:button>
		<xf:button href="{{ link('bb-codes/import') }}" icon="import" overlay="true" />
		<xf:if is="$bbCodes is not empty">
			<xf:button href="{{ link('bb-codes', null, {'export': ($exportView ? '' : '1')}) }}" icon="export" />
		</xf:if>
	</div>
</xf:pageaction>

<xf:if is="$bbCodes is not empty">
	<xf:form action="{{ link(($exportView ? 'bb-codes/export' : 'bb-codes/toggle')) }}"
		ajax="{{ $exportView ? false : true }}" class="block">

		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="bb-codes" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$bbCodes" value="$bbCode">
						<xf:datarow>
							<xf:if is="$exportView">
								<xf:toggle name="export[]" value="{$bbCode.bb_code_id}"
									disabled="{{ $bbCode.addon_id ? true : false }}"
									tooltip="{{ $bbCode.addon_id ? phrase('bb_codes_for_addon_not_exported_independently') : '' }}" />
							</xf:if>
							<xf:main href="{{ $exportView ? null : link('bb-codes/edit', $bbCode) }}">
								<xf:label>{$bbCode.title}</xf:label>
								<xf:hint>[{$bbCode.bb_code_id}]</xf:hint>
								<xf:explain>{$bbCode.description}</xf:explain>
							</xf:main>
							<xf:if is="!$exportView">
								<xf:toggle name="active[{$bbCode.bb_code_id}]" selected="$bbCode.active"
									class="dataList-cell--separated" submit="true"
									tooltip="{{ phrase('enable_disable_x', {'title': '[' . $bbCode.bb_code_id . ']'}) }}" />
								<xf:delete href="{{ link('bb-codes/delete', $bbCode) }}" />
							</xf:if>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer block-footer--split">
				<span class="block-footer-counter">{{ display_totals($bbCodes) }}</span>
				<xf:if is="$exportView">
					<span class="block-footer-select"><xf:checkbox standalone="true"><xf:option check-all="< .block-container" label="{{ phrase('select_all') }}" /></xf:checkbox></span>
					<span class="block-footer-controls"><xf:button type="submit" icon="export" /></span>
				</xf:if>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="bb_code_media_site_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$site.isInsert()">
	<xf:title>{{ phrase('add_bb_code_media_site') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_bb_code_media_site:') }} {$site.site_title}</xf:title>
</xf:if>

<xf:pageaction if="$site.isUpdate() AND $site.canEdit()">
	<xf:button href="{{ link('bb-code-media-sites/delete', $site) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:if is="!$site.canEdit()">
	<div class="blockMessage blockMessage--important blockMessage--iconic">
		{{ phrase('only_limited_fields_in_item_may_be_edited') }}
	</div>
</xf:if>

<xf:form action="{{ link('bb-code-media-sites/save', $site) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="media_site_id" value="{$site}"
				readonly="{{ $site.exists() ? true : false }}"
				label="{{ phrase('media_site_id') }}"
				explain="{{ phrase('this_will_be_used_to_identify_media_site_to_load_in_bb_code') }}"
				dir="ltr" />

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$site.addon_id}" />

			<hr class="formRowSep" />

			<xf:textboxrow name="site_title" value="{$site}"
				readonly="{{ !$site.canEdit() }}"
				label="{{ phrase('site_title') }}" />

			<xf:textboxrow name="site_url" value="{$site}"
				readonly="{{ !$site.canEdit() }}"
				label="{{ phrase('site_url') }}"
				dir="ltr" />

			<xf:checkboxrow>
				<xf:option name="supported" value="1" selected="$site.supported">
					{{ phrase('show_this_site_on_list_of_supported_sites_shown_to_visitors') }}
				</xf:option>
			</xf:checkboxrow>

			<xf:checkboxrow>
				<xf:option name="active" value="1" selected="$site.active"
					hint="{{ ($xf.development AND $site.addon_id) ? phrase('field_value_maintained_addon_upgrade_explain') : '' }}">
					{{ phrase('enabled') }}
				</xf:option>
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<xf:textarearow name="match_urls" value="{$site}" autosize="true" code="true"
				readonly="{{ !$site.canEdit() }}"
				label="{{ phrase('match_urls') }}"
				explain="{{ phrase('you_may_use_star_as_wildcard_and_id_to_point_to_media_id') }}"
				dir="ltr" />

			<xf:codeeditorrow name="embed_html" value="{{ $site.exists() ? $site.MasterTemplate.template : '' }}"
				mode="html"
				readonly="{{ !$site.canEdit() }}"
				hint="{{ $site.isUpdate() ? $site.getTemplateName() : '' }}"
				class="codeEditor--short"
				label="{{ phrase('embed_template') }}">
				<xf:explain>
					{{ phrase('enter_id_where_you_want_user_entered_media_id_to_be_used') }}<br />
					<br />
					<xf:if is="$site.canEdit()">
						{{ phrase('editing_master_embed_html_explain') }}
					<xf:else />
						{{ phrase('unable_edit_master_embed_html_explain') }}
					</xf:if>
				</xf:explain>
			</xf:codeeditorrow>
		</div>

		<h3 class="block-formSectionHeader">
			<span class="collapseTrigger collapseTrigger--block" data-xf-click="toggle" data-target="< :up:next">
				<span class="block-formSectionHeader-aligner">{{ phrase('oembed_options') }}</span>
			</span>
		</h3>
		<div class="block-body block-body--collapsible">
			<xf:checkboxrow explain="{{ phrase('oembed_explain') }}" readonly="{{ !$site.canEdit() }}">
				<xf:option name="oembed_enabled" selected="{$site.oembed_enabled}">{{ phrase('use_oembed') }}</xf:option>
			</xf:checkboxrow>

			<xf:textboxrow name="oembed_api_endpoint" value="{$site}"
				readonly="{{ !$site.canEdit() }}"
				label="{{ phrase('oembed_api_endpoint') }}"
				dir="ltr" />

			<xf:textboxrow name="oembed_url_scheme" value="{$site}"
				label="{{ phrase('oembed_url_scheme') }}"
				readonly="{{ !$site.canEdit() }}"
				explain="{{ phrase('oembed_url_scheme_explain') }}"
				dir="ltr" />

			<xf:checkboxrow
				explain="{{ phrase('oembed_retain_scripts_explain') }}">
				<xf:option name="oembed_retain_scripts" selected="{$site.oembed_retain_scripts}"
					readonly="{{ !$site.canEdit() }}"
					label="{{ phrase('oembed_retain_scripts') }}" />
			</xf:checkboxrow>
		</div>

		<h3 class="block-formSectionHeader">
			<span class="collapseTrigger collapseTrigger--block" data-xf-click="toggle" data-target="< :up:next">
				<span class="block-formSectionHeader-aligner">{{ phrase('advanced_options') }}</span>
			</span>
		</h3>
		<div class="block-body block-body--collapsible">
			<xf:checkboxrow label="{{ phrase('regular_expression_matching') }}" readonly="{{ !$site.canEdit() }}">
				<xf:option name="match_is_regex" selected="$site.match_is_regex"
					label="{{ phrase('match_urls_are_regex') }}" />
				<xf:explain>{{ phrase('match_urls_are_regex_explain') }}</xf:explain>
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<xf:formrow rowtype="input"
				label="{{ phrase('match_url_callback') }}"
				explain="{{ phrase('match_url_callback_explain') }}">
				<xf:macro id="helper_callback_fields::callback_fields"
					arg-namePrefix="match_callback"
					arg-data="{$site}"
					arg-readOnly="{{ !$site.canEdit() }}"/>
			</xf:formrow>

			<hr class="formRowSep" />

			<xf:formrow rowtype="input"
				label="{{ phrase('embed_html_callback') }}"
				explain="{{ phrase('embed_html_callback_explain') }}">
				<xf:macro id="helper_callback_fields::callback_fields"
					arg-namePrefix="embed_html_callback"
					arg-data="{$site}"
					arg-readOnly="{{ !$site.canEdit() }}"/>
			</xf:formrow>

			<hr class="formRowSep" />

			<xf:textarearow name="cookie_third_parties" value="{$site.cookie_third_parties}"
				readonly="{{ !$site.canEdit() }}"
				label="{{ phrase('cookie_third_parties') }}"
				explain="{{ phrase('cookie_third_parties_explain') }}" />
		</div>

		<xf:submitrow sticky="true" icon="save">
			<xf:html>
				<xf:button type="submit" icon="save" name="exit">{{ phrase('save_and_exit') }}</xf:button>
			</xf:html>
		</xf:submitrow>
	</div>
</xf:form>]]></template>
  <template type="admin" title="bb_code_media_site_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('bb_code_media_sites') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('bb-code-media-sites/add') }}" icon="add">{{ phrase('add_bb_code_media_site') }}</xf:button>
</xf:pageaction>

<xf:if is="$sites is not empty">
	<xf:form action="{{ link('bb-code-media-sites/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="help-pages" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$sites" value="$site">
						<xf:datarow>
							<xf:main hash="{$site.media_site_id}"
								href="{{ link('bb-code-media-sites/edit', $site) }}" label="{$site.site_title}"
								hint="{$site.site_url}" />
							<xf:toggle name="active[{$site.media_site_id}]" selected="$site.active"
								class="dataList-cell--separated" submit="true"
								tooltip="{{ phrase('enable_disable_x', {'title': $site.site_title}) }}" />
							<xf:if is="{$site.site_url}">
								<xf:action href="{$site.site_url}">{{ phrase('visit_site') }}</xf:action>
							<xf:else />
								<xf:cell class="dataList-cell--alt">&nbsp;</xf:cell>
							</xf:if>
							<xf:delete href="{{ link('bb-code-media-sites/delete', $site) }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($sites) }}</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="button_manager.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[.fr-toolbar .fr-command.fr-btn + div.hr
{
	float: left;
	width: 100%;
	height: 11px;
	position: relative;

	&:before
	{
		content: '';
		display: block;
		position: absolute;
		top: 5px;
		bottom: 5px;
		left: 5px;
		right: 5px;
		background: @xf-borderColorLight;
	}
}

.toolbar--dragTarget
{
	display: flex;
	min-height: 40px;
	border: solid 1px @xf-borderColorLight;
	border-radius: @xf-borderRadiusMedium;
	padding: @xf-paddingSmall;

	.fr-btn
	{
		position: relative;
		display: inline-flex;
		width: 32px;
		height: 32px;
		align-items: center;
		justify-content: center;

		color: mix(@xf-textColor, @xf-textColorDimmed);
		border-radius: @xf-borderRadiusMedium;

		&.fr-dropdown
		{
			&:after
			{
				position: absolute;
				width: 0;
				height: 0;
				border-left: 4px solid transparent;
				border-right: 4px solid transparent;
				border-top: 4px solid @xf-editorButtonColor;
				right: 0;
				top: 14px;
				.m-transition(all, 0.3s);
				content: "";
			}
		}

		&.fr-btn-text
		{
			height: 35px;
			align-items: center;

			span:first-of-type
			{
				user-select: none;
			}
		}

		svg
		{
			width: 24px;
			height: 24px;
		}

		&[data-cmd="|"]
		{
			background: @xf-contentAltBg;
		}

		&:hover
		{
			color: @xf-textColor;
			background-color: @xf-contentAltBg;
		}
	}
}


.block-row--buttonGroup
{
	display: flex;

	.block-row--buttons
	{
		flex: 1 1 auto;
	}

	.block-row--buttonMenu
	{
		flex: 0 0 auto;

		.button.menuTrigger
		{
			margin-left: @xf-paddingLarge;
			padding-top: 10px;
			padding-bottom: 10px;
		}
	}
}

// mixin to generate 15x 'buttonsVisible' rules, for up to 15 visible buttons before the 'more' control
.bvRules (@i) when (@i >= 0)
{
	@j: (@i + 1);
	.toolbar-option--buttonsVisible-@{i}
	{
		.fr-btn:nth-child(n + @{j})
		{
			opacity: .4;
		}
	}
	.bvRules((@i - 1));
}
.bvRules(15);

// left and right aligned toolbar options
.toolbar-option--align-right { justify-content: flex-end }

// we want to hide the attach button, as it is non-functional
.js-attachButton
{
	display: none !important;
}

{{ include('public:dragula.less') }}]]></template>
  <template type="admin" title="captcha_question_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$question.isInsert()">
	<xf:title>{{ phrase('add_question') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_question:') }} {$question.question}</xf:title>
</xf:if>

<xf:pageaction if="$question.isUpdate()">
	<xf:button href="{{ link('captcha-questions/delete', $question) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('captcha-questions/save', $question) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="question" value="{$question}"
				label="{{ phrase('question') }}" />

			<xf:formrow rowtype="input"
				label="{{ phrase('correct_answers') }}"
				explain="{{ phrase('captcha_question_answers_explain') }}">

				<ul class="inputList">
					<xf:foreach loop="$question.answers" value="$answer">
						<li class="u-inputSpacer">
							<xf:textbox name="answers[]" value="{$answer}" placeholder="{{ phrase('answer...') }}" />
						</li>
					</xf:foreach>
					<li data-xf-init="field-adder">
						<xf:textbox name="answers[]" value="" placeholder="{{ phrase('answer...') }}" />
					</li>
				</ul>
			</xf:formrow>

			<hr class="formRowSep" />

			<xf:checkboxrow>
				<xf:option name="active" value="1" selected="$question.active"
					label="{{ phrase('question_is_active') }}"
					hint="{{ phrase('inactive_questions_are_not_presented_to_visitors') }}" />
			</xf:checkboxrow>
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="captcha_question_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('question_and_answer_captchas') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('captcha-questions/add') }}" icon="add">{{ phrase('add_question') }}</xf:button>
</xf:pageaction>

<xf:if is="$questions is not empty">
	<xf:form action="{{ link('captcha-questions/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="questions" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$questions" value="$question">
						<xf:datarow>
							<xf:main hash="{$question.captcha_question_id}"
								href="{{ link('captcha-questions/edit', $question) }}"
								label="{$question.question}" />
							<xf:toggle name="active[{$question.captcha_question_id}]" selected="$question.active"
								class="dataList-cell--separated" submit="true"
								tooltip="{{ phrase('enable_disable_x', {'title': $question.question}) }}" />
							<xf:delete href="{{ link('captcha-questions/delete', $question) }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($questions) }}</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="category_delete" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('categories/delete', $node) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				<strong><a href="{{ link('categories/edit', $node) }}">{$node.title}</a></strong>
			</xf:inforow>

			<xf:macro id="helper_node_delete_children::delete_row" arg-node="{$node}" arg-nodeTree="{$nodeTree}" />
		</div>
		<xf:submitrow rowtype="{{ !$node.hasChildren() ? 'simple' : '' }}" icon="delete" />
	</div>	<xf:redirect />
</xf:form>]]></template>
  <template type="admin" title="category_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$category.isInsert()">
	<xf:title>{{ phrase('add_category') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_category:') }} {$node.title}</xf:title>
</xf:if>

<xf:pageaction if="$category.isUpdate()">
	<xf:button href="{{ link('categories/delete', $node) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('categories/save', $node) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:macro id="node_edit_macros::title" arg-node="{$node}" />
			<xf:macro id="node_edit_macros::description" arg-node="{$node}" />

			<hr class="formRowSep" />
			<xf:macro id="node_edit_macros::node_name" arg-node="{$node}"  arg-additionalExplain="{{ phrase('only_relevant_if_create_pages_for_categories_option_is_enabled', {'link': link('options/categoryOwnPage/view')}) }}" />
			<xf:macro id="node_edit_macros::position" arg-node="{$node}" arg-nodeTree="{$nodeTree}" />
			<xf:macro id="node_edit_macros::navigation" arg-node="{$node}" arg-navChoices="{$navChoices}" />
			<xf:macro id="node_edit_macros::style" arg-node="{$node}" arg-styleTree="{$styleTree}" />
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="category_tree_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="page_action" arg-linkPrefix="!">
	<xf:pageaction>
		<div class="buttonGroup">
			<xf:button href="{{ link($linkPrefix . '/add') }}" icon="add">{{ phrase('add_category') }}</xf:button>
			<xf:button href="{{ link($linkPrefix . '/sort') }}" icon="sort" overlay="true" />
		</div>
	</xf:pageaction>
</xf:macro>

<xf:comment><!--
	Note that this is a global macro, so scope is inherited into it. The expectation is that this macro will generally
	be close to the only thing in a template so this makes the macro work similarly to an include.
--></xf:comment>
<xf:macro id="category_list" global="true"
	arg-categoryTree="!"
	arg-filterKey="!"
	arg-linkPrefix="!"
	arg-idKey="category_id"
	arg-parentIdKey="parent_category_id">

	<xf:if is="$categoryTree.countChildren()">
		<div class="block">
			<div class="block-outer">
				<xf:macro id="filter_macros::quick_filter" arg-key="{$filterKey}" arg-class="block-outer-opposite" />
			</div>
			<div class="block-container">
				<div class="block-body">
					<xf:datalist>
						<xf:foreach loop="$categoryTree.getFlattened(0)" value="$treeEntry">
							<xf:set var="$category" value="{$treeEntry.record}" />
							<xf:datarow>
								<xf:cell class="dataList-cell--link dataList-cell--main" hash="{$category.{$idKey}}">
									<a href="{{ link($linkPrefix . '/edit', $category) }}">
										<div class="u-depth{$treeEntry.depth}">
											<div class="dataList-mainRow">{$category.title}</div>
										</div>
									</a>
								</xf:cell>
								<xf:if is="$permissionContentType">
									<xf:action
										class="{{ {$customPermissions.{$category.{$idKey}}} ? 'dataList-cell--highlighted' : '' }}"
										href="{{ link($linkPrefix . '/permissions', $category) }}">
										{{ phrase('permissions') }}
									</xf:action>
								</xf:if>
								<xf:popup class="dataList-cell--action u-hideMedium"
									label="{{ phrase('add...') }}">

									<div class="menu" data-menu="menu" aria-hidden="true">
										<div class="menu-content">
											<h3 class="menu-header">{{ phrase('add...') }}</h3>
											<a href="{{ link($linkPrefix . '/add', null, { {$parentIdKey}: $category.{$parentIdKey} }) }}" class="menu-linkRow">{{ phrase('sibling') }}</a>
											<a href="{{ link($linkPrefix . '/add', null, { {$parentIdKey}: $category.{$idKey} }) }}" class="menu-linkRow">{{ phrase('child') }}</a>
										</div>
									</div>
								</xf:popup>
								<xf:delete href="{{ link($linkPrefix . '/delete', $category) }}" />
							</xf:datarow>
						</xf:foreach>
					</xf:datalist>
				</div>
			</div>
		</div>
	<xf:else />
		<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
	</xf:if>
</xf:macro>

<xf:macro id="sortable_form" arg-categoryTree="!" arg-linkPrefix="!">
	<xf:macro id="public:nestable_macros::setup" />

	<xf:form action="{{ link($linkPrefix . '/sort') }}" class="block" ajax="true">
		<div class="block-container">
			<div class="block-body">
				<div class="nestable-container" data-xf-init="nestable">
					<xf:macro id="sortable_list" arg-children="{$categoryTree}" />
					<xf:hiddenval name="categories" value="" />
				</div>
			</div>
			<xf:submitrow icon="save" rowtype="simple" />
		</div>
	</xf:form>
</xf:macro>

<xf:macro id="sortable_list" arg-children="!">
	<ol class="nestable-list">
		<xf:foreach loop="$children" key="$id" value="$child">
			<xf:macro id="sortable_list_entry" arg-child="{$child}" arg-children="{$child.children}" />
		</xf:foreach>
	</ol>
</xf:macro>

<xf:macro id="sortable_list_entry" arg-child="!" arg-children="!">
	<li class="nestable-item" data-id="{$child.id}">
		<div class="nestable-handle" aria-label="{{ phrase('drag_handle')|for_attr }}"><xf:fa icon="fa-bars" /></div>
		<div class="nestable-content">{$child.record.title}</div>
		<xf:if is="$child.children is not empty">
			<xf:macro id="sortable_list" arg-children="{$child.children}" />
		</xf:if>
	</li>
</xf:macro>

<xf:macro id="parent_category_select_row"
	arg-category="!"
	arg-categoryTree="!"
	arg-idKey="category_id"
	arg-parentIdKey="parent_category_id">

	<xf:selectrow name="{$parentIdKey}" value="{$category}"
		label="{{ phrase('parent_category') }}">

		<xf:option value="0">{{ phrase('(none)') }}</xf:option>
		<xf:foreach loop="$categoryTree.getFlattened(0)" value="$treeEntry">
			<xf:option value="{$treeEntry.record.{$idKey}}">{{ repeat('--', $treeEntry.depth) }} {$treeEntry.record.title}</xf:option>
		</xf:foreach>
	</xf:selectrow>
</xf:macro>

<xf:macro id="category_delete_form" arg-linkPrefix="!" arg-category="!">
	<xf:form action="{{ link($linkPrefix . '/delete', $category) }}" class="block" ajax="true">

		<div class="block-container">
			<div class="block-body">
				<xf:inforow rowtype="confirm">
					{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
					<strong><a href="{{ link($linkPrefix . '/edit', $category) }}">{$category.title}</a></strong>
				</xf:inforow>

				<xf:if is="$category.hasChildren()">
					<xf:radiorow name="child_nodes_action">
						<xf:option value="move" selected="true">{{ phrase('move_this_categorys_children_to_its_parent') }}</xf:option>
						<xf:option value="delete">{{ phrase('delete_this_categorys_children') }} </xf:option>
					</xf:radiorow>
				</xf:if>
			</div>
			<xf:submitrow rowtype="{{ !$category.hasChildren() ? 'simple' : '' }}" icon="delete" />
		</div>
		<xf:redirect />

	</xf:form>
</xf:macro>]]></template>
  <template type="admin" title="class_extension_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$extension.isInsert()">
	<xf:title>{{ phrase('add_extension') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_extension:') }} {$extension.to_class}</xf:title>
</xf:if>

<xf:pageaction if="$extension.isUpdate()">
	<xf:button href="{{ link('class-extensions/delete', $extension) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('class-extensions/save', $extension) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="from_class" value="{$extension}"
				label="{{ phrase('base_class_name') }}"
				dir="ltr" />

			<xf:textboxrow name="to_class" value="{$extension}"
				label="{{ phrase('extension_class_name') }}"
				dir="ltr" />

			<xf:numberboxrow name="execute_order" value="{$extension}"
				label="{{ phrase('execution_order') }}" />

			<xf:checkboxrow>
				<xf:option name="active" selected="$extension.active">{{ phrase('enable_extension') }}</xf:option>
			</xf:checkboxrow>

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$extension.addon_id}" />
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>

</xf:form>]]></template>
  <template type="admin" title="class_extension_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('class_extensions') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('class-extensions/add') }}" icon="add">{{ phrase('add_class_extension') }}</xf:button>
</xf:pageaction>

<xf:if is="$extensions is not empty">
	<xf:form action="{{ link('class-extensions/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="extensions" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list" data-trigger-width="medium">
					<thead>
						<xf:datarow rowtype="header">
							<xf:cell>{{ phrase('base_class_name') }}</xf:cell>
							<xf:cell>{{ phrase('extension_class_name') }}</xf:cell>
							<xf:cell>&nbsp;</xf:cell>
							<xf:cell>&nbsp;</xf:cell>
						</xf:datarow>
					</thead>
					<xf:foreach loop="$extensions" key="$addOnId" value="$addOnExtensions">
						<tbody class="dataList-rowGroup">
							<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
								<xf:cell colspan="4">
									<xf:if is="{{ {$addOns.{$addOnId}} }}">
										{$addOns.{$addOnId}.title}
									<xf:else />
										{{ phrase('custom_class_extensions') }}
									</xf:if>
								</xf:cell>
							</xf:datarow>
							<xf:foreach loop="$addOnExtensions" value="$extension">
								<xf:datarow>
									<xf:cell hash="{$extension.extension_id}"
										href="{{ link('class-extensions/edit', $extension) }}"
										dir="auto">
										{$extension.from_class|split_long(25)}
									</xf:cell>
									<xf:cell href="{{ link('class-extensions/edit', $extension) }}" dir="auto">
										{$extension.to_class|split_long(25)}
									</xf:cell>
									<xf:toggle name="active[{$extension.extension_id}]" selected="$extension.active"
										class="dataList-cell--separated" submit="true"
										tooltip="{{ phrase('enable_disable_x', {'title': $extension.from_class}) }}" />
									<xf:delete href="{{ link('class-extensions/delete', $extension) }}" />
								</xf:datarow>
							</xf:foreach>
						</tbody>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($totalExtensions, $total) }}</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="code_event.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[.eventDescription
{
	font-size: @xf-fontSizeSmall;
	color: @xf-textColorDimmed;

	code, pre
	{
		font-family: @xf-fontFamilyCode;
		direction: ltr;
	}

	code
	{
		color: @xf-textColor;
		font-weight: @xf-fontWeightHeavy;
		white-space: normal;

		em
		{
			font-weight: @xf-fontWeightNormal;
			font-style: normal;
			color: @xf-textColorMuted;
		}
	}

	pre
	{
		color: @xf-textColor;
		overflow: auto;
	}
}]]></template>
  <template type="admin" title="code_event_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$event.isInsert()">
	<xf:title>{{ phrase('add_code_event') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_code_event:') }} {$event.event_id}</xf:title>
</xf:if>

<xf:pageaction if="$event.isUpdate()">
	<xf:button href="{{ link('code-events/delete', $event) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('code-events/save', $event) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="event_id" value="{$event}"
				label="{{ phrase('event_id') }}"
				dir="ltr" />

			<xf:codeeditorrow name="description" value="{$event.description}" mode="html"
				label="{{ phrase('description') }}"
				hint="{{ phrase('you_may_use_html') }}" />

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$event.addon_id}" />
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>

</xf:form>]]></template>
  <template type="admin" title="code_event_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('code_events') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('code-events/add') }}" icon="add">{{ phrase('add_code_event') }}</xf:button>
</xf:pageaction>

<xf:if is="$events is not empty">
	<xf:form action="code-events/toggle" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="code-events" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$events" value="$event">
						<xf:datarow
							hash="{$event.event_id}"
							href="{{ link('code-events/edit', $event) }}"
							label="{$event.event_id}"
							delete="{{ link('code-events/delete', $event) }}"
							dir="auto" />
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($events) }}</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="code_event_listener_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$listener.isInsert()">
	<xf:title>{{ phrase('add_code_event_listener') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_code_event_listener:') }} {$listener.event_id}</xf:title>
</xf:if>

<xf:pageaction if="$listener.isUpdate()">
	<xf:button href="{{ link('code-events/listeners/delete', $listener) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:css src="code_event.less" />

<xf:form action="{{ link('code-events/listeners/save', $listener) }}" ajax="true" class="block">

	<div class="block-container">
		<div class="block-body">
			<xf:selectrow name="event_id" value="{$listener}"
				label="{{ phrase('listen_to_event') }}"
				data-xf-init="desc-loader"
				data-desc-url="{{ link('code-events/get-description') }}">

				<xf:option />
				<xf:options source="{$events}" />
				<xf:html>
					<div class="js-descTarget eventDescription" dir="ltr">{$listener.Event.description|raw}</div>
				</xf:html>
			</xf:selectrow>

			<xf:textboxrow name="hint" value="{$listener}"
				label="{{ phrase('event_hint') }}"
				explain="{{ phrase('certain_events_take_hints_that_can_limit_when_listener_is_run') }}"
				dir="ltr" />

			<hr class="formRowSep" />

			<xf:formrow rowtype="input"
				label="{{ phrase('execute_callback') }}">
				<xf:macro id="helper_callback_fields::callback_fields" arg-data="{$listener}" />
			</xf:formrow>

			<xf:numberboxrow name="execute_order" value="{$listener}"
				label="{{ phrase('callback_execution_order') }}"
				explain="{{ phrase('code_event_execution_order_desc') }}" />

			<xf:checkboxrow>
				<xf:option name="active" selected="$listener.active">{{ phrase('enable_callback_execution') }}</xf:option>
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<xf:textboxrow name="description" value="{$listener}"
				label="{{ phrase('description') }}" />

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$listener.addon_id}" />

			<xf:hiddenval name="event_listener_id">{$listener.event_listener_id}</xf:hiddenval>
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="code_event_listener_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('code_event_listeners') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('code-events/listeners/add') }}" icon="add">{{ phrase('add_code_event_listener') }}</xf:button>
</xf:pageaction>

<xf:if is="$listeners is not empty">
	<xf:form action="{{ link('code-events/listeners/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="listeners" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$listeners" key="$addOnId" value="$listenerEntity">
						<tbody class="dataList-rowGroup">
							<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
								<xf:cell colspan="3">
									<xf:if is="{{ {$addOns.{$addOnId}} }}">
										{$addOns.{$addOnId}.title}
									<xf:else />
										{{ phrase('custom_event_listeners') }}
									</xf:if>
								</xf:cell>
							</xf:datarow>
							<xf:foreach loop="$listenerEntity" value="$listener">
								<xf:datarow>
									<xf:main hash="{$listener.event_listener_id}"
										href="{{ link('code-events/listeners/edit', $listener) }}"
										label="{$listener.event_id}"
										explain="{$listener.description}" />
									<xf:toggle name="active[{$listener.event_listener_id}]" selected="$listener.active"
										class="dataList-cell--separated" submit="true"
										tooltip="{{ phrase('enable_disable_x', {'title': $listener.event_id}) }}" />
									<xf:delete href="{{ link('code-events/listeners/delete', $listener) }}" />
								</xf:datarow>
							</xf:foreach>
						</tbody>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($totalListeners) }}</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="connected_account_provider_apple" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:inforow>{{ phrase('configure_private_email_relay_service') }}</xf:inforow>

<xf:textboxrow name="options[team_id]" value="{$options.team_id}"
	label="{{ phrase('team_id') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('10_character_id_that_is_associated_with_your_apple_developer_membership') }}" />

<xf:textboxrow name="options[services_id]" value="{$options.services_id}"
	label="{{ phrase('services_id') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('services_id_should_have_sign_in_with_apple_service_enabled_and_be') }}" />

<xf:textboxrow name="options[key_id]" value="{$options.key_id}"
	label="{{ phrase('key_id') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('key_id_should_have_sign_in_with_apple_service_enabled_and_be') }}" />

<xf:if is="$options.key_file">
	<xf:formrow label="{{ phrase('key_file') }}">{{ phrase('key_file_already_exists_for_this_provider') }}</xf:formrow>
</xf:if>

<xf:uploadrow name="options[key]" accept=".p8,.txt"
	hint="{{ $options.key_file ? '' : phrase('required') }}"
	label="{{ $options.key_file ? phrase('replace_key_file') : phrase('key_file') }}"
	explain="{{ phrase('this_should_be_key_file_associated_to_key_id_above') }}" />]]></template>
  <template type="admin" title="connected_account_provider_deactivate" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('connected-accounts/deactivate', $provider) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_deactivate_following_provider:') }}
				<strong><a href="{{ link('connected-accounts/edit', $provider) }}">{$provider.title}</a></strong>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('deactivate') }}" rowtype="simple" icon="delete" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="connected_account_provider_edit" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('edit_provider:') }} {$provider.title}</xf:title>
<xf:description>{$provider.description}</xf:description>

<xf:pageaction if="$provider.isUsable()">
	<xf:button href="{{ link('connected-accounts/deactivate', $provider) }}" icon="delete" overlay="true">
		{{ phrase('deactivate') }}
	</xf:button>
</xf:pageaction>

<xf:form action="{{ link('connected-accounts/save', $provider) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			{{ $provider.renderConfig($provider)|raw }}
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="connected_account_provider_facebook" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:textboxrow name="options[app_id]" value="{$options.app_id}"
	label="{{ phrase('app_id') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('con_acc_facebook_app_id_explain') }}" />

<xf:textboxrow name="options[app_secret]" value="{$options.app_secret}"
	label="{{ phrase('app_secret') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('con_acc_facebook_app_secret_explain') }}" />]]></template>
  <template type="admin" title="connected_account_provider_github" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:textboxrow name="options[client_id]" value="{$options.client_id}"
	label="{{ phrase('client_id') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('con_acc_github_client_id_explain') }}" />

<xf:textboxrow name="options[client_secret]" value="{$options.client_secret}"
	label="{{ phrase('client_secret') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('con_acc_github_client_secret_explain') }}" />]]></template>
  <template type="admin" title="connected_account_provider_google" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:textboxrow name="options[client_id]" value="{$options.client_id}"
	label="{{ phrase('client_id') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('con_acc_google_client_id_explain') }}" />

<xf:textboxrow name="options[client_secret]" value="{$options.client_secret}"
	label="{{ phrase('client_secret') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('con_acc_google_client_secret_explain') }}" />]]></template>
  <template type="admin" title="connected_account_provider_linkedin" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:textboxrow name="options[client_id]" value="{$options.client_id}"
	label="{{ phrase('client_id') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('con_acc_linkedin_client_id_explain') }}" />

<xf:textboxrow name="options[client_secret]" value="{$options.client_secret}"
	label="{{ phrase('client_secret') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('con_acc_linkedin_client_secret_explain') }}" />]]></template>
  <template type="admin" title="connected_account_provider_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('connected_account_providers') }}</xf:title>

<div class="block">
	<div class="block-outer">
		<xf:macro id="filter_macros::quick_filter" arg-key="connected-accounts" arg-class="block-outer-opposite" />
	</div>
	<div class="block-container">
		<xf:if is="$activeProviders is not empty">
			<div class="block-body">
				<xf:datalist>
					<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
						<xf:cell colspan="3">{{ phrase('active_providers') }}</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$activeProviders" value="$provider">
						<xf:datarow label="{$provider.title}" href="{{ link('connected-accounts/edit', $provider) }}">
							<xf:if is="$provider.canBeTested()">
								<xf:action href="{{ link('connected-accounts/test', $provider) }}" overlay="true">{{ phrase('test_provider') }}</xf:action>
							<xf:else />
								<xf:cell />
							</xf:if>
							<xf:delete href="{{ link('connected-accounts/deactivate', $provider) }}" tooltip="{{ phrase('deactivate') }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
		<xf:else />
			<!--<div class="block-body block-row">{{ phrase('there_no_active_providers_yet') }}</div>-->
		</xf:if>

		<xf:if is="$inactiveProviders is not empty">
			<div class="block-body">
				<xf:datalist>
					<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
						<xf:cell>{{ phrase('inactive_providers') }}</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$inactiveProviders" value="$provider">
						<xf:datarow label="{$provider.title}" href="{{ link('connected-accounts/edit', $provider) }}" />
					</xf:foreach>
				</xf:datalist>
			</div>
		</xf:if>
		<div class="block-footer">
			<span class="block-footer-counter">{{ display_totals(count($activeProviders) + count($inactiveProviders)) }}</span>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="connected_account_provider_microsoft" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:textboxrow name="options[client_id]" value="{$options.client_id}"
	label="{{ phrase('client_id') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('con_acc_microsoft_client_id_explain') }}" />

<xf:textboxrow name="options[client_secret]" value="{$options.client_secret}"
	label="{{ phrase('client_secret') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('con_acc_microsoft_client_secret_explain') }}" />]]></template>
  <template type="admin" title="connected_account_provider_test" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('test_provider:') }} {$provider.title}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">

			{$handler.renderTest($provider, $providerData)|raw}

			<xf:if is="!$providerData">
				<xf:formrow>
					<xf:button href="{{ link('connected-accounts/perform-test', $provider, {'test': 1}) }}">
						{{ phrase('test') }}
					</xf:button>
				</xf:formrow>
				<xf:inforow>
					{{ phrase('note_to_test_provider_must_support_redirecting_to_following_url:') }}
					<div><code>{$redirectUri}</code></div>
				</xf:inforow>
			</xf:if>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="connected_account_provider_test_apple" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="!$providerData">
	<xf:macro id="connected_account_provider_test_macros::explain"
		arg-providerTitle="{$provider.title}"
		arg-keyName="{{ phrase('key_id') }}"
		arg-keyValue="{$provider.options.key_id}" />
<xf:else />
	<xf:macro id="connected_account_provider_test_macros::success" />

	<xf:macro id="connected_account_provider_test_macros::email"
		arg-email="{$providerData.email}" />
</xf:if>]]></template>
  <template type="admin" title="connected_account_provider_test_facebook" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="!$providerData">
	<xf:macro id="connected_account_provider_test_macros::explain"
		arg-providerTitle="{$provider.title}"
		arg-keyName="{{ phrase('app_id') }}"
		arg-keyValue="{$provider.options.app_id}" />
<xf:else />
	<xf:macro id="connected_account_provider_test_macros::success" />

	<xf:macro id="connected_account_provider_test_macros::display_name"
		arg-name="{$providerData.username}" />

	<xf:macro id="connected_account_provider_test_macros::email"
		arg-email="{$providerData.email}" />

	<xf:macro id="connected_account_provider_test_macros::picture"
		arg-url="{$providerData.avatar_url}" />
</xf:if>]]></template>
  <template type="admin" title="connected_account_provider_test_github" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="!$providerData">
	<xf:macro id="connected_account_provider_test_macros::explain"
		arg-providerTitle="{$provider.title}"
		arg-keyName="{{ phrase('client_id') }}"
		arg-keyValue="{$provider.options.client_id}" />
<xf:else />
	<xf:macro id="connected_account_provider_test_macros::success" />

	<xf:macro id="connected_account_provider_test_macros::display_name"
		arg-name="{$providerData.username}" />

	<xf:macro id="connected_account_provider_test_macros::picture"
		arg-url="{$providerData.avatar_url}" />
</xf:if>]]></template>
  <template type="admin" title="connected_account_provider_test_google" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="!$providerData">
	<xf:macro id="connected_account_provider_test_macros::explain"
		arg-providerTitle="{$provider.title}"
		arg-keyName="{{ phrase('client_id') }}"
		arg-keyValue="{$provider.options.client_id}" />
<xf:else />
	<xf:macro id="connected_account_provider_test_macros::success" />

	<xf:macro id="connected_account_provider_test_macros::display_name"
		arg-name="{$providerData.username}" />

	<xf:macro id="connected_account_provider_test_macros::picture"
		arg-url="{$providerData.avatar_url}" />
</xf:if>]]></template>
  <template type="admin" title="connected_account_provider_test_linkedin" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="!$providerData">
	<xf:macro id="connected_account_provider_test_macros::explain"
		arg-providerTitle="{$provider.title}"
		arg-keyName="{{ phrase('client_id') }}"
		arg-keyValue="{$provider.options.client_id}" />
<xf:else />
	<xf:macro id="connected_account_provider_test_macros::success" />

	<xf:macro id="connected_account_provider_test_macros::display_name"
		arg-name="{$providerData.username}" />

	<xf:macro id="connected_account_provider_test_macros::picture"
		arg-url="{$providerData.avatar_url}" />
</xf:if>]]></template>
  <template type="admin" title="connected_account_provider_test_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="explain" arg-providerTitle="!" arg-keyName="!" arg-keyValue="!">
	<xf:inforow>
		{{ phrase('this_will_test_x_connected_account_provider_explain', {'title': $providerTitle}) }}
	</xf:inforow>

	<xf:formrow label="{$keyName}">{$keyValue}</xf:formrow>
</xf:macro>

<xf:macro id="success">
	<xf:inforow rowtype="confirm">
		<div class="blockMessage blockMessage--success">{{ phrase('test_passed') }}</div>
	</xf:inforow>
</xf:macro>

<xf:macro id="display_name" arg-name="!" arg-secondaryName="">
	<xf:formrow label="{{ phrase('name') }}">
		{{ $name ?: phrase('n_a') }}
		<xf:if is="$secondaryName">
			{$secondaryName}
		</xf:if>
	</xf:formrow>
</xf:macro>

<xf:macro id="email" arg-email="!">
	<xf:formrow label="{{ phrase('email') }}">
		{{ $email ?: phrase('n_a') }}
	</xf:formrow>
</xf:macro>

<xf:macro id="picture" arg-url="!">
	<xf:formrow label="{{ phrase('picture') }}">
		<xf:if is="$url">
			<img src="{$url}" width="48" />
		<xf:else />
			{{ phrase('n_a') }}
		</xf:if>
	</xf:formrow>
</xf:macro>]]></template>
  <template type="admin" title="connected_account_provider_test_microsoft" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="!$providerData">
	<xf:macro id="connected_account_provider_test_macros::explain"
		arg-providerTitle="{$provider.title}"
		arg-keyName="{{ phrase('client_id') }}"
		arg-keyValue="{$provider.options.client_id}" />
<xf:else />
	<xf:macro id="connected_account_provider_test_macros::success" />

	<xf:macro id="connected_account_provider_test_macros::display_name"
		arg-name="{$providerData.username}" />

	<xf:macro id="connected_account_provider_test_macros::picture"
		arg-url="{$providerData.avatar_url}" />
</xf:if>]]></template>
  <template type="admin" title="connected_account_provider_test_twitter" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="!$providerData">
	<xf:macro id="connected_account_provider_test_macros::explain"
		arg-providerTitle="{$provider.title}"
		arg-keyName="{{ phrase('consumer_key') }}"
		arg-keyValue="{$provider.options.consumer_key}" />
<xf:else />
	<xf:macro id="connected_account_provider_test_macros::success" />

	<xf:macro id="connected_account_provider_test_macros::display_name"
		arg-name="{$providerData.username}"
		arg-secondaryName="{{ parens('@' . {$providerData.screen_name}) }}" />

	<xf:macro id="connected_account_provider_test_macros::picture"
		arg-url="{$providerData.avatar_url}" />
</xf:if>]]></template>
  <template type="admin" title="connected_account_provider_test_xenforo" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="!$providerData">
	<xf:macro template="connected_account_provider_test_macros" name="explain"
		arg-providerTitle="{$provider.title}"
		arg-keyName="{{ phrase('client_id') }}"
		arg-keyValue="{$provider.options.client_id}" />
	<xf:else />
	<xf:macro template="connected_account_provider_test_macros" name="success" />

	<xf:macro template="connected_account_provider_test_macros" name="display_name"
		arg-name="{$providerData.username}" />

	<xf:macro template="connected_account_provider_test_macros" name="picture"
		arg-url="{$providerData.avatar_url}" />
</xf:if>]]></template>
  <template type="admin" title="connected_account_provider_test_yahoo" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="!$providerData">
	<xf:macro id="connected_account_provider_test_macros::explain"
		arg-providerTitle="{$provider.title}"
		arg-keyName="{{ phrase('client_id') }}"
		arg-keyValue="{$provider.options.client_id}" />
<xf:else />
	<xf:macro id="connected_account_provider_test_macros::success" />

	<xf:macro id="connected_account_provider_test_macros::display_name"
		arg-name="{$providerData.username}" />

	<xf:macro id="connected_account_provider_test_macros::picture"
		arg-url="{$providerData.avatar_url}" />
</xf:if>]]></template>
  <template type="admin" title="connected_account_provider_twitter" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:textboxrow name="options[consumer_key]" value="{$options.consumer_key}"
	label="{{ phrase('consumer_key') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('con_acc_twitter_consumer_key_explain') }}" />

<xf:textboxrow name="options[consumer_secret]" value="{$options.consumer_secret}"
	label="{{ phrase('consumer_secret') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('con_acc_twitter_consumer_secret_explain') }}" />]]></template>
  <template type="admin" title="connected_account_provider_xenforo" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:textboxrow name="options[display_title]"
	value="{$options.display_title}"
	label="{{ phrase('display_title') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('enter_name_for_this_connected_account_provider_to_be_shown_to_users_when') }}" />

<xf:textboxrow name="options[board_url]"
	value="{$options.board_url}"
	label="{{ phrase('board_url') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('primary_url_for_your_other_xenforo_instance') }}" />

<xf:textboxrow name="options[client_id]" value="{$options.client_id}"
	label="{{ phrase('client_id') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('to_allow_users_to_sign_in_with_their_login_credentials_for_another_xenforo') }}" />

<xf:textboxrow name="options[client_secret]" value="{$options.client_secret}"
	label="{{ phrase('client_secret') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('client_secret_for_oauth2_client_that_you_created_for_this') }}" />]]></template>
  <template type="admin" title="connected_account_provider_yahoo" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:textboxrow name="options[client_id]" value="{$options.client_id}"
	label="{{ phrase('client_id') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('con_acc_yahoo_client_id_explain') }}" />

<xf:textboxrow name="options[client_secret]" value="{$options.client_secret}"
	label="{{ phrase('client_secret') }}"
	hint="{{ phrase('required') }}"
	explain="{{ phrase('con_acc_yahoo_client_secret_explain') }}" />]]></template>
  <template type="admin" title="content_type_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$field.isInsert()">
	<xf:title>{{ phrase('add_content_type_field') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_content_type_field:') }} {$field.content_type}</xf:title>
</xf:if>

<xf:pageaction if="$field.isUpdate()">
	<xf:button href="{{ link('content-types/delete', $field) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('content-types/save', $field) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="content_type" value="{$field}"
				label="{{ phrase('content_type') }}"
				dir="ltr" />
			<xf:textboxrow name="field_name" value="{$field}"
				label="{{ phrase('field') }}"
				dir="ltr" />
			<xf:textboxrow name="field_value" value="{$field}"
				label="{{ phrase('value') }}"
				dir="ltr" />

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$field.addon_id}" />
		</div>

		<xf:hiddenval name="group" value="{$group}" />

		<xf:submitrow sticky="true" icon="save">
			<xf:html>
				<xf:if is="$field.isUpdate()">
					<xf:button href="{{ link('content-types/delete', $field) }}" icon="delete" overlay="true" />
				</xf:if>
			</xf:html>
		</xf:submitrow>
	</div>
</xf:form>]]></template>
  <template type="admin" title="content_type_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('content_types') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('content-types/add') }}" icon="add">{{ phrase('add_content_type_field') }}</xf:button>
</xf:pageaction>

<xf:foreach loop="$_fieldsGrouped" key="$contentType" value="$fields">
	<div class="block">
		<div class="block-container">
			<h2 class="block-header">
				<a href="{{ link('content-types/add', [], {'content_type':$contentType}) }}" class="u-pullRight"><xf:fa icon="fa-plus-circle" /></a>
				{$contentType}
			</h2>
			<div class="block-body">
				<xf:datalist>
				<xf:foreach loop="{$fields}" value="$field">
					<xf:datarow href="{{ link('content-types/edit', $field) }}"
						label="{$field.field_name}"
						hint="{$field.field_value}"
						hash="{$field.content_type}_{$field.field_name}"
						dir="auto" />
				</xf:foreach>
				</xf:datalist>
			</div>
		</div>
	</div>
</xf:foreach>

<div class="block">
	<div class="block-container">

		<h2 class="block-tabHeader tabs hScroller" role="tablist">
			<span class="hScroller-scroll">
				<span class="tabs-tab tab tab-label">{{ phrase('group_by:') }}</span>
				<xf:if is="$group == 'field_name'">
					<a class="tabs-tab" role="tab" tabindex="0" aria-controls="content_type" href="{{ link('content-types', null, {'group':'content_type'}) }}">{{ phrase('content_types') }}</a>
					<a class="tabs-tab is-active" role="tab" tabindex="0" aria-controls="field_name">{{ phrase('type_fields') }}</a>
				<xf:else />
					<a class="tabs-tab is-active" role="tab" tabindex="0" aria-controls="content_type">{{ phrase('content_types') }}</a>
					<a class="tabs-tab" role="tab" tabindex="0" aria-controls="field_name" href="{{ link('content-types', null, {'group':'field_name'}) }}">{{ phrase('type_fields') }}</a>
				</xf:if>
			</span>
		</h2>

		<ul class="tabPanes block-body">
			<xf:if is="$group == 'field_name'">
				<li role="tabpanel" id="content_type">-</li>
				<li role="tabpanel" id="field_name" class="is-active">
					<xf:foreach loop="$typesGrouped" key="$fieldName" value="$fields">
						<xf:formrow label="{$fieldName}" rowtype="noColon boldLabel stickyLabel">
							<a href="{{ link('content-types/add', [], {'field_name':$fieldName}) }}"
								class="u-pullRight"
								data-xf-click="overlay"
								data-xf-init="tooltip"
								title="{{ phrase('add_x_content_type_field', {'type':$fieldName}) }}">
								<xf:fa icon="fa-plus-circle" />
							</a>
							<xf:macro name="field_list" arg-fields="{$fields}" arg-label="content_type" />
						</xf:formrow>
					</xf:foreach>
				</li>
			<xf:else />
				<li class="is-active" role="tabpanel" id="content_type">
					<xf:foreach loop="$fieldsGrouped" key="$contentType" value="$fields">
						<xf:formrow label="{$contentType}" rowtype="noColon boldLabel stickyLabel">
							<span class="u-anchorTarget" id="__{$contentType}"></span>
							<a href="{{ link('content-types/add', [], {'content_type':$contentType}) }}"
								class="u-pullRight"
								data-xf-click="overlay"
								data-xf-init="tooltip"
								title="{{ phrase('add_x_content_type_field', {'type':$contentType}) }}">
								<xf:fa icon="fa-plus-circle" />
							</a>
							<xf:macro name="field_list" arg-fields="{$fields}" arg-label="field_name" />
						</xf:formrow>
					</xf:foreach>
				</li>
				<li role="tabpanel" id="field_name">-</li>
			</xf:if>
		</ul>
	</div>
</div>

<xf:macro name="field_list" arg-fields="!" arg-label="!">
	<ol class="formRow-linkList">
		<xf:foreach loop="$fields" value="$field">
			<li>
				<!--<a href="{{ link('content-types/delete', $field) }}" data-xf-click="overlay" class="link-delete"><xf:fa icon="fa-trash-alt" /></a>-->
				<span class="u-anchorTarget" id="__{$field.content_type}_{$field.field_name}"></span>
				<a href="{{ link('content-types/edit', $field, {'group':$label == 'content_type' ? 'field_name' : 'content_type'}) }}" data-xf-click="overlay">
					<span class="link-title">{$field.{$label}}</span>
					<span class="link-hint">{$field.field_value}</span>
				</a>
			</li>
		</xf:foreach>
	</ol>
</xf:macro>]]></template>
  <template type="admin" title="cron_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$entry.isInsert()">
	<xf:title>{{ phrase('add_cron_entry') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_cron_entry:') }} {$entry.title}</xf:title>
</xf:if>

<xf:pageaction if="$entry.isUpdate() AND $entry.canEdit()">
	<xf:button href="{{ link('cron/delete', $entry) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:if is="{{ !$entry.canEdit() }}">
	<div class="blockMessage blockMessage--important blockMessage--iconic">
		{{ phrase('only_limited_fields_in_item_may_be_edited') }}
	</div>
</xf:if>

<xf:form action="{{ link('cron/save', $entry) }}" ajax="true" class="block">

	<div class="block-container">
		<div class="block-body">

			<xf:textboxrow name="entry_id" value="{$entry}"
				readonly="{{ !$entry.canEdit() }}"
				label="{{ phrase('cron_entry_id') }}"
				dir="ltr" />

			<xf:textboxrow name="title" value="{$entry}"
				readonly="{{ !$entry.canEdit() }}"
				label="{{ phrase('title') }}" />

			<hr class="formRowSep" />

			<xf:formrow rowtype="input"
				label="{{ phrase('cron_callback') }}">

				<xf:macro id="helper_callback_fields::callback_fields" arg-data="{$entry}"
					arg-className="cron_class"
					arg-methodName="cron_method"
					arg-readOnly="{{ !$entry.canEdit() }}" />
			</xf:formrow>

			<hr class="formRowSep" />

			<xf:radiorow name="run_rules[day_type]" value="{$entry.run_rules.day_type}"
				readonly="{{ !$entry.canEdit() }}"
				label="{{ phrase('run_on_type_of_day') }}">

				<xf:option value="dom" label="{{ phrase('day_of_month:') }}">
					<xf:select name="run_rules[dom]"
						readonly="{{ !$entry.canEdit() }}"
						value="{$entry.run_rules.dom|raw}"
						multiple="true" size="8" style="width: 200px">

						<xf:option value="-1">{{ phrase('any') }}</xf:option>
						<xf:option value="1">1</xf:option>
						<xf:option value="2">2</xf:option>
						<xf:option value="3">3</xf:option>
						<xf:option value="4">4</xf:option>
						<xf:option value="5">5</xf:option>
						<xf:option value="6">6</xf:option>
						<xf:option value="7">7</xf:option>
						<xf:option value="8">8</xf:option>
						<xf:option value="9">9</xf:option>
						<xf:option value="10">10</xf:option>
						<xf:option value="11">11</xf:option>
						<xf:option value="12">12</xf:option>
						<xf:option value="13">13</xf:option>
						<xf:option value="14">14</xf:option>
						<xf:option value="15">15</xf:option>
						<xf:option value="16">16</xf:option>
						<xf:option value="17">17</xf:option>
						<xf:option value="18">18</xf:option>
						<xf:option value="19">19</xf:option>
						<xf:option value="20">20</xf:option>
						<xf:option value="21">21</xf:option>
						<xf:option value="22">22</xf:option>
						<xf:option value="23">23</xf:option>
						<xf:option value="24">24</xf:option>
						<xf:option value="25">25</xf:option>
						<xf:option value="26">26</xf:option>
						<xf:option value="27">27</xf:option>
						<xf:option value="28">28</xf:option>
						<xf:option value="29">29</xf:option>
						<xf:option value="30">30</xf:option>
						<xf:option value="31">31</xf:option>
					</xf:select>
				</xf:option>
				<xf:option value="dow" label="{{ phrase('day_of_week:') }}">
					<xf:select name="run_rules[dow]"
						readonly="{{ !$entry.canEdit() }}"
						value="{$entry.run_rules.dow|raw}"
						multiple="true" size="8" style="width: 200px">

						<xf:option value="-1">{{ phrase('any') }}</xf:option>
						<xf:option value="0">{{ phrase('day_sunday') }}</xf:option>
						<xf:option value="1">{{ phrase('day_monday') }}</xf:option>
						<xf:option value="2">{{ phrase('day_tuesday') }}</xf:option>
						<xf:option value="3">{{ phrase('day_wednesday') }}</xf:option>
						<xf:option value="4">{{ phrase('day_thursday') }}</xf:option>
						<xf:option value="5">{{ phrase('day_friday') }}</xf:option>
						<xf:option value="6">{{ phrase('day_saturday') }}</xf:option>
					</xf:select>
				</xf:option>
			</xf:radiorow>

			<xf:selectrow name="run_rules[hours]"
				readonly="{{ !$entry.canEdit() }}"
				value="{$entry.run_rules.hours|raw}"
				multiple="true" size="8" style="width: 200px"
				label="{{ phrase('run_at_hours') }}">

				<xf:option value="-1">{{ phrase('any') }}</xf:option>
				<xf:option value="0">0 {{ phrase('(midnight)') }}</xf:option>
				<xf:option value="1">1</xf:option>
				<xf:option value="2">2</xf:option>
				<xf:option value="3">3</xf:option>
				<xf:option value="4">4</xf:option>
				<xf:option value="5">5</xf:option>
				<xf:option value="6">6</xf:option>
				<xf:option value="7">7</xf:option>
				<xf:option value="8">8</xf:option>
				<xf:option value="9">9</xf:option>
				<xf:option value="10">10</xf:option>
				<xf:option value="11">11</xf:option>
				<xf:option value="12">12 {{ phrase('(noon)') }}</xf:option>
				<xf:option value="13">13</xf:option>
				<xf:option value="14">14</xf:option>
				<xf:option value="15">15</xf:option>
				<xf:option value="16">16</xf:option>
				<xf:option value="17">17</xf:option>
				<xf:option value="18">18</xf:option>
				<xf:option value="19">19</xf:option>
				<xf:option value="20">20</xf:option>
				<xf:option value="21">21</xf:option>
				<xf:option value="22">22</xf:option>
				<xf:option value="23">23</xf:option>

				<xf:explain>{{ phrase('run_times_based_on_utc_time_zone') }}</xf:explain>
			</xf:selectrow>

			<xf:selectrow name="run_rules[minutes]"
				readonly="{{ !$entry.canEdit() }}"
				value="{$entry.run_rules.minutes|raw}"
				multiple="true" size="8" style="width: 200px"
				label="{{ phrase('run_at_minutes') }}">

				<xf:option value="-1">{{ phrase('any') }}</xf:option>
				<xf:option value="0">0</xf:option>
				<xf:option value="1">1</xf:option>
				<xf:option value="2">2</xf:option>
				<xf:option value="3">3</xf:option>
				<xf:option value="4">4</xf:option>
				<xf:option value="5">5</xf:option>
				<xf:option value="6">6</xf:option>
				<xf:option value="7">7</xf:option>
				<xf:option value="8">8</xf:option>
				<xf:option value="9">9</xf:option>
				<xf:option value="10">10</xf:option>
				<xf:option value="11">11</xf:option>
				<xf:option value="12">12</xf:option>
				<xf:option value="13">13</xf:option>
				<xf:option value="14">14</xf:option>
				<xf:option value="15">15</xf:option>
				<xf:option value="16">16</xf:option>
				<xf:option value="17">17</xf:option>
				<xf:option value="18">18</xf:option>
				<xf:option value="19">19</xf:option>
				<xf:option value="20">20</xf:option>
				<xf:option value="21">21</xf:option>
				<xf:option value="22">22</xf:option>
				<xf:option value="23">23</xf:option>
				<xf:option value="24">24</xf:option>
				<xf:option value="25">25</xf:option>
				<xf:option value="26">26</xf:option>
				<xf:option value="27">27</xf:option>
				<xf:option value="28">28</xf:option>
				<xf:option value="29">29</xf:option>
				<xf:option value="30">30</xf:option>
				<xf:option value="31">31</xf:option>
				<xf:option value="32">32</xf:option>
				<xf:option value="33">33</xf:option>
				<xf:option value="34">34</xf:option>
				<xf:option value="35">35</xf:option>
				<xf:option value="36">36</xf:option>
				<xf:option value="37">37</xf:option>
				<xf:option value="38">38</xf:option>
				<xf:option value="39">39</xf:option>
				<xf:option value="40">40</xf:option>
				<xf:option value="41">41</xf:option>
				<xf:option value="42">42</xf:option>
				<xf:option value="43">43</xf:option>
				<xf:option value="44">44</xf:option>
				<xf:option value="45">45</xf:option>
				<xf:option value="46">46</xf:option>
				<xf:option value="47">47</xf:option>
				<xf:option value="48">48</xf:option>
				<xf:option value="49">49</xf:option>
				<xf:option value="50">50</xf:option>
				<xf:option value="51">51</xf:option>
				<xf:option value="52">52</xf:option>
				<xf:option value="53">53</xf:option>
				<xf:option value="54">54</xf:option>
				<xf:option value="55">55</xf:option>
				<xf:option value="56">56</xf:option>
				<xf:option value="57">57</xf:option>
				<xf:option value="58">58</xf:option>
				<xf:option value="59">59</xf:option>
			</xf:selectrow>

			<hr class="formRowSep" />

			<xf:checkboxrow>
				<xf:option name="active" selected="$entry.active"
					hint="{{ ($xf.development AND $entry.addon_id) ? phrase('field_value_maintained_addon_upgrade_explain') : '' }}">
					{{phrase('allow_cron_entry_to_run_automatically_when_scheduled') }}
				</xf:option>
			</xf:checkboxrow>

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$entry.addon_id}" />
		</div>

		<xf:submitrow sticky="true" icon="save" />
	</div>

	<xf:hiddenval name="original_entry_id">{$entry.entry_id}</xf:hiddenval>
</xf:form>]]></template>
  <template type="admin" title="cron_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('cron_entries') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('cron/add') }}" icon="add">{{ phrase('add_cron_entry') }}</xf:button>
</xf:pageaction>

<xf:if is="$entries is not empty">
	<xf:form action="{{ link('cron/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="cron" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$entries" value="$cron">
						<xf:datarow>
							<xf:main hash="{$cron.entry_id}" href="{{ link('cron/edit', $cron) }}"
								label="{$cron.title}"
								hint="{{ $cron.addon_id != 'XF' ? $cron.AddOn.title : '' }}">

								<xf:explain>
									<xf:if is="{$cron.active}">
										<xf:if is="{{ !$cron.addon_id OR $cron.AddOn.active }}">
											{{ phrase('next_run') . ': ' . date_time($cron.next_run)  }}
										<xf:else />
											{{ phrase('cron_entry_associated_with_inactive_add_on_cannot_run') }}
										</xf:if>
									</xf:if>
								</xf:explain>
							</xf:main>
							<xf:toggle name="active[{$cron.entry_id}]" selected="$cron.active"
								class="dataList-cell--separated" submit="true"
								tooltip="{{ phrase('enable_disable_x', {'title': $cron.title}) }}" />
							<xf:if is="{{ !$cron.addon_id OR $cron.AddOn.active }}">
								<xf:action href="{{ link('cron/run', $cron) }}" overlay="true"
									data-xf-init="tooltip" title="{{ phrase('run_now') }}"
									class="dataList-cell--iconic">
									<xf:fa icon="fa-sync" /></xf:action>
							<xf:else />
								<xf:action></xf:action>
							</xf:if>
							<xf:delete href="{{ link('cron/delete', $cron) }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($entries) }}</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="cron_run" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('cron/run', $entry) }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_run_following_cron_entry:') }}
				<strong><a href="{{ link('cron/edit', $entry) }}">{$entry.title}</a></strong>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('run_now') }}" rowtype="simple" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="data_portability_export" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('export_user') }}</xf:title>

<xf:form action="{{ link('data-portability/export') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow>
				{{ phrase('data_portability_export_explain') }}
			</xf:inforow>
			<xf:textboxrow name="username" value="{$user}" label="{{ phrase('user_name') }}" required="required" ac="single" />
		</div>
		<xf:submitrow icon="export" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="data_portability_import" version_id="2000631" version_string="2.0.6 Beta 1"><![CDATA[<xf:title>{{ phrase('import_user') }}</xf:title>

<xf:form action="{{ link($urlPrefix . '/import') }}" upload="true" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:uploadrow name="upload" accept=".xml"
				label="{{ phrase('import_from_uploaded_xml_file') }}">
				<xf:explain>{{ phrase('data_portability_import_explain') }}</xf:explain>
			</xf:uploadrow>
		</div>
		<xf:submitrow icon="import" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="discourage_ip" version_id="2000370" version_string="2.0.3"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('banning/discouraged-ips/add', null, {'ip': $ip}) }}" ajax="true" data-redirect="off" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_discourage_following_ip:') }}
				<strong><a href="{{ link('users/ip-users', null, {'ip': $ip}) }}" dir="ltr">{$ip}</a></strong>
			</xf:inforow>

			<xf:textboxrow name="reason" hint="{{ phrase('optional') }}" maxlength="250"
				label="{{ phrase('reason') }}" />
		</div>
		<xf:submitrow icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="discouraged_ip_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('discouraged_ip_addresses') }}</xf:title>

<xf:pageaction>
	<div class="buttonGroup">
		<xf:button href="{{ link('banning/discouraged-ips/import') }}" icon="import" overlay="true" />
		<xf:if is="$discouragedIps is not empty">
			<xf:button href="{{ link('banning/discouraged-ips/export', null, {'t': csrf_token()}) }}" icon="export" />
		</xf:if>
	</div>
</xf:pageaction>

<xf:if is="$discouragedIps is not empty">
	<xf:form action="{{ link('banning/discouraged-ips/delete') }}" ajax="true" class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<colgroup>
						<col style="width: 1%">
						<col style="width: 15%">
						<col style="width: 15%">
						<col style="width: 15%">
						<col style="width: 15%">
						<col>
					</colgroup>
					<xf:datarow rowtype="header">
						<xf:cell><xf:checkbox standalone="true"><xf:option check-all="< .block-container" data-xf-init="tooltip" title="{{ phrase('select_all') }}" /></xf:checkbox></xf:cell>
						<xf:cell href="{{ link('banning/discouraged-ips', '', {'order': 'start_range', 'direction': ($direction == 'desc' || !$direction)  ? 'asc' : ''}) }}">
							{{ phrase('ip') }}
						</xf:cell>
						<xf:cell href="{{ link('banning/discouraged-ips', '', {'order': '', 'direction': ($direction == 'desc' || !$direction)  ? 'asc' : ''}) }}">
							{{ phrase('date') }}
						</xf:cell>
						<xf:cell href="{{ link('banning/discouraged-ips', '', {'order': 'last_triggered_date', 'direction': ($direction == 'desc' || !$direction)  ? 'asc' : ''}) }}">
							{{ phrase('last_triggered') }}
						</xf:cell>
						<xf:cell>{{ phrase('by') }}</xf:cell>
						<xf:cell>{{ phrase('reason') }}</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$discouragedIps" value="$discouragedIp">
						<xf:datarow>
							<xf:toggle name="delete[]" value="{$discouragedIp.ip}" />
							<xf:cell class="u-ltr">{$discouragedIp.ip}</xf:cell>
							<xf:cell>{{ $discouragedIp.create_date ? date($discouragedIp.create_date) : phrase('n_a') }}</xf:cell>
							<xf:cell>
								{{ $discouragedIp.last_triggered_date ? date_dynamic($discouragedIp.last_triggered_date) : phrase('never') }}
							</xf:cell>
							<xf:cell>{{ $discouragedIp.User ? $discouragedIp.User.username : phrase('n_a') }}</xf:cell>
							<xf:cell>{{ $discouragedIp.reason ? $discouragedIp.reason : phrase('n_a') }}</xf:cell>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer block-footer--split">
				<span class="block-footer-counter">{{ display_totals($discouragedIps) }}</span>
				<span class="block-footer-select"><xf:checkbox standalone="true"><xf:option check-all="< .block-container" label="{{ phrase('select_all') }}" /></xf:checkbox></span>
				<span class="block-footer-controls"><xf:button type="submit" icon="delete" /></span>
			</div>
		</div>

		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}" link="banning/discouraged-ips"
			params="{{ {
					'order': ($order != 'create_date' ? $order : ''),
					'direction': ($direction != 'desc' ? $direction : '')
				} }}"
			wrapperclass="block-outer block-outer--after" />
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_ips_have_been_discouraged') }}</div>
</xf:if>

<xf:form action="{{ link('banning/discouraged-ips/add') }}" ajax="true" class="block">
	<div class="block-container">
		<h3 class="block-header">{{ phrase('add_discouraged_ip') }}</h3>
		<div class="block-body">
			<xf:textboxrow name="ip" value="{$ip}"
				label="{{ phrase('ip_to_discourage') }}"
				explain="{{ phrase('you_may_enter_partial_ip_v4_v6') }}"
				dir="ltr" />
			<xf:textboxrow name="reason" value="{$newIp}"
				label="{{ phrase('reason') }}"
				hint="{{ phrase('optional') }}" />
		</div>
		<xf:submitrow icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="display_order_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="row"
	arg-name="display_order"
	arg-value=""
	arg-step="1"
	arg-label="{{ phrase('display_order') }}"
	arg-hint=""
	arg-readOnly=""
	arg-explain="">

	<xf:numberboxrow name="{$name}" value="{$value}" min="0" step="{$step}"
		label="{$label}"
		hint="{$hint}"
		explain="{$explain}"
		readonly="{{ $readOnly ? 'readonly' : '' }}" />
</xf:macro>

<xf:macro id="input"
	arg-name="display_order"
	arg-value=""
	arg-step="1"
	arg-readOnly="">

	<xf:numberbox name="{$name}" value="{$value}" min="0" step="{$step}" readonly="{{ $readOnly ? 'readonly' : '' }}" />
</xf:macro>]]></template>
  <template type="admin" title="error" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('oops_we_ran_into_some_problems') }}</xf:title>

<div class="blockMessage">
	<xf:if is="$error">
		{$error|raw}
	<xf:else />
		<ul>
		<xf:foreach loop="$errors" value="$error">
			<li>{$error|raw}</li>
		</xf:foreach>
		</ul>
	</xf:if>
</div>]]></template>
  <template type="admin" title="feed_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$feed.isInsert()">
	<xf:title>{{ phrase('add_feed') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_feed:') }} {$feed.title}</xf:title>
</xf:if>

<xf:pageaction if="$feed.isUpdate()">
	<xf:button href="{{ link('feeds/delete', $feed) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('feeds/save', $feed) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$feed.feed_id">
				<xf:textboxrow name="title" value="{$feed}"
					label="{{ phrase('title') }}" />
			</xf:if>

			<xf:textboxrow name="url" value="{$feed}"
				label="{{ phrase('url') }}"
				dir="ltr" />

			<xf:selectrow name="frequency" value="{$feed}"
				label="{{ phrase('fetch_new_entries_every') }}">

				<xf:option value="600">{{ phrase('x_minutes', {'count': '10'}) }}</xf:option>
				<xf:option value="1200">{{ phrase('x_minutes', {'count': '20'}) }}</xf:option>
				<xf:option value="1800">{{ phrase('x_minutes', {'count': '30'}) }}</xf:option>
				<xf:option value="3600">{{ phrase('x_minutes', {'count': '60'}) }}</xf:option>
				<xf:option value="7200">{{ phrase('x_hours', {'count': '2'}) }}</xf:option>
				<xf:option value="14400">{{ phrase('x_hours', {'count': '4'}) }}</xf:option>
				<xf:option value="21600">{{ phrase('x_hours', {'count': '6'}) }}</xf:option>
				<xf:option value="43200">{{ phrase('x_hours', {'count': '12'}) }}</xf:option>
			</xf:selectrow>

			<xf:if is="$feed.feed_id">
				<xf:checkboxrow>
					<xf:option name="active" selected="$feed.active">
						<xf:label>{{ phrase('feed_is_active') }}</xf:label>
						<xf:hint>{{ phrase('disable_to_prevent_feed_import') }}</xf:hint>
					</xf:option>
				</xf:checkboxrow>
			<xf:else />
				<xf:hiddenval name="active">1</xf:hiddenval>
			</xf:if>

			<hr class="formRowSep" />

			<xf:radiorow name="user_id" value="{$feed}"
				label="{{ phrase('posting_user') }}">

				<xf:option value="0">{{ phrase('post_feed_entries_as_guest') }}</xf:option>
				<xf:option value="-1" label="{{ phrase('post_feed_entries_as_following_user') }}" selected="{$feed.User}">
					<xf:textbox name="username" value="{$feed.User.username}" placeholder="{{ phrase('user_name...') }}" ac="single" />
				</xf:option>
			</xf:radiorow>

			<hr class="formRowSep" />

			<xf:selectrow name="node_id" value="{$feed}" id="js-nodeList"
				label="{{ phrase('destination_forum') }}">

				<xf:foreach loop="$forums" value="$forum">
					<xf:option value="{$forum.value}" disabled="{$forum.disabled}" label="{$forum.label}" />
				</xf:foreach>
				<xf:explain>
					{{ phrase('select_forum_for_feed') }}
				</xf:explain>
			</xf:selectrow>

			<xf:prefixinputrow
				textbox-name="title_template"
				textbox-value="{$feed.title_template}"
				maxlength="{{ max_length($feed, 'title_template') }}"
				prefixes="{$prefixes}"
				prefix-value="{$feed.prefix_id}"
				type="thread"
				href="{{ link('forums/prefixes') }}"
				listen-to="#js-nodeList"
				label="{{ phrase('title_template') }}"
				hint="{{ phrase('optional') }}" />

			<xf:textarearow name="message_template" value="{$feed}" rows="5" autosize="true"
				label="{{ phrase('message_template') }}"
				hint="{{ phrase ('you_may_use_bb_code') }}"
				explain="{{ phrase('feed_message_template_explain') }}" />

			<hr class="formRowSep" />

			<xf:checkboxrow label="{{ phrase('options') }}">

				<xf:option name="discussion_visible" selected="$feed.discussion_visible">
					<xf:label>{{ phrase('post_immediately') }}</xf:label>
					<xf:hint>{{ phrase('otherwise_insert_into_moderation_queue') }}</xf:hint>
				</xf:option>
				<xf:option name="discussion_open" selected="$feed.discussion_open">
					<xf:label>{{ phrase('unlocked') }}</xf:label>
					<xf:hint>{{ phrase('people_may_reply_to_this_thread') }}</xf:hint>
				</xf:option>
				<xf:option name="discussion_sticky" selected="$feed.discussion_sticky">
					<xf:label>{{ phrase('sticky') }}</xf:label>
					<xf:hint>{{ phrase('sticky_threads_appear_at_top_of_first_page_of_list_of_threads') }}</xf:hint>
				</xf:option>
			</xf:checkboxrow>
		</div>
		<xf:submitrow sticky="true" icon="save"><xf:html>
			<xf:button type="submit" name="preview" icon="preview" />
		</xf:html></xf:submitrow>
	</div>
</xf:form>]]></template>
  <template type="admin" title="feed_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('rss_feed_importer') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('feeds/add') }}" icon="add">{{ phrase('add_feed') }}</xf:button>
</xf:pageaction>

<xf:if is="$feeds is not empty">
	<xf:form action="{{ link('feeds/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="feeds" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$feeds" value="$feed">
						<xf:datarow>
							<xf:main hash="{$feed.feed_id}" href="{{ link('feeds/edit', $feed) }}"
								label="{$feed.title}" explain="{$feed.url|url_display}" />
							<xf:toggle name="active[{$feed.feed_id}]" selected="$feed.active"
								class="dataList-cell--separated" submit="true"
								tooltip="{{ phrase('enable_disable_x', {'title': $feed.title}) }}" />
							<xf:action href="{{ link('feeds/import', $feed) }}">{{ phrase('import_now') }}</xf:action>
							<xf:delete href="{{ link('feeds/delete', $feed) }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($feeds) }}</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_feeds_have_been_registered_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="feed_preview" version_id="2000038" version_string="2.0.0 Beta 8"><![CDATA[<xf:title>{{ phrase('preview_feed_entry') }}</xf:title>
<xf:h1>
	{{ phrase('preview_feed_entry:') }} <a href="{$feed.url}" target="_blank">{$feed.title}</a>
</xf:h1>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<div class="block-row block-row--separated">
				<h3 class="block-textHeader">{$entry.title}</h3>
				{{ bb_code($entry.message, 'post', $feed.User) }}
			</div>
			<div class="block-row block-row--separated">
				<dl class="pairs pairs--columns pairs--fluidSmall">
					<dt>{{ phrase('author') }}</dt>
					<dd>{$entry.author}</dd>
				</dl>
				<dl class="pairs pairs--columns pairs--fluidSmall">
					<dt>{{ phrase('last_modified') }}</dt>
					<dd><xf:date time="$entry.date_modified" /></dd>
				</dl>
			</div>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="filter_macros" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:macro id="quick_filter" arg-key="" arg-ajax="" arg-class="">
	<xf:js src="xf/filter.js" min="1" />
	<div class="{$class} quickFilter u-jsOnly" data-xf-init="filter" data-key="{$key}" data-ajax="{$ajax}">
		<div class="inputGroup inputGroup--inline inputGroup--joined">
			<input type="search" class="input js-filterInput" placeholder="{{ phrase('filter...') }}" data-xf-key="{{ phrase('shortcut.filter')|for_attr }}" />
			<span class="inputGroup-text">
				<xf:checkbox standalone="true">
					<xf:option class="js-filterPrefix" label="{{ phrase('prefix_search') }}" />
				</xf:checkbox>
			</span>
			<i class="inputGroup-text js-filterClear is-disabled" aria-hidden="true"></i>
		</div>
	</div>
</xf:macro>

<xf:macro id="filter_bar"
	arg-params="!"
	arg-content="{{ null }}"
	arg-route=""
	arg-displayValues="{{ [] }}"
	arg-phrases="{{ [] }}"
	arg-menu=""
	arg-menuIsRoute="{{ true }}"
	arg-menuParams="{{ [] }}"
	arg-menuTitle="{{ phrase('refine_search') }}">

	<xf:if contentcheck="true">
		<div class="block-filterBar">
			<div class="filterBar">
				<xf:contentcheck>

					<xf:if is="$route && $displayValues">
						<ul class="filterBar-filters">
							<xf:foreach loop="$displayValues" key="$filterName" value="$displayValue">
								<xf:set var="$lookupName" value="key:{$filterName}" />
								<xf:set var="$displayName">{{ $phrases.{$lookupName} ?: $filterName }}</xf:set>

								<li><a href="{{ link($route, $content, $params + {'_skipFilter': $filterName}) }}" class="filterBar-filterToggle">
									<xf:if is="$displayValue === true">
										{$displayName}
									<xf:else />
										<span class="filterBar-filterToggle-label">{$displayName}</span>
										<xf:if is="is_array($displayValue)">
											<xf:foreach loop="$displayValue" value="$_displayValue">
												<xf:set var="$v"><xf:macro id="lookup" arg-value="{$_displayValue}" arg-phrases="{$phrases}" /></xf:set>
												<span class="filterBar-filterToggle-value" data-xf-init="tooltip" title="{$v}">{$v}</span>
											</xf:foreach>
										<xf:else />
											<xf:set var="$v"><xf:macro id="lookup" arg-value="{$displayValue}" arg-phrases="{$phrases}" /></xf:set>
											<span class="filterBar-filterToggle-value" data-xf-init="tooltip" title="{$v}">{$v}</span>
										</xf:if>
									</xf:if>
								</a></li>
							</xf:foreach>
						</ul>
					</xf:if>

					<xf:if is="$menu">
						<a class="filterBar-menuTrigger" data-xf-click="menu" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{$menuTitle}</a>
						<xf:set var="$menuLink" value="{{ $menuIsRoute ? link($menu, $content, $params + $menuParams) : $menu }}" />
						<div class="menu menu--wide" data-menu="menu" aria-hidden="true"
							data-href="{$menuLink}"
							data-load-target=".js-filterMenuBody">
							<div class="menu-content">
								<h4 class="menu-header">{$menuTitle}</h4>
								<div class="js-filterMenuBody">
									<div class="menu-row">{{ phrase('loading...') }}</div>
								</div>
							</div>
						</div>
					</xf:if>

				</xf:contentcheck>
			</div>
		</div>
	</xf:if>
</xf:macro>

<xf:macro id="lookup" arg-value="!" arg-phrases="{{ [] }}"><xf:trim>
	<xf:if is="is_scalar($value) AND {$phrases.{$value}}">
		{{ $phrases.{$value} }}
	<xf:else />
		{$value}
	</xf:if>

</xf:trim></xf:macro>]]></template>
  <template type="admin" title="force_agreement_privacy_policy" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('force_privacy_policy_agreement') }}</xf:title>

<xf:form action="{{ link('force-agreement/privacy-policy') }}" ajax="true" data-force-flash-message="on" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_force_all_current_users_to_accept_following') }}
				<strong><a href="{$xf.privacyPolicyUrl}" target="_blank">{{ phrase('privacy_policy') }} &middot; {{ phrase('last_updated:') }} <xf:if is="$xf.options.privacyPolicyLastUpdate"><xf:date time="$xf.options.privacyPolicyLastUpdate" /><xf:else />{{ phrase('never') }}</xf:if></a></strong>
			</xf:inforow>
		</div>
		<xf:submitrow icon="save" rowtype="simple" />
	</div>
</xf:form>

<xf:set var="$header">
	<div class="block-header">{{ phrase('options') }}</div>
</xf:set>
<xf:macro id="option_macros::option_form_block"
	arg-options="{$options}"
	arg-containerBeforeHtml="{$header}" />]]></template>
  <template type="admin" title="force_agreement_terms" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('force_terms_and_rules_agreement') }}</xf:title>

<xf:form action="{{ link('force-agreement/terms') }}" ajax="true" data-force-flash-message="on" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_force_all_current_users_to_accept_following') }}
				<strong><a href="{$xf.tosUrl}" target="_blank">{{ phrase('terms_and_rules') }} &middot; {{ phrase('last_updated:') }} <xf:if is="$xf.options.termsLastUpdate"><xf:date time="$xf.options.termsLastUpdate" /><xf:else />{{ phrase('never') }}</xf:if></a></strong>
			</xf:inforow>
		</div>
		<xf:submitrow icon="save" rowtype="simple" />
	</div>
</xf:form>

<xf:set var="$header">
	<div class="block-header">{{ phrase('options') }}</div>
</xf:set>
<xf:macro id="option_macros::option_form_block"
	arg-options="{$options}"
	arg-containerBeforeHtml="{$header}" />]]></template>
  <template type="admin" title="forum_change_type" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:title>{{ phrase('change_forum_type') }}: {$node.title}</xf:title>

<xf:form action="{{ link('forums/change-type', $node) }}" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow>
				<div class="blockMessage blockMessage--warning">
					{{ phrase('changing_forums_type_warning_desc') }}
				</div>
			</xf:inforow>

			<xf:formrow label="{{ phrase('current_forum_type') }}" explain="{$currentForumTypeDesc}">
				{$currentForumTypeTitle}
			</xf:formrow>

			<xf:if is="$newForumTypeId">
				<xf:formrow label="{{ phrase('new_forum_type') }}" explain="{$newForumTypeDesc}">
					{$newForumTypeTitle}
				</xf:formrow>
				<xf:if is="$typeConfigTemplate">
					<xf:include template="{$typeConfigTemplate}" />
				</xf:if>
				<xf:hiddenval name="new_forum_type_id">{$newForumTypeId}</xf:hiddenval>
				<xf:hiddenval name="confirm">1</xf:hiddenval>
			<xf:else />
				<xf:radiorow name="new_forum_type_id" value="{$currentForumTypeId}"
					label="{{ phrase('new_forum_type') }}">
					<xf:foreach loop="$forumTypesInfo" key="$forumTypeId" value="$forumTypeInfo">
						<xf:option value="{$forumTypeId}"
							label="{$forumTypeInfo.title}"
							hint="{$forumTypeInfo.description}" />
					</xf:foreach>
				</xf:radiorow>
			</xf:if>
		</div>
		<xf:if is="$newForumTypeId">
			<xf:submitrow submit="{{ phrase('change_type') }}" />
		<xf:else />
			<xf:submitrow submit="{{ phrase('continue...') }}" />
		</xf:if>
	</div>
</xf:form>]]></template>
  <template type="admin" title="forum_delete" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('forums/delete', $node) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_want_to_delete_forum_and_discussions:') }}
				<strong><a href="{{ link('forums/edit', $node) }}">{$node.title}</a></strong>
			</xf:inforow>

			<xf:macro id="helper_node_delete_children::delete_row" arg-node="{$node}" arg-nodeTree="{$nodeTree}" />
		</div>
		<xf:submitrow rowtype="{{ !$node.hasChildren() ? 'simple' : '' }}" icon="delete" />
	</div>
	<xf:redirect />
</xf:form>]]></template>
  <template type="admin" title="forum_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$forum.isInsert()">
	<xf:title>{{ phrase('add_forum') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_forum:') }} {$node.title}</xf:title>
</xf:if>

<xf:pageaction if="$forum.isUpdate()">
	<div class="buttonGroup">
		<xf:if is="$canChangeForumType">
			<xf:button href="{{ link('forums/change-type', $node) }}" overlay="true">{{ phrase('change_type') }}</xf:button>
		</xf:if>
		<xf:button href="{{ link('forums/delete', $node) }}" icon="delete" overlay="true" />
	</div>
</xf:pageaction>

<xf:form action="{{ link('forums/save', $node) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:macro id="node_edit_macros::title" arg-node="{$node}" />
			<xf:macro id="node_edit_macros::description" arg-node="{$node}" />

			<hr class="formRowSep" />
			<xf:macro id="node_edit_macros::node_name" arg-node="{$node}" />
			<xf:macro id="node_edit_macros::position" arg-node="{$node}" arg-nodeTree="{$nodeTree}" />
			<xf:macro id="node_edit_macros::navigation" arg-node="{$node}" arg-navChoices="{$navChoices}" />
			<hr class="formRowSep" />

			<xf:formrow label="{{ phrase('forum_type') }}" explain="{$forumTypeDesc}"><span>{$forumTypeTitle}</span></xf:formrow>
			<xf:if is="$typeConfigTemplate">
				<xf:include template="{$typeConfigTemplate}" />
			</xf:if>
			<xf:hiddenval name="forum_type_id">{$forumTypeId}</xf:hiddenval>

			<hr class="formRowSep" />
			<xf:if is="$availableFields is not empty">
				<xf:checkboxrow name="available_fields" value="{$forum.field_cache}" listclass="field listColumns"
					label="{{ phrase('available_fields') }}"
					explain="{{ phrase('asterisk_fields_required_explain') }}">

					<xf:foreach loop="$availableFields" key="$fieldId" value="$field">
						<xf:option value="{$fieldId}" label="{$field.title}" labelclass="{{ $field.required ? 'u-appendAsterisk' : '' }}" />
					</xf:foreach>

					<xf:hint>
						<xf:checkbox standalone="true">
							<xf:option check-all=".field.listColumns">{{ phrase('select_all') }}</xf:option>
						</xf:checkbox>
					</xf:hint>
				</xf:checkboxrow>
			<xf:else />
				<xf:formrow label="{{ phrase('available_fields') }}">
					{{ phrase('none')|parens }}
					<a href="{{ link('custom-thread-fields/add') }}" target="_blank">{{ phrase('add_field') }}</a>
				</xf:formrow>
			</xf:if>

			<hr class="formRowSep" />
			<xf:if is="$prefixesGrouped is not empty">

				<xf:checkboxrow name="available_prefixes" rowtype="explainOffset" listclass="prefix"
					data-xf-init="checkbox-select-disabler"
					data-select=".js-availablePrefixSelect"
					label="{{ phrase('available_prefixes') }}"
					explain="{{ phrase('available_prefixes_forum_explain') }}">

					<xf:foreach loop="$prefixGroups" key="$prefixGroupId" value="$prefixGroup" if="{$prefixesGrouped.{$prefixGroupId}}">

						<xf:optgroup check-all="true" listclass="listColumns"
							label="{{ $prefixGroupId ? $prefixGroup.title : phrase('ungrouped') }}">

							<xf:foreach loop="{$prefixesGrouped.{$prefixGroupId}}" key="$prefixId" value="$prefix">
								<xf:option value="{$prefixId}" selected="{$forum.prefix_cache.{$prefixId}}">
									<xf:label><span class="label {$prefix.css_class}">{$prefix.title}</span></xf:label>
								</xf:option>
							</xf:foreach>
						</xf:optgroup>
					</xf:foreach>

					<xf:hint>
						<xf:checkbox standalone="true">
							<xf:option check-all=".prefix">{{ phrase('select_all') }}</xf:option>
						</xf:checkbox>
					</xf:hint>
				</xf:checkboxrow>

				<xf:selectrow name="default_prefix_id" value="{$forum}"
					label="{{ phrase('default_thread_prefix') }}"
					explain="{{ phrase('default_thread_prefix_explain') }}"
					class="js-availablePrefixSelect">

					<xf:option value="-1">{{ phrase('none') }}</xf:option>
					<xf:foreach loop="$prefixGroups" key="$prefixGroupId" value="$prefixGroup"
						if="{{ count($prefixesGrouped.{$prefixGroupId}) > 0 }}">
						<xf:optgroup label="{{ $prefixGroupId > 0 ? $prefixGroup.title : phrase('ungrouped') }}">
							<xf:foreach loop="{$prefixesGrouped.{$prefixGroupId}}" key="$prefixId" value="$prefix">
								<xf:option value="{$prefixId}" disabled="{{ !in_array($prefixId, $forum.prefix_cache) }}">{$prefix.title}</xf:option>
							</xf:foreach>
						</xf:optgroup>
					</xf:foreach>
				</xf:selectrow>

				<xf:checkboxrow name="require_prefix" value="{$forum.require_prefix}">
					<xf:option value="1"
						label="{{ phrase('require_users_to_select_prefix') }}"
						hint="{{ phrase('if_selected_users_required_select_prefix_for_thread') }}" />
				</xf:checkboxrow>

			<xf:else />
				<xf:formrow label="{{ phrase('available_prefixes') }}">
					{{ phrase('none')|parens }} <a href="{{ link('thread-prefixes/add') }}" target="_blank">{{ phrase('add_prefix') }}</a>
				</xf:formrow>

				<xf:hiddenval name="default_thread_prefix" value="0" />
				<xf:hiddenval name="require_prefix" value="0" />
			</xf:if>

		</div>

		<h3 class="block-formSectionHeader">
			<span class="collapseTrigger collapseTrigger--block" data-xf-click="toggle" data-target="< :up:next">
				<span class="block-formSectionHeader-aligner">{{ phrase('advanced_options') }}</span>
			</span>
		</h3>
		<div class="block-body block-body--collapsible">
			<xf:checkboxrow rowid="advancedToggles">
				<xf:option name="allow_posting" selected="$forum.allow_posting"
					label="{{ phrase('allow_new_messages_to_be_posted_in_this_forum') }}"
					hint="{{ phrase('if_disabled_users_not_able_post_messages_in_forum') }}" />

				<xf:option name="moderate_threads" selected="$forum.moderate_threads"
					label="{{ phrase('moderate_new_threads_posted_in_this_forum') }}"
					hint="{{ phrase('if_enabled_moderator_manually_approve_threads_posted_in_forum') }}" />

				<xf:option name="moderate_replies" selected="$forum.moderate_replies"
					label="{{ phrase('moderate_replies_posted_in_this_forum') }}"
					hint="{{ phrase('if_enabled_moderator_manually_approve_replies_posted_in_forum') }}" />

				<xf:option name="count_messages" selected="$forum.count_messages"
					label="{{ phrase('count_messages_in_forum_toward_user_total') }}"
					hint="{{ phrase('if_disabled_messages_posted_will_not_contribute_to_user_message_total') }}" />

				<xf:option name="auto_feature" selected="$forum.auto_feature"
					label="{{ phrase('automatically_feature_threads') }}"
					hint="{{ phrase('if_enabled_threads_posted_in_this_forum_will_automatically_be_featured') }}" />

				<xf:option name="find_new" selected="$forum.find_new"
					label="{{ phrase('include_forum_in_find_new_threads') }}"
					hint="{{ phrase('if_disabled_messages_will_never_appear_in_find_new_threads') }}" />
			</xf:checkboxrow>

			<xf:radiorow name="allow_index" value="{$forum}"
				label="{{ phrase('allow_search_engine_indexing') }}"
				explain="{{ phrase('you_can_choose_whether_or_not_to_allow_external_search_engines_to_index') }}">

				<xf:option value="allow">{{ phrase('index_all_threads') }}</xf:option>
				<xf:option value="deny">{{ phrase('do_not_index_any_threads') }}</xf:option>
				<xf:option value="criteria"
					data-xf-init="disabler" data-container=".js-indexCriteria" data-hide="true">
					{{ phrase('index_threads_based_on_criteria') }}
				</xf:option>
			</xf:radiorow>

			<div class="js-indexCriteria">
				<xf:checkboxrow label="{{ phrase('search_engine_index_criteria') }}"
					explain="{{ phrase('threads_must_match_all_of_these_criteria_to_be_indexed_by_search_engines') }}">

					<xf:option name="index_criteria[max_days_post][enabled]" selected="{$forum.index_criteria.max_days_post}"
						label="{{ phrase('thread_was_posted_no_more_than_x_days_ago:') }}">

						<xf:numberbox name="index_criteria[max_days_post][value]" value="{{ $forum.index_criteria.max_days_post ?: 1 }}"
							min="1" />
					</xf:option>

					<xf:option name="index_criteria[max_days_last_post][enabled]" selected="{$forum.index_criteria.max_days_last_post}"
						label="{{ phrase('thread_was_replied_to_no_more_than_x_days_ago:') }}">

						<xf:numberbox name="index_criteria[max_days_last_post][value]" value="{{ $forum.index_criteria.max_days_last_post ?: 1 }}"
							min="1" />
					</xf:option>

					<xf:option name="index_criteria[min_replies][enabled]" selected="{$forum.index_criteria.min_replies}"
						label="{{ phrase('thread_has_at_least_x_replies:') }}">

						<xf:numberbox name="index_criteria[min_replies][value]" value="{{ $forum.index_criteria.min_replies ?: 1 }}"
							min="1" />
					</xf:option>

					<xf:option name="index_criteria[min_reaction_score][enabled]" selected="{{ $forum.index_criteria.min_reaction_score !== null }}"
						label="{{ phrase('thread_has_at_least_x_reaction_score:') }}">

						<xf:numberbox name="index_criteria[min_reaction_score][value]" value="{{ $forum.index_criteria.min_reaction_score ?: 0 }}" />
					</xf:option>

					<xf:option name="index_criteria[min_word_count][enabled]" selected="{$forum.index_criteria.min_word_count}"
						label="{{ phrase('thread_has_at_least_x_words_in_first_post') }}">

						<xf:numberbox name="index_criteria[min_word_count][value]" value="{{ $forum.index_criteria.min_word_count ?: 1 }}"
							min="1" />
					</xf:option>
				</xf:checkboxrow>

				<xf:checkboxrow label="{{ phrase('search_engine_index_exceptions') }}"
					explain="{{ phrase('threads_matching_any_of_these_criteria_will_always_be_indexed_by_search') }}">

					<xf:option name="index_criteria[is_sticky][enabled]" selected="{$forum.index_criteria.is_sticky}"
						label="{{ phrase('thread_is_sticky') }}" />

					<xf:option name="index_criteria[is_article][enabled]" selected="{$forum.index_criteria.is_article}"
						label="{{ phrase('thread_is_article') }}" />

					<xf:option name="index_criteria[is_solved_question][enabled]" selected="{$forum.index_criteria.is_solved_question}"
						label="{{ phrase('thread_is_solved_question') }}" />

					<xf:option name="index_criteria[first_post_staff][enabled]" selected="{$forum.index_criteria.first_post_staff}"
						label="{{ phrase('thread_was_posted_by_staff_member') }}" />

					<xf:option name="index_criteria[first_post_groups][enabled]" selected="{{ $forum.index_criteria.first_post_groups ? true : false }}"
						label="{{ phrase('thread_was_posted_by_member_of_user_group') }}">

						<xf:select name="index_criteria[first_post_groups][value]" multiple="true" value="{$forum.index_criteria.first_post_groups}">
							<xf:foreach loop="$userGroups" value="$userGroup">
								<xf:option value="{$userGroup.user_group_id}">{$userGroup.title}</xf:option>
							</xf:foreach>
						</xf:select>
					</xf:option>
				</xf:checkboxrow>
			</div>

			<xf:numberboxrow name="min_tags" value="{$forum}"
				label="{{ phrase('minimum_required_tags') }}"
				explain="{{ phrase('forum_min_tags_explain') }}" />

			<xf:radiorow name="allowed_watch_notifications" value="{$forum}"
				label="{{ phrase('forum_watch_notification_limit') }}"
				explain="{{ phrase('forum_watch_notification_limit_desc') }}">

				<xf:option value="all" label="{{ phrase('new_messages') }}" />
				<xf:option value="thread" label="{{ phrase('new_threads') }}" />
				<xf:option value="none" label="{{ phrase('none') }}" />
			</xf:radiorow>

			<xf:formrow rowtype="input"
				label="{{ phrase('default_sort_order') }}">

				<div class="inputPair">
					<xf:select name="default_sort_order" value="{$forum.default_sort_order}" class="input--inline">
						<xf:foreach loop="$sortOptions" key="$sortKey" value="$null">
							<xf:option value="{$sortKey}">{{ phrase_dynamic('forum_sort.' . $sortKey) }}</xf:option>
						</xf:foreach>
					</xf:select>
					<xf:select name="default_sort_direction" value="{$forum.default_sort_direction}"
						class="input--inline">
						<xf:option value="desc" label="{{ phrase('descending') }}" />
						<xf:option value="asc" label="{{ phrase('ascending') }}" />
					</xf:select>
				</div>
			</xf:formrow>

			<xf:selectrow name="list_date_limit_days" value="{$forum}"
				label="{{ phrase('thread_list_date_limit') }}"
				explain="{{ phrase('thread_list_date_limit_used_on_busy_forums_to_improve_performance') }}">

				<xf:option value="0">{{ phrase('none') }}</xf:option>
				<xf:option value="7">{{ phrase('x_days', {'days': '7'}) }}</xf:option>
				<xf:option value="14">{{ phrase('x_days', {'days': '14'}) }}</xf:option>
				<xf:option value="30">{{ phrase('x_days', {'days': '30'}) }}</xf:option>
				<xf:option value="60">{{ phrase('x_months', {'months': '2'}) }}</xf:option>
				<xf:option value="90">{{ phrase('x_months', {'months': '3'}) }}</xf:option>
				<xf:option value="182">{{ phrase('x_months', {'months': '6'}) }}</xf:option>
				<xf:option value="365">{{ phrase('1_year') }}</xf:option>
			</xf:selectrow>

			<xf:macro id="node_edit_macros::style" arg-node="{$node}" arg-styleTree="{$styleTree}" />

			<xf:if is="$availablePrompts is not empty">
				<hr class="formRowSep" />

				<xf:checkboxrow name="available_prompts" rowtype="explainOffset" listclass="prompt"
					label="{{ phrase('available_prompts') }}"
					explain="{{ phrase('available_thread_prompts_explain',
					{
						'link': link(
							'phrases/edit-by-name', {},
							{'title': 'thread_prompt.default'}
						)
					}) }}">

					<xf:foreach loop="$promptGroups" key="$promptGroupId" value="$promptGroup" if="{$promptsGrouped.{$promptGroupId}}">

						<xf:optgroup check-all="true" listclass="_listColumns"
							label="{{ $promptGroupId ? $promptGroup.title : phrase('ungrouped') }}">

							<xf:foreach loop="{$promptsGrouped.{$promptGroupId}}" key="$promptId" value="$prompt">
								<xf:option value="{$promptId}" selected="{$forum.prompt_cache.{$promptId}}">
									<xf:label>{$prompt.title}</xf:label>
								</xf:option>
							</xf:foreach>
						</xf:optgroup>
					</xf:foreach>

					<xf:hint>
						<xf:checkbox standalone="true">
							<xf:option check-all=".prompt">{{ phrase('select_all') }}</xf:option>
						</xf:checkbox>
					</xf:hint>
				</xf:checkboxrow>

			</xf:if>
		</div>

		<xf:submitrow icon="save" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="forum_selection_macros" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:macro id="select_forums"
	arg-nodeIds="!"
	arg-nodeTree="!"
	arg-withRow="1"
	arg-selectName="node_ids">

	<xf:set var="$inner">
		<ul class="inputList">
			<li><xf:select name="{$selectName}[]" value="{$nodeIds}" size="7" multiple="multiple" id="js-applicableForums">

				<xf:option value="" selected="!{$nodeIds}">{{ phrase('(none)') }}</xf:option>

				<xf:foreach loop="$nodeTree.getFlattened(0)" value="$treeEntry">
					<xf:option value="{$treeEntry.record.node_id}"
						disabled="{{ $treeEntry.record.node_type_id != 'Forum' }}"
						label="{{ repeat('&nbsp;&nbsp;', $treeEntry.depth)|raw }} {$treeEntry.record.title}" />
				</xf:foreach>

			</xf:select></li>

			<xf:checkbox>
				<xf:option label="{{ phrase('select_all') }}" id="js-selectAllForums" />
			</xf:checkbox>
		</ul>
	</xf:set>

	<xf:if is="$withRow">
		<xf:formrow rowtype="input" label="{{ phrase('applicable_forums') }}">
			{$inner|raw}
		</xf:formrow>
	<xf:else />
		{$inner|raw}
	</xf:if>

	<xf:js>
		const selectAll = document.querySelector('#js-selectAllForums')
		XF.on(selectAll, 'click', e =>
		{
			const forums = document.querySelector('#js-applicableForums')
			const options = forums.querySelectorAll('option:enabled')
			options.forEach(option =>
			{
				option.selected = option.matches('[value=""]')
					? !e.target.checked
					: e.target.checked
			})
		})
	</xf:js>
</xf:macro>]]></template>
  <template type="admin" title="forum_suggestion_convert_reactions" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:title>{{ phrase('convert_suggestion_reactions_to_votes') }}</xf:title>

<xf:form action="{{ link('forums/suggestion-convert-reactions', $node) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('forum_suggestion_convert_reactions_explain') }}
			</xf:inforow>
			<xf:inforow rowtype="confirm">
				{{ phrase('confirm_convert_suggestion_reactions_in_following_forum:') }}
				<strong><a href="{{ link('forums/edit', $node) }}">{$node.title}</a></strong>
			</xf:inforow>
		</div>
		<xf:submitrow rowtype="simple" icon="confirm" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="forum_type_config_article" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:radiorow name="type_config[display_style]" value="{$typeConfig.display_style}"
	label="{{ phrase('display_style') }}">
	<xf:option value="full"
		label="{{ phrase('standard') }}"
		hint="{{ phrase('new_threads_display_style_full_explain') }}" />
	<xf:option value="preview"
		label="{{ phrase('preview') }}"
		hint="{{ phrase('new_threads_display_style_preview_explain') }}"
		data-xf-init="disabler"
		data-hide="true"
		data-container=".js-articlePreviewOptions" />
	<xf:option value="expanded"
		label="{{ phrase('expanded') }}"
		hint="{{ phrase('article_threads_display_style_expanded_explain') }}"
		data-xf-init="disabler"
		data-hide="true"
		data-container=".js-articleExpandedOptions" />
</xf:radiorow>

<div class="js-articlePreviewOptions">
	<xf:numberboxrow label="{{ phrase('override_articles_per_page') }}"
		explain="{{ phrase('override_articles_per_page_explain') }}"
		name="type_config[expanded_per_page]"
		value="{$typeConfig.expanded_per_page}"
		min="0" />
</div>

<div class="js-articleExpandedOptions">
	<xf:numberboxrow label="{{ phrase('override_articles_per_page') }}"
		explain="{{ phrase('override_articles_per_page_explain') }}"
		name="type_config[expanded_per_page]"
		value="{$typeConfig.expanded_per_page}"
		min="0" />
	<xf:numberboxrow label="{{ phrase('article_snippet_length') }}"
		explain="{{ phrase('article_snippet_length_explain') }}"
		name="type_config[expanded_snippet]"
		value="{$typeConfig.expanded_snippet}"
		min="0" />
</div>]]></template>
  <template type="admin" title="forum_type_config_discussion" version_id="2020032" version_string="2.2.0 Beta 2"><![CDATA[<xf:js src="xf/sort.js, vendor/dragula/dragula.js"/>
<xf:css src="public:dragula.less"/>

<xf:formrow label="{{ phrase('allowed_thread_types') }}">
	<div data-xf-init="list-sorter" data-drag-handle=".dragHandle">
		<div class="is-undraggable js-blockDragbefore">
			<span class="dragHandle" aria-label="{{ phrase('drag_handle')|for_attr }}"></span>
			<xf:checkbox standalone="true">
				<xf:option selected="true" disabled="true">{{ phrase('thread_type_plural.discussion') }}</xf:option>
			</xf:checkbox>
		</div>

		<xf:foreach loop="$typeConfig.allowed_thread_types"
			value="$threadTypeId"
			if="{$possibleThreadTypes.{$threadTypeId}}"
		>
			<div class="u-inputSpacer">
				<span class="dragHandle" aria-label="{{ phrase('drag_handle')|for_attr }}"></span>
				<xf:checkbox standalone="true">
					<xf:option name="type_config[allowed_thread_types][]" value="{$threadTypeId}" selected="true"
						label="{$possibleThreadTypes.{$threadTypeId}}"
						data-xf-init="disabler"
						data-container="#js-{$threadTypeId}Config"
						data-optional="on"
						data-hide="on" />
				</xf:checkbox>
			</div>
		</xf:foreach>

		<xf:foreach loop="$possibleThreadTypes"
			key="$threadTypeId"
			value="$typeTitle"
			if="{{ !in_array($threadTypeId, $typeConfig.allowed_thread_types) }}"
		>
			<div class="u-inputSpacer">
				<span class="dragHandle" aria-label="{{ phrase('drag_handle')|for_attr }}"></span>
				<xf:checkbox standalone="true">
					<xf:option name="type_config[allowed_thread_types][]" value="{$threadTypeId}"
						label="{$typeTitle}"
						data-xf-init="disabler"
						data-container="#js-{$threadTypeId}Config"
						data-optional="on"
						data-hide="on" />
				</xf:checkbox>
			</div>
		</xf:foreach>
	</div>
</xf:formrow>

<xf:if is="$possibleThreadTypes.question">
	<xf:checkboxrow rowid="js-questionConfig">
		<xf:option name="type_config[allow_answer_voting]"
			selected="$typeConfig.allow_answer_voting"
			label="{{ phrase('allow_answer_voting_in_question_threads') }}"
			hint="{{ phrase('if_enabled_users_will_be_able_to_vote_on_answers_given_to_questions') }}">
			<xf:checkbox>
				<xf:option
					name="type_config[allow_answer_downvote]"
					selected="{{ !$typeConfig.allow_answer_voting OR $typeConfig.allow_answer_downvote }}"
					label="{{ phrase('allow_answers_given_to_votable_questions_to_be_downvoted') }}"
					hint="{{ phrase('if_disabled_users_may_only_choose_to_upvote_answers') }}" />
			</xf:checkbox>
		</xf:option>
	</xf:checkboxrow>
</xf:if>]]></template>
  <template type="admin" title="forum_type_config_question" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:checkboxrow>
	<xf:option
		name="type_config[allow_answer_voting]"
		selected="{$typeConfig.allow_answer_voting}"
		label="{{ phrase('support_answer_voting') }}"
		hint="{{ phrase('if_enabled_users_will_be_able_to_vote_on_answers_given_to_questions') }}">
		<xf:checkbox>
			<xf:option
				name="type_config[allow_downvote]"
				selected="{{ !$typeConfig.allow_answer_voting OR $typeConfig.allow_downvote }}"
				label="{{ phrase('allow_answers_given_to_votable_questions_to_be_downvoted') }}"
				hint="{{ phrase('if_disabled_users_may_only_choose_to_upvote_answers') }}" />
		</xf:checkbox>
	</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="forum_type_config_suggestion" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:checkboxrow>
	<xf:option
		name="type_config[allow_downvote]"
		selected="{$typeConfig.allow_downvote}"
		label="{{ phrase('allow_suggestions_to_be_downvoted') }}"
		hint="{{ phrase('if_disabled_users_may_only_upvote_suggestions') }}" />
</xf:checkboxrow>

<xf:if is="$prefixesGrouped is not empty">
	<xf:formrow label="{{ phrase('implemented_prefixes') }}"
		explain="{{ phrase('implemented_prefixes_desc') }}"
		rowtype="input">

		<xf:select name="type_config[implemented_prefix_ids][]"
			multiple="multiple"
			value="{$typeConfig.implemented_prefix_ids}"
			class="js-availablePrefixSelect">

			<xf:foreach loop="$prefixGroups" key="$prefixGroupId" value="$prefixGroup"
				if="{{ count($prefixesGrouped.{$prefixGroupId}) > 0 }}">
				<xf:optgroup label="{{ $prefixGroupId > 0 ? $prefixGroup.title : phrase('ungrouped') }}">
					<xf:foreach loop="{$prefixesGrouped.{$prefixGroupId}}" key="$prefixId" value="$prefix">
						<xf:option value="{$prefixId}" disabled="{{ !in_array($prefixId, $forum.prefix_cache) }}">{$prefix.title}</xf:option>
					</xf:foreach>
				</xf:optgroup>
			</xf:foreach>
		</xf:select>
	</xf:formrow>

	<xf:formrow label="{{ phrase('closed_prefixes') }}"
		explain="{{ phrase('closed_prefixes_desc') }}"
		rowtype="input">

		<xf:select name="type_config[closed_prefix_ids][]"
			multiple="multiple"
			value="{$typeConfig.closed_prefix_ids}"
			class="js-availablePrefixSelect">

			<xf:foreach loop="$prefixGroups" key="$prefixGroupId" value="$prefixGroup"
				if="{{ count($prefixesGrouped.{$prefixGroupId}) > 0 }}">
				<xf:optgroup label="{{ $prefixGroupId > 0 ? $prefixGroup.title : phrase('ungrouped') }}">
					<xf:foreach loop="{$prefixesGrouped.{$prefixGroupId}}" key="$prefixId" value="$prefix">
						<xf:option value="{$prefixId}" disabled="{{ !in_array($prefixId, $forum.prefix_cache) }}">{$prefix.title}</xf:option>
					</xf:foreach>
				</xf:optgroup>
			</xf:foreach>
		</xf:select>
	</xf:formrow>
</xf:if>

<xf:if is="$node.exists() AND !$isTypeChange">
	<xf:formrow>
		<xf:button href="{{ link('forums/suggestion-convert-reactions', $node) }}"
			class="button--link"
			data-xf-click="overlay">
			{{ phrase('convert_reactions_to_votes') }}
		</xf:button>
	</xf:formrow>
</xf:if>]]></template>
  <template type="admin" title="help_page_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$page.isInsert()">
	<xf:title>{{ phrase('add_help_page') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_help_page:') }} {$page.title}</xf:title>
</xf:if>

<xf:pageaction if="$page.isUpdate() AND $page.canEdit()">
	<xf:button href="{{ link('help-pages/delete', $page) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:if is="!$page.canEdit()">
	<div class="blockMessage blockMessage--important blockMessage--iconic">
		{{ phrase('only_limited_fields_in_item_may_be_edited') }}
	</div>
</xf:if>

<xf:form action="{{ link('help-pages/save', $page) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">

			<xf:textboxrow name="page_name" value="{$page}"
				readonly="{{ !$page.canEdit() }}"
				label="{{ phrase('url_portion') }}">
				<xf:explain>
					{{ phrase('represents_portion_of_url_after_help_part_identify_page') }}
				</xf:explain>
			</xf:textboxrow>

			<xf:hiddenval name="page_id">{$page.page_id}</xf:hiddenval>

			<xf:textboxrow name="title" value="{$page}"
				readonly="{{ !$page.canEdit() }}"
				label="{{ phrase('title') }}" />

			<xf:textboxrow name="description" value="{$page}"
				readonly="{{ !$page.canEdit() }}"
				label="{{ phrase('description') }}" />

			<xf:macro id="display_order_macros::row"
				arg-value="{$page}"
				arg-explain="{{ ($xf.development AND $page.addon_id) ? phrase('field_value_maintained_addon_upgrade_explain') : '' }}" />

			<xf:checkboxrow>
				<xf:option name="advanced_mode" value="1" selected="{$page.advanced_mode}"
					readonly="{{ !$page.canEdit() }}"
					label="{{ phrase('advanced_mode') }}"
					hint="{{ phrase('if_enabled_html_for_your_page_will_not_be_contained_within_block') }}" />
			</xf:checkboxrow>

			<xf:codeeditorrow name="content" value="{{ $page.isUpdate() ? $page.MasterTemplate.template : '' }}"
				mode="html"
				class="codeEditor--short"
				readonly="{{ !$page.canEdit() }}"
				label="{{ phrase('page_content') }}"
				explain="{{ phrase('you_may_use_xenforo_template_syntax_here') }}" />

			<xf:formrow rowtype="input"
				label="{{ phrase('php_callback') }}"
				explain="{{ phrase('page_callback_explanation_html') }}">
				<xf:macro id="helper_callback_fields::callback_fields"
					arg-data="{$page}"
					arg-readOnly="{{ !$page.canEdit() }}" />
			</xf:formrow>

			<xf:checkboxrow>
				<xf:option name="active" value="1" selected="$page.active"
					hint="{{ ($xf.development AND $page.addon_id) ? phrase('field_value_maintained_addon_upgrade_explain') : '' }}">
					{{ phrase('enabled') }}
				</xf:option>
			</xf:checkboxrow>

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$page.addon_id}" />
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="help_page_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('help_pages') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('help-pages/add') }}" icon="add">{{ phrase('add_help_page') }}</xf:button>
</xf:pageaction>

<xf:if is="$pages is not empty">
	<xf:form action="{{ link('help-pages/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="help-pages" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$pages" value="$page">
						<xf:datarow
							label="{$page.title}"
							hint="{$page.page_name}"
							href="{{ link('help-pages/edit', $page) }}"
							explain="{$page.description}"
							delete="{{ link('help-pages/delete', $page) }}"
							hash="{$page.page_id}">
							<xf:toggle name="active[{$page.page_id}]" selected="$page.active"
								class="dataList-cell--separated" submit="true"
								tooltip="{{ phrase('enable_disable_x', {'title': $page.title}) }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($pages) }}</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="helper_callback_fields" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="callback_fields"
	arg-data=""
	arg-namePrefix=""
	arg-className="callback_class"
	arg-methodName="callback_method"
	arg-classValue=""
	arg-methodValue=""
	arg-size="25"
	arg-readOnly="{{ false }}">

	<xf:if is="$namePrefix">
		<xf:set var="$className" value="{$namePrefix}_class" />
		<xf:set var="$methodName" value="{$namePrefix}_method" />
	</xf:if>
	<xf:if is="empty($classValue) && !empty($data)">
		<xf:set var="$classValue" value="{$data.{$className}}" />
	</xf:if>
	<xf:if is="empty($methodValue) && !empty($data)">
		<xf:set var="$methodValue" value="{$data.{$methodName}}" />
	</xf:if>

	<div class="inputGroup" dir="ltr">
		<xf:textbox name="{$className}" value="{$classValue}" size="{$size}" maxlength="100" dir="ltr"
			readonly="{$readOnly}"
			placeholder="{{ phrase('class') }}" />
		<span class="inputGroup-text">::</span>
		<xf:textbox name="{$methodName}" value="{$methodValue}" size="{$size}" maxlength="75" dir="ltr"
			readonly="{$readOnly}"
			placeholder="{{ phrase('method') }}" />
	</div>
	<p class="formRow-explain">{{ phrase('callback_class_method_explain') }}</p>
</xf:macro>

<xf:macro id="callback_row"
	arg-label="!"
	arg-explain=""
	arg-data=""
	arg-namePrefix=""
	arg-className="callback_class"
	arg-methodName="callback_method"
	arg-classValue=""
	arg-methodValue=""
	arg-size="25"
	arg-readOnly="{{ false }}">
	<xf:formrow label="{$label}" explain="{$explain|raw}" rowtype="input">
		<xf:macro id="callback_fields"
			arg-data="{$data}"
			arg-namePrefix="{$namePrefix}"
			arg-className="{$className}"
			arg-methodName="{$methodName}"
			arg-classValue="{$classValue}"
			arg-methodValue="{$methodValue}"
			arg-size="{$size}"
			arg-readOnly="{$readOnly}" />
	</xf:formrow>
</xf:macro>]]></template>
  <template type="admin" title="helper_criteria" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="user_tabs" arg-container="" arg-userTabTitle="" arg-active="">
	<xf:set var="$tabs">
		<a class="tabs-tab{{ $active == 'user' ? ' is-active' : '' }}"
			role="tab" tabindex="0" aria-controls="{{ unique_id('criteriaUser') }}">
			{{ $userTabTitle ? $userTabTitle : phrase('user_criteria') }}</a>
		<a class="tabs-tab{{ $active == 'user_field' ? ' is-active' : '' }}"
			role="tab" tabindex="0" aria-controls="{{ unique_id('criteriaUserField') }}">
			{{ phrase('custom_userfield_criteria') }}</a>
	</xf:set>
	<xf:if is="$container">
		<div class="tabs" role="tablist">
			{$tabs|raw}
		</div>
	<xf:else />
		{$tabs|raw}
	</xf:if>
</xf:macro>

<xf:macro id="page_tabs" arg-container="" arg-active="">
	<xf:set var="$tabs">
		<a class="tabs-tab{{ $active == 'page' ? ' is-active' : '' }}"
			role="tab" tabindex="0" aria-controls="{{ unique_id('criteriaPage') }}">{{ phrase('page_criteria') }}</a>
	</xf:set>
	<xf:if is="$container">
		<div class="tabs" role="tablist">
			{$tabs|raw}
		</div>
	<xf:else />
		{$tabs|raw}
	</xf:if>
</xf:macro>

<xf:macro id="user_panes" arg-container="" arg-active="" arg-criteria="!" arg-data="!">

	<xf:set var="$app" value="{$xf.app}" />
	<xf:set var="$visitor" value="{$xf.visitor}" />
	<xf:set var="$em" value="{$app.em}" />

	<xf:set var="$panes">
		<li class="{{ $active == 'user' ? ' is-active' : '' }}" role="tabpanel" id="{{ unique_id('criteriaUser') }}">
			<!--[XF:user:top]-->

			<xf:checkboxrow label="{{ phrase('privileges_and_status') }}">
				<!--[XF:user:status_top]-->

				<xf:option name="user_criteria[is_guest][rule]" value="is_guest" selected="{$criteria.is_guest}"
					label="{{ phrase('user_is_guest') }}" />
				<xf:option name="user_criteria[is_logged_in][rule]" value="is_logged_in" selected="{$criteria.is_logged_in}"
					label="{{ phrase('user_is_logged_in') }}" />
				<xf:option name="user_criteria[is_moderator][rule]" value="is_moderator" selected="{$criteria.is_moderator}"
					label="{{ phrase('user_is_moderator') }}" />
				<xf:option name="user_criteria[is_admin][rule]" value="is_admin" selected="{$criteria.is_admin}"
					label="{{ phrase('user_is_administrator') }}" />
				<xf:option name="user_criteria[is_banned][rule]" value="is_banned" selected="{$criteria.is_banned}"
					label="{{ phrase('user_is_banned') }}"/>
				<xf:option name="user_criteria[birthday][rule]" value="birthday" selected="{$criteria.birthday}"
					label="{{ phrase('user_birthday_is_today') }}"/>
				<xf:option name="user_criteria[user_state][rule]" value="user_state" selected="{$criteria.user_state}"
					label="{{ phrase('user_state_is:') }}">

					<xf:dependent>
						<xf:select name="user_criteria[user_state][data][state]" value="{$criteria.user_state.state}">
							<xf:option value="valid">{{ phrase('valid') }}</xf:option>
							<xf:option value="email_confirm">{{ phrase('awaiting_email_confirmation') }}</xf:option>
							<xf:option value="email_confirm_edit">{{ phrase('awaiting_email_confirmation_from_edit') }}</xf:option>
							<xf:option value="email_bounce">{{ phrase('email_invalid_bounced') }}</xf:option>
							<xf:option value="moderated">{{ phrase('awaiting_approval') }}</xf:option>
							<xf:option value="rejected">{{ phrase('rejected') }}</xf:option>
							<xf:option value="disabled">{{ phrase('disabled') }}</xf:option>
						</xf:select>
					</xf:dependent>

				</xf:option>

				<!--[XF:user:status_bottom]-->
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<!--[XF:user:after_status]-->

			<xf:checkboxrow label="{{ phrase('connected_accounts') }}">
				<xf:option name="user_criteria[connected_accounts][rule]" value="connected_accounts" selected="{$criteria.connected_accounts}"
					label="{{ phrase('user_is_associated_with_any_of_selected_connected_account_providers:') }}">

					<xf:select name="user_criteria[connected_accounts][data][provider_ids]" size="4" multiple="true" value="{$criteria.connected_accounts.provider_ids}">
						<xf:options source="$data.connectedAccProviders" />
					</xf:select>

				</xf:option>
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<!--[XF:user:after_connected]-->

			<xf:checkboxrow label="{{ phrase('user_groups') }}">
				<xf:option name="user_criteria[user_groups][rule]" value="user_groups" selected="{$criteria.user_groups}"
					label="{{ phrase('user_is_member_of_any_of_selected_user_groups:') }}">

					<xf:select name="user_criteria[user_groups][data][user_group_ids]" size="4" multiple="true" value="{$criteria.user_groups.user_group_ids}">
						<xf:foreach loop="$data.userGroups" key="$userGroupId" value="$userGroupTitle">
							<xf:option value="{$userGroupId}">{$userGroupTitle}</xf:option>
						</xf:foreach>
					</xf:select>

				</xf:option>

				<xf:option name="user_criteria[not_user_groups][rule]" value="not_user_groups" selected="{$criteria.not_user_groups}"
					label="{{ phrase('user_is_not_member_of_any_of_selected_user_groups:') }}">

					<xf:select name="user_criteria[not_user_groups][data][user_group_ids]" size="4" multiple="true" value="{$criteria.not_user_groups.user_group_ids}">
						<xf:foreach loop="$data.userGroups" key="$userGroupId" value="$userGroupTitle">
							<xf:option value="{$userGroupId}">{$userGroupTitle}</xf:option>
						</xf:foreach>
					</xf:select>

				</xf:option>
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<!--[XF:user:after_groups]-->

			<xf:checkboxrow label="{{ phrase('content_and_achievements') }}">
				<!--[XF:user:content_top]-->

				<xf:option name="user_criteria[messages_posted][rule]" value="messages_posted" selected="{$criteria.messages_posted}"
					label="{{ phrase('user_has_posted_at_least_x_messages:') }}">
					<xf:numberbox name="user_criteria[messages_posted][data][messages]" value="{$criteria.messages_posted.messages}"
						size="5" min="0" step="1" />
				</xf:option>

				<xf:option name="user_criteria[messages_maximum][rule]" value="messages_maximum" selected="{$criteria.messages_maximum}"
					label="{{ phrase('user_has_posted_no_more_than_x_messages:') }}">
					<xf:numberbox name="user_criteria[messages_maximum][data][messages]" value="{$criteria.messages_maximum.messages}"
						size="5" min="0" step="1" />
				</xf:option>

				<!--[XF:user:content_after_messages]-->

				<xf:option name="user_criteria[questions_solved_min][rule]" value="questions_solved_min" selected="{$criteria.questions_solved_min}"
					label="{{ phrase('user_has_solved_at_least_x_questions:') }}">
					<xf:numberbox name="user_criteria[questions_solved_min][data][solved]" value="{$criteria.questions_solved_min.solved}"
						size="5" min="0" step="1" />
				</xf:option>

				<xf:option name="user_criteria[questions_solved_max][rule]" value="questions_solved_max" selected="{$criteria.questions_solved_max}"
					label="{{ phrase('user_has_solved_no_more_than_x_questions:') }}">
					<xf:numberbox name="user_criteria[questions_solved_max][data][solved]" value="{$criteria.questions_solved_max.solved}"
						size="5" min="0" step="1" />
				</xf:option>

				<!--[XF:user:content_after_questions]-->

				<xf:option name="user_criteria[reaction_score][rule]" value="reaction_score" selected="{$criteria.reaction_score}"
					label="{{ phrase('user_has_received_a_reaction_sore_of_at_least_x:') }}">
					<xf:numberbox name="user_criteria[reaction_score][data][reactions]" value="{$criteria.reaction_score.reactions}"
						size="5" min="0" step="1" />
				</xf:option>

				<xf:option name="user_criteria[reaction_ratio][rule]" value="reaction_ratio" selected="{$criteria.reaction_ratio}"
					label="{{ phrase('user_reaction_message_ratio_is_at_least:') }}">
					<xf:numberbox name="user_criteria[reaction_ratio][data][ratio]" value="{$criteria.reaction_ratio.ratio}"
						size="5" min="0" step="0.25" />
					<xf:afterhint>{{ phrase('reaction_message_ratio_explanation') }}</xf:afterhint>
				</xf:option>

				<!--[XF:user:content_after_reactions]-->

				<xf:option name="user_criteria[trophy_points][rule]" value="trophy_points" selected="{$criteria.trophy_points}"
					label="{{ phrase('user_has_at_least_x_trophy_points:') }}">
					<xf:numberbox name="user_criteria[trophy_points][data][points]" value="{$criteria.trophy_points.points}"
						size="5" min="0" step="1" />
				</xf:option>

				<!--[XF:user:content_after_trophies]-->

				<xf:option name="user_criteria[registered_days][rule]" value="registered_days" selected="{$criteria.registered_days}"
					label="{{ phrase('user_has_been_registered_for_at_least_x_days:') }}">
					<xf:numberbox name="user_criteria[registered_days][data][days]" value="{$criteria.registered_days.days}"
						size="5" min="0" step="1" />
				</xf:option>

				<xf:option name="user_criteria[inactive_days][rule]" value="inactive_days" selected="{$criteria.inactive_days}"
					label="{{ phrase('user_has_not_visited_for_at_least_x_days:') }}">
					<xf:numberbox name="user_criteria[inactive_days][data][days]" value="{$criteria.inactive_days.days}"
						size="5" min="0" step="1" />
				</xf:option>

				<!--[XF:user:content_bottom]-->
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<!--[XF:user:after_content]-->

			<xf:checkboxrow label="{{ phrase('user_profile_and_options') }}">
				<!--[XF:user:profile_top]-->

				<xf:option name="user_criteria[language][rule]" value="language" selected="{$criteria.language}"
					label="{{ phrase('user_is_browsing_with_following_language:') }}">

					<xf:select name="user_criteria[language][data][language_id]" value="{$criteria.language.language_id}">
						<xf:foreach loop="$data.languageTree.getFlattened(0)" value="$treeEntry">
							<xf:option value="{$treeEntry.record.language_id}">{{ repeat('--', $treeEntry.depth) }} {$treeEntry.record.title}</xf:option>
						</xf:foreach>
					</xf:select>

				</xf:option>

				<xf:optgroup label="{{ phrase('avatar:') }}">
					<xf:option name="user_criteria[has_avatar][rule]" value="has_avatar" selected="{$criteria.has_avatar}"
						label="{{ phrase('user_has_avatar') }}" />

					<xf:option name="user_criteria[no_avatar][rule]" value="no_avatar" selected="{$criteria.no_avatar}"
						label="{{ phrase('user_has_no_avatar') }}" />
				</xf:optgroup>

				<xf:optgroup label="{{ phrase('high_resolution_avatar:') }}">
					<xf:option name="user_criteria[has_highdpi_avatar][rule]" value="has_highdpi_avatar" selected="{$criteria.has_highdpi_avatar}"
						label="{{ phrase('user_has_highdpi_avatar') }}" />

					<xf:option name="user_criteria[no_highdpi_avatar][rule]" value="no_highdpi_avatar" selected="{$criteria.no_highdpi_avatar}"
						label="{{ phrase('user_has_no_highdpi_avatar') }}" />
				</xf:optgroup>

				<xf:optgroup label="{{ phrase('two_step_verification:') }}">
					<xf:option name="user_criteria[with_tfa][rule]" value="with_tfa" selected="{$criteria.with_tfa}"
						label="{{ phrase('user_has_enabled_two_step_verification') }}" />

					<xf:option name="user_criteria[without_tfa][rule]" value="without_tfa" selected="{$criteria.without_tfa}"
						label="{{ phrase('user_has_not_enabled_two_step_verification') }}"/>
				</xf:optgroup>

				<xf:optgroup label="{{ phrase('activity_summary_email:') }}">
					<xf:option name="user_criteria[activity_summary_enabled][rule]" value="activity_summary_enabled" selected="{$criteria.activity_summary_enabled}"
						label="{{ phrase('user_has_activity_summary_emails_enabled') }}" />

					<xf:option name="user_criteria[activity_summary_disabled][rule]" value="activity_summary_disabled" selected="{$criteria.activity_summary_disabled}"
						label="{{ phrase('user_has_activity_summary_emails_disabled') }}"/>
				</xf:optgroup>

				<!--[XF:user:profile_bottom]-->
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<!--[XF:user:after_profile]-->

			<xf:checkboxrow label="{{ phrase('user_segmentation') }}">
				<!--[XF:user:segmentation_top]-->

				<xf:option name="user_criteria[user_id][rule]" value="user_id" selected="{$criteria.user_id}"
					label="{{ phrase('user_id_matches_expression:') }}">
					<xf:textbox
						name="user_criteria[user_id][data][expression]"
						value="{$criteria.user_id.expression}"
						placeholder="2n+1"
					/>
					<xf:afterhint>{{ phrase('user_id_match_criteria_explain') }}</xf:afterhint>
				</xf:option>

				<!--[XF:user:segmentation_bottom]-->
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<!--[XF:user:after_segmentation]-->

			<xf:checkboxrow label="{{ phrase('specific_users') }}">
				<!--[XF:user:specific_top]-->

				<xf:option name="user_criteria[username][rule]" value="username" selected="{$criteria.username}"
					label="{{ phrase('username_is:') }}">
					<xf:textbox name="user_criteria[username][data][names]" value="{$criteria.username.names}" ac="true" />
					<xf:afterhint>{{ phrase('username_criteria_explain') }}</xf:afterhint>

				</xf:option>

				<xf:option name="user_criteria[username_search][rule]" value="username_search" selected="{$criteria.username_search}"
					label="{{ phrase('username_contains:') }}">
					<xf:textbox name="user_criteria[username_search][data][needles]" value="{$criteria.username_search.needles}" />
					<xf:afterhint>{{ phrase('username_search_criteria_explain') }}</xf:afterhint>
				</xf:option>

				<xf:option name="user_criteria[email_search][rule]" value="email_search" selected="{$criteria.email_search}"
					label="{{ phrase('email_address_contains:') }}">
					<xf:textbox name="user_criteria[email_search][data][needles]" value="{$criteria.email_search.needles}" />
					<xf:afterhint>{{ phrase('email_search_criteria_explain') }}</xf:afterhint>
				</xf:option>

				<!--[XF:user:specific_bottom]-->
			</xf:checkboxrow>

			<!--[XF:user:bottom]-->
		</li>

		<li class="{{ $active == 'user_field' ? 'is-active' : '' }}" role="tabpanel" id="{{ unique_id('criteriaUserField') }}">
			<xf:if contentcheck="true">
				<xf:contentcheck>
					<xf:foreach loop="$xf.app.em.getRepository('XF:UserField').getDisplayGroups()" key="$fieldGroup" value="$groupPhrase">

						<xf:set var="$customFields" value="{$app.getCustomFields('users', $fieldGroup)}" />
						<xf:if contentcheck="true">
							<h2 class="block-formSectionHeader"><span class="block-formSectionHeader-aligner">{$groupPhrase}</span></h2>
							<xf:contentcheck>
								<xf:foreach loop="$customFields" key="$fieldId" value="$fieldDefinition">
									<xf:set var="$fieldName" value="user_field_{$fieldId}" />
									<xf:set var="$choices" value="{$fieldDefinition.field_choices}" />
									<xf:checkboxrow label="{$fieldDefinition.title}">
										<xf:option name="user_criteria[{$fieldName}][rule]" value="{$fieldName}" selected="{$criteria.{$fieldName}}"
											label="{{ $choices ? phrase('criteria_userfield_choice_among') : phrase('criteria_userfield_contains_text:') }}">
											<xf:dependent>
												<xf:if is="!{$choices}">
													<xf:textbox name="user_criteria[{$fieldName}][data][text]" value="{$criteria.{$fieldName}.text}" />
												<xf:elseif is="{{ count($choices) }} > 6" />
													<xf:select name="user_criteria[{$fieldName}][data][choices]" value="{$criteria.{$fieldName}.choices}" multiple="multiple" size="5">
														<xf:options source="{$choices}" />
													</xf:select>
												<xf:else />
													<xf:checkbox name="user_criteria[{$fieldName}][data][choices]" value="{$criteria.{$fieldName}.choices}" listclass="listColumns">
														<xf:options source="{$choices}" />
													</xf:checkbox>
												</xf:if>
											</xf:dependent>
										</xf:option>
									</xf:checkboxrow>
								</xf:foreach>
							</xf:contentcheck>
						</xf:if>

					</xf:foreach>
				</xf:contentcheck>
			<xf:else />
				{{ phrase('no_custom_fields_have_been_created_yet') }}
			</xf:if>
		</li>
	</xf:set>

	<xf:if is="$container">
		<ul class="tabPanes">
			{$panes|raw}
		</ul>
	<xf:else />
		{$panes|raw}
	</xf:if>
</xf:macro>

<xf:macro id="page_panes" arg-container="" arg-active="" arg-criteria="!" arg-data="!">

	<xf:set var="$em" value="{$xf.app.em}" />
	<xf:set var="$visitor" value="{$xf.visitor}" />

	<xf:set var="$panes">
		<li class="{{ $active == 'page' ? ' is-active' : '' }}" role="tabpanel" id="{{ unique_id('criteriaPage') }}">
			<!--[XF:page:after_from_search]-->

			<xf:checkboxrow>
				<xf:option name="page_criteria[after][rule]" value="after" selected="{$criteria.after}"
					label="{{ phrase('criteria_date_time_is_after:') }}">

					<xf:dependent>
						<div class="inputGroup">
							<xf:dateinput name="page_criteria[after][data][ymd]" value="{$criteria.after.ymd}" />
							<span class="inputGroup-text">
								{{ phrase('criteria_time:') }}
							</span>
							<span class="inputGroup" dir="ltr">
								<xf:select name="page_criteria[after][data][hh]" value="{$criteria.after.hh}" class="input--inline input--autoSize">
									<xf:foreach loop="$data.hours" value="$hour">
										<xf:option value="{$hour}" label="{$hour}" />
									</xf:foreach>
								</xf:select>
								<span class="inputGroup-text">:</span>
								<xf:select name="page_criteria[after][data][mm]" value="{$criteria.after.mm}" class="input--inline input--autoSize">
									<xf:foreach loop="$data.minutes" value="$minute">
										<xf:option value="{$minute}" label="{$minute}" />
									</xf:foreach>
								</xf:select>
							</span>
						</div>
						<dfn class="inputChoices-explain inputChoices-explain--after">{{ phrase('criteria_leave_date_empty') }}</dfn>
					</xf:dependent>

					<xf:radio name="page_criteria[after][data][user_tz]" value="{{ $criteria.after.user_tz ? $criteria.after.user_tz : 0 }}">
						<xf:option value="1" label="{{ phrase('criteria_in_visitor_timezone') }}" />
						<xf:option value="0" label="{{ phrase('criteria_in_selected_timezone:') }}">
							<xf:select name="page_criteria[after][data][timezone]" value="{{ $criteria.after.timezone ? $criteria.after.timezone : $visitor.timezone }}">
								<xf:options source="{$data.timeZones}" />
							</xf:select>
						</xf:option>
					</xf:radio>
				</xf:option>
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<!--[XF:page:after_time_after]-->

			<xf:checkboxrow>
				<xf:option name="page_criteria[before][rule]" value="before" selected="{$criteria.before}"
					label="{{ phrase('criteria_date_time_is_before:') }}">

					<xf:dependent>
						<div class="inputGroup">
							<xf:dateinput name="page_criteria[before][data][ymd]" value="{$criteria.before.ymd}" />
							<span class="inputGroup-text">
								{{ phrase('criteria_time:') }}
							</span>
							<span class="inputGroup" dir="ltr">
								<xf:select name="page_criteria[before][data][hh]" value="{$criteria.before.hh}" class="input--inline input--autoSize">
									<xf:foreach loop="$data.hours" value="$hour">
										<xf:option value="{$hour}" label="{$hour}" />
									</xf:foreach>
								</xf:select>
								<span class="inputGroup-text">:</span>
								<xf:select name="page_criteria[before][data][mm]" value="{$criteria.before.mm}" class="input--inline input--autoSize">
									<xf:foreach loop="$data.minutes" value="$minute">
										<xf:option value="{$minute}" label="{$minute}" />
									</xf:foreach>
								</xf:select>
							</span>
						</div>
						<dfn class="inputChoices-explain inputChoices-explain--before">{{ phrase('criteria_leave_date_empty') }}</dfn>
					</xf:dependent>

					<xf:radio name="page_criteria[before][data][user_tz]" value="{{ $criteria.before.user_tz ? $criteria.before.user_tz : 0 }}">
						<xf:option value="1" label="{{ phrase('criteria_in_visitor_timezone') }}" />
						<xf:option value="0" label="{{ phrase('criteria_in_selected_timezone:') }}">
							<xf:select name="page_criteria[before][data][timezone]" value="{{ $criteria.before.timezone ? $criteria.before.timezone : $visitor.timezone }}">
								<xf:options source="{$data.timeZones}" />
							</xf:select>
						</xf:option>
					</xf:radio>

				</xf:option>
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<!--[XF:page:after_time_before]-->

			<xf:checkboxrow label="{{ phrase('nodes') }}">
				<xf:option name="page_criteria[nodes][rule]" value="nodes" selected="{$criteria.nodes}"
					label="{{ phrase('page_is_within_nodes:') }}">

					<xf:select name="page_criteria[nodes][data][node_ids]" multiple="true" value="{$criteria.nodes.node_ids}">
						<xf:foreach loop="$data.nodes" value="$option">
							<xf:option value="{$option.value}" label="{$option.label}" />
						</xf:foreach>
					</xf:select>
					<xf:checkbox>
						<xf:option name="page_criteria[nodes][data][node_only]" value="1" selected="{$criteria.nodes.node_only}"
							label="{{ phrase('only_display_within_selected_nodes_no_children') }}" />
					</xf:checkbox>

				</xf:option>
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<!--[XF:page:after_nodes]-->

			<xf:checkboxrow label="{{ phrase('page_information') }}">
				<xf:option name="page_criteria[style][rule]" value="style" selected="{$criteria.style}"
					label="{{ phrase('user_is_browsing_with_following_style:') }}">

					<xf:select name="page_criteria[style][data][style_id]" value="{$criteria.style.style_id}">
						<xf:foreach loop="$data.styleTree.getFlattened(0)" value="$treeEntry">
							<xf:option value="{$treeEntry.record.style_id}">{{ repeat('--', $treeEntry.depth) }} {$treeEntry.record.title}</xf:option>
						</xf:foreach>
					</xf:select>

				</xf:option>

				<xf:option name="page_criteria[tab][rule]" value="tab" selected="{$criteria.tab}"
					label="{{ phrase('selected_navigation_tab_id_is:') }}">

					<xf:textbox name="page_criteria[tab][data][id]" value="{$criteria.tab.id}"dir="ltr" />
					<xf:afterhint>{{ phrase('selected_tab_criteria_explain') }}</xf:afterhint>
				</xf:option>

				<xf:option name="page_criteria[controller][rule]" value="controller" selected="{$criteria.controller}"
					label="{{ phrase('controller_and_action_is:') }}">

					<xf:macro id="helper_callback_fields::callback_fields"
						arg-className="page_criteria[controller][data][name]"
						arg-methodName="page_criteria[controller][data][action]"
						arg-classValue="{$criteria.controller.name}"
						arg-methodValue="{$criteria.controller.action}" />
					<xf:afterhint>{{ phrase('controller_and_action_criteria_explain') }}</xf:afterhint>
				</xf:option>

				<xf:option name="page_criteria[view][rule]" value="view" selected="{$criteria.view}"
					label="{{ phrase('view_class_is:') }}">

					<xf:textbox name="page_criteria[view][data][name]" value="{$criteria.view.name}" dir="ltr" />
					<xf:afterhint>{{ phrase('view_class_criteria_explain') }}</xf:afterhint>
				</xf:option>

				<xf:option name="page_criteria[template][rule]" value="template" selected="{$criteria.template}"
					label="{{ phrase('content_template_is:') }}">

					<xf:textbox name="page_criteria[template][data][name]" value="{$criteria.template.name}" dir="ltr" />
					<xf:afterhint>{{ phrase('content_template_criteria_explain') }}</xf:afterhint>
				</xf:option>
			</xf:checkboxrow>

			<!--[XF:page:after_page_info]-->
		</li>
	</xf:set>

	<xf:if is="$container">
		<ul class="tabPanes">
			{$panes|raw}
		</ul>
	<xf:else />
		{$panes|raw}
	</xf:if>
</xf:macro>]]></template>
  <template type="admin" title="helper_js_global" version_id="2030170" version_string="2.3.1"><![CDATA[<xf:macro id="head" arg-app="!">
	<xf:macro id="public:helper_js_global::head" arg-app="{$app}" />
	<xf:js src="xf/admin.js" min="1" />
</xf:macro>

<xf:macro id="body" arg-jsState="{{ null }}">
	<xf:macro id="public:helper_js_global::body" arg-app="admin" arg-jsState="{$jsState}" />
	<script{{ $xf.request.isRocketLoaderDisabled() ? ' data-cfasync="false"' : ''}}>
		window.addEventListener('DOMContentLoaded', function() {
			XF.extendObject(true, XF.config, {
				job: {
					manualUrl: "{{ link('tools/run-job')|escape('js') }}"
				},
				visitorCounts: null
			});
			XF.extendObject(XF.phrases, {
				cancel: "{{ phrase('cancel')|escape('js') }}",
				cancelling: "{{ phrase('cancelling')|escape('js') }}",
				no_items_matched_your_filter: "{{ phrase('no_items_matched_your_filter')|escape('js') }}"
			});
		});
	</script>
</xf:macro>]]></template>
  <template type="admin" title="helper_node_delete_children" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="delete_row" arg-node="!" arg-nodeTree="!">
	<xf:if is="$node.hasChildren()">
		<xf:radiorow name="child_nodes_action">
			<xf:option value="move" selected="true">{{ phrase('attach_this_nodes_children_to_its_parent') }}</xf:option>
			<xf:option value="delete">{{ phrase('delete_this_nodes_children') }}</xf:option>
		</xf:radiorow>
	</xf:if>
</xf:macro>]]></template>
  <template type="admin" title="helper_thread_search_criteria" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<hr class="formRowSep" />

<xf:textboxrow name="criteria[title]" value="{$criteria.title}" type="search"
	label="{{ phrase('title') }}" />

<xf:macro id="public:prefix_macros::row"
	arg-includeAny="{{ true }}"
	arg-prefixes="{$prefixes.prefixesGrouped}"
	arg-selected="{$criteria.prefix_id}"
	arg-name="criteria[prefix_id]"
	arg-type="thread"
	arg-multiple="{{ true }}" />

<xf:tokeninputrow name="criteria[tags]" value="{$criteria.tags}"
	href="{{ link_type('public', 'misc/tag-auto-complete') }}"
	label="{{ phrase('tags') }}" />

<div class="formRowSep"></div>

<xf:checkboxrow name="criteria[thread_type]" value="{$criteria.thread_type}" listclass="listColumns"
	label="{{ phrase('thread_type_filter') }}">
	<xf:options source="$threadTypes" />
</xf:checkboxrow>

<div class="formRowSep"></div>

<xf:formrow
	label="{{ phrase('forum') }}">

	<ul class="inputList">
		<li><xf:radio name="criteria[node_id][search_type]"
			value="{{ (is_array($criteria.node_id) ? $criteria.node_id.search_type : '') ?: 'include' }}"
			listclass="inputChoices--inline">
			<xf:option value="include">{{ phrase('include_selected') }}</xf:option>
			<xf:option value="exclude">{{ phrase('exclude_selected') }}</xf:option>
		</xf:radio></li>

		<li><xf:select name="criteria[node_id]"
			value="{{ is_array($criteria.node_id) ? $criteria.node_id|numeric_keys_only : $criteria.node_id }}"
			multiple="true" size="8">
			<xf:option value="0" label="{{ phrase('(any)') }}" />
			<xf:foreach loop="$forums" value="$forum">
				<xf:option value="{$forum.value}" disabled="{$forum.disabled}">{$forum.label}</xf:option>
			</xf:foreach>
		</xf:select></li>
	</ul>
</xf:formrow>

<div class="formRowSep"></div>

<xf:textboxrow name="criteria[username]" value="{$criteria.username}" type="search"
	label="{{ phrase('created_by') }}" />

<xf:checkboxrow name="criteria[starter_user_group_id]" value="{$criteria.starter_user_group_id}" listclass="listColumns"
	label="{{ phrase('thread_creator_in_user_groups') }}">

	<xf:foreach loop="$userGroups" value="$userGroup">
		<xf:option value="{$userGroup.user_group_id}">{$userGroup.title}</xf:option>
	</xf:foreach>
	<xf:explain>{{ phrase('true_if_thread_creator_is_in_one_or_more_of_selected_groups') }}</xf:explain>
</xf:checkboxrow>

<xf:checkboxrow name="criteria[starter_not_user_group_id]" value="{$criteria.starter_not_user_group_id}" listclass="listColumns"
	label="{{ phrase('thread_creator_not_in_user_groups') }}">

	<xf:foreach loop="$userGroups" value="$userGroup">
		<xf:option value="{$userGroup.user_group_id}">{$userGroup.title}</xf:option>
	</xf:foreach>
	<xf:explain>{{ phrase('true_if_thread_creator_is_not_in_any_of_selected_groups') }}</xf:explain>
</xf:checkboxrow>

<hr class="formRowSep" />

<xf:formrow rowtype="input"
	label="{{ phrase('created_between') }}">
	<div class="inputGroup">
		<xf:dateinput name="criteria[post_date][start]" value="{$criteria.post_date.start}" size="15" />
		<span class="inputGroup-text">-</span>
		<xf:dateinput name="criteria[post_date][end]" value="{$criteria.post_date.end}" size="15" />
	</div>
</xf:formrow>

<xf:formrow rowtype="input"
	label="{{ phrase('created_in_last') }}"
	explain="{{ phrase('use_0_to_specify_no_restriction') }}">
	<div class="inputGroup inputGroup--auto">
		<xf:numberbox name="criteria[posted_in_last][value]" value="{$criteria.posted_in_last.value}"
			size="5" min="0" />
		<span class="inputGroup-splitter"></span>
		<xf:select name="criteria[posted_in_last][unit]" value="{$criteria.posted_in_last.unit}">
			<xf:option value="hour">{{ phrase('units_hours') }}</xf:option>
			<xf:option value="day">{{ phrase('units_days') }}</xf:option>
			<xf:option value="week">{{ phrase('units_weeks') }}</xf:option>
			<xf:option value="month">{{ phrase('units_months') }}</xf:option>
			<xf:option value="year">{{ phrase('units_years') }}</xf:option>
		</xf:select>
	</div>
</xf:formrow>

<div class="formRowSep"></div>

<xf:formrow rowtype="input"
	label="{{ phrase('last_post_between') }}">
	<div class="inputGroup">
		<xf:dateinput name="criteria[last_post_date][start]" value="{$criteria.last_post_date.start}" size="15" />
		<span class="inputGroup-text">-</span>
		<xf:dateinput name="criteria[last_post_date][end]" value="{$criteria.last_post_date.end}" size="15" />
	</div>
</xf:formrow>

<xf:formrow rowtype="input"
	label="{{ phrase('last_post_in_last') }}"
	explain="{{ phrase('use_0_to_specify_no_restriction') }}">
	<div class="inputGroup inputGroup--auto">
		<xf:numberbox name="criteria[last_post_in_last][value]" value="{$criteria.last_post_in_last.value}"
			size="5" min="0" />
		<span class="inputGroup-splitter"></span>
		<xf:select name="criteria[last_post_in_last][unit]" value="{$criteria.last_post_in_last.unit}">
			<xf:option value="hour">{{ phrase('units_hours') }}</xf:option>
			<xf:option value="day">{{ phrase('units_days') }}</xf:option>
			<xf:option value="week">{{ phrase('units_weeks') }}</xf:option>
			<xf:option value="month">{{ phrase('units_months') }}</xf:option>
			<xf:option value="year">{{ phrase('units_years') }}</xf:option>
		</xf:select>
	</div>
</xf:formrow>

<hr class="formRowSep" />

<xf:formrow rowtype="input"
	label="{{ phrase('reply_count_between') }}"
	explain="{{ phrase('use_negative_one_specify_no_max') }}">
	<div class="inputGroup">
		<xf:numberbox name="criteria[reply_count][start]" value="{$criteria.reply_count.start}" size="5" min="0" />
		<span class="inputGroup-text">-</span>
		<xf:numberbox name="criteria[reply_count][end]" value="{$criteria.reply_count.end}" size="5" min="-1" />
	</div>
</xf:formrow>

<xf:formrow rowtype="input"
	label="{{ phrase('vote_score_between') }}">
	<div class="inputGroup">
		<xf:numberbox name="criteria[vote_score][start]" value="{$criteria.vote_score.start}" size="5" step="any" />
		<span class="inputGroup-text">-</span>
		<xf:numberbox name="criteria[vote_score][end]" value="{$criteria.vote_score.end}" size="5" step="any" />
	</div>
</xf:formrow>

<xf:formrow rowtype="input"
	label="{{ phrase('first_post_reaction_score_between') }}">
	<div class="inputGroup">
		<xf:numberbox name="criteria[first_post_reaction_score][start]" value="{$criteria.first_post_reaction_score.start}" size="5" step="any" />
		<span class="inputGroup-text">-</span>
		<xf:numberbox name="criteria[first_post_reaction_score][end]" value="{$criteria.first_post_reaction_score.end}" size="5" step="any" />
	</div>
</xf:formrow>

<xf:formrow rowtype="input"
	label="{{ phrase('view_count_between') }}"
	explain="{{ phrase('use_negative_one_specify_no_max') }}">
	<div class="inputGroup">
		<xf:numberbox name="criteria[view_count][start]" value="{$criteria.view_count.start}" size="5" min="0" />
		<span class="inputGroup-text">-</span>
		<xf:numberbox name="criteria[view_count][end]" value="{$criteria.view_count.end}" size="5" min="-1" />
	</div>
</xf:formrow>

<hr class="formRowSep" />

<xf:checkboxrow name="criteria[discussion_state]" value="{$criteria.discussion_state}"
	label="{{ phrase('state') }}">
	<xf:option value="visible">{{ phrase('visible') }}</xf:option>
	<xf:option value="deleted">{{ phrase('deleted') }}</xf:option>
	<xf:option value="moderated">{{ phrase('moderated') }}</xf:option>
</xf:checkboxrow>

<xf:checkboxrow name="criteria[discussion_open]" value="{$criteria.discussion_open}"
	label="{{ phrase('locked') }}">
	<xf:option value="1">{{ phrase('unlocked') }}</xf:option>
	<xf:option value="0">{{ phrase('locked') }}</xf:option>
</xf:checkboxrow>

<xf:checkboxrow name="criteria[sticky]" value="{$criteria.sticky}"
	label="{{ phrase('sticky') }}">
	<xf:option value="0">{{ phrase('not_sticky') }}</xf:option>
	<xf:option value="1">{{ phrase('sticky') }}</xf:option>
</xf:checkboxrow>

<xf:checkboxrow name="criteria[featured]" value="{$criteria.featured}"
	label="{{ phrase('featured') }}">
	<xf:option value="0">{{ phrase('not_featured') }}</xf:option>
	<xf:option value="1">{{ phrase('featured') }}</xf:option>
</xf:checkboxrow>

<xf:if contentcheck="true">
	<hr class="formRowSep" />
	<xf:contentcheck>
		<xf:foreach loop="$xf.app.em.getRepository('XF:ThreadField').getDisplayGroups()" key="$fieldGroup" value="$phrase">
			<xf:set var="$customFields" value="{$xf.app.getCustomFields('threads', $fieldGroup)}" />
			<xf:if contentcheck="true">
				<xf:contentcheck>
					<xf:foreach loop="$customFields" key="$fieldId" value="$fieldDefinition">
						<xf:set var="$choices" value="{$fieldDefinition.field_choices}" />
						<xf:set var="$fieldName" value="criteria[thread_field]{{ ($choices && $fieldDefinition.type_group != 'multiple') ? '[exact]' : '' }}[{$fieldId}]" />
						<xf:formrow rowtype="input"
							label="{$fieldDefinition.title}">
							<xf:if is="!{$choices}">
								<xf:textbox name="{$fieldName}" value="{$criteria.thread_field.{$fieldId}}" />
							<xf:else />
								<xf:checkbox name="{$fieldName}" value="{{ $fieldDefinition.type_group != 'multiple' ? $criteria.thread_field.exact.{$fieldId} : $criteria.thread_field.{$fieldId} }}" listclass="listColumns">
									<xf:foreach loop="$choices" key="$val" value="$choice">
										<xf:option value="{{ $fieldDefinition.type_group == 'multiple' ? 's:' . strlen($val) . ':"' . $val . '"' : $val }}" label="{$choice}" />
									</xf:foreach>
								</xf:checkbox>
							</xf:if>
						</xf:formrow>
					</xf:foreach>
				</xf:contentcheck>
			</xf:if>
		</xf:foreach>
	</xf:contentcheck>
</xf:if>]]></template>
  <template type="admin" title="helper_user_group_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="checkboxes"
	arg-label="{{ phrase('usable_by_user_groups') }}"
	arg-id="usable_user_group"
	arg-userGroups=""
	arg-selectedUserGroups="!"
	arg-withRow="1">

	<xf:if is="!$userGroups">
		<xf:set var="$userGroupRepo" value="{$xf.app.em.getRepository('XF:UserGroup')}" />
		<xf:set var="$userGroups" value="{$userGroupRepo.getUserGroupTitlePairs()}" />
	</xf:if>
	<xf:set var="$allUserGroups" value="{{ array_keys($userGroups) == $selectedUserGroups || in_array('-1', $selectedUserGroups) }}" />

	<xf:set var="$inner">
		<xf:radio name="{$id}" id="{$id}">
			<xf:option value="all" selected="{$allUserGroups}">{{ phrase('all_user_groups') }}</xf:option>
			<xf:option value="sel" selected="!{$allUserGroups}" label="{{ phrase('selected_user_groups:') }}">
				<xf:dependent>
					<xf:checkbox name="{{ $id . '_ids' }}" listclass="listColumns">
						<xf:foreach loop="$userGroups" key="$userGroupId" value="$userGroupTitle">
							<xf:option value="{$userGroupId}" selected="{{ in_array($userGroupId, $selectedUserGroups) || $allUserGroups  }}">
								{$userGroupTitle}
							</xf:option>
						</xf:foreach>
					</xf:checkbox>

					<xf:checkbox>
						<xf:option data-xf-init="check-all" data-container="{{ '#' . $id }}">{{ phrase('select_all') }}</xf:option>
					</xf:checkbox>
				</xf:dependent>
			</xf:option>
		</xf:radio>
	</xf:set>

	<xf:if is="$withRow">
		<xf:formrow label="{$label}" name="{$id}" id="{$id}">
			{$inner|raw}
		</xf:formrow>
	<xf:else />
		{$inner|raw}
	</xf:if>
</xf:macro>]]></template>
  <template type="admin" title="helper_user_search_criteria" version_id="2030055" version_string="2.3.0 Release Candidate 5"><![CDATA[<xf:if is="!$noSpecificUser">
	<xf:formrow label="{{ phrase('user_name') }}">
		<ul class="inputList">
			<li><xf:textbox name="criteria[username][name]"
				value="{{ is_array($criteria.username) ? $criteria.username.name : $criteria.username }}"
				readonly="{$readOnly}"
				label="{{ phrase('user_name') }}" /></li>

			<li><xf:checkbox standalone="true" readonly="{$readOnly}">
				<xf:option name="criteria[username][exact_match]"
					selected="{{ is_array($criteria.username) AND $criteria.username.exact_match }}">
					{{ phrase('exact_match') }}
				</xf:option>
			</xf:checkbox></li>
		</ul>
	</xf:formrow>

	<xf:formrow label="{{ phrase('email') }}">
		<ul class="inputList">
			<li><xf:textbox name="criteria[email][address]"
				value="{{ is_array($criteria.email) ? $criteria.email.address : $criteria.email }}"
				label="{{ phrase('email') }}" />
			</li>

			<li><xf:checkbox standalone="true" readonly="{$readOnly}">
				<xf:option name="criteria[email][exact_match]"
					selected="{{ is_array($criteria.email) AND $criteria.email.exact_match }}">
					{{ phrase('exact_match') }}
				</xf:option>
			</xf:checkbox></li>
		</ul>
	</xf:formrow>
</xf:if>

<hr class="formRowSep" />

<xf:if is="!{$readOnly}">
	<xf:selectrow name="criteria[user_group_id]" value="{$criteria.user_group_id}"
		label="{{ phrase('primary_user_group') }}">

		<xf:option>{{ phrase('(any)') }}</xf:option>
		<xf:foreach loop="$userGroups" value="$userGroup">
			<xf:option value="{$userGroup.user_group_id}">{$userGroup.title}</xf:option>
		</xf:foreach>
	</xf:selectrow>
<xf:else />
	<xf:formrow label="{{ phrase('primary_user_group') }}">

		<xf:if is="{$userGroups.{$criteria_user_group_id}.title}">
			{$userGroups.{$criteria_user_group_id}.title}
		<xf:else />
			{{ phrase('(any)') }}
		</xf:if>
	</xf:formrow>
	<xf:hiddenval name="criteria[user_group_id]">{$criteria.user_group_id}</xf:hiddenval>
</xf:if>

<xf:radiorow name="criteria[no_secondary_group_ids]" value="{$criteria.no_secondary_group_ids}" readonly="{$readOnly}"
	label="{{ phrase('secondary_user_groups') }}">

	<xf:option value="1">{{ phrase('member_of_no_secondary_groups') }}</xf:option>
	<xf:option value="0" label="{{ phrase('member_of_any_of_these_secondary_groups') }}">
		<xf:checkbox name="criteria[secondary_group_ids]" value="{$criteria.secondary_group_ids}" listclass="listColumns" readonly="{$readOnly}">
			<xf:foreach loop="$userGroups" value="$userGroup">
				<xf:option value="{$userGroup.user_group_id}">{$userGroup.title}</xf:option>
			</xf:foreach>
		</xf:checkbox>
	</xf:option>
</xf:radiorow>

<xf:checkboxrow name="criteria[not_secondary_group_ids]" value="{$criteria.not_secondary_group_ids}" listclass="listColumns" readonly="{$readOnly}"
	label="{{ phrase('not_in_secondary_groups') }}">

	<xf:foreach loop="$userGroups" value="$userGroup">
		<xf:option value="{$userGroup.user_group_id}">{$userGroup.title}</xf:option>
	</xf:foreach>
</xf:checkboxrow>

<hr class="formRowSep" />

<xf:formrow rowtype="input"
	label="{{ phrase('registered_between') }}">

	<div class="inputGroup">
		<xf:dateinput name="criteria[register_date][start]" value="{$criteria.register_date.start}" size="15" readonly="{$readOnly}" />
		<span class="inputGroup-text">-</span>
		<xf:dateinput name="criteria[register_date][end]" value="{$criteria.register_date.end}" size="15" readonly="{$readOnly}" />
	</div>
</xf:formrow>

<xf:formrow rowtype="input"
	label="{{ phrase('last_visited_between') }}"
	explain="{{ phrase('visits_in_last_hour_may_not_be_considered') }}">

	<div class="inputGroup">
		<xf:dateinput name="criteria[last_activity][start]" value="{$criteria.last_activity.start}" size="15" readonly="{$readOnly}" />
		<span class="inputGroup-text">-</span>
		<xf:dateinput name="criteria[last_activity][end]" value="{$criteria.last_activity.end}" size="15" readonly="{$readOnly}" />
	</div>
</xf:formrow>

<xf:formrow rowtype="input"
	label="{{ phrase('message_count_between') }}"
	explain="{{ phrase('use_negative_one_specify_no_max') }}">

	<div class="inputGroup">
		<xf:numberbox name="criteria[message_count][start]" value="{$criteria.message_count.start}" min="0" readonly="{$readOnly}" />
		<span class="inputGroup-text">-</span>
		<xf:numberbox name="criteria[message_count][end]" value="{$criteria.message_count.end}" min="-1" readonly="{$readOnly}" />
	</div>
</xf:formrow>

<xf:formrow rowtype="input"
	label="{{ phrase('questions_solved_between') }}"
	explain="{{ phrase('use_negative_one_specify_no_max') }}">

	<div class="inputGroup">
		<xf:numberbox name="criteria[question_solution_count][start]" value="{$criteria.question_solution_count.start}" min="0" readonly="{$readOnly}" />
		<span class="inputGroup-text">-</span>
		<xf:numberbox name="criteria[question_solution_count][end]" value="{$criteria.question_solution_count.end}" min="-1" readonly="{$readOnly}" />
	</div>
</xf:formrow>

<xf:formrow rowtype="input"
	label="{{ phrase('trophy_points_between') }}"
	explain="{{ phrase('use_negative_one_specify_no_max') }}">

	<div class="inputGroup">
		<xf:numberbox name="criteria[trophy_points][start]" value="{$criteria.trophy_points.start}" min="0" readonly="{$readOnly}" />
		<span class="inputGroup-text">-</span>
		<xf:numberbox name="criteria[trophy_points][end]" value="{$criteria.trophy_points.end}" min="-1" readonly="{$readOnly}" />
	</div>
</xf:formrow>

<xf:formrow rowtype="input"
	label="{{ phrase('reaction_score_between') }}">
	<div class="inputGroup">
		<xf:numberbox name="criteria[reaction_score][start]" value="{$criteria.reaction_score.start}"
			readonly="{$readOnly}"/>
		<span class="inputGroup-text">-</span>
		<xf:numberbox name="criteria[reaction_score][end]" value="{$criteria.reaction_score.end}"
			readonly="{$readOnly}"/>
	</div>
</xf:formrow>

<hr class="formRowSep" />

<xf:checkboxrow name="criteria[user_state]" readonly="{$readOnly}"
	label="{{ phrase('user_state') }}">

	<xf:option value="valid" selected="in_array('valid', $criteria.user_state)">{{ phrase('valid') }}</xf:option>
	<xf:option value="email_confirm" selected="in_array('email_confirm', $criteria.user_state)">{{ phrase('awaiting_email_confirmation') }}</xf:option>
	<xf:option value="email_confirm_edit" selected="in_array('email_confirm_edit', $criteria.user_state)">{{ phrase('awaiting_email_confirmation_from_edit') }}</xf:option>
	<xf:option value="email_bounce" selected="in_array('email_bounce', $criteria.user_state)">{{ phrase('email_invalid_bounced') }}</xf:option>
	<xf:option value="moderated" selected="in_array('moderated', $criteria.user_state)">{{ phrase('awaiting_approval') }}</xf:option>
	<xf:option value="rejected" selected="in_array('rejected', $criteria.user_state)">{{ phrase('rejected') }}</xf:option>
	<xf:option value="disabled" selected="in_array('disabled', $criteria.user_state)">{{ phrase('disabled') }}</xf:option>
</xf:checkboxrow>

<xf:checkboxrow name="criteria[security_lock]" readonly="{$readOnly}"
	label="{{ phrase('security_lock') }}">

	<xf:option value="none" selected="in_array('none', $criteria.security_lock)">{{ phrase('none') }}</xf:option>
	<xf:option value="change" selected="in_array('change', $criteria.security_lock)">{{ phrase('locked:') }} {{ phrase('user_must_change_password') }}</xf:option>
	<xf:option value="reset" selected="in_array('reset', $criteria.security_lock)">{{ phrase('locked:') }} {{ phrase('user_must_reset_password') }}</xf:option>
</xf:checkboxrow>

<xf:checkboxrow name="criteria[is_banned]" readonly="{$readOnly}"
	label="{{ phrase('banned_state') }}">

	<xf:option value="0" selected="in_array(0, $criteria.is_banned)">{{ phrase('not_banned') }}</xf:option>
	<xf:option value="1" selected="in_array(1, $criteria.is_banned)">{{ phrase('banned') }}</xf:option>
</xf:checkboxrow>

<xf:checkboxrow name="criteria[Option][is_discouraged]" readonly="{$readOnly}"
	label="{{ phrase('discouragement_state') }}">

	<xf:option value="0" selected="in_array(0, $criteria.Option.is_discouraged)">{{ phrase('not_discouraged') }}</xf:option>
	<xf:option value="1" selected="in_array(1, $criteria.Option.is_discouraged)">{{ phrase('discouraged') }}</xf:option>
</xf:checkboxrow>

<xf:checkboxrow name="criteria[is_staff]" readonly="{$readOnly}"
	label="{{ phrase('staff_state') }}">

	<xf:option value="0" selected="in_array(0, $criteria.is_staff)">{{ phrase('not_staff_member') }}</xf:option>
	<xf:option value="1" selected="in_array(1, $criteria.is_staff)">{{ phrase('staff_member') }}</xf:option>
</xf:checkboxrow>

<xf:checkboxrow name="criteria[activity_summary]" readonly="{$readOnly}"
	label="{{ phrase('activity_summary_email') }}">

	<xf:option value="0" selected="in_array(0, $criteria.activity_summary)">{{ phrase('activity_summary_email_disabled') }}</xf:option>
	<xf:option value="1" selected="in_array(1, $criteria.activity_summary)">{{ phrase('activity_summary_email_enabled') }}</xf:option>
</xf:checkboxrow>

<xf:checkboxrow name="criteria[connected_account]" value="{$criteria.connected_account}" listclass="listColumns" readonly="{$readOnly}"
	label="{{ phrase('connected_accounts') }}">

	<xf:options source="{$connectedAccProviders}" />
</xf:checkboxrow>

<xf:if contentcheck="true">
	<hr class="formRowSep" />
	<xf:contentcheck>
		<xf:foreach loop="$xf.app.em.getRepository('XF:UserField').getDisplayGroups()" key="$fieldGroup" value="$phrase">
			<xf:set var="$customFields" value="{$xf.app.getCustomFields('users', $fieldGroup)}" />
			<xf:if contentcheck="true">
				<xf:contentcheck>
					<xf:foreach loop="$customFields" key="$fieldId" value="$fieldDefinition">
						<xf:set var="$choices" value="{$fieldDefinition.field_choices}" />
						<xf:set var="$fieldName" value="criteria[user_field]{{ ($choices && $fieldDefinition.type_group != 'multiple') ? '[exact]' : '' }}[{$fieldId}]" />
						<xf:formrow rowtype="{{ $choices ? '' : 'input' }}"
							label="{$fieldDefinition.title}">

							<xf:if is="!{$choices}">
								<xf:textbox name="{$fieldName}" value="{$criteria.user_field.{$fieldId}}" readonly="{$readOnly}" />
							<xf:else />

								<xf:checkbox name="{$fieldName}" value="{{ $fieldDefinition.type_group != 'multiple' ? $criteria.user_field.exact.{$fieldId} : $criteria.user_field.{$fieldId} }}" listclass="listColumns" readonly="{$readOnly}">
									<xf:foreach loop="$choices" key="$val" value="$choice">
										<xf:option value="{{ $fieldDefinition.type_group == 'multiple' ? 's:' . strlen($val) . ':"' . $val . '"' : $val }}" label="{$choice}" />
									</xf:foreach>
								</xf:checkbox>

							</xf:if>

						</xf:formrow>
					</xf:foreach>
				</xf:contentcheck>
			</xf:if>
		</xf:foreach>
	</xf:contentcheck>
</xf:if>]]></template>
  <template type="admin" title="import_complete" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('import_complete') }}</xf:title>

<xf:form action="{{ link('import/complete') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow>
				{{ phrase('your_import_is_now_complete_and_necessary_caches_have_been_rebuilt') }}
			</xf:inforow>
			<xf:macro id="import_finalize::notes" arg-notes="{$notes}" />
		</div>
		<xf:submitrow submit="{{ phrase('complete_import') }}" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="import_config" version_id="2000170" version_string="2.0.1"><![CDATA[<xf:title>{{ phrase('configure_importer:') }} {$title}</xf:title>

<xf:if is="$importer.isBeta()">
	<div class="blockMessage blockMessage--important">
		{{ phrase('this_importer_is_currently_in_beta_and_could_contain_bugs') }}
	</div>
</xf:if>

<xf:form action="{{ link('import/config') }}" class="block js-importConfigForm"
	ajax="true" data-replace=".js-importConfigForm">

	<div class="block-container">
		<div class="block-body">
			<xf:if contentcheck="true">
				<xf:contentcheck>
					{{ $importer.renderBaseConfigOptions(vars())|raw }}
				</xf:contentcheck>
			<xf:else />
				<div class="block-row">{{ phrase('no_configuration_necessary') }}</div>
				<xf:hiddenval name="config[]" />
			</xf:if>
		</div>
		<xf:submitrow submit="{{ phrase('continue...') }}" />
	</div>
	<xf:hiddenval name="previous_config">{$baseConfig|json}</xf:hiddenval>
	<xf:hiddenval name="importer">{$importerId}</xf:hiddenval>
</xf:form>]]></template>
  <template type="admin" title="import_config_macros" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:macro id="db_host"
	arg-value="localhost"
	arg-placeholder="{{ null }}"
	arg-explain="{{ null }}">

	<xf:macro id="db_textbox"
		arg-name="host"
		arg-label="{{ phrase('mysql_server') }}"
		arg-value="{$value}"
		arg-placeholder="{$placeholder}"
		arg-explain="{$explain}" />
</xf:macro>

<xf:macro id="db_dbname"
	arg-value="{{ null }}"
	arg-placeholder="{{ null }}"
	arg-explain="{{ null }}">

	<xf:macro id="db_textbox"
		arg-name="dbname"
		arg-label="{{ phrase('mysql_database_name') }}"
		arg-value="{$value}"
		arg-placeholder="{$placeholder}"
		arg-explain="{$explain}" />
</xf:macro>

<xf:macro id="db_username"
	arg-value="{{ null }}"
	arg-placeholder="{{ null }}"
	arg-explain="{{ null }}">

	<xf:macro id="db_textbox"
		arg-name="username"
		arg-label="{{ phrase('mysql_user_name') }}"
		arg-value="{$value}"
		arg-placeholder="{$placeholder}"
		arg-explain="{$explain}" />
</xf:macro>

<xf:macro id="db_password"
	arg-value="{{ null }}"
	arg-placeholder="{{ null }}"
	arg-explain="{{ null }}">

	<xf:macro id="db_textbox"
		arg-name="password"
		arg-label="{{ phrase('mysql_password') }}"
		arg-value="{$value}"
		arg-placeholder="{$placeholder}"
		arg-autocomplete="off"
		arg-explain="{$explain}" />
</xf:macro>

<xf:macro id="db_port"
	arg-value="3306"
	arg-placeholder="{{ null }}"
	arg-explain="{{ null }}">

	<xf:macro id="db_textbox"
		arg-name="port"
		arg-label="{{ phrase('mysql_port') }}"
		arg-value="{$value}"
		arg-placeholder="{$placeholder}"
		arg-explain="{$explain}" />
</xf:macro>

<xf:macro id="db_tablePrefix"
	arg-value="{{ null }}"
	arg-placeholder="{{ null }}"
	arg-explain="{{ null }}">

	<xf:macro id="db_textbox"
		arg-name="tablePrefix"
		arg-label="{{ phrase('mysql_table_prefix') }}"
		arg-value="{$value}"
		arg-placeholder="{$placeholder}"
		arg-explain="{$explain}" />
</xf:macro>

<xf:macro id="db_charset"
	arg-value="{{ null }}"
	arg-placeholder="{{ null }}"
	arg-explain="{{ phrase('mysql_force_charset_explain') }}">

	<xf:macro id="db_textbox"
		arg-name="charset"
		arg-label="{{ phrase('mysql_force_charset') }}"
		arg-value="{$value}"
		arg-placeholder="{$placeholder}"
		arg-explain="{$explain}" />
</xf:macro>

<xf:macro id="db_textbox"
	arg-name="!"
	arg-label="!"
	arg-value="{{ null }}"
	arg-placeholder="{{ null }}"
	arg-autocomplete="{{ null }}"
	arg-explain="{{ null }}">

	<xf:textboxrow name="config[db][{$name}]" value="{$value}" autocomplete="{$autocomplete}"
		placeholder="{$placeholder}"
		label="{$label}"
		explain="{$explain}" />
</xf:macro>

<xf:macro id="language_charset"
	arg-name="charset"
	arg-label="{{ phrase('default_language_character_set') }}"
	arg-value="{{ null }}"
	arg-placeholder="{{ null }}"
	arg-autocomplete="{{ null }}"
	arg-explain="{{ null }}">

	<xf:textboxrow name="config[{$name}]" value="{$value}" autocomplete="{$autocomplete}"
		placeholder="{$placeholder}"
		label="{$label}"
		explain="{$explain}" />
</xf:macro>]]></template>
  <template type="admin" title="import_config_xenforo_source" version_id="2010131" version_string="2.1.1 Beta 1"><![CDATA[<h3 class="block-formSectionHeader">{{ phrase('source_database_configuration') }}</h3>
<xf:if is="!$baseConfig.db.host">
	<xf:textboxrow name="config[db][host]" value="localhost"
		label="{{ phrase('mysql_server') }}"
		placeholder="$config['db']['host']" />
	<xf:textboxrow name="config[db][port]" value="3306"
		label="{{ phrase('mysql_port') }}"
		placeholder="$config['db']['port']" />
	<xf:textboxrow name="config[db][username]"
		label="{{ phrase('mysql_user_name') }}"
		placeholder="$config['db']['username']" />
	<xf:textboxrow name="config[db][password]" autocomplete="off"
		label="{{ phrase('mysql_password') }}"
		placeholder="$config['db']['password']" />
	<xf:textboxrow name="config[db][dbname]"
		label="{{ phrase('mysql_database_name') }}"
		placeholder="$config['db']['dbname']" />
<xf:else />
	<xf:formrow label="{{ phrase('mysql_server') }}">{$fullConfig.db.host}:{$fullConfig.db.dbname}</xf:formrow>
</xf:if>

<xf:if is="$requiresDataPath">
	<xf:if is="!$baseConfig.data_dir">
		<hr class="formRowSep" />

		<xf:textboxrow name="config[data_dir]"
			label="{{ phrase('data_directory') }}"
			placeholder="$config['externalDataPath']" />
	<xf:else />
		<xf:formrow label="{{ phrase('data_directory') }}">{$fullConfig.data_dir}</xf:formrow>
	</xf:if>
</xf:if>
<xf:if is="$requiresInternalDataPath">
	<xf:if is="!$baseConfig.internal_data_dir">
		<xf:textboxrow name="config[internal_data_dir]"
			label="{{ phrase('internal_data_directory') }}"
			placeholder="$config['internalDataPath']" />
	<xf:else />
		<xf:formrow label="{{ phrase('internal_data_directory') }}">{$fullConfig.internal_data_dir}</xf:formrow>
	</xf:if>
</xf:if>
<xf:if is="$requiresForumImportLog">
	<xf:if is="!$baseConfig.forum_import_log">
		<xf:textboxrow name="config[forum_import_log]" label="{{ phrase('forum_import_log') }}">
			<xf:explain>
				{{ phrase('you_must_provide_name_of_forum_import_log') }}
			</xf:explain>
		</xf:textboxrow>
	<xf:else />
		<xf:formrow label="{{ phrase('forum_import_log') }}">
			{$fullConfig.forum_import_log}
		</xf:formrow>
	</xf:if>
</xf:if>]]></template>
  <template type="admin" title="import_finalize" version_id="2030070" version_string="2.3.0"><![CDATA[<xf:title>{{ phrase('finalize_import') }}</xf:title>

<xf:form action="{{ link('import/finalize') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow>
				{{ phrase('all_data_has_now_been_imported_last_step_is_to_finalize_import') }}
			</xf:inforow>
			<xf:macro id="notes" arg-notes="{$notes}" />
		</div>
		<xf:submitrow submit="{{ phrase('finalize_import') }}" sticky="true" />
	</div>
</xf:form>

<xf:macro id="notes" arg-notes="!">
	<xf:formrow label="{{ phrase('import_log_table') }}"
		explain="{{ phrase('this_table_contains_mappings_from_old_ids_to_new_ids') }}">
		{$notes.logTable}
	</xf:formrow>
	<xf:formrow label="{{ phrase('total_run_time') }}">
		<xf:if is="$notes.runTime > 3600">
			{{ phrase('x_hours', {'count': number($notes.runTime / 3600, 2)}) }}
		<xf:elseif is="$notes.runTime >= 120" />
			{{ phrase('x_minutes', {'count': number($notes.runTime / 60, 2)}) }}
		<xf:else />
			{{ phrase('x_seconds', {'count': number($notes.runTime)}) }}
		</xf:if>
	</xf:formrow>
	<xf:formrow label="{{ phrase('import_totals') }}">
		<xf:foreach loop="$notes.totals" value="$total">
			<dl class="pairs pairs--columns pairs--fixedSmall">
				<dt>{$total.title}</dt>
				<dd>
					{$total.total|number}
					<xf:if is="$total.total">
						<xf:if is="$total.time > 3600">
							{{ parens(phrase('x_hours_y_minutes', {
								'hours': number($total.time / 3600, 0),
								'minutes': number(floor($total.time / 60) % 60, 0)
							})) }}
						<xf:elseif is="$total.time >= 120" />
							{{ parens(phrase('x_minutes', {'count': number($total.time / 60, 2)})) }}
						<xf:else />
							{{ parens(phrase('x_seconds', {'count': number($total.time)})) }}
						</xf:if>
					</xf:if>
				</dd>
			</dl>
		</xf:foreach>
	</xf:formrow>
	<xf:if is="$notes.notes">
		<hr class="formRowSep" />

		<xf:foreach loop="$notes.notes" value="$noteSet">
			<xf:formrow label="{$noteSet.title}">
				<ul style="margin-top: 0; margin-bottom: 0">
				<xf:foreach loop="$noteSet.entries" value="$entry">
					<li>{$entry}</li>
				</xf:foreach>
				</ul>
			</xf:formrow>
		</xf:foreach>
	</xf:if>
</xf:macro>]]></template>
  <template type="admin" title="import_index" version_id="2010053" version_string="2.1.0 Release Candidate 3"><![CDATA[<xf:title>{{ phrase('import_data') }}</xf:title>

<xf:if is="!$xf.addOns.XFI">
	<div class="blockMessage blockMessage--important">
		{{ phrase('xenforo_importers_now_installed_as_separate_add_on_downloadable_from') }}
	</div>
</xf:if>

<xf:if is="$complete">
	<div class="blockMessage blockMessage--success blockMessage--iconic">
		{{ phrase('your_import_has_been_completed_successfully') }}
	</div>
</xf:if>

<xf:if is="$importersGrouped">
	<xf:form action="{{ link('import/config') }}" class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:selectrow label="{{ phrase('import_from') }}" name="importer" size="10">
					<xf:foreach loop="$importersGrouped" key="$target" value="$importers">
						<xf:optgroup label="{{ phrase('import_target:') }} {$target}">
							<xf:foreach loop="$importers" key="$importer" value="$info">
								<xf:option value="{$importer}">{$info.source}</xf:option>
							</xf:foreach>
						</xf:optgroup>
					</xf:foreach>
				</xf:selectrow>
			</div>
			<xf:submitrow submit="{{ phrase('continue...') }}" />
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_importers_currently_available') }}</div>
</xf:if>]]></template>
  <template type="admin" title="import_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="step_users_config" arg-config="!">
	<xf:checkboxrow label="{{ phrase('users') }}">
		<xf:option name="step_config[users][merge_email]" selected="{$config.merge_email}">{{ phrase('automatically_merge_users_with_same_email') }}</xf:option>
		<xf:option name="step_config[users][merge_name]" selected="{$config.merge_name}">
			<xf:label>{{ phrase('automatically_merge_users_with_same_user_name') }}</xf:label>
			<xf:hint>{{ phrase('note_names_differ_only_accents_considered_identical') }}</xf:hint>
		</xf:option>
	</xf:checkboxrow>
</xf:macro>

<xf:macro id="step_smilies_config" arg-config="">
	<xf:textboxrow name="step_config[smilies][filename]" value="{$config.filename}"
		label="{{ phrase('import_smilies_xml_filename') }}"
		explain="{{ phrase('import_smilies_xml_filename_explain', {'link': link('smilies/import')}) }}"
		placeholder="{$config.filename}" />
</xf:macro>]]></template>
  <template type="admin" title="import_restart" version_id="2000037" version_string="2.0.0 Beta 7"><![CDATA[<xf:title>{{ phrase('restart_import:') }} {$title}</xf:title>

<div class="blocks">
	<xf:form action="{{ link('import/run') }}" class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:inforow rowtype="confirm">
					{{ phrase('pending_import_from_x_has_been_found', {'title': $title}) }}
				</xf:inforow>
			</div>
			<xf:submitrow submit="{{ phrase('restart_import') }}" rowtype="simple" />
		</div>
	</xf:form>

	<div class="blocks-textJoiner"><span></span><em>{{ phrase('or_separator') }}</em><span></span></div>

	<xf:form action="{{ link('import/cancel') }}" class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:inforow rowtype="confirm">
					{{ phrase('alternatively_you_may_cancel_this_import_to_start_new_one') }}

					<div>
						<xf:checkbox standalone="true">
							<xf:option name="confirm" data-xf-init="disabler" data-container=".js-submitDisable">
								{{ phrase('confirm_action') }}
							</xf:option>
						</xf:checkbox>
					</div>
				</xf:inforow>
			</div>
			<xf:submitrow submit="{{ phrase('cancel_import') }}" rowtype="simple" rowclass="js-submitDisable" />
		</div>
	</xf:form>
</div>]]></template>
  <template type="admin" title="import_run" version_id="2000170" version_string="2.0.1"><![CDATA[<xf:title>{{ phrase('importing...') }}</xf:title>
<xf:page option="template">PAGE_RUN_JOB</xf:page>

<xf:form action="{{ link('import/run') }}" method="post" class="blockMessage" data-xf-init="auto-submit">

	<xf:if is="$stepTitle">
		<xf:if is="$stepComplete">
			{{ phrase('step_x_of_y:', {'current': $importCompletion.current, 'total': $importCompletion.total}) }} {$stepTitle} - 100%
		<xf:else />
			{{ phrase('step_x_of_y:', {'current': $importCompletion.current, 'total': $importCompletion.total}) }} {$stepTitle} - {$stepCompletion}
		</xf:if>
	<xf:elseif is="$importCompletion.current" />
		{{ phrase('step_x_of_y:', {'current': $importCompletion.current, 'total': $importCompletion.total}) }} {{ phrase('processing...') }}
	<xf:else />
		{{ phrase('processing...') }}
	</xf:if>

	<div class="u-noJsOnly">
		<xf:button type="submit">{{ phrase('proceed...') }}</xf:button>
	</div>
</xf:form>]]></template>
  <template type="admin" title="import_start" version_id="2010170" version_string="2.1.1"><![CDATA[<xf:title>{{ phrase('import_data:') }} {$title}</xf:title>

<xf:form action="{{ link('import/run') }}" class="block">
	<div class="block-container">
		<h2 class="block-tabHeader tabs" data-xf-init="tabs" role="tablist">
			<a class="tabs-tab is-active" role="tab" tabindex="0" aria-controls="import-web">{{ phrase('browser_importer') }}</a>
			<a class="tabs-tab" role="tab" tabindex="0" aria-controls="import-cli">{{ phrase('cli_importer') }}</a>
		</h2>
		<ul class="tabPanes">
			<li class="is-active" role="tabpanel" id="import-web">
				<div class="block-body block-row">
					{{ phrase('youre_ready_start_import_will_run_browser_window_open') }}
				</div>
				<xf:submitrow submit="{{ phrase('start_import') }}" rowtype="simple" />
			</li>
			<li role="tabpanel" id="import-cli">
				<div class="block-body block-row">
					{{ phrase('you_may_import_via_command_line_recommended_large_imports:') }}
					<pre style="margin: 1em 2em">php cmd.php xf:import</pre>
					{{ phrase('once_this_command_completes_need_refresh_this_page') }}<br />
					<br />
					{{ phrase('there_additional_options_available_via_command_line') }}
				</div>
			</li>
		</ul>
	</div>
</xf:form>]]></template>
  <template type="admin" title="import_step_choose" version_id="2020470" version_string="2.2.4"><![CDATA[<xf:title>{{ phrase('configure_importer:') }} {$title}</xf:title>

<div class="js-importConfigForm">

	<xf:if is="$isCoreImporter AND $canRetainIds">
		<div class="blockMessage blockMessage--warning blockMessage--iconic">
			{{ phrase('to_avoid_unexpected_user_merges_ensure_current_user_unique_name_email', {'link': link('users/edit', $xf.visitor)}) }}
		</div>
	</xf:if>

	<xf:form action="{{ link('import/step-config') }}" class="block"
		ajax="true" data-replace=".js-importConfigForm">

		<div class="block-container">
			<div class="block-body">
				<xf:checkboxrow name="steps[]" label="{{ phrase('data_to_import') }}" listclass="data">
					<xf:foreach loop="$availableSteps" key="$stepId" value="$stepInfo">
						<xf:option value="{$stepId}" selected="1">{$stepInfo.title}</xf:option>
					</xf:foreach>

					<xf:explain>
						{{ phrase('some_steps_may_require_other_steps_as_prerequisite') }}
					</xf:explain>

					<xf:hint>
						<br />
						<xf:checkbox standalone="true">
							<xf:option check-all=".data">{{ phrase('select_all') }}</xf:option>
						</xf:checkbox>
					</xf:hint>
				</xf:checkboxrow>

				<xf:checkboxrow label="{{ phrase('content_ids') }}">
					<xf:if is="$canRetainIds">
						<xf:option name="retain_ids" selected="1">
							<xf:label>{{ phrase('retain_content_ids') }}</xf:label>
							<xf:hint>
								{{ phrase('if_selected_same_id_used_in_xenforo_as_source_db') }}
								<xf:if is="$isCoreImporter"><strong>{{ phrase('note_if_selected_user_1_from_source_merged_into_user_1_xf') }}</strong></xf:if>
							</xf:hint>
						</xf:option>
					<xf:else />
						<xf:option disabled="disabled">
							<xf:label>{{ phrase('retain_content_ids') }}</xf:label>
							<xf:hint>{{ phrase('content_ids_cannot_be_retained_message') }}</xf:hint>
						</xf:option>
					</xf:if>
				</xf:checkboxrow>

				<xf:textboxrow name="log_table"
					hint="{{ phrase('required') }}"
					required="required"
					value="{$logTable}"
					label="{{ phrase('import_log_table_name') }}"
					explain="{{ phrase('import_log_table_name_explain') }}" />
			</div>
			<xf:submitrow submit="{{ phrase('continue...') }}" />
		</div>

		<xf:hiddenval name="config">{$baseConfig|json}</xf:hiddenval>
		<xf:hiddenval name="importer">{$importerId}</xf:hiddenval>
	</xf:form>
</div>]]></template>
  <template type="admin" title="import_step_config" version_id="2000036" version_string="2.0.0 Beta 6"><![CDATA[<xf:title>{{ phrase('configure_importer:') }} {$title}</xf:title>

<xf:form action="{{ link('import/step-config') }}" class="block js-importConfigForm"
	ajax="true" data-replace=".js-importConfigForm">

	<div class="block-container">
		<div class="block-body">
			<xf:if contentcheck="true">
				<xf:contentcheck>
					{{ $importer.renderStepConfigOptions(vars())|raw }}
				</xf:contentcheck>
			<xf:else />
				<div class="block-row">{{ phrase('no_step_configuration_necessary') }}</div>
			</xf:if>
		</div>
		<xf:submitrow submit="{{ phrase('continue...') }}" />
	</div>

	<xf:hiddenval name="config">{$baseConfig|json}</xf:hiddenval>
	<xf:hiddenval name="importer">{$importerId}</xf:hiddenval>
	<xf:hiddenval name="retain_ids">{$retainIds}</xf:hiddenval>
	<xf:hiddenval name="log_table">{$logTable}</xf:hiddenval>
	<xf:foreach loop="$steps" value="$step">
		<xf:hiddenval name="steps[]">{$step}</xf:hiddenval>
	</xf:foreach>
	<xf:hiddenval name="steps_configured">1</xf:hiddenval>
</xf:form>]]></template>
  <template type="admin" title="index" version_id="2030170" version_string="2.3.1"><![CDATA[<xf:if is="$upgradeCheck">
	<xf:macro id="upgrade_check_macros::full_status" arg-upgradeCheck="{$upgradeCheck}" />
</xf:if>

<xf:if is="$showUnicodeWarning">
	<div class="blockMessage blockMessage--error blockMessage--iconic">
		{{ phrase('full_unicode_support_has_been_enabled_in_config_but_db_does_not_support') }}
	</div>
</xf:if>

<xf:if is="$xf.visitor.hasAdminPermission('style') && $outdatedTemplates">
	<div class="blockMessage blockMessage--important blockMessage--iconic">
		<a href="{{ link('templates/outdated') }}"> {{ phrase('there_templates_that_may_be_outdated_click_to_review') }}</a>
	</div>
</xf:if>

<xf:if is="$xf.visitor.hasAdminPermission('viewLogs') && $serverErrorLogs">
	<div class="blockMessage blockMessage--error blockMessage--iconic">
		<a href="{{ link('logs/server-errors') }}"> {{ phrase('server_errors_have_been_logged') }}</a>
	</div>
</xf:if>

<xf:if is="$xf.visitor.hasAdminPermission('addOn') && $hasProcessingAddOn">
	<div class="blockMessage blockMessage--error blockMessage--iconic">
		{{ phrase('addon_action_pending_warning') }}<br />
		<br />
		<a href="{{ link('add-ons') }}">{{ phrase('view_addons...') }}</a>
	</div>
</xf:if>

<xf:if is="$legacyConfig">
	<div class="blockMessage blockMessage--important">
		{{ phrase('your_old_config_file_at_library_config_is_still_available') }}
	</div>
</xf:if>

<xf:if is="$hasStoppedJobs">
	<div class="blockMessage blockMessage--error blockMessage--iconic">
		{{ phrase('there_scheduled_jobs_outstanding_which_have_not_run') }}
	</div>
<xf:elseif is="$hasStoppedManualJobs" />
	<div class="blockMessage blockMessage--important blockMessage--iconic">
		{{ phrase('there_manual_rebuild_jobs_awaiting_completion_continue_running', {'link': link('tools/run-job')}) }}
	</div>
</xf:if>

<xf:if is="$isImportRunning AND $xf.options.activitySummaryEmail.enabled">
	<div class="blockMessage blockMessage--important blockMessage--iconic">
		{{ phrase('while_import_running_sending_activity_summary_disabled') }}
	</div>
</xf:if>

<xf:set var="$firstFileCheck" value="{$fileChecks|first}" />
<xf:if is="$xf.visitor.hasAdminPermission('addOn') && $firstFileCheck.check_state == 'failure'">
	<div class="blockMessage blockMessage--error blockMessage--iconic">
		<a href="{{ link('tools/file-check/results', $firstFileCheck) }}">
			{{ phrase('there_x_missing_files_or_files_with_unexpected_contents', {
				'total_missing': ($firstFileCheck.total_missing + $firstFileCheck.total_inconsistent)|number
			}) }}
		</a>
	</div>
</xf:if>

<xf:if is="$requirementErrors">
	<div class="blockMessage blockMessage--error blockMessage--iconic">
		{{ phrase('following_errors_occurred_while_verifying_that_your_server_still_meets_requirements') }}:
		<ul>
			<xf:foreach loop="$requirementErrors" value="$error">
				<li>{$error}</li>
			</xf:foreach>
		</ul>
	</div>
</xf:if>

<xf:if is="{{ $xf.visitor.hasAdminPermission('user') }}">
	<div class="block">
		<div class="block-container">
			<xf:form action="{{ link('users/quick-search') }}">
				<div class="block-body">
					<xf:textboxrow name="query" placeholder="{{ phrase('username_email_ip...') }}" value=""
						label="{{ phrase('search_for_users') }}" />
					<xf:submitrow icon="search" />
				</div>
			</xf:form>
		</div>
	</div>
</xf:if>

<xf:if is="$stats is not empty AND $xf.visitor.hasAdminPermission('viewStatistics')">
	<xf:css src="public:chartist.css" />
	<xf:css src="stats.less" />

	<xf:js prod="xf/stats-compiled.js" dev="vendor/chartist/chartist.min.js, xf/stats.js" />

	<div class="block">
		<div class="block-container">
			<h2 class="block-header"><a href="{{ link('stats') }}">{{ phrase('statistics') }}</a></h2>
			<div class="block-body block-row">
				<ul class="graphList">
					<xf:foreach loop="$stats" value="$statsData">
						<li data-xf-init="stats" data-max-ticks="4">
							<script class="js-statsData" type="application/json">
								{$statsData.data|json|raw}
							</script>
							<script class="js-statsSeriesLabels" type="application/json">
								{$statsData.phrases|json|raw}
							</script>
							<div class="ct-chart ct-chart--small ct-major-tenth js-statsChart"></div>
							<ul class="ct-legend js-statsLegend"></ul>
						</li>
					</xf:foreach>
				</ul>
			</div>
		</div>
	</div>
</xf:if>

<div class="iconicLinks">
	<ul class="iconicLinks-list">
		<xf:foreach loop="$navigation" value="$entry">
			<xf:set var="$nav" value="{$entry.record}" />
			<xf:if is="{$nav.link}">
				<li><a href="{{ link($nav.link) }}">
					<div class="iconicLinks-icon"><xf:fa icon="fa-fw {$nav.icon}" /></div>
					<div class="iconicLinks-title">{$nav.title}</div>
				</a></li>
			</xf:if>
		</xf:foreach>
		<li class="iconicLinks-placeholder"></li>
		<li class="iconicLinks-placeholder"></li>
		<li class="iconicLinks-placeholder"></li>
		<li class="iconicLinks-placeholder"></li>
		<li class="iconicLinks-placeholder"></li>
	</ul>
</div>

<xf:if is="$envReport">
	<div class="block">
		<div class="block-container">
			<h2 class="block-header">
				<span class="collapseTrigger collapseTrigger--block {{ !is_toggled('collapse_env_report') ? 'is-active' : '' }}" data-xf-click="toggle" data-xf-init="toggle-storage" data-storage-key="collapse_env_report" data-storage-type="cookie" data-target="#js-collapse-env-report">
					{{ phrase('server_environment_report') }}
				</span>
			</h2>
			<div class="block-body block-body--collapsible block-row {{ !is_toggled('collapse_env_report') ? 'is-active' : '' }}" id="js-collapse-env-report">
				<xf:if is="$envReport.phpVersionState == 'not_newest'">
					<div class="block-rowMessage block-rowMessage--warning">
						{{ phrase('php_version_not_newest', {'recommended': $envReport.phpVersionRecommended}) }}
					</div>
				<xf:elseif is="$envReport.phpVersionState == 'recommended'" />
					<div class="block-rowMessage block-rowMessage--success">
						{{ phrase('php_version_recommended') }}
					</div>
				</xf:if>
				<div class="pairWrapper pairWrapper--spaced">
					<dl class="pairs pairs--columns">
						<dt>{{ phrase('php_version') }}</dt>
						<dd><a href="{{ link('tools/phpinfo') }}" target="_blank">{$envReport.phpVersion}</a></dd>
					</dl>
					<dl class="pairs pairs--columns">
						<dt>{{ phrase('mysql_version') }}</dt>
						<dd>{$envReport.mysqlVersion}</dd>
					</dl>
					<xf:if is="$envReport.server_software">
						<dl class="pairs pairs--columns">
							<dt>{{ phrase('server_software') }}</dt>
							<dd>{$envReport.server_software}</dd>
						</dl>
					</xf:if>
					<xf:foreach loop="$envReport.ini" key="$ini" value="$iniVal">
						<dl class="pairs pairs--columns">
							<dt>PHP <code>{$ini}</code></dt>
							<dd>{$iniVal}</dd>
						</dl>
					</xf:foreach>
					<dl class="pairs pairs--columns">
						<dt>{{ phrase('curl_version') }}</dt>
						<dd>{{ $envReport.curl_version ?: phrase('n_a') }}</dd>
					</dl>
					<dl class="pairs pairs--columns">
						<dt>{{ phrase('curl_ssl_version') }}</dt>
						<dd>{{ $envReport.ssl_version ?: phrase('n_a') }}</dd>
					</dl>
					<dl class="pairs pairs--columns">
						<dt>{{ phrase('openssl_version') }}</dt>
						<dd>{{ $envReport.openssl_version ?: phrase('n_a') }}
					</dl>
					<dl class="pairs pairs--columns">
						<dt>{{ phrase('snuffleupagus_enabled') }}</dt>
						<dd>{{ $envReport.snuffleupagus ? phrase('yes') : phrase('no') }}</dd>
					</dl>
					<dl class="pairs pairs--columns">
						<dt>{{ phrase('imagick_support') }}</dt>
						<dd>{{ $envReport.imagick ? phrase('yes') : phrase('no') }}</dd>
					</dl>
					<dl class="pairs pairs--columns">
						<dt>{{ phrase('exif_support') }}</dt>
						<dd>{{ $envReport.exif ? phrase('yes') : phrase('no') }}</dd>
					</dl>
					<dl class="pairs pairs--columns">
						<dt>{{ phrase('gzip_support') }}</dt>
						<dd>{{ $envReport.gzip ? phrase('yes') : phrase('no') }}</dd>
					</dl>
					<dl class="pairs pairs--columns">
						<dt>{{ phrase('gmp_support') }}</dt>
						<dd>{{ $envReport.gmp ? phrase('yes') : phrase('no') }}</dd>
					</dl>
					<dl class="pairs pairs--columns">
						<dt>{{ phrase('ziparchive_support') }}</dt>
						<dd>{{ $envReport.zip ? phrase('yes') : phrase('no') }}</dd>
					</dl>
				</div>
			</div>
		</div>
	</div>
</xf:if>

<xf:if is="$logCounts is not empty AND $xf.visitor.hasAdminPermission('viewLogs')">
	<div class="block">
		<div class="block-container">
			<h2 class="block-header">
				<span class="collapseTrigger collapseTrigger--block {{ !is_toggled('collapse_logged_activity') ? 'is-active' : '' }}" data-xf-click="toggle" data-xf-init="toggle-storage" data-storage-key="collapse_logged_activity" data-storage-type="cookie" data-target="#js-collapse-logged-activity">
					{{ phrase('logged_activity') }}
				</span>
			</h2>
			<div class="block-body block-body--collapsible {{ !is_toggled('collapse_logged_activity') ? 'is-active' : '' }}" id="js-collapse-logged-activity">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('type') }}</xf:cell>
						<xf:cell>{{ phrase('last_day') }}</xf:cell>
						<xf:cell>{{ phrase('last_week') }}</xf:cell>
						<xf:cell>{{ phrase('last_month') }}</xf:cell>
						<xf:cell> </xf:cell>
					</xf:datarow>

					<!--[XF:activity_stats:top]-->
					<xf:datarow>
						<xf:cell>{{ phrase('moderator_actions') }}</xf:cell>
						<xf:cell>{$logCounts.moderator.day|number}</xf:cell>
						<xf:cell>{$logCounts.moderator.week|number}</xf:cell>
						<xf:cell>{$logCounts.moderator.month|number}</xf:cell>
						<xf:action href="{{ link('logs/moderator') }}">{{ phrase('view') }}</xf:action>
					</xf:datarow>

					<xf:datarow>
						<xf:cell>{{ phrase('spam_triggers') }}</xf:cell>
						<xf:cell>{$logCounts.spamTrigger.day|number}</xf:cell>
						<xf:cell>{$logCounts.spamTrigger.week|number}</xf:cell>
						<xf:cell>{$logCounts.spamTrigger.month|number}</xf:cell>
						<xf:action href="{{ link('logs/spam-trigger') }}">{{ phrase('view') }}</xf:action>
					</xf:datarow>

					<xf:datarow>
						<xf:cell>{{ phrase('spam_cleanings') }}</xf:cell>
						<xf:cell>{$logCounts.spamCleaner.day|number}</xf:cell>
						<xf:cell>{$logCounts.spamCleaner.week|number}</xf:cell>
						<xf:cell>{$logCounts.spamCleaner.month|number}</xf:cell>
						<xf:action href="{{ link('logs/spam-cleaner') }}">{{ phrase('view') }}</xf:action>
					</xf:datarow>

					<xf:datarow>
						<xf:cell>{{ phrase('emails_bounced') }}</xf:cell>
						<xf:cell>{$logCounts.emailBounce.day|number}</xf:cell>
						<xf:cell>{$logCounts.emailBounce.week|number}</xf:cell>
						<xf:cell>{$logCounts.emailBounce.month|number}</xf:cell>
						<xf:action href="{{ link('logs/email-bounces') }}">{{ phrase('view') }}</xf:action>
					</xf:datarow>

					<xf:datarow>
						<xf:cell>{{ phrase('payments_received') }}</xf:cell>
						<xf:cell>{$logCounts.payment.day|number}</xf:cell>
						<xf:cell>{$logCounts.payment.week|number}</xf:cell>
						<xf:cell>{$logCounts.payment.month|number}</xf:cell>
						<xf:action href="{{ link('logs/payment-provider') }}">{{ phrase('view') }}</xf:action>
					</xf:datarow>
					<!--[XF:activity_stats:bottom]-->
				</xf:datalist>
			</div>
		</div>
	</div>
</xf:if>

<xf:if is="$staffOnline is not empty">
	<div class="block">
		<div class="block-container">
			<h2 class="block-header">
				<span class="collapseTrigger collapseTrigger--block {{ !is_toggled('collapse_staff_online') ? 'is-active' : '' }}" data-xf-click="toggle" data-xf-init="toggle-storage" data-storage-key="collapse_staff_online" data-storage-type="cookie" data-target="#js-collapse-staff-online">
					{{ phrase('staff_online') }}
				</span>
			</h2>
			<ul class="block-body block-body--collapsible {{ !is_toggled('collapse_staff_online') ? 'is-active' : '' }}" id="js-collapse-staff-online">
				<xf:foreach loop="$staffOnline" value="$user">
					<li class="block-row">
						<div class="contentRow">
							<div class="contentRow-figure">
								<xf:avatar user="$user" size="xs"/>
							</div>
							<div class="contentRow-main contentRow-main--close">
								<xf:username user="$user" rich="true"/>
								<div class="contentRow-minor">
									<xf:usertitle user="$user"/>
								</div>
							</div>
						</div>
					</li>
				</xf:foreach>
			</ul>
		</div>
	</div>
</xf:if>

<xf:if is="$fileChecks is not empty">
	<div class="block">
		<div class="block-container">
			<h2 class="block-header">
				<span class="collapseTrigger collapseTrigger--block {{ !is_toggled('collapse_health_check') ? 'is-active' : '' }}" data-xf-click="toggle" data-xf-init="toggle-storage" data-storage-key="collapse_health_check" data-storage-type="cookie" data-target="#js-collapse-health-check">
					{{ phrase('file_health_check_results') }}
				</span>
			</h2>
			<div class="block-body block-body--collapsible {{ !is_toggled('collapse_health_check') ? 'is-active' : '' }}" id="js-collapse-health-check">
				<xf:macro id="tools_file_check::file_check_list" arg-fileChecks="{$fileChecks}" />
			</div>
		</div>
	</div>
</xf:if>

<xf:if is="{{ $xf.visitor.hasAdminPermission('addOn') AND $installedAddOns is not empty }}">
	<xf:css src="addon_list.less" />
	<div class="addOnList">
		<div class="block">
			<div class="block-container">
				<h2 class="block-header">
					<span class="collapseTrigger collapseTrigger--block {{ !is_toggled('collapse_add_ons') ? 'is-active' : '' }}" data-xf-click="toggle" data-xf-init="toggle-storage" data-storage-key="collapse_add_ons" data-storage-type="cookie" data-target="#js-collapse-add-ons">
						{{ phrase('installed_add_ons') }}
					</span>
				</h2>
				<ul class="block-body block-body--collapsible {{ !is_toggled('collapse_add_ons') ? 'is-active' : '' }}" id="js-collapse-add-ons">
					<xf:foreach loop="$installedAddOns" value="$addOn">
						<xf:macro id="addon_list_macros::addon_list_item" arg-addOn="{$addOn}" />
					</xf:foreach>
				</ul>
			</div>
		</div>
	</div>
</xf:if>]]></template>
  <template type="admin" title="install_app.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[@_installPage-maxWidth: 1100px; // this does not include the navigation sidebar

.mixin-pageWidth()
{
	width: 100%;
	max-width: @_installPage-maxWidth;
	margin: 0 auto;
}

// ##################################### HEADER ###############################

@_installHeader-bg: @xf-paletteColor5;
@_installHeader-height: 40px;
@_installHeader-shadowHeight: 8px;
@_installHeader-buttonPaddingH: 10px;

.p-header
{
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: @_installHeader-height;
	line-height: @_installHeader-height;
	.m-clearFix();
	z-index: @zIndex-4;
	background: @_installHeader-bg;
	color: contrast(@_installHeader-bg);
	text-align: center;
	.m-dropShadow(0, 0, @_installHeader-shadowHeight, 3px, 0.3);
}

.p-header-logo
{
	vertical-align: middle;
	margin-right: auto;

	img { height: 36px; }
}

// ##################################### BODY AREA SETUP ##########################

.p-pageWrapper
{
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.p-body
{
	display: flex;
	align-items: stretch;
	flex-grow: 1;
}


// ###################################### MAIN COLUMN #########################

.p-main
{
	vertical-align: top;
	padding-top: @_installHeader-height;
	flex-grow: 1;
	min-width: 0;
}

.p-main-inner
{
	.mixin-pageWidth();
	padding: @xf-paddingLarge @xf-pageEdgeSpacer;
}

.p-title
{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	max-width: 100%;
	margin-bottom: 5px;
}

.p-title-value
{
	padding: 0;
	margin: 0 0 3px 0;
	font-size: @xf-fontSizeLargest;
	font-weight: @xf-fontWeightNormal;
	min-width: 0;
}

.p-description
{
	margin: 0;
	padding: 0;
	font-size: @xf-fontSizeSmall;
	color: @xf-textColorMuted;
}

.p-content
{
	margin: @xf-paddingLarge 0;

	> :first-child
	{
		margin-top: 0;
	}
	> :last-child
	{
		margin-bottom: 0;
	}
}

// ####################################### FOOTER AREA ########################

@_adminFooter-bg: darken(@_installHeader-bg, 8%);
@_adminFooter-color: @xf-paletteColor2;
@_adminFooter-linkColor: @xf-paletteColor1;

.p-footer
{
	background: @_adminFooter-bg;
	border-top: @xf-borderSize solid darken(@_adminFooter-bg, 4%);
	color: @_adminFooter-color;
	font-size: @xf-fontSizeSmall;
	padding: @xf-paddingLarge @xf-pageEdgeSpacer;

	a
	{
		color: @_adminFooter-linkColor;
	}
}

.p-footer-row
{
	.m-clearFix();

	margin-bottom: (@xf-paddingLarge * -1);

	a
	{
		padding: 2px 4px;
		border-radius: @xf-borderRadiusSmall;

		&:hover
		{
			text-decoration: none;
			background-color: fade(@_adminFooter-linkColor, 10%);
		}
	}
}

.p-footer-row-main
{
	float: left;
	margin-bottom: @xf-paddingLarge;
	margin-left: -2px;
}

.p-footer-row-opposite
{
	float: right;
	margin-bottom: @xf-paddingLarge;
	margin-right: -2px;
}

.p-footer-copyright
{
	margin-top: @xf-paddingLarge;
	text-align: center;
	font-size: @xf-fontSizeSmallest;
}]]></template>
  <template type="admin" title="ip_users_list" version_id="2010770" version_string="2.1.7"><![CDATA[<xf:title>{{ phrase('users_logged_at_ip_x', {'ip': $ipPrintable}) }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:datalist>
				<xf:foreach loop="$ips" value="$ip" key="$key">
					<xf:set var="$user" value="{$ip.user}" />
					<xf:datarow rowclass="dataList-row--noHover">
						<xf:cell class="dataList-cell--min dataList-cell--alt">
							<xf:avatar user="$user" size="s" href="{{ link('users/edit', $user) }}" />
						</xf:cell>
						<xf:main href="{{ link('users/edit', $user) }}">
							<xf:label><xf:username user="$user" rich="true" notooltip="true" href="" /></xf:label>
							<xf:hint><xf:usertitle user="$user" /></xf:hint>
							<xf:explain>
								<ul class="listInline listInline--bullet">
									<xf:if is="$ip.ip_total > 1">
										<li>{{ phrase('ip_x_and_y_more', {'ip': $ip.ips.0|ip, 'count': $ip.ip_total - 1}) }}</li>
									<xf:else />
										<li>{$ip.ips.0|ip}</li>
									</xf:if>
									<xf:if is="$ip.total > 1">
										<li>{{ phrase('x_times', {'total': $ip.total|number}) }}</li>
										<li><xf:date time="{$ip.first_date}" /> - <xf:date time="{$ip.last_date}" /></li>
									<xf:else />
										<li>{{ phrase('1_time') }}</li>
										<li><xf:date time="{$ip.first_date}" /></li>
									</xf:if>
								</ul>
							</xf:explain>
						</xf:main>
					</xf:datarow>
				</xf:foreach>
			</xf:datalist>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="language_chooser" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:title>{{ phrase('language_chooser') }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<a href="{{ link('account/language', null, {'language_id': 0, '_xfRedirect': $redirect, 't': csrf_token()}) }}"
				class="menu-linkRow menu-linkRow--alt {{ $xf.visitor.Admin.admin_language_id == 0 ? 'is-selected' : '' }}">

				{{ phrase('use_forum_language_preference') }}
			</a>

			<hr class="block-separator" />

			<ul class="listPlain listColumns">
				<xf:foreach loop="$languageTree.getFlattened(0)" value="$treeEntry">
					<li>
						<a href="{{ link('account/language', null, {'language_id': $treeEntry.record.language_id, '_xfRedirect': $redirect, 't': csrf_token()}) }}"
							class="menu-linkRow {{ $xf.visitor.Admin.admin_language_id == $treeEntry.record.language_id ? 'is-selected' : '' }}"
							dir="auto">

							{$treeEntry.record.title}
						</a>
					</li>
				</xf:foreach>
			</ul>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="language_edit" version_id="2030051" version_string="2.3.0 Release Candidate 1"><![CDATA[<xf:if is="$language.isInsert()">
	<xf:title>{{ phrase('add_language') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_language:') }} {$language.title}</xf:title>
</xf:if>

<xf:pageaction if="$language.isUpdate()">
	<xf:button href="{{ link('languages/delete', $language) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('languages/save', $language) }}" ajax="true" class="block">
	<div class="block-container">

		<h2 class="block-tabHeader tabs hScroller" role="tablist"
			data-xf-init="tabs h-scroller"
			xdata-state="replace">

			<span class="hScroller-scroll">
				<!--[XF:tabs:start]-->
				<a class="tabs-tab is-active" role="tab" aria-controls="options">{{ phrase('options') }}</a>
				<a class="tabs-tab" role="tab" aria-controls="date-format">{{ phrase('date_format') }}</a>
				<a class="tabs-tab" role="tab" aria-controls="short-date-format">{{ phrase('short_date_format') }}</a>
				<xf:if is="$quickPhrases is not empty">
					<a class="tabs-tab" role="tab" aria-controls="phrases">{{ phrase('commonly_edited_phrases') }} </a>
				</xf:if>
				<!--[XF:tabs:end]-->
			</span>
		</h2>

		<ul class="tabPanes">
			<!--[XF:tab_panes:start]-->

			<li class="is-active" role="tabpanel" id="options" aria-expanded="true">
				<div class="block-body">

					<xf:textboxrow name="title" value="{$language}"
						label="{{ phrase('title') }}" />

					<xf:selectrow name="parent_id" value="{$language}"
						label="{{ phrase('parent_language') }}">
						<xf:option value="0">{{ phrase('(no_parent)') }}</xf:option>
						<xf:foreach loop="$languageTree.getFlattened(1)" value="$treeEntry">
							<xf:option value="{$treeEntry.record.language_id}"
								label="{{ repeat('--', $treeEntry.depth) }} {$treeEntry.record.title}" />
						</xf:foreach>
					</xf:selectrow>

					<xf:selectrow name="language_code" value="{$language}"
						label="{{ phrase('locale') }}">

						<xf:option value="">&nbsp;</xf:option>
						<xf:options source="$locales" />
					</xf:selectrow>

					<xf:radiorow name="text_direction" value="{$language}"
						label="{{ phrase('text_direction') }}">

						<xf:option value="LTR">{{ phrase('left_to_right') }}</xf:option>
						<xf:option value="RTL">{{ phrase('right_to_left') }}</xf:option>
					</xf:radiorow>

					<xf:checkboxrow>
						<xf:option name="user_selectable" selected="{$language.user_selectable}">
							{{ phrase('allow_user_selection') }}
						</xf:option>
					</xf:checkboxrow>

					<hr class="formRowSep" />

					<xf:textboxrow name="decimal_point" value="{$language}" size="5" class="input--autoSize"
						label="{{ phrase('decimal_point_character') }}" />

					<xf:textboxrow name="thousands_separator" value="{$language}" size="5" class="input--autoSize"
						label="{{ phrase('thousands_separator') }}" />

					<xf:textboxrow name="label_separator" value="{$language}" size="5" class="input--autoSize"
						label="{{ phrase('label_separator') }}"
						explain="{{ phrase('this_is_used_to_separate_labels_from_their_associated_values') }}" />

					<xf:textboxrow name="comma_separator" value="{$language}" size="5" class="input--autoSize"
						label="{{ phrase('comma_separator') }}"
						explain="{{ phrase('this_is_used_as_separator_in_lists_of_values') }}" />

					<xf:textboxrow name="ellipsis" value="{$language}" size="5" class="input--autoSize"
						label="{{ phrase('ellipsis_character') }}" />

					<xf:formrow label="{{ phrase('parentheses_characters') }}">

						<div class="inputGroup">
							<xf:textbox name="parenthesis_open" value="{$language.parenthesis_open}" size="5" class="input--autoSize"
								maxlength="{{ max_length($language, 'parenthesis_open') }}" />
							<span class="inputGroup-splitter"></span>
							<xf:textbox name="parenthesis_close" value="{$language.parenthesis_close}" size="5" class="input--autoSize"
								maxlength="{{ max_length($language, 'parenthesis_close') }}" />
						</div>
					</xf:formrow>

					<hr class="formRowSep" />

					<xf:radiorow name="currency_format" value="{$language}"
						label="{{ phrase('currency_format') }}">

						<xf:options source="$currencyFormats" />
						<xf:option value="" selected="!{$currencyFormats.{$language.currency_format}}" label="{{ phrase('other') }}">
							<xf:dependent>
								<xf:textbox name="currency_format_other" value="{{ {$currencyFormats.{$language.currency_format}} ? '' : $language.currency_format }}"
									size="15" maxlength="{{ max_length($language, 'currency_format') }}" />
								<p class="formRow-explain">{{ phrase('currency_format_explain') }}</p>
							</xf:dependent>
						</xf:option>
					</xf:radiorow>

				</div>
			</li>

			<li role="tabpanel" id="date-format" aria-expanded="false">
				<div class="block-body">

					<xf:selectrow name="week_start" value="{$language}"
						label="{{ phrase('week_start_day') }}">

						<xf:option value="0">{{ phrase('day_sunday') }}</xf:option>
						<xf:option value="1">{{ phrase('day_monday') }}</xf:option>
						<xf:option value="2">{{ phrase('day_tuesday') }}</xf:option>
						<xf:option value="3">{{ phrase('day_wednesday') }}</xf:option>
						<xf:option value="4">{{ phrase('day_thursday') }}</xf:option>
						<xf:option value="5">{{ phrase('day_friday') }}</xf:option>
						<xf:option value="6">{{ phrase('day_saturday') }}</xf:option>
					</xf:selectrow>

					<xf:radiorow name="date_format" value="{$language}"
						label="{{ phrase('date_format') }}">

						<xf:options source="$dateFormats" />
						<xf:option value="" selected="!{$dateFormats.{$language.date_format}}"
							label="{{ phrase('other') }}">
							<xf:dependent>
								<xf:textbox name="date_format_other" value="{{ {$dateFormats.{$language.date_format}} ? '' : $language.date_format }}"
									size="15" maxlength="{{ max_length($language, 'date_format') }}"
									dir="ltr" />
								<p class="formRow-explain">{{ phrase('use_php_date_format') }}</p>
							</xf:dependent>
						</xf:option>
					</xf:radiorow>

					<hr class="formRowSep" />

					<xf:radiorow name="time_format" value="{$language}"
						label="{{ phrase('time_format') }}">

						<xf:options source="$timeFormats" />
						<xf:option value="" selected="!{$timeFormats.{$language.time_format}}" label="{{ phrase('other') }}">
							<xf:dependent>
								<xf:textbox name="time_format_other" value="{{ {$timeFormats.{$language.time_format}} ? '' : $language.time_format }}"
									size="15" maxlength="{{ max_length($language, 'time_format') }}"
									dir="ltr" />
								<p class="formRow-explain">{{ phrase('use_php_time_format') }}</p>
							</xf:dependent>
						</xf:option>
					</xf:radiorow>

				</div>
			</li>

			<li role="tabpanel" id="short-date-format" aria-expanded="false">
				<div class="block-body">

					<xf:textboxrow name="quick_phrases[short_date_x_minutes]"
						value="{$quickPhrases.short_date_x_minutes.phrase_text}"
						label="{{ phrase('short_date_x_minutes_label') }}"
						explain="{{ phrase('short_date_x_minutes_explain') }}"  />

					<xf:textboxrow name="quick_phrases[short_date_x_hours]"
						value="{$quickPhrases.short_date_x_hours.phrase_text}"
						label="{{ phrase('short_date_x_hours_label') }}"
						explain="{{ phrase('short_date_x_hours_explain') }}"  />

					<xf:textboxrow name="quick_phrases[short_date_x_days]"
						value="{$quickPhrases.short_date_x_days.phrase_text}"
						label="{{ phrase('short_date_x_days_label') }}"
						explain="{{ phrase('short_date_x_days_explain') }}" />

					<xf:radiorow name="date_short_recent_format" value="{$language}"
						label="{{ phrase('date_short_recent_format') }}"
						explain="{{ phrase('date_short_recent_format_explain') }}">
						<xf:options source="$dateShortRecentFormats" />
						<xf:option value="" selected="!{$dateShortRecentFormats.{$language.date_short_recent_format}}" label="{{ phrase('other') }}">
							<xf:dependent>
								<xf:textbox name="date_short_recent_format_other" value="{{ {$dateShortRecentFormats.{$language.date_short_recent_format}} ? '' : $language.date_short_recent_format }}"
									size="15" maxlength="{{ max_length($language, 'date_short_recent_format') }}"
									dir="ltr" />
								<p class="formRow-explain">{{ phrase('use_php_date_format') }}</p>
							</xf:dependent>
						</xf:option>
					</xf:radiorow>

					<xf:radiorow name="date_short_format" value="{$language}"
						label="{{ phrase('date_short_format') }}"
						explain="{{ phrase('date_short_format_explain') }}">
						<xf:options source="$dateShortFormats" />
						<xf:option value="" selected="!{$dateShortFormats.{$language.date_short_format}}" label="{{ phrase('other') }}">
							<xf:dependent>
								<xf:textbox name="date_short_format_other" value="{{ {$dateShortFormats.{$language.date_short_format}} ? '' : $language.date_short_format }}"
									size="15" maxlength="{{ max_length($language, 'date_short_format') }}"
									dir="ltr" />
								<p class="formRow-explain">{{ phrase('use_php_date_format') }}</p>
							</xf:dependent>
						</xf:option>
					</xf:radiorow>

				</div>
			</li>

			<xf:if is="$quickPhrases is not empty">
				<li role="tabpanel" id="phrases" aria-expanded="false">
					<div class="block-body">

						<xf:textarearow name="quick_phrases[privacy_policy_text]"
							value="{$quickPhrases.privacy_policy_text.phrase_text}"
							label="{{ phrase('privacy_policy') }}"
							hint="{{ phrase('you_may_use_html') }}"
							autosize="true"
							class="input--fitHeight--short" />

						<xf:textarearow name="quick_phrases[terms_rules_text]"
							value="{$quickPhrases.terms_rules_text.phrase_text}"
							label="{{ phrase('terms_and_rules') }}"
							hint="{{ phrase('you_may_use_html') }}"
							autosize="true"
							class="input--fitHeight--short" />

						<xf:textarearow name="quick_phrases[extra_copyright]"
							value="{$quickPhrases.extra_copyright.phrase_text}"
							label="{{ phrase('extra_footer_copyright') }}"
							hint="{{ phrase('you_may_use_html') }}"
							autosize="true"
							class="input--fitHeight--short"/>

						<xf:textarearow name="quick_phrases[email_footer_html]"
							value="{$quickPhrases.email_footer_html.phrase_text}"
							label="{{ phrase('extra_email_footer_html') }}"
							hint="{{ phrase('you_may_use_html') }}"
							autosize="true"
							class="input--fitHeight--short"/>

						<xf:textarearow name="quick_phrases[email_footer_text]"
							value="{$quickPhrases.email_footer_text.phrase_text}"
							label="{{ phrase('extra_email_footer_plain_text') }}"
							autosize="true"
							class="input--fitHeight--short"/>

					</div>
				</li>
			</xf:if>

		</ul>

		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="language_export" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('export_language:') }} {$language.title}</xf:title>

<xf:set var="$addOnRepo" value="{{ $xf.app.em.getRepository('XF:AddOn') }}" />

<xf:form action="{{ link('languages/export', $language) }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('language') }}">{$language.title}</xf:formrow>

			<xf:selectrow name="addon_id"
				label="{{ phrase('export_from_add_on') }}">

				<xf:option>{{ phrase('(all)') }}</xf:option>
				<xf:foreach loop="$addOnRepo.findAddOnsForList().fetch()" value="$addOn">
					<xf:option value="{$addOn.addon_id}" label="{$addOn.title}" />
				</xf:foreach>
			</xf:selectrow>

			<xf:checkboxrow>
				<xf:option name="untranslated"
					label="{{ phrase('get_unmodified_phrases') }}"
					hint="{{ phrase('helpful_if_wish_to_translate_language_using_xml_file') }}" />
			</xf:checkboxrow>
		</div>
		<xf:submitrow icon="export" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="language_import" version_id="2010036" version_string="2.1.0 Beta 6"><![CDATA[<xf:title>{{ phrase('import_language') }}</xf:title>

<xf:form action="{{ link('languages/import') }}" upload="true" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:uploadrow name="upload" accept=".xml"
				label="{{ phrase('import_from_uploaded_xml_file') }}" />

			<xf:radiorow name="target"
				label="{{ phrase('import_as') }}">

				<xf:option value="new" checked="checked"
					label="{{ phrase('child_of_language:') }}">

					<xf:select name="parent_language_id">
						<xf:option label="{{ phrase('(no_parent)') }}" />
						<xf:foreach loop="$languageTree.getFlattened(0)" value="$treeEntry">
							<xf:option value="{$treeEntry.record.language_id}">{{ repeat('--', $treeEntry.depth) }}
								{$treeEntry.record.title}
							</xf:option>
						</xf:foreach>
					</xf:select>
				</xf:option>
				<xf:option value="overwrite"
					label="{{ phrase('overwrite_language') }}">

					<xf:select name="overwrite_language_id">
						<xf:foreach loop="$languageTree.getFlattened(0)" value="$treeEntry">
							<xf:option value="{$treeEntry.record.language_id}">{{ repeat('--', $treeEntry.depth) }}
								{$treeEntry.record.title}
							</xf:option>
						</xf:foreach>
					</xf:select>
					<xf:html><div class="formRow-explain">{{ phrase('overwrite_language_id_explain') }}</div></xf:html>
				</xf:option>

			</xf:radiorow>

			<xf:checkboxrow>
				<xf:option name="force">
					<xf:label>{{ phrase('skip_import_checks') }}</xf:label>
					<xf:hint>{{ phrase('selecting_bypass_checks_made_by_import_prevent_accidents') }}</xf:hint>
				</xf:option>
			</xf:checkboxrow>
		</div>
		<xf:submitrow icon="import" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="language_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('languages') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('languages/add') }}" icon="add">{{ phrase('add_language') }}</xf:button>
	<xf:button href="{{ link('languages/import') }}" icon="import" />
</xf:pageaction>

<xf:macro id="language_list" arg-children="!" arg-defaultLanguageId="!" arg-depth="1">
	<xf:if is="$children is not empty">
		<xf:foreach loop="$children" value="$child">
			<xf:macro id="language_list_entry" arg-language="{$child.record}" arg-children="{$child.children}" arg-defaultLanguageId="{$defaultLanguageId}" arg-depth="{$depth}" />
		</xf:foreach>
	</xf:if>
</xf:macro>
<xf:macro id="language_list_entry" arg-language="!" arg-children="!" arg-defaultLanguageId="!" arg-depth="1">
	<xf:datarow>

		<xf:main
			hash="{$language.language_id}"
			href="{{ ($language.language_id ? link('languages/edit', $language) : '') }}"
			label="{$language.title}"
			class="dataList-cell--d{$depth}" />

		<xf:if is="$language.language_id">
			<xf:toggle name="user_selectable[{$language.language_id}]"
					   selected="$language.user_selectable"
					   class="dataList-cell--separated u-hideMedium"
					   submit="true"
					   tooltip="{{ phrase('enable_disable_x', {'title': $language.title}) }}" />
			<xf:toggle name="default_language_id"
				type="radio"
				value="{$language.language_id}"
				selected="{{ $defaultLanguageId == $language.language_id ? 1 : 0 }}"
				class="dataList-cell--separated"
				submit="true" />
		<xf:else />
			<xf:cell class="u-hideMedium">&nbsp;</xf:cell>
			<xf:cell>&nbsp;</xf:cell>
		</xf:if>

		<xf:if is="$language.canEdit()">
			<xf:action href="{{ link('languages/phrases', $language) }}" class="dataList-cell--responsiveMenuItem">{{ phrase('phrases') }}</xf:action>
		<xf:else />
			<xf:cell class="dataList-cell--alt dataList-cell--fauxResponsiveMenuItem">&nbsp;</xf:cell>
		</xf:if>

		<xf:if is="$language.language_id">
			<xf:action href="{{ link('languages/export', $language) }}" overlay="true" class="dataList-cell--responsiveMenuItem">{{ phrase('export') }}</xf:action>
		<xf:else />
			<xf:cell class="dataList-cell--alt dataList-cell--fauxResponsiveMenuItem">&nbsp;</xf:cell>
		</xf:if>

		<xf:if is="$language.canEdit()">
			<xf:popup class="dataList-cell--responsiveMenuTrigger" label="&#8226;&#8226;&#8226;">
				<div class="menu" data-menu="menu" aria-hidden="true" data-menu-builder="dataList">
					<div class="menu-content">
						<h3 class="menu-header">{{ phrase('more_options') }}</h3>
						<div class="js-menuBuilderTarget"></div>
					</div>
				</div>
			</xf:popup>
		<xf:else />
			<xf:cell class="dataList-cell--alt dataList-cell--fauxResponsiveMenuTrigger">&nbsp;</xf:cell>
		</xf:if>

		<xf:if is="$language.language_id">
			<xf:delete href="{{ link('languages/delete', $language) }}" />
		<xf:else />
			<xf:cell class="dataList-cell--alt">&nbsp;</xf:cell>
		</xf:if>

	</xf:datarow>
	<xf:macro id="language_list" arg-children="{$children}" arg-depth="{{ $depth + 1 }}" arg-defaultLanguageId="{$defaultLanguageId}" />
</xf:macro>

<xf:if is="$languageTree is not empty">
	<xf:form action="{{ link('languages/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="languages" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:macro id="language_list" arg-children="{$languageTree}"
						arg-defaultLanguageId="{$xf.options.defaultLanguageId}" />
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($languageTree.getFlattened(0)) }}</span>
			</div>
		</div>
		<xf:hiddenval name="default_language_id_original">{$xf.options.defaultLanguageId}</xf:hiddenval>
	</xf:form>
</xf:if>]]></template>
  <template type="admin" title="language_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="language_change_menu"
	arg-languageTree="!"
	arg-route="!"
	arg-routeParams="{{ {} }}"
	arg-currentLanguage="{{ null }}"
	arg-linkClass="button button--link">

	<a class="{$linkClass} menuTrigger"
		data-xf-click="menu"
		role="button"
		tabindex="0"
		aria-expanded="false"
		aria-haspopup="true">{{ phrase('language:') }} {$currentLanguage.title}</a>

	<div class="menu" data-menu="menu" aria-hidden="true">
		<div class="menu-content">
			<h3 class="menu-header">{{ phrase('languages') }}</h3>
			<xf:foreach loop="$languageTree.getFlattened()" value="$treeEntry">
				<a href="{{ link($route, $treeEntry.record, $routeParams) }}"
				   class="menu-linkRow {{ ($currentLanguage && $currentLanguage.language_id == $treeEntry.record.language_id) ? 'is-selected' : '' }}">
					<span class="u-depth{$treeEntry.depth}">{$treeEntry.record.title}</span>
				</a>
			</xf:foreach>
		</div>
	</div>
</xf:macro>

<xf:macro id="language_select"
	arg-languageTree="!"
	arg-languageId="!"
	arg-name="language_id"
	arg-row="{{ true }}"
	arg-class="">

	<xf:set var="$select">
		<xf:select name="{$name}" value="{$languageId}" class="{$class}">
			<xf:foreach loop="{{ $languageTree.getFlattened() }}" value="$treeEntry">
				<xf:option value="{$treeEntry.record.language_id}">{{ repeat('--', $treeEntry.depth) }} {$treeEntry.record.title}</xf:option>
			</xf:foreach>
		</xf:select>
	</xf:set>

	<xf:if is="$row">
		<xf:formrow label="{{ phrase('language') }}" rowtype="input">
			{$select|raw}
		</xf:formrow>
	<xf:else />
		{$select|raw}
	</xf:if>
</xf:macro>]]></template>
  <template type="admin" title="link_forum_delete" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('link-forums/delete', $node) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				<strong><a href="{{ link('link-forums/edit', $node) }}">{$node.title}</a></strong>
			</xf:inforow>

			<xf:macro id="helper_node_delete_children::delete_row" arg-node="{$node}" arg-nodeTree="{$nodeTree}" />
		</div>
		<xf:submitrow rowtype="{{ !$node.hasChildren() ? 'simple' : '' }}" icon="delete" />
	</div>
	<xf:redirect />
</xf:form>]]></template>
  <template type="admin" title="link_forum_edit" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:if is="$node.isInsert()">
	<xf:title>{{ phrase('add_link_forum') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_link_forum:') }} {$node.title}</xf:title>
</xf:if>

<xf:pageaction if="$node.isUpdate()">
	<xf:button href="{{ link('link-forums/delete', $node) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('link-forums/save', $node) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:macro id="node_edit_macros::title" arg-node="{$node}" />
			<xf:macro id="node_edit_macros::description" arg-node="{$node}" />

			<xf:textboxrow name="link_url" value="{$link}"
				label="{{ phrase('link_url') }}"
				explain="{{ phrase('users_redirected_to_url_when_click_on_link_forum') }}" />

			<hr class="formRowSep" />

			<xf:macro id="node_edit_macros::node_name" arg-node="{$node}" />
			<xf:macro id="node_edit_macros::position" arg-node="{$node}" arg-nodeTree="{$nodeTree}" />
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="log_admin_list" version_id="2000170" version_string="2.0.1"><![CDATA[<xf:title>{{ phrase('admin_log') }}</xf:title>

<xf:form action="{{ link('logs/admin') }}" class="block">
	<div class="block-container">
		<div class="block-body block-row">
			<span>
				{{ phrase('filter_by_user:') }}
				<xf:select name="user_id" value="{$userId}" class="input--inline">
					<xf:option value="0">{{ phrase('any') }}</xf:option>
					<xf:options source="$logUsers" />
				</xf:select>
			</span>

			<xf:button type="submit">{{ phrase('filter') }}</xf:button>
		</div>
	</div>
</xf:form>

<xf:if is="$entries">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('action') }}</xf:cell>
						<xf:cell>{{ phrase('user') }}</xf:cell>
						<xf:cell>{{ phrase('ip_address') }}</xf:cell>
						<xf:cell>{{ phrase('date_time') }}</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$entries" value="$entry">
						<xf:datarow>
							<xf:cell class="u-ltr"><a href="{{ link('logs/admin', $entry) }}" data-xf-click="overlay">{$entry.request_url_short}</a></xf:cell>
							<xf:cell><xf:username user="$entry.User" href="{{ link('users/edit', $entry.User) }}" /></xf:cell>
							<xf:cell class="u-ltr">{{ $entry.ip_address ? $entry.ip_address|ip : '' }}</xf:cell>
							<xf:cell><xf:date time="{$entry.request_date}" /></xf:cell>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($entries, $total) }}</span>
			</div>
		</div>
		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="logs/admin" params="{$linkFilters}"
			wrapperclass="block-outer block-outer--after" />
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_entries_have_been_logged') }}</div>
</xf:if>]]></template>
  <template type="admin" title="log_admin_view" version_id="2000033" version_string="2.0.0 Beta 3"><![CDATA[<xf:title>{{ phrase('admin_log_entry') }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body block-row">
			<span class="u-ltr">{$entry.request_url}</span>
			<ul class="listInline listInline--bullet u-muted">
				<li>{{ phrase('generated_by:') }} {{ $entry.User ? '<a href="' . link('users/edit', $entry) . '">' . $entry.User.username . '</a>' : phrase('unknown_account') }}</li>
				<li class="u-ltr">{{ $entry.ip_address ? $entry.ip_address|ip : '' }}</li>
				<li><xf:date time="{$entry.request_date}" /></li>
			</ul>
		</div>

		<h3 class="block-minorHeader">{{ phrase('request_state') }}</h3>
		<div class="block-body block-body--contained block-row" dir="ltr">
			{{ dump_simple($entry.request_data) }}
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="log_cookie_consent_list" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:title>{{ phrase('cookie_consent_log') }}</xf:title>

<xf:form action="{{ link('logs/cookie-consent') }}" class="block">
	<div class="block-container">
		<div class="block-body block-row">
			<xf:textbox name="username" value="{{ $limitUser ? $limitUser.username : '' }}"
				ac="single" class="input--inline"
				placeholder="{{ phrase('user_name...') }}" />

			<xf:textbox name="ip" value="{$limitIp}"
				type="search" class="input--inline"
				placeholder="{{ phrase('ip_address...') }}" />

			<xf:button type="submit">{{ phrase('filter') }}</xf:button>
		</div>
	</div>
</xf:form>

<xf:if is="$entries is not empty">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('user') }}</xf:cell>
						<xf:cell>{{ phrase('ip_address') }}</xf:cell>
						<xf:cell>{{ phrase('date') }}</xf:cell>
						<xf:cell>{{ phrase('consented_groups') }}</xf:cell>
					</xf:datarow>

					<xf:foreach loop="$entries" value="$entry">
						<xf:datarow>
							<xf:cell><xf:username user="$entry.User" href="{{ link('users/edit', $entry.User) }}" /></xf:cell>
							<xf:cell class="u-ltr">{{ $entry.ip_address ? $entry.ip_address|ip : '' }}</xf:cell>
							<xf:cell><xf:date time="{$entry.log_date}" /></xf:cell>

							<xf:cell>
								<div>
									<a href="{{ link('logs/cookie-consent', $entry) }}" data-xf-click="overlay">
										<ul class="listInline listInline--comma">
											<xf:foreach loop="$entry.consented_groups" value="$consentedGroup"><xf:trim>
												<li>{{ $xf.cookieConsent.getGroupLabel($consentedGroup) }}
											</xf:trim></xf:foreach>
										</ul>
									</a>
								</div>
							</xf:cell>

						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>

			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($entries, $total) }}</span>
			</div>
		</div>

		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="logs/cookie-consent" params="{$linkFilters}"
			wrapperclass="block-outer block-outer--after" />
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_entries_have_been_logged') }}</div>
</xf:if>]]></template>
  <template type="admin" title="log_cookie_consent_view" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('cookie_consent_log_entry') }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('user') }}">
				<a href="{{ link('users/edit', $entry.User) }}">{$entry.User.username}</a>
			</xf:formrow>

			<xf:if is="$entry.ip_address">
				<xf:formrow label="{{ phrase('ip_address') }}">
					<a href="{{ link_type('public', 'misc/ip-info', null, {'ip': $entry.ip_address|ip}) }}" target="_blank" class="u-ltr">{$entry.ip_address|ip}</a>
				</xf:formrow>
			</xf:if>

			<xf:formrow label="{{ phrase('date') }}">
				<xf:date time="{$entry.log_date}" />
			</xf:formrow>

			<xf:formrow label="{{ phrase('consented_groups') }}">
				<ul class="listInline listInline--comma">
					<xf:foreach loop="$entry.consented_groups" value="$consentedGroup"><xf:trim>
						<li>{{ $xf.cookieConsent.getGroupLabel($consentedGroup) }}
					</xf:trim></xf:foreach>
				</ul>
			</xf:formrow>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="log_email_bounce_list" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('email_bounce_log') }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:datalist data-xf-init="responsive-data-list">
				<xf:datarow rowtype="header">
					<xf:cell>{{ phrase('recipient') }}</xf:cell>
					<xf:cell>{{ phrase('date') }}</xf:cell>
					<xf:cell>{{ phrase('type') }}</xf:cell>
					<xf:cell>{{ phrase('action') }}</xf:cell>
					<xf:cell class="dataList-cell--min">&nbsp;</xf:cell>
				</xf:datarow>

				<xf:foreach loop="$bounces" value="$bounce">
					<xf:datarow>
						<xf:cell>
							<xf:if is="$bounce.User">
								<a href="{{ link('users/edit', $bounce.User) }}"
									data-xf-init="tooltip"
									title="{$bounce.User.username}">{$bounce.recipient}</a>
								<xf:else />
								{$bounce.recipient}
							</xf:if>
						</xf:cell>
						<xf:cell>
							<xf:date time="{$bounce.log_date}" />
						</xf:cell>
						<xf:cell>
							<xf:if is="$bounce.message_type == 'bounce'">
								<span data-xf-init="tooltip" title="{$bounce.status_code}">{{ phrase('bounce') }}</span>
							<xf:elseif is="$bounce.message_type == 'delay'" />
								<span class="u-muted">{{ phrase('delay') }}</span>
							<xf:elseif is="$bounce.message_type == 'challenge'" />
								<span class="u-muted">{{ phrase('challenge') }}</span>
							<xf:elseif is="$bounce.message_type == 'autoreply'" />
								<span class="u-muted">{{ phrase('auto_reply') }}</span>
							<xf:elseif is="$bounce.message_type == 'unknown'" />
								{{ phrase('unknown') }}
							<xf:else />
								{$bounce.message_type}
							</xf:if>
						</xf:cell>
						<xf:cell>
							<xf:if is="$bounce.action_taken == 'hard'">
								{{ phrase('hard_bounce') }}
							<xf:elseif is="$bounce.action_taken == 'soft'" />
								{{ phrase('soft_bounce_logged') }}
							<xf:elseif is="$bounce.action_taken == 'soft_hard'" />
								{{ phrase('too_many_soft_bounces') }}
							<xf:elseif is="$bounce.action_taken == 'untrusted'" />
								<span class="u-muted">{{ phrase('skipped_untrusted') }}</span>
							<xf:elseif is="$bounce.action_taken == ''" />
								<span class="u-muted">{{ phrase('none') }}</span>
							<xf:else />
								{$bounce.action_taken}
							</xf:if>
						</xf:cell>
						<xf:action href="{{ link('logs/email-bounces', null, {'bounce_id': $bounce.bounce_id}) }}">
							{{ phrase('view') }}
						</xf:action>
					</xf:datarow>
					<xf:else />
					<xf:datarow>
						<xf:cell colspan="5">{{ phrase('no_entries_have_been_logged') }}</xf:cell>
					</xf:datarow>
				</xf:foreach>
			</xf:datalist>
		</div>
		<div class="block-footer">
			<span class="block-footer-counter">{{ display_totals($bounces, $total) }}</span>
		</div>
	</div>
	<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
		link="logs/email-bounces" params="{$linkFilters}"
		wrapperclass="block-outer block-outer--after" />
</div>
]]></template>
  <template type="admin" title="log_image_proxy_list" version_id="2001070" version_string="2.0.10"><![CDATA[<xf:title>{{ phrase('image_proxy_log') }}</xf:title>

<xf:form action="{{ link('logs/image-proxy') }}" class="block">
	<div class="block-container">
		<div class="block-body block-row">
			<xf:textbox name="url" value="{$filters.url}"
				placeholder="{{ phrase('url_contains...') }}"
				class="input--inline" />
			<span>
				{{ phrase('ordered_by:') }}
				<xf:select name="order" value="{{ $filters.order ? $filters.order : 'last_request_date' }}"
					class="input--inline">
					<xf:option value="last_request_date">{{ phrase('last_requested') }}</xf:option>
					<xf:option value="first_request_date">{{ phrase('first_requested') }}</xf:option>
					<xf:option value="views">{{ phrase('hits') }}</xf:option>
					<xf:option value="file_size">{{ phrase('size') }}</xf:option>
				</xf:select>
			</span>

			<xf:button type="submit">{{ phrase('go') }}</xf:button>
		</div>
	</div>
</xf:form>

<xf:if is="$entries is not empty">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell colspan="2">{{ phrase('image') }}</xf:cell>
						<xf:cell>{{ phrase('hits') }}</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$entries" value="$entry">
						<xf:datarow>
							<xf:cell
								class="dataList-cell--min dataList-cell--alt dataList-cell--image dataList-cell--imageMediumWide"
								href="{{ link('logs/image-proxy', $entry) }}" overlay="true">
								<xf:if is="$entry.isValid()">
									<img src="{{ link('logs/image-proxy/image', $entry) }}" alt="" />
								<xf:else />
									<span class="dataList-imagePlaceholder"></span>
								</xf:if>
							</xf:cell>
							<xf:cell href="{{ link('logs/image-proxy', $entry) }}" overlay="true">
								<div class="dataList-textRow">{$entry.url}</div>
								<div class="dataList-subRow">
									<ul class="listInline listInline--bullet">
										<xf:if is="{$entry.file_size}"><li>{{ phrase('size:') }} {$entry.file_size|file_size}</li></xf:if>
										<li>{{ phrase('first_requested:') }} <xf:date time="{$entry.first_request_date}" /></li>
										<li>{{ phrase('last_requested:') }} <xf:date time="{$entry.last_request_date}" /></li>
									</ul>
								</div>
							</xf:cell>
							<xf:cell href="{{ link('logs/image-proxy', $entry) }}" class="dataList-cell--min"
								overlay="true">
								{$entry.views|number}
							</xf:cell>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($entries, $total) }}</span>
			</div>
		</div>
		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="logs/image-proxy" params="{$filters}"
			wrapperclass="block-outer block-outer--after" />
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_entries_have_been_logged') }}</div>
</xf:if>]]></template>
  <template type="admin" title="log_image_proxy_view" version_id="2000051" version_string="2.0.0 Release Candidate 1"><![CDATA[<xf:title>{{ phrase('image_proxy_details') }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('image') }}">
				<div><img src="{{ link('logs/image-proxy/image', $image) }}" alt="" style="max-width: 100%; max-height: 300px; display: block; margin: auto" /></div>
				<a href="{$image.url}" target="_blank">{$image.url}</a>
			</xf:formrow>
			<xf:formrow label="{{ phrase('hits') }}">{$image.views|number}</xf:formrow>
			<xf:formrow label="{{ phrase('first_requested') }}"><xf:date time="{$image.first_request_date}" /></xf:formrow>
			<xf:formrow label="{{ phrase('last_requested') }}"><xf:date time="{$image.last_request_date}" /></xf:formrow>

			<xf:if is="{$xf.options.imageLinkProxyReferrer.enabled} AND $image.Referrers is not empty">
				<xf:datalist class="dataList--separatedTop" data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('referrer') }}</xf:cell>
						<xf:cell>{{ phrase('hits') }}</xf:cell>
						<xf:cell>{{ phrase('first_seen') }}</xf:cell>
						<xf:cell>{{ phrase('last_seen') }}</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$image.Referrers" value="$referrer">
						<xf:datarow rowclass="dataList-row--noHover">
							<xf:cell dir="auto"><a href="{$referrer.referrer_url}" target="_blank">{$referrer.referrer_url}</a></xf:cell>
							<xf:cell>{$referrer.hits|number}</xf:cell>
							<xf:cell><xf:date time="{$referrer.first_date}" /></xf:cell>
							<xf:cell><xf:date time="{$referrer.last_date}" /></xf:cell>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</xf:if>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="log_link_proxy_list" version_id="2000170" version_string="2.0.1"><![CDATA[<xf:title>{{ phrase('link_proxy_log') }}</xf:title>

<xf:form action="{{ link('logs/link-proxy') }}" class="block">
	<div class="block-container">
		<div class="block-body block-row">
			<xf:textbox name="url" value="{$filters.url}"
				placeholder="{{ phrase('url_contains...') }}"
				class="input--inline" />

			<span>
				{{ phrase('ordered_by:') }}
				<xf:select name="order" value="{{ $filters.order ? $filters.order : 'last_request_date' }}"
					class="input--inline">
					<xf:option value="last_request_date">{{ phrase('last_requested') }}</xf:option>
					<xf:option value="first_request_date">{{ phrase('first_requested') }}</xf:option>
					<xf:option value="hits">{{ phrase('hits') }}</xf:option>
				</xf:select>
			</span>

			<xf:button type="submit">{{ phrase('go') }}</xf:button>
		</div>
	</div>
</xf:form>

<xf:if is="$entries is not empty">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('link') }}</xf:cell>
						<xf:cell>{{ phrase('hits') }}</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$entries" value="$entry">
						<xf:datarow>
							<xf:cell href="{{ link('logs/link-proxy', $entry) }}" overlay="true">
								<div class="dataList-textRow">{$entry.url}</div>
								<div class="dataList-subRow">
									<ul class="listInline listInline--bullet">
										<li>{{ phrase('first_requested:') }} <xf:date time="{$entry.first_request_date}" /></li>
										<li>{{ phrase('last_requested:') }} <xf:date time="{$entry.last_request_date}" /></li>
									</ul>
								</div>
							</xf:cell>
							<xf:cell href="{{ link('logs/link-proxy', $entry) }}" class="dataList-cell--min"
								overlay="true">
								{$entry.hits|number}
							</xf:cell>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($entries, $total) }}</span>
			</div>
		</div>
		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="logs/link-proxy" params="{$filters}"
			wrapperclass="block-outer block-outer--after" />
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_entries_have_been_logged') }}</div>
</xf:if>]]></template>
  <template type="admin" title="log_link_proxy_view" version_id="2000051" version_string="2.0.0 Release Candidate 1"><![CDATA[<xf:title>{{ phrase('link_proxy_details') }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('url') }}"><a href="{$link.url}" target="_blank">{$link.url}</a></xf:formrow>
			<xf:formrow label="{{ phrase('hits') }}">{$link.hits|number}</xf:formrow>
			<xf:formrow label="{{ phrase('first_requested') }}"><xf:date time="{$link.first_request_date}" /></xf:formrow>
			<xf:formrow label="{{ phrase('last_requested') }}"><xf:date time="{$link.last_request_date}" /></xf:formrow>

			<xf:if is="{$xf.options.imageLinkProxyReferrer.enabled} AND $link.Referrers is not empty">
				<xf:datalist class="dataList--separatedTop" data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('referrer') }}</xf:cell>
						<xf:cell>{{ phrase('hits') }}</xf:cell>
						<xf:cell>{{ phrase('first_seen') }}</xf:cell>
						<xf:cell>{{ phrase('last_seen') }}</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$link.Referrers" value="$referrer">
						<xf:datarow rowclass="dataList-row--noHover">
							<xf:cell dir="auto"><a href="{$referrer.referrer_url}" target="_blank">{$referrer.referrer_url}</a></xf:cell>
							<xf:cell>{$referrer.hits|number}</xf:cell>
							<xf:cell><xf:date time="{$referrer.first_date}" /></xf:cell>
							<xf:cell><xf:date time="{$referrer.last_date}" /></xf:cell>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</xf:if>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="log_moderator_list" version_id="2011070" version_string="2.1.10"><![CDATA[<xf:title>{{ phrase('moderator_log') }}</xf:title>

<xf:form action="{{ link('logs/moderator') }}" class="block">
	<div class="block-container">
		<div class="block-body block-row">
			<span>
				{{ phrase('filter_by_user:') }}
				<xf:select name="user_id" value="{$userId}" class="input--inline">
					<xf:option value="0">{{ phrase('any') }}</xf:option>
					<xf:options source="$logUsers" />
				</xf:select>
			</span>

			<xf:button type="submit">{{ phrase('filter') }}</xf:button>
		</div>
	</div>
</xf:form>

<xf:if is="$entries is not empty">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('action') }}</xf:cell>
						<xf:cell>{{ phrase('user') }}</xf:cell>
						<xf:cell>{{ phrase('ip_address') }}</xf:cell>
						<xf:cell>{{ phrase('date') }}</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$entries" value="$entry">
						<xf:datarow>
							<xf:cell>
								<div>
									<a href="{{ link('logs/moderator', $entry) }}" data-xf-click="overlay">{$entry.action_text|strip_tags}</a>
									<div class="dataList-subRow">{$entry.content_title}</div>
								</div>
							</xf:cell>
							<xf:cell><xf:username user="$entry.User" href="{{ link('users/edit', $entry.User) }}" /></xf:cell>
							<xf:cell class="u-ltr">{{ $entry.ip_address ? $entry.ip_address|ip : '' }}</xf:cell>
							<xf:cell><xf:date time="{$entry.log_date}" /></xf:cell>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($entries, $total) }}</span>
			</div>
		</div>
		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="logs/moderator" params="{$linkFilters}"
			wrapperclass="block-outer block-outer--after" />
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_entries_have_been_logged') }}</div>
</xf:if>]]></template>
  <template type="admin" title="log_moderator_view" version_id="2010170" version_string="2.1.1"><![CDATA[<xf:title>{{ phrase('moderator_log_entry') }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('user') }}">
				<a href="{{ link('users/edit', $entry.User) }}">{$entry.User.username}</a>
			</xf:formrow>
			<xf:if is="$entry.ip_address">
				<xf:formrow label="{{ phrase('ip_address') }}">
					<a href="{{ link_type('public', 'misc/ip-info', null, {'ip': $entry.ip_address|ip}) }}" target="_blank" class="u-ltr">{$entry.ip_address|ip}</a>
				</xf:formrow>
			</xf:if>
			<xf:formrow label="{{ phrase('date') }}">
				<xf:date time="{$entry.log_date}" />
			</xf:formrow>
			<xf:formrow label="{{ phrase('action') }}">
				{$entry.action_text}
			</xf:formrow>
			<xf:formrow label="{{ phrase('content') }}">
				<a href="{{ base_url($entry.content_url) }}">{$entry.content_title}</a>
				<div class="u-muted">{{ phrase('by_user_x', {'name': $entry.content_username ?: phrase('n_a') }) }}</div>
			</xf:formrow>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="log_oembed_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('oembed_log') }}</xf:title>

<xf:form action="{{ link('logs/oembed') }}" class="block">
	<div class="block-container">
		<div class="block-body block-row">
			<span>
				<label>{{ phrase('media_provider_is:') }}
				<xf:select name="mediaSiteId" value="{$filters.mediaSiteId}}" class="input--inline">
					<xf:option value=""></xf:option>
					<xf:foreach loop="$mediaSites" value="$mediaSite">
						<xf:option value="{$mediaSite.media_site_id}">{$mediaSite.site_title}</xf:option>
					</xf:foreach>
				</xf:select></label>
			</span>
			<span>
				<label>{{ phrase('ordered_by:') }}
				<xf:select name="order" value="{{ $filters.order ? $filters.order : 'last_request_date' }}"
					class="input--inline">
					<xf:option value="last_request_date">{{ phrase('last_requested') }}</xf:option>
					<xf:option value="first_request_date">{{ phrase('first_requested') }}</xf:option>
					<xf:option value="views">{{ phrase('hits') }}</xf:option>
				</xf:select></label>
			</span>

			<xf:button type="submit">{{ phrase('go') }}</xf:button>
		</div>
	</div>
</xf:form>

<xf:if is="$entries is not empty">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('media') }}</xf:cell>
						<xf:cell>{{ phrase('hits') }}</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$entries" value="$entry">
						<xf:datarow>
							<xf:cell href="{{ link('logs/oembed', $entry) }}" overlay="true" overlaycache="false">
								<div class="dataList-textRow">
									<b>{$entry.BbCodeMediaSite.site_title}</b>:
									<span dir="auto">{{ $entry.title ? $entry.title : $entry.media_id }}</span>
								</div>
								<div class="dataList-subRow">
									<ul class="listInline listInline--bullet">
										<li>{{ phrase('first_requested:') }} <xf:date time="{$entry.first_request_date}" /></li>
										<li>{{ phrase('last_requested:') }} <xf:date time="{$entry.last_request_date}" /></li>
									</ul>
								</div>
							</xf:cell>
							<xf:cell href="{{ link('logs/oembed', $entry) }}" class="dataList-cell--min"
								overlay="true">
								{$entry.views|number}
							</xf:cell>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
				<div class="block-footer">
					<span class="block-footer-counter">{{ display_totals($entries, $total) }}</span>
				</div>
			</div>
		</div>

		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="logs/oembed" params="{$filters}"
			wrapperclass="block-outer block-outer--after" />
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_entries_have_been_logged') }}</div>
</xf:if>]]></template>
  <template type="admin" title="log_oembed_view" version_id="2000051" version_string="2.0.0 Release Candidate 1"><![CDATA[<xf:title>{{ phrase('oembed_media_details') }}</xf:title>

<xf:js src="xf/embed.js" min="1" />
<xf:page option="jsState.{$providerJs}" value="{{ true }}" />

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$oembed.title">
				<xf:formrow label="{{ phrase('title') }}" explain="{$oembed.BbCodeMediaSite.site_title}: {$oembed.media_id}">
					{$oembed.title}
				</xf:formrow>
			<xf:else />
				<xf:formrow label="{{ phrase('title') }}">{$oembed.BbCodeMediaSite.site_title}: {$oembed.media_id}</xf:formrow>
			</xf:if>
			<xf:formrow label="{{ phrase('media') }}">
				<div>{$html|raw}</div>
				<a href="{$oembed.url}" target="_blank">{$oembed.url}</a>
			</xf:formrow>
			<xf:formrow label="{{ phrase('hits') }}">{$oembed.views|number}</xf:formrow>
			<xf:formrow label="{{ phrase('first_requested') }}"><xf:date time="{$oembed.first_request_date}" /></xf:formrow>
			<xf:formrow label="{{ phrase('last_requested') }}"><xf:date time="{$oembed.last_request_date}" /></xf:formrow>

			<xf:if is="{$xf.options.oEmbedRequestReferrer.enabled} AND $oembed.Referrers is not empty">
				<xf:datalist class="dataList--separatedTop" data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('referrer') }}</xf:cell>
						<xf:cell>{{ phrase('hits') }}</xf:cell>
						<xf:cell>{{ phrase('first_seen') }}</xf:cell>
						<xf:cell>{{ phrase('last_seen') }}</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$oembed.Referrers" value="$referrer">
						<xf:datarow rowclass="dataList-row--noHover">
							<xf:cell dir="auto"><a href="{$referrer.referrer_url}" target="_blank">{$referrer.referrer_url}</a></xf:cell>
							<xf:cell>{$referrer.hits|number}</xf:cell>
							<xf:cell><xf:date time="{$referrer.first_date}" /></xf:cell>
							<xf:cell><xf:date time="{$referrer.last_date}" /></xf:cell>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</xf:if>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="log_payment_provider_list" version_id="2000053" version_string="2.0.0 Release Candidate 3"><![CDATA[<xf:title>{{ phrase('payment_provider_log') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('logs/payment-provider/search') }}" icon="search">{{ phrase('search_logs') }}</xf:button>
</xf:pageaction>

<xf:if is="$entries is not empty">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$entries" value="$entry">
						<xf:set var="$purchaseRequest" value="{$entry.PurchaseRequest}" />
						<xf:datarow>
							<xf:main href="{{ link('logs/payment-provider', $entry) }}" overlay="true">
								<xf:label>
									{{ $entry.log_type == 'payment' ? phrase('payment')
										: ($entry.log_type == 'info' ? phrase('information')
										: ($entry.log_type == 'error' ? phrase('error')
										: ($entry.log_type == 'cancel' ? phrase('cancellation')
										: ($entry.log_type))))
									}}{$xf.language.label_separator}
									<span dir="auto">{$entry.log_message}</span>
								</xf:label>
								<xf:explain>
									<ul class="listInline listInline--bullet">
										<li>{{ $purchaseRequest.PaymentProfile.title ?: phrase('unknown_payment_profile') }}</li>
										<li>{{ $purchaseRequest.Purchasable.title ?: phrase('unknown_purchasable') }}</li>
										<li><xf:date time="{$entry.log_date}" /></li>
										<li>{{ $purchaseRequest.User ? $purchaseRequest.User.username : phrase('unknown_user') }}</li>
									</ul>
								</xf:explain>
							</xf:main>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($entries, $total) }}</span>
			</div>
		</div>
		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="logs/payment-provider" params="{$linkParams}"
			wrapperclass="block-outer block-outer--after" />
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_entries_have_been_logged') }}</div>
</xf:if>]]></template>
  <template type="admin" title="log_payment_provider_search" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('payment_provider_log_search') }}</xf:title>

<xf:form action="{{ link('logs/payment-provider') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="purchase_request_key"
				label="{{ phrase('purchase_request_key') }}" />

			<xf:textboxrow name="transaction_id"
				label="{{ phrase('transaction_id') }}" />

			<xf:textboxrow name="subscriber_id"
				label="{{ phrase('subscriber_id') }}" />

			<xf:textboxrow name="username" ac="single"
				label="{{ phrase('user') }}" />

			<xf:selectrow name="payment_profile_id"
				label="{{ phrase('payment_profile') }}">

				<xf:option>{{ phrase('(any)') }}</xf:option>
				<xf:options source="$profiles" />
			</xf:selectrow>

			<xf:selectrow name="purchasable_type_id"
				label="{{ phrase('purchasable_type') }}">

				<xf:option label="{{ phrase('(any)') }}" />
				<xf:options source="$purchasables" />
			</xf:selectrow>
		</div>
		<xf:submitrow sticky="true" icon="search" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="log_payment_provider_view" version_id="2010170" version_string="2.1.1"><![CDATA[<xf:title>{{ phrase('payment_provider_log') }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('action') }}">
				{{ $entry.log_type == 'payment' ? phrase('payment')
					: ($entry.log_type == 'info' ? phrase('information')
					: ($entry.log_type == 'error' ? phrase('error')
					: ($entry.log_type == 'cancel' ? phrase('cancellation')
					: ($entry.log_type))))
				}}{$xf.language.label_separator}
				<span dir="auto">{$entry.log_message}</span>
			</xf:formrow>

			<xf:formrow label="{{ phrase('user') }}">
				<xf:if is="$purchaseRequest.User">
					<xf:username user="$purchaseRequest.User" href="{{ link('logs/payment-provider', null, {'user_id': $purchaseRequest.User.user_id}) }}" />
				<xf:else />
					{{ phrase('unknown_user') }}
				</xf:if>
			</xf:formrow>

			<xf:formrow label="{{ phrase('date') }}">
				<xf:date time="{$entry.log_date}" />
			</xf:formrow>

			<xf:formrow label="{{ phrase('purchase_request_key') }}">
				<xf:if is="$entry.purchase_request_key">
					<a href="{{ link('logs/payment-provider', null, {'purchase_request_key': $entry.purchase_request_key}) }}">
						{$entry.purchase_request_key}
					</a>
				<xf:else />
					{{ phrase('n_a') }}
				</xf:if>
			</xf:formrow>

			<xf:formrow label="{{ phrase('transaction_id') }}">
				<xf:if is="$entry.transaction_id">
					<a href="{{ link('logs/payment-provider', null, {'transaction_id': $entry.transaction_id}) }}">
						{$entry.transaction_id}
					</a>
				<xf:else />
					{{ phrase('n_a') }}
				</xf:if>
			</xf:formrow>

			<xf:formrow label="{{ phrase('subscriber_id') }}">
				<xf:if is="$entry.subscriber_id">
					<a href="{{ link('logs/payment-provider', null, {'subscriber_id': $entry.subscriber_id}) }}">
						{$entry.subscriber_id}
					</a>
				<xf:else />
					{{ phrase('n_a') }}
				</xf:if>
			</xf:formrow>

			<xf:formrow label="{{ phrase('payment_profile') }}">
				<xf:if is="$purchaseRequest.PaymentProfile">
					<a href="{{ link('logs/payment-provider', null, {'payment_profile_id': $purchaseRequest.PaymentProfile.payment_profile_id}) }}">
						{$purchaseRequest.PaymentProfile.title}
					</a>
				<xf:else />
					{{ phrase('unknown_profile') }}
				</xf:if>
			</xf:formrow>
		</div>
	</div>
</div>

<xf:if is="$purchasable && $purchasableItem">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:formrow label="{{ phrase('purchasable_details') }}">
					<a href="{{ link('logs/payment-provider', null, {'purchasable_type_id': {$purchasable.purchasable_type_id}}) }}">
						{$purchasable.title}
					</a>
				</xf:formrow>

				<xf:formrow label="{{ phrase('purchasable_item') }}">
					<a href="{$purchasableItem.link}">{$purchasableItem.title}</a>
				</xf:formrow>
			</div>
		</div>
	</div>
</xf:if>

<div class="block">
	<div class="block-container">
		<h2 class="block-header">{{ phrase('log_details') }}</h2>
		<div class="block-body block-body--contained block-row" dir="ltr">
			{{ dump_simple($entry.log_details) }}
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="log_rejected_users_list" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('rejected_user_log') }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:datalist data-xf-init="responsive-data-list">
				<xf:datarow rowtype="header">
					<xf:cell colspan="2">{{ phrase('rejected_user') }}</xf:cell>
					<xf:cell>{{ phrase('date') }}</xf:cell>
					<xf:cell>{{ phrase('rejected_by') }}</xf:cell>
					<xf:cell class="dataList-cell--min">&nbsp;</xf:cell>
				</xf:datarow>

				<xf:foreach loop="$rejections" value="$rejection">
					<xf:datarow>
						<xf:cell class="dataList-cell--min dataList-cell--image dataList-cell--imageSmall"
							href="{{ link('users/edit', $rejection.User) }}">
							<xf:avatar user="$rejection.User" size="s" href="" />
						</xf:cell>
						<xf:cell>
							<div>
								<xf:username user="$rejection.User" href="{{ link('users/edit', $rejection.User) }}" />
							</div>
						</xf:cell>
						<xf:cell>
							<xf:date time="{$rejection.reject_date}" />
						</xf:cell>
						<xf:cell>
							<xf:if is="$rejection.reject_user_id">
								<xf:username user="$rejection.RejectUser" href="{{ link('users/edit', $rejection.RejectUser) }}" />
							<xf:else />
								{{ phrase('n_a') }}
							</xf:if>
						</xf:cell>
						<xf:action href="{{ link('logs/rejected-users', $rejection.User) }}" overlay="true">
							{{ phrase('view') }}
						</xf:action>
					</xf:datarow>
					<xf:else />
					<xf:datarow>
						<xf:cell colspan="5">{{ phrase('no_entries_have_been_logged') }}</xf:cell>
					</xf:datarow>
				</xf:foreach>
			</xf:datalist>
		</div>
		<div class="block-footer">
			<span class="block-footer-counter">{{ display_totals($rejections, $total) }}</span>
		</div>
	</div>
	<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
		link="logs/rejected-users" params="{$linkFilters}"
		wrapperclass="block-outer block-outer--after" />
</div>
]]></template>
  <template type="admin" title="log_rejected_users_view" version_id="2010870" version_string="2.1.8"><![CDATA[<xf:title>{{ phrase('rejected_user_log_entry') }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('rejected_user') }}">
				<xf:username user="$entry.User" href="{{ link('users/edit', $entry.User) }}" />
			</xf:formrow>
			<xf:formrow label="{{ phrase('date') }}">
				<xf:date time="{$entry.reject_date}" />
			</xf:formrow>
			<xf:formrow label="{{ phrase('rejected_by') }}">
				<xf:if is="$entry.reject_user_id">
					<xf:username user="$entry.RejectUser" href="{{ link('users/edit', $entry.RejectUser) }}" />
				<xf:else />
					{{ phrase('n_a') }}
				</xf:if>
			</xf:formrow>
			<xf:formrow label="{{ phrase('reason') }}">
				<xf:if is="$entry.reject_reason">
					{$entry.reject_reason}
				<xf:else />
					{{ phrase('n_a') }}
				</xf:if>
			</xf:formrow>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="log_search" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('search_logs') }}</xf:title>

<xf:form action="{{ link('logs/search') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow type="search" name="q" value="{$q}" label="{{ phrase('search') }}" autocomplete="off" />

			<xf:formrow rowtype="input"
				label="{{ phrase('log_date_between') }}"
				hint="{{ phrase('optional') }}">

				<div class="inputGroup">
					<xf:dateinput name="start" value="{$start}" size="15" />
					<span class="inputGroup-text">-</span>
					<xf:dateinput name="end" value="{$end}" size="15" />
				</div>
			</xf:formrow>

			<xf:checkboxrow label="{{ phrase('search_logs') }}" listclass="js-contentTypes listColumns">
				<xf:hint>
					<xf:checkbox standalone="true">
						<xf:option check-all=".js-contentTypes" label="{{ phrase('select_all') }}" />
					</xf:checkbox>
				</xf:hint>
				<xf:foreach loop="$typeOptions" key="$type" value="$name">
					<xf:option name="typeChoices[]" value="{$type}" label="{$name}" selected="{{ in_array($type, $typeChoices) }}" />
				</xf:foreach>
			</xf:checkboxrow>

			<xf:submitrow submit="{{ phrase('search_logs') }}" fa="fa-file-search" />
		</div>
	</div>
</xf:form>

<xf:if is="$resultTypeSets">
	<div class="block">
		<div class="block-container">
			<h2 class="block-header">{{ phrase('search_results') }}</h2>
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$resultTypeSets" value="$resultType">
						{{ $resultType.render(templater()) }}
					</xf:foreach>
				</xf:datalist>
			</div>
		</div>
	</div>
</xf:if>]]></template>
  <template type="admin" title="log_search_type" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<tbody class="dataList-rowGroup">
	<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
		<xf:cell>{$typeName}</xf:cell>
	</xf:datarow>
	<xf:foreach loop="$results" value="$result">
		<xf:datarow>
			<xf:main href="{$result.link}" overlay="true">
				<xf:label>
					<xf:if is="is_array($result.label)">
						<ul class="listInline listInline--selfInline listInline--bullet">
							<xf:foreach loop="$result.label" value="$label">
								<li>{$label}</li>
							</xf:foreach>
						</ul>
					<xf:else />
						{$result.label}
					</xf:if>
				</xf:label>
				<xf:hint>{$result.hint}</xf:hint>
				<xf:explain>
					<ul class="listInline listInline--bullet">
						<li><xf:date time="$result.date" /></li>
						<xf:if is="$result.User"><li>{$result.User.username}</li></xf:if>
						<xf:if is="$result.ip"><li>{$result.ip|ip}</li></xf:if>
					</ul>
				</xf:explain>
			</xf:main>
		</xf:datarow>
	</xf:foreach>
</tbody>]]></template>
  <template type="admin" title="log_server_error_clear" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('logs/server-errors/clear') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('sure_you_want_to_clear_server_error_log') }}
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('clear') }}" rowtype="simple" icon="delete" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="log_server_error_list" version_id="2010870" version_string="2.1.8"><![CDATA[<xf:title>{{ phrase('server_error_log') }}</xf:title>

<xf:pageaction if="$entries is not empty">
	<xf:button href="{{ link('logs/server-errors/clear') }}" icon="delete" overlay="true">
		{{ phrase('clear') }}
	</xf:button>
</xf:pageaction>

<xf:if is="$entries is not empty">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$entries" value="$entry">
						<xf:datarow overlay="true"
							label="{{ $entry.message ?: '&nbsp;' }}"
							href="{{ link('logs/server-errors', $entry) }}"
							delete="{{ link('logs/server-errors/delete', $entry) }}"
							dir="auto">
							<xf:explain>
								<ul class="listInline listInline--bullet">
									<li><xf:date time="{$entry.exception_date}" /></li>
									<li>{$entry.filename}:{$entry.line}</li>
								</ul>
							</xf:explain>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($entries, $total) }}</span>
			</div>
		</div>

		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="logs/server-error"
			wrapperclass="block-outer block-outer--after" />
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_errors_have_been_logged') }}</div>
</xf:if>]]></template>
  <template type="admin" title="log_server_error_view" version_id="2000033" version_string="2.0.0 Beta 3"><![CDATA[<xf:title>{{ phrase('server_error_log') }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body block-row">
			<ul class="listInline listInline--bullet u-ltr">
				<li><span class="u-dimmed">{$entry.exception_type}:</span> {$entry.message}</li>
				<li class="u-dimmed">{$entry.filename}:{$entry.line}</li>
			</ul>
			<ul class="listInline listInline--bullet u-muted">
				<li class="u-muted">{{ phrase('generated_by:') }} {{ $entry.User ? '<a href="' . link('users/edit', $entry.User) . '">' . $entry.User.username . '</a>' : phrase('unknown_account') }}</li>
				<li>{{ date_time($entry.exception_date) }}</li>
			</ul>
		</div>

		<h3 class="block-minorHeader">{{ phrase('stack_trace') }}</h3>
		<div class="block-body block-body--contained block-row" dir="ltr">
			<pre>{$entry.trace_string}</pre>
		</div>

		<h3 class="block-minorHeader">{{ phrase('request_state') }}</h3>
		<div class="block-body block-body--contained block-row" dir="ltr">
			{{ dump_simple($entry.request_state) }}
		</div>

		<div class="block-footer">
			<span class="block-footer-controls"><xf:button href="{{ link('logs/server-errors/delete', $entry) }}" icon="delete" overlay="true" /></span>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="log_sitemap_list" version_id="2000270" version_string="2.0.2"><![CDATA[<xf:title>{{ phrase('sitemap_log') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ base_url('sitemap.php') }}" icon="export">{{ phrase('download_sitemap') }}</xf:button>
</xf:pageaction>

<xf:if is="$entries is not empty">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('start_date') }}</xf:cell>
						<xf:cell>{{ phrase('completion_date') }}</xf:cell>
						<xf:cell class="dataList-cell--min">{{ phrase('total_files') }}</xf:cell>
						<xf:cell class="dataList-cell--min">{{ phrase('total_urls') }}</xf:cell>
						<xf:cell class="dataList-cell--min">{{ phrase('compressed') }}</xf:cell>
					</xf:datarow>

					<xf:foreach loop="$entries" value="$entry">
						<xf:datarow rowclass="{{ $entry.is_active ? 'dataList-row--highlighted' : '' }}">
							<xf:cell>
								<xf:date time="{$entry.sitemap_id}" data-full-date="true" />
							</xf:cell>
							<xf:cell>
								<xf:if is="$entry.complete_date">
									<xf:date time="{$entry.complete_date}" data-full-date="true" />
								<xf:else />
									{{ phrase('n_a') }}
								</xf:if>
							</xf:cell>
							<xf:cell>{$entry.file_count|number}</xf:cell>
							<xf:cell>{$entry.entry_count|number}</xf:cell>
							<xf:cell>{{ $entry.is_compressed ? phrase('yes') : phrase('no') }}</xf:cell>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($entries, $total) }}</span>
			</div>
		</div>
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('there_no_sitemap_logs_to_display') }}</div>
</xf:if>]]></template>
  <template type="admin" title="log_spam_cleaner_list" version_id="2000270" version_string="2.0.2"><![CDATA[<xf:title>{{ phrase('spam_cleaner_log') }}</xf:title>

<xf:if is="$entries is not empty">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('user') }}</xf:cell>
						<xf:cell>{{ phrase('applied_by') }}</xf:cell>
						<xf:cell>{{ phrase('application_date') }}</xf:cell>
						<xf:cell>{{ phrase('restored') }}</xf:cell>
						<xf:cell class="dataList-cell--min">&nbsp;</xf:cell>
					</xf:datarow>

					<xf:foreach loop="$entries" value="$entry">
						<xf:datarow>
							<xf:cell>
								<xf:username user="$entry.User"
									defaultname="{$entry.username}"
									href="{{ $entry.User ? link('users/edit', $entry.User) : null }}" />
							</xf:cell>

							<xf:cell>
								<xf:username user="$entry.ApplyingUser"
									defaultname="{$entry.applying_username}"
									href="{{ $entry.ApplyingUser ? link_type('public', 'members', $entry.ApplyingUser) : null }}" />
							</xf:cell>

							<xf:cell>
								<xf:date time="$entry.application_date" />
							</xf:cell>

							<xf:cell>
								<xf:if is="$entry.restored_date">
									<xf:date time="$entry.restored_date" />
								<xf:else />
									{{ phrase('no') }}
								</xf:if>
							</xf:cell>

							<xf:cell href="{{ link('logs/spam-cleaner/restore', $entry) }}" overlay="true"
								class="dataList-cell--action">
								{{ phrase('restore') }}
							</xf:cell>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($entries, $total) }}</span>
			</div>
		</div>
		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="logs/spam-cleaner"
			wrapperclass="block-outer block-outer--after" />
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_entries_have_been_logged') }}</div>
</xf:if>]]></template>
  <template type="admin" title="log_spam_cleaner_restore" version_id="2000270" version_string="2.0.2"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('logs/spam-cleaner/restore', $entry) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<xf:if is="$entry.User">
					{{ phrase('please_confirm_that_you_want_to_restore_data_and_status_of_user:') }}
					<strong><a href="{{ link('users/edit', $entry.User) }}">{$entry.User.username}</a></strong>
				<xf:else />
					{{ phrase('please_confirm_that_you_want_to_restore_data_of_following_user:') }}
					<strong>{$entry.username}</strong>
				</xf:if>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('restore') }}" rowtype="simple" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="log_spam_trigger_list" version_id="2020370" version_string="2.2.3"><![CDATA[<xf:title>{{ phrase('spam_trigger_log') }}</xf:title>

<xf:if is="$entries is not empty">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$entries" value="$entry">
						<xf:datarow
							label="{{ $entry.User ? $entry.User.username : phrase('unknown_account') }} - {$entry.details}"
							href="{{ link('logs/spam-trigger', $entry) }}"
							overlay="true">
							<xf:explain>
								<ul class="listInline listInline--bullet">
									<li>{{ $entry.result == 'moderated' ? phrase('moderated') : phrase('rejected') }}</li>
									<li><xf:date time="$entry.log_date" /></li>
									<li>{{ phrase('content:') }} {{ $xf.app.getContentTypePhrase($entry.content_type) ?: $entry.content_type }}</li>
								</ul>
							</xf:explain>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($entries, $total) }}</span>
			</div>
		</div>
		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="logs/spam-trigger"
			wrapperclass="block-outer block-outer--after" />
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_entries_have_been_logged') }}</div>
</xf:if>]]></template>
  <template type="admin" title="log_spam_trigger_view" version_id="2020370" version_string="2.2.3"><![CDATA[<xf:title>{{ phrase('spam_trigger_log') }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body block-row">
			<ul class="listInline listInline--bullet">
				<li><span class="u-dimmed">{{ phrase('action:') }}</span> {{ $entry.result == 'moderated' ? phrase('moderated') : phrase('rejected') }}</li>
				<li class="u-dimmed">{$entry.details}</li>
			</ul>
			<ul class="listInline listInline--bullet u-muted">
				<li class="u-muted">{{ phrase('generated_by:') }} {{ $entry.User ? '<a href="' . link('users/edit', $entry.User) . '">' . $entry.User.username . '</a>' : phrase('unknown_account') }}</li>
				<li><xf:date time="$entry.log_date" /></li>
				<li>{{ phrase('content:') }} {{ $xf.app.getContentTypePhrase($entry.content_type) ?: $entry.content_type }}</li>
			</ul>
		</div>

		<h3 class="block-minorHeader">{{ phrase('request_state') }}</h3>
		<div class="block-body block-body--contained block-row" dir="ltr">
			{{ dump_simple($entry.request_state) }}
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="log_user_change_list" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:title>{{ phrase('user_change_log') }}</xf:title>

<xf:form action="{{ link('logs/user-change') }}" class="block">
	<div class="block-container">
		<div class="block-body block-row">
			<xf:textbox name="username" value="{{ $limitUser ? $limitUser.username : '' }}"
				ac="single" class="input--inline"
				placeholder="{{ phrase('user_name...') }}" />
			<xf:button type="submit">{{ phrase('show_changes') }}</xf:button>
		</div>
	</div>
</xf:form>

<xf:if is="$changesGrouped">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:macro id="user_change_log::change_log_list" arg-changesGrouped="{$changesGrouped}" />
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($totalChanges, $total) }}</span>
			</div>
		</div>

		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="logs/user-change" params="{$linkFilters}"
			wrapperclass="block-outer block-outer--after" />
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_changes_have_been_logged') }}</div>
</xf:if>]]></template>
  <template type="admin" title="log_username_change_list" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:title>{{ phrase('username_change_log') }}</xf:title>

<xf:form action="{{ link('logs/username-change/toggle') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:datalist data-xf-init="responsive-data-list">
				<xf:datarow rowtype="header">
					<xf:cell class="dataList-cell--min">&nbsp;</xf:cell>
					<xf:cell>{{ phrase('old_username') }}</xf:cell>
					<xf:cell>{{ phrase('new_username') }}</xf:cell>
					<xf:cell>{{ phrase('change_state') }}</xf:cell>
					<xf:cell>{{ phrase('date') }}</xf:cell>
					<xf:cell class="dataList-cell--min" colspan="2">&nbsp;</xf:cell>
				</xf:datarow>

				<xf:foreach loop="$entries" value="$entry">
					<xf:datarow rowclass="dataList-row--noHover">
						<xf:cell class="dataList-cell--min dataList-cell--image dataList-cell--imageSmall"
							href="{{ link('users/edit', $entry.User) }}" data-xf-init="tooltip" title="{{ phrase('current_username:') }} {$entry.User.username}">
							<xf:avatar user="$entry.User" size="s" href="" />
						</xf:cell>
						<xf:cell>
							{$entry.old_username}
						</xf:cell>
						<xf:cell>
							{$entry.new_username}
							<xf:if is="$entry.change_reason">
								<a role="button"
									tabindex="0"
									data-xf-init="tooltip"
									data-trigger="hover focus click"
									title="{{ phrase('change_reason:') }} {$entry.change_reason}"><xf:trim>
									<xf:fa icon="fa-info-circle" />
								</xf:trim></a>
							</xf:if>
						</xf:cell>
						<xf:cell>
							<xf:if is="$entry.change_state == 'approved'">
								{{ phrase('approved') }}
							<xf:elseif is="$entry.change_state == 'moderated'" />
								{{ phrase('awaiting_approval') }}
							<xf:elseif is="$entry.change_state == 'rejected'" />
								{{ phrase('rejected') }}
								<xf:if is="$entry.reject_reason">
									<a role="button"
										tabindex="0"
										data-xf-init="tooltip"
										data-trigger="hover focus click"
										title="{{ phrase('reason:') }} {$entry.reject_reason}"><xf:trim>
										<xf:fa icon="fa-info-circle" />
									</xf:trim></a>
								</xf:if>
							</xf:if>
						</xf:cell>
						<xf:cell>
							<xf:date time="{$entry.change_date}" />
						</xf:cell>
						<xf:toggle name="visible[{$entry.change_id}]" selected="$entry.visible"
							class="dataList-cell--separated" submit="true"
							tooltip="{{ phrase('toggle_visibility') }}" />
						<xf:action href="{{ link('logs/username-change', $entry) }}" overlay="true">
							{{ phrase('view') }}
						</xf:action>
					</xf:datarow>
				<xf:else />
					<xf:datarow>
						<xf:cell colspan="7">{{ phrase('no_entries_have_been_logged') }}</xf:cell>
					</xf:datarow>
				</xf:foreach>
			</xf:datalist>
		</div>
	</div>
	<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
		link="logs/username-change"
		wrapperclass="block-outer block-outer--after" />
</xf:form>]]></template>
  <template type="admin" title="log_username_change_view" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:title>{{ phrase('username_change_log_entry') }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('current_username') }}" rowtype="button">
				<div class="contentRow contentRow--alignMiddle">
					<div class="contentRow-figure">
						<xf:avatar user="$entry.User" size="xs" />
					</div>
					<div class="contentRow-main">
						<h3 class="contentRow-title"><xf:username user="$entry.User" rich="true" /></h3>
					</div>
				</div>
			</xf:formrow>

			<xf:formrow label="{{ phrase('old_username') }}">
				{$entry.old_username}
			</xf:formrow>

			<xf:formrow label="{{ phrase('new_username') }}">
				{$entry.new_username}
			</xf:formrow>

			<xf:formrow label="{{ phrase('change_reason') }}">
				{{ $entry.change_reason ? $entry.change_reason|nl2br : phrase('n_a') }}
			</xf:formrow>

			<hr class="formRowSep" />

			<xf:formrow label="{{ phrase('change_state') }}">
				<xf:if is="$entry.change_state == 'approved'">
					{{ phrase('approved') }}
				<xf:elseif is="$entry.change_state == 'moderated'" />
					{{ phrase('awaiting_approval') }}
				<xf:elseif is="$entry.change_state == 'rejected'" />
					{{ phrase('rejected') }}
				</xf:if>
			</xf:formrow>

			<xf:if is="$entry.change_state == 'rejected'">
				<xf:formrow label="{{ phrase('rejected_by') }}">
					<xf:if is="$entry.moderator_user_id AND $entry.Moderator">
						<xf:username user="$entry.Moderator" href="{{ link('users/edit', $entry.Moderator) }}" />
					<xf:else />
						{{ phrase('n_a') }}
					</xf:if>
				</xf:formrow>

				<xf:formrow label="{{ phrase('reason') }}">
					<xf:if is="$entry.reject_reason">
						{$entry.reject_reason}
					<xf:else />
						{{ phrase('n_a') }}
					</xf:if>
				</xf:formrow>
			<xf:elseif is="$entry.user_id != $entry.change_user_id" />
				<xf:formrow label="{{ phrase('changed_by') }}">
					<xf:if is="$entry.change_user_id AND $entry.ChangeUser">
						<xf:username user="$entry.ChangeUser" href="{{ link('users/edit', $entry.ChangeUser) }}" />
					<xf:else />
						{{ phrase('n_a') }}
					</xf:if>
				</xf:formrow>
			<xf:elseif is="$entry.change_state == 'approved' AND $entry.moderator_user_id AND $entry.Moderator" />
				<xf:formrow label="{{ phrase('approved_by') }}">
					<xf:username user="$entry.Moderator" href="{{ link('users/edit', $entry.Moderator) }}" />
				</xf:formrow>
			</xf:if>

			<xf:formrow label="{{ phrase('date') }}">
				<xf:date time="{$entry.change_date}" />
			</xf:formrow>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="login_form" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:page option="template">LOGIN_CONTAINER</xf:page>

<xf:js src="xf/webauthn.js" min="1" />

<div class="adminLogin-contentForm">
	<xf:form action="{{ link('login/login') }}" ajax="true">
		<div><a href="{$xf.options.boardUrl}"><img src="{{ base_url('styles/default/xenforo/xenforo-logo.svg') }}"
			width="100" height="36" alt="XenForo Ltd." /></a></div>
		<!--<h1>{$xf.options.boardTitle}</h1>-->
		<dl class="adminLogin-row">
			<dt>{{ phrase('your_name_or_email_address:') }}</dt>
			<dd>
				<xf:textbox name="login" value="{$xf.visitor.username}"
					placeholder="{{ phrase('user_name_or_email...') }}"
					aria-label="{{ phrase('user_name_or_email') }}"
					autofocus="autofocus" />
				<xf:fa icon="fa-user" />
			</dd>
		</dl>
		<dl class="adminLogin-row">
			<dt>{{ phrase('password:') }}</dt>
			<dd>
				<xf:set var="$afterInput"><xf:fa icon="fa-key" /></xf:set>
				<xf:passwordbox name="password" placeholder="{{ phrase('password...') }}"
					aria-label="{{ phrase('password') }}"
					afterinputhtml="{$afterInput}" />
			</dd>
		</dl>
		<div class="adminLogin-row adminLogin-row--submit">
			<xf:button type="submit" icon="login">{{ phrase('admin_login') }}</xf:button>
		</div>
	</xf:form>

	<xf:if is="$xf.request.isSecure()">
		<div class="u-jsOnly">
			<div class="blocks-textJoiner"><span></span><em>{{ phrase('or_separator') }}</em><span></span></div>

			<xf:form action="{{ link('login/login') }}" data-xf-init="webauthn"
				data-type="get"
				data-autotrigger="false"
				data-autosubmit="true"
				data-verifying="{{ phrase('verifying...') }}">

				<div class="adminLogin-row adminLogin-row--submit">
					<xf:button class="button--provider button--provider--passkey js-webauthnStart">
						{{ passkey_icon() }} {{ phrase('passkey_login') }}
					</xf:button>

					<xf:hiddenval name="webauthn_payload" />
					<xf:hiddenval name="webauthn_challenge">{{ $passkey ? $passkey.getChallenge() : '' }}</xf:hiddenval>
				</div>
			</xf:form>
		</div>
	</xf:if>

	<div class="adminLogin-boardTitle">{$xf.options.boardTitle}</div>

</div>]]></template>
  <template type="admin" title="login_password_confirm" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('password_confirmation') }}</xf:title>

<xf:form action="{{ link('login/password-confirm') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('to_access_this_page_you_must_first_confirm_your_password') }}
			</xf:inforow>

			<xf:formrow label="{{ phrase('user_name') }}">{$xf.visitor.username}</xf:formrow>

			<xf:passwordboxrow name="password" label="{{ phrase('password') }}" />
		</div>
		<xf:submitrow submit="{{ phrase('confirm') }}" />
	</div>
	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="admin" title="login_two_step" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('two_step_verification_required') }}</xf:title>

<xf:page option="loginWide" value="{{ true }}" />

<xf:form action="{{ link('login/two-step') }}" ajax="true" class="block">
	<div class="block-container">
		<h2 class="block-tabHeader tabs hScroller" data-xf-init="h-scroller">
			<span class="hScroller-scroll">
			<xf:foreach loop="$providers" value="$tabProvider">
				<a href="{{ link('login/two-step', null, {'provider': $tabProvider.provider_id, 'remember': $remember ? 1 : null, '_xfRedirect': $redirect}) }}"
					class="tabs-tab {{ $tabProvider.provider_id == $providerId ? 'is-active' : '' }}">{$tabProvider.title}</a>
			</xf:foreach>
			</span>
		</h2>

		<div class="block-body">
			<xf:formrow label="{{ phrase('logging_in_as') }}">{$user.username}</xf:formrow>

			{{ $provider.render('login', $user, $providerData, $triggerData)|raw }}

			<xf:checkboxrow>
				<xf:option name="trust" value="1" hint="{{ phrase('trust_device_desc') }}" checked="{$trustChecked}">
					{{ phrase('trust_this_device_for_30_days') }}
				</xf:option>
			</xf:checkboxrow>
		</div>

		<xf:submitrow submit="{{ phrase('confirm') }}" />
	</div>

	<xf:hiddenval name="confirm">1</xf:hiddenval>
	<xf:hiddenval name="provider">{$providerId}</xf:hiddenval>
	<xf:hiddenval name="_xfRedirect">{$redirect}</xf:hiddenval>

</xf:form>]]></template>
  <template type="admin" title="member_stat_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$memberStat.isInsert()">
	<xf:title>{{ phrase('add_member_stat') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_member_stat:') }} {$memberStat.title}</xf:title>
</xf:if>

<xf:pageaction if="$memberStat.isUpdate() AND $memberStat.canEdit()">
	<xf:button href="{{ link('member-stats/delete', $memberStat) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:if is="{{ !$memberStat.canEdit() }}">
	<div class="blockMessage blockMessage--important blockMessage--iconic">
		{{ phrase('only_limited_fields_in_item_may_be_edited') }}
	</div>
</xf:if>

<xf:form action="{{ link('member-stats/save', $memberStat) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="title" value="{$memberStat}"
				readonly="{{ !$memberStat.canEdit() }}"
				label="{{ phrase('title') }}" />

			<xf:textboxrow name="member_stat_key" value="{$memberStat}"
				readonly="{{ !$memberStat.canEdit() }}"
				label="{{ phrase('member_stat_key') }}" />

			<hr class="formRowSep" />

			<xf:radiorow name="user_criteria" readonly="{{ !$memberStat.canEdit() }}"
				label="{{ phrase('user_criteria') }}">
				<xf:option value="all" selected="!$memberStat.criteria"
					label="{{ phrase('all_valid_users') }}" />
				<xf:option value="searcher" selected="$memberStat.criteria"
					label="{{ phrase('searcher_criteria') }}"
					data-xf-init="disabler"
					data-container=".js-hiderContainer"
					data-hide="yes" />
			</xf:radiorow>

			<div class="js-hiderContainer">
				<hr class="formRowSep" />

				<xf:include template="helper_user_search_criteria">
					<xf:set var="$noSpecificUser" value="{{ true }}" />
					<xf:set var="$readOnly" value="{{ !$memberStat.canEdit() }}" />
				</xf:include>

				<hr class="formRowSep" />
			</div>

			<xf:if is="$memberStat.canEdit()">
				<xf:formrow label="{{ phrase('sort') }}" rowtype="input">
					<div class="inputPair">
						<xf:select name="sort_order" value="{$memberStat.sort_order}">
						<xf:options source="{$sortOrders}" />
					</xf:select>

					<xf:select name="sort_direction" value="{$memberStat.sort_direction}">
						<xf:option value="desc">{{ phrase('descending') }}</xf:option>
						<xf:option value="asc">{{ phrase('ascending') }}</xf:option>
					</xf:select>
					</div>
				</xf:formrow>
			<xf:else />
				<xf:formrow label="{{ phrase('sort') }}">
					{$sortOrders.{$memberStat.sort_order}}
					&middot;
					<xf:if is="$memberStat.sort_direction == 'desc'">
						{{ phrase('descending') }}
					<xf:else />
						{{ phrase('ascending') }}
					</xf:if>

					<xf:hiddenval name="sort_order">{$memberStat.sort_order}</xf:hiddenval>
					<xf:hiddenval name="sort_direction">{$memberStat.sort_direction}</xf:hiddenval>
				</xf:formrow>
			</xf:if>

			<xf:formrow rowtype="input"
				label="{{ phrase('php_callback') }}"
				explain="{{ phrase('member_stat_callback_explain') }}">

				<xf:macro id="helper_callback_fields::callback_fields"
					arg-data="{$memberStat}"
					arg-readOnly="{{ !$memberStat.canEdit() }}" />
			</xf:formrow>

			<hr class="formRowSep" />

			<xf:selectrow name="permission_limit" value="{$memberStat}" column="permission_limit_"
				disabled="{{ !$memberStat.canEdit() }}"
				readonly="{{ !$memberStat.canEdit() }}"
				label="{{ phrase('permission_limit') }}">
				<xf:option value="" label="{{ phrase('(none)') }}" />
				<xf:foreach loop="$permissionsData.interfaceGroups" key="$interfaceGroupId" value="$interfaceGroup">
					<xf:optgroup label="{$interfaceGroup.title}">
						<xf:foreach loop="{$permissionsData.permissionsGrouped.{$interfaceGroupId}}" value="{$permission}">
							<xf:option value="{$permission.permission_group_id}-{$permission.permission_id}">
								{$permission.title}
							</xf:option>
						</xf:foreach>
					</xf:optgroup>
				</xf:foreach>

				<xf:explain>{{ phrase('permission_limit_explain') }}</xf:explain>
			</xf:selectrow>

			<xf:formrow rowtype="input"
				label="{{ phrase('visibility_callback') }}"
				explain="{{ phrase('member_stat_visibility_callback_explain') }}">

				<xf:macro id="helper_callback_fields::callback_fields"
					arg-data="{$memberStat}"
					arg-className="visibility_class"
					arg-methodName="visibility_method"
					arg-readOnly="{{ !$memberStat.canEdit() }}" />
			</xf:formrow>

			<xf:checkboxrow label="{{ phrase('options') }}">
				<xf:option name="show_value" selected="$memberStat.show_value"
					readonly="{{ !$memberStat.canEdit() }}"
					label="{{ phrase('show_value') }}"
					hint="{{ phrase('if_enabled_and_provided_value_will_be_displayed_for_each_user') }}" />
				<xf:option name="overview_display" selected="$memberStat.overview_display"
					label="{{ phrase('show_on_overview_tab') }}"
					hint="{{
						phrase('if_enabled_top_5_members_of_this_stat_will_be_displayed_on_overview') . ' '
						. (($xf.development AND $memberStat.addon_id) ? phrase('field_value_maintained_addon_upgrade_explain') : '')
					}}" />
			</xf:checkboxrow>

			<xf:numberboxrow name="user_limit" value="{$memberStat}"
				label="{{ phrase('user_limit') }}"
				explain="{{ ($xf.development AND $memberStat.addon_id) ? phrase('field_value_maintained_addon_upgrade_explain') : '' }}" />

			<xf:macro id="display_order_macros::row"
				arg-value="{$memberStat}"
				arg-explain="{{ ($xf.development AND $memberStat.addon_id) ? phrase('field_value_maintained_addon_upgrade_explain') : '' }}" />

			<xf:checkboxrow readonly="{{ !$memberStat.canEdit() }}">
				<xf:option selected="{$memberStat.cache_lifetime}"
					label="{{ phrase('enable_cache_and_cache_for_x_minutes:') }}">

					<xf:numberbox name="cache_lifetime" value="{{ $memberStat.cache_lifetime ?: 60 }}"
						min="0" readonly="{{ !$memberStat.canEdit() }}" />
				</xf:option>
			</xf:checkboxrow>

			<xf:checkboxrow>
				<xf:option name="active" selected="$memberStat.active"
					label="{{ phrase('member_stat_is_active') }}"
					hint="{{
						phrase('use_this_to_disable_member_stat_from_showing_on_members_page') . ' '
						. (($xf.development AND $memberStat.addon_id) ? phrase('field_value_maintained_addon_upgrade_explain') : '')
					}}" />
			</xf:checkboxrow>

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$memberStat.addon_id}" />
		</div>

		<xf:submitrow icon="save" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="member_stat_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('member_stats') }}</xf:title>
<xf:description>{{ phrase('member_stats_description') }}</xf:description>

<xf:pageaction>
	<xf:button href="{{ link('member-stats/add') }}" icon="add">{{ phrase('add_member_stat') }}</xf:button>
</xf:pageaction>

<xf:if is="$memberStats is not empty">
	<xf:form action="{{ link('member-stats/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="member_stats" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$memberStats" value="$memberStat">
						<xf:datarow
							label="{$memberStat.title}"
							href="{{ link('member-stats/edit', $memberStat) }}"
							delete="{{ link('member-stats/delete', $memberStat) }}">

							<xf:toggle name="active[{$memberStat.member_stat_id}]" selected="$memberStat.active"
								class="dataList-cell--separated" submit="true"
								tooltip="{{ phrase('enable_disable_x', {'title': $memberStat.title}) }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($memberStats) }}</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="message" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<div class="blockMessage">{$message|raw}</div>]]></template>
  <template type="admin" title="message_page" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<div class="blockMessage">{$message}</div>]]></template>
  <template type="admin" title="moderator_add_choice" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:title>{{ phrase('add_moderator') }}</xf:title>

<xf:form action="{{ link('moderators/add') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="username" value="{$username}" ac="single"
				placeholder="{{ phrase('user_name...') }}"
				label="{{ phrase('moderator_user_name') }}" />

			<xf:radiorow name="type" value="{$type}"
				label="{{ phrase('type_of_moderator') }}">

				<xf:option value="_super" selected="true"
					label="{{ phrase('super_moderator') }}"
					hint="{{ phrase('super_moderator_can_moderate_entire_board') }}" />

				<xf:foreach loop="$typeChoices" key="$contentType" value="$options">
					<xf:option value="{$contentType}" label="{$options.label}">
						<xf:select name="{$options.name}" value="{$options.value}">
							<xf:foreach loop="$options.choices" value="$choice">
								<xf:option value="{$choice.value}" label="{$choice.label}" disabled="{$choice.disabled}" />
							</xf:foreach>
						</xf:select>
					</xf:option>
				</xf:foreach>
			</xf:radiorow>
		</div>
		<xf:submitrow submit="{{ phrase('add_moderator...') }}" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="moderator_edit" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('edit_moderator:') }} {$user.username}</xf:title>

<xf:pageaction if="$contentModerator ? $contentModerator.isUpdate() : $generalModerator.isUpdate()">
	<xf:if is="$contentModerator">
		<xf:button href="{{ link('moderators/content/delete', $contentModerator) }}" icon="delete" overlay="true" />
	<xf:else />
		<xf:button href="{{ link('moderators/super/delete', $generalModerator) }}" icon="delete" overlay="true" />
	</xf:if>
</xf:pageaction>

<xf:form action="{{ link('moderators/save') }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('type_of_moderator') }}">
				<xf:if is="$contentTitle">
					{$contentTitle}
					<xf:else />
					{{ phrase('super_moderator') }}
				</xf:if>
			</xf:formrow>

			<hr class="formRowSep" />

			<xf:checkboxrow>
				<xf:option name="is_staff" selected="$isStaff"
					label="{{ phrase('display_user_as_staff') }}"
					hint="{{ phrase('if_selected_this_user_will_be_listed_publicly_as_staff_member') }}" />
			</xf:checkboxrow>

			<xf:checkboxrow name="extra_user_group_ids[]" value="{{ $generalModerator.extra_user_group_ids }}"
				listclass="listColumns"
				rowid="addUserGroups"
				label="{{ phrase('add_moderator_to_user_groups') }}">

				<xf:hint>
					<xf:checkbox standalone="true">
						<xf:option check-all="#addUserGroups" label="{{ phrase('select_all') }}" />
					</xf:checkbox>
				</xf:hint>
				<xf:options source="$userGroups" />
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<div id="piGroups">

				<xf:checkboxrow>
					<xf:option check-all="#piGroups" label="{{ phrase('select_all') }}" />
				</xf:checkboxrow>

				<xf:foreach loop="$interfaceGroups" key="$interfaceGroupId" value="$interfaceGroup">
					<xf:foreach loop="{$globalPermissions.{$interfaceGroupId}}" value="$permission">
						<xf:hiddenval
							name="globalPermissions[{$permission.permission_group_id}][{$permission.permission_id}]"
							value="unset" />
					</xf:foreach>
					<xf:foreach loop="{$contentPermissions.{$interfaceGroupId}}" value="$permission">
						<xf:hiddenval
							name="contentPermissions[{$permission.permission_group_id}][{$permission.permission_id}]"
							value="unset" />
					</xf:foreach>
				</xf:foreach>

				<xf:foreach loop="$interfaceGroups" key="$interfaceGroupId" value="$interfaceGroup">
					<xf:if is="{$globalPermissions.{$interfaceGroupId}}">
						<hr class="formRowSep" />

						<xf:checkboxrow listclass="listColumns"
							label="{$interfaceGroup.title}">
							<xf:hint>
								<xf:checkbox standalone="true">
									<xf:option check-all="< .formRow" label="{{ phrase('select_all') }}" />
								</xf:checkbox>
							</xf:hint>
							<xf:foreach loop="{$globalPermissions.{$interfaceGroupId}}" value="$permission">
								<xf:option name="globalPermissions[{$permission.permission_group_id}][{$permission.permission_id}]"
									value="allow"
									selected="{{ {$existingValues.{$permission.permission_group_id}.{$permission.permission_id}} == 'allow' }}"
									label="{$permission.title}" />
							</xf:foreach>
						</xf:checkboxrow>
					</xf:if>
				</xf:foreach>

				<xf:foreach loop="$interfaceGroups" key="$interfaceGroupId" value="$interfaceGroup">
					<xf:if is="{$contentPermissions.{$interfaceGroupId}}">
						<hr class="formRowSep" />

						<xf:checkboxrow listclass="listColumns"
							label="{$interfaceGroup.title}">
							<xf:hint>
								<xf:checkbox standalone="true">
									<xf:option check-all="< .formRow" label="{{ phrase('select_all') }}" />
								</xf:checkbox>
							</xf:hint>
							<xf:foreach loop="{$contentPermissions.{$interfaceGroupId}}" value="$permission">
								<xf:option name="contentPermissions[{$permission.permission_group_id}][{$permission.permission_id}]"
									value="content_allow"
									selected="{{ {$existingValues.{$permission.permission_group_id}.{$permission.permission_id}} == 'content_allow' }}"
									label="{$permission.title}" />
							</xf:foreach>
						</xf:checkboxrow>
					</xf:if>
				</xf:foreach>

			</div>
		</div>
		<xf:submitrow icon="save" />
	</div>

	<xf:hiddenval name="user_id">{$generalModerator.user_id}</xf:hiddenval>
	<xf:hiddenval name="content_type">{$contentModerator.content_type}</xf:hiddenval>
	<xf:hiddenval name="content_id">{$contentModerator.content_id}</xf:hiddenval>
</xf:form>]]></template>
  <template type="admin" title="moderator_list" version_id="2011070" version_string="2.1.10"><![CDATA[<xf:title>{{ phrase('moderators') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('moderators/add') }}" icon="add">{{ phrase('add_moderator') }}</xf:button>
</xf:pageaction>

<xf:if contentcheck="true">
	<xf:contentcheck>

	<xf:if is="$superModerators is not empty">
		<div class="block">
			<div class="block-container">
				<h2 class="block-header">{{ phrase('super_moderators') }}</h2>
				<div class="block-body">
					<xf:datalist>
						<xf:foreach loop="$superModerators" value="$superMod">
							<xf:datarow>
								<xf:cell class="dataList-cell--min dataList-cell--image dataList-cell--imageSmall"
									href="{{ link('moderators/super/edit', $superMod) }}">
									<xf:avatar user="$superMod.User" size="s" href="" />
								</xf:cell>
								<xf:main href="{{ link('moderators/super/edit', $superMod) }}"
									label="{$superMod.User.username}" />
								<xf:action href="{{ link('users/edit', $superMod.User) }}">{{ phrase('user_info') }}</xf:action>
								<xf:delete href="{{ link('moderators/super/delete', $superMod) }}" overlay="true" />
							</xf:datarow>
						</xf:foreach>
					</xf:datalist>
				</div>
			</div>
		</div>
	</xf:if>

	<xf:if is="$contentModerators is not empty">
		<div class="block">
			<div class="block-outer">
				<div class="block-outer-main">
					<a class="button button--link menuTrigger"
						data-xf-click="menu"
						role="button"
						tabindex="0"
						aria-expanded="false"
						aria-haspopup="true">{{ phrase('filter:') }} {{ $userIdFilter ? {$users.{$userIdFilter}.username} : phrase('(all)') }}</a>

					<div class="menu" data-menu="menu" aria-hidden="true">
						<div class="menu-content">
							<h3 class="menu-header">{{ phrase('content_moderators') }}</h3>
							<a href="{{ link('moderators') }}" class="menu-linkRow {{ !$userIdFilter ? 'is-selected' : '' }}">{{ phrase('(all)') }}</a>
							<xf:foreach loop="$users" value="$user">
								<a href="{{ link('moderators', null, {'user_id': $user.user_id}) }}"
									class="menu-linkRow {{ ($userIdFilter && $userIdFilter == $user.user_id) ? 'is-selected' : '' }}">
									<span>{$user.username}</span>
								</a>
							</xf:foreach>
						</div>
					</div>
				</div>
			</div>
			<div class="block-container">
				<h2 class="block-header">{{ phrase('content_moderators') }}</h2>
				<div class="block-body">
					<xf:datalist>
						<xf:foreach loop="$users" key="$userId" value="$user">
							<xf:if is="{$contentModerators.{$userId}}">
								<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
									<xf:cell colspan="2">{$user.username}</xf:cell>
								</xf:datarow>
								<tbody class="js-moderatorInsert-{$userId}">
									<xf:foreach loop="{$contentModerators.{$userId}}" value="$contentMod">
										<xf:datarow>
											<xf:main href="{{ link('moderators/content/edit', $contentMod) }}"
												label="{$contentMod.getContentTitle()}" />
											<xf:delete href="{{ link('moderators/content/delete', $contentMod) }}" overlay="true" />
										</xf:datarow>
									</xf:foreach>
									<xf:if is="$displayLimit AND {$contentModeratorTotals.{$userId}} > $displayLimit">
										<xf:datarow>
											<xf:cell colspan="2" class="dataList-cell--link">
												<a href="{{ link('moderators', null, {'user_id': $userId}) }}" data-xf-click="inserter" data-replace=".js-moderatorInsert-{$userId}" data-animate-replace="false">{{ phrase('ellipsis_and_x_more', {'count': ({$contentModeratorTotals.{$userId}} - $displayLimit)|number}) }}</a>
											</xf:cell>
										</xf:datarow>
									</xf:if>
								</tbody>
							</xf:if>
						</xf:foreach>
					</xf:datalist>
				</div>
			</div>
		</div>
	</xf:if>

	</xf:contentcheck>
<xf:else />
	<div class="blockMessage">{{ phrase('there_currently_no_moderators_use_link_create') }}</div>
</xf:if>]]></template>
  <template type="admin" title="moderator_super_delete" version_id="2010036" version_string="2.1.0 Beta 6"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{$confirmUrl}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_remove_following_user_as_super_moderator:') }}
				<strong><a href="{$editUrl}">{$contentTitle}</a></strong>
				{{ phrase('if_user_is_content_moderator_as_well_moderation_privileges_removed') }}
			</xf:inforow>
		</div>
		<xf:submitrow rowtype="simple" icon="delete" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="navigation_delete" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('navigation/delete', $navigation) }}" class="block" ajax="true">

	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				<strong><a href="{{ link('navigation/edit', $navigation) }}">{$navigation.title}</a></strong>
			</xf:inforow>

			<xf:if is="$hasChildren">
				<xf:inforow>
					<p class="block-rowMessage block-rowMessage--warning block-rowMessage--iconic">
						<strong>{{ phrase('note:') }}</strong>
						{{ phrase('deleting_parent_also_deletes_children') }}
					</p>
				</xf:inforow>
			</xf:if>
		</div>

		<xf:submitrow rowtype="simple" icon="delete" />
	</div>

	<xf:redirect />

</xf:form>]]></template>
  <template type="admin" title="navigation_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$navigation.isInsert()">
	<xf:title>{{ phrase('add_navigation') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_navigation:') }} {$navigation.title}</xf:title>
</xf:if>

<xf:pageaction>
	<xf:if is="$navigation.canDelete()">
		<xf:button href="{{ link('navigation/delete', $navigation) }}" icon="delete" overlay="true" />
	</xf:if>
	<xf:if is="$navigation.is_customized">
		<xf:button href="{{ link('navigation/revert', $navigation) }}" overlay="true">{{ phrase('revert') }}</xf:button>
	</xf:if>
</xf:pageaction>

<xf:if is="$navigation.is_customized">
	<div class="blockMessage blockMessage--important blockMessage--iconic">
		{{ phrase('this_navigation_customized_your_changes_maintained') }}
	</div>
</xf:if>

<xf:if is="$xf.development AND $navigation.addon_id">
	<div class="blockMessage blockMessage--warning">
		{{ phrase('user_customizations_to_navigation_maintained_addon_upgrade') }}
	</div>
</xf:if>

<xf:form action="{{ link('navigation/save', $navigation) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="navigation_id" value="{$navigation}" readonly="{{ !$navigation.canEdit() }}"
				label="{{ phrase('navigation_id') }}"
				dir="ltr" />

			<xf:textboxrow name="title" value="{$navigation}"
				readonly="{{ !$navigation.canEdit() }}"
				label="{{ phrase('title') }}" />

			<xf:selectrow name="parent_navigation_id" value="{$navigation}"
				label="{{ phrase('parent_navigation_entry') }}">

				<xf:option value="">&nbsp;</xf:option>
				<xf:foreach loop="$navigationTree.getFlattened()" value="$treeEntry">
					<xf:option value="{$treeEntry.record.navigation_id}">{{ repeat('--', $treeEntry.depth) }}
						{$treeEntry.record.title}
					</xf:option>
				</xf:foreach>
			</xf:selectrow>

			<xf:macro id="display_order_macros::row" arg-value="{$navigation}" />

			<xf:radiorow name="navigation_type_id" value="{$selectedType}"
				label="{{ phrase('type') }}">

				<xf:foreach loop="$typeHandlers" key="$type" value="$handler">
					<xf:option value="{$type}" data-xf-init="disabler" data-container=".js-navTypeForm--{$type}" data-hide="true">{{ $handler.getTitle() }}</xf:option>
				</xf:foreach>
			</xf:radiorow>

			<hr class="formRowSep" />

			<xf:foreach loop="$typeHandlers" key="$type" value="$handler">
				<div class="js-navTypeForm js-navTypeForm--{$type}">
					{{ $handler.renderEditForm($navigation, $navigation.navigation_type_id == $type ? $navigation.type_config : [], 'config[' . $type . ']')|raw }}
				</div>
			</xf:foreach>

			<hr class="formRowSep" />

			<xf:checkboxrow>
				<xf:option name="enabled" selected="{$navigation.enabled}">{{ phrase('enabled') }}</xf:option>
			</xf:checkboxrow>

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$navigation.addon_id}" />

		</div>

		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="navigation_edit_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="extra_attrs" arg-config="!" arg-formPrefix="!">

	<xf:formrow rowtype="input"
		label="{{ phrase('extra_attributes') }}">

		<ul class="listPlain inputGroup-container">
			<xf:foreach loop="{$config.extra_attributes}" key="$name" value="$value">
				<li class="inputGroup"dir="ltr" >
					<xf:textbox name="{$formPrefix}[extra_attr_names][]" value="{$name}" size="15" code="true"
						placeholder="{{ phrase('name') }}" />
					<span class="inputGroup-splitter"></span>
					<xf:textbox name="{$formPrefix}[extra_attr_values][]" value="{$value}" size="25" code="true"
						placeholder="{{ phrase('value') }}" />
				</li>
			</xf:foreach>
			<li class="inputGroup" data-xf-init="field-adder" dir="ltr" >
				<xf:textbox name="{$formPrefix}[extra_attr_names][]" size="15" code="true"
					placeholder="{{ phrase('name') }}" />
				<span class="inputGroup-splitter"></span>
				<xf:textbox name="{$formPrefix}[extra_attr_values][]" size="25" code="true"
					placeholder="{{ phrase('value') }}" />
			</li>
		</ul>
	</xf:formrow>
</xf:macro>]]></template>
  <template type="admin" title="navigation_edit_type_basic" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:textboxrow name="{$formPrefix}[link]" value="{$config.link}" code="true"
	label="{{ phrase('link') }}" />

<xf:textboxrow name="{$formPrefix}[display_condition]" value="{$config.display_condition}" code="true"
	label="{{ phrase('display_condition') }}"
	explain="{{ phrase('this_should_be_entered_as_template_style_expression') }}" />

<xf:macro id="navigation_edit_macros::extra_attrs"
	arg-config="{$config}" arg-formPrefix="{$formPrefix}" />]]></template>
  <template type="admin" title="navigation_edit_type_callback" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:formrow rowtype="input"
	label="{{ phrase('callback') }}">

	<xf:macro id="helper_callback_fields::callback_fields"
		arg-className="{$formPrefix}[callback_class]"
		arg-methodName="{$formPrefix}[callback_method]"
		arg-classValue="{$config.callback.0}"
		arg-methodValue="{$config.callback.1}" />
</xf:formrow>

<xf:textboxrow name="{$formPrefix}[context]" value="{$config.context}"
	label="{{ phrase('context_value') }}"
	explain="{{ phrase('context_value_explain') }}" />]]></template>
  <template type="admin" title="navigation_edit_type_node" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:selectrow name="{$formPrefix}[node_id]" value="{$config.node_id}"
	label="{{ phrase('node') }}">

	<xf:option value="0">&nbsp;</xf:option>
	<xf:foreach loop="$nodeTree.getFlattened(0)" value="$treeEntry">
		<xf:option value="{$treeEntry.record.node_id}">{{ repeat('--', $treeEntry.depth) }} {$treeEntry.record.title}</xf:option>
	</xf:foreach>
</xf:selectrow>

<xf:checkboxrow>
	<xf:option name="{$formPrefix}[node_title]" selected="{$config.node_title}">
		{{ phrase('display_node_title_instead_of_navigation_entry_title') }}
	</xf:option>
	<xf:option name="{$formPrefix}[with_children]" selected="{$config.with_children}">
		{{ phrase('display_children_in_navigation') }}
	</xf:option>
</xf:checkboxrow>

<xf:macro id="navigation_edit_macros::extra_attrs"
	arg-config="{$config}" arg-formPrefix="{$formPrefix}" />]]></template>
  <template type="admin" title="navigation_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('public_navigation') }}</xf:title>

<xf:pageaction>
	<div class="buttonGroup">
		<xf:button href="{{ link('navigation/add') }}" icon="add">{{ phrase('add_navigation') }}</xf:button>
		<xf:button href="{{ link('navigation/sort') }}" icon="sort" overlay="true" />
	</div>
</xf:pageaction>

<xf:form action="{{ link('navigation/toggle') }}" class="block" ajax="true">
	<div class="block-outer">
		<xf:macro id="filter_macros::quick_filter" arg-key="navigation" arg-class="block-outer-opposite" />
	</div>
	<div class="block-container">
		<div class="block-body">
			<xf:datalist>
				<xf:macro id="navigation_list" arg-children="{$tree}" />
			</xf:datalist>
		</div>
		<div class="block-footer">
			<span class="block-footer-counter">{{ display_totals($tree.getFlattened(0)) }}</span>
		</div>
	</div>
</xf:form>

<xf:macro id="navigation_list" arg-children="!" arg-depth="1">
	<xf:foreach loop="$children" value="$child">
		<xf:macro id="navigation_list_entry" arg-navigation="{$child.record}" arg-children="{$child.children}" arg-depth="{$depth}" />
	</xf:foreach>
</xf:macro>

<xf:macro id="navigation_list_entry" arg-navigation="!" arg-children="!" arg-depth="1" arg-defaultNavigationId="">
	<xf:if is="$depth == 1">
		<xf:datarow rowtype="subsection">
			<xf:if is="$navigation.navigation_id == $xf.app.defaultNavigationId">
				<xf:cell>{$navigation.title}</xf:cell>
				<xf:cell />
				<xf:cell />
				<xf:cell />
			<xf:else />
				<xf:cell href="{{ link('navigation/edit', $navigation) }}" hash="{$navigation.navigation_id}">{$navigation.title}</xf:cell>
				<xf:cell class="dataList-cell--min dataList-cell--hint">{$navigation.display_order}</xf:cell>
				<xf:toggle name="enabled[{$navigation.navigation_id}]" selected="$navigation.enabled"
					submit="true"
					tooltip="{{ phrase('enable_disable_x', {'title': $navigation.title}) }}" />
				<xf:delete href="{{ $navigation.canDelete() ? link('navigation/delete', $navigation) : '' }}" />
			</xf:if>
		</xf:datarow>
	<xf:else />
		<xf:datarow>
			<xf:cell href="{{ link('navigation/edit', $navigation) }}"
				hash="{$navigation.navigation_id}"
				class="dataList-cell--d{{ $depth - 1 }}">
				{$navigation.title}
			</xf:cell>
			<xf:cell class="dataList-cell--min dataList-cell--hint">{$navigation.display_order}</xf:cell>
			<xf:toggle name="enabled[{$navigation.navigation_id}]" selected="$navigation.enabled"
				class="dataList-cell--separated" submit="true"
				tooltip="{{ phrase('enable_disable_x', {'title': $navigation.title}) }}" />
			<xf:delete href="{{ $navigation.canDelete() ? link('navigation/delete', $navigation) : '' }}" />
		</xf:datarow>
	</xf:if>
	<xf:if is="$depth == 1 AND $children is empty">
		<xf:datarow rowclass="dataList-row--note dataList-row--noHover">
			<xf:cell colspan="3">{{ phrase('this_section_is_currently_empty') }}</xf:cell>
		</xf:datarow>
	<xf:else />
		<xf:macro id="navigation_list" arg-children="{$children}" arg-depth="{{ $depth + 1 }}" />
	</xf:if>
</xf:macro>]]></template>
  <template type="admin" title="navigation_revert" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('navigation/revert', $navigation) }}" class="block" ajax="true">

	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_revert_the_following:') }}
				<strong><a href="{{ link('navigation/edit', $navigation) }}">{$navigation.title}</a></strong>
			</xf:inforow>
		</div>

		<xf:submitrow rowtype="simple" submit="{{ phrase('revert') }}" />
	</div>

	<xf:redirect />

</xf:form>]]></template>
  <template type="admin" title="navigation_sort" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('sort_navigation') }}</xf:title>

<xf:macro id="public:nestable_macros::setup" />

<xf:form action="{{ link('navigation/sort') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<div class="nestable-container" data-xf-init="nestable" data-parent-id="">
				<xf:macro id="navigation_list" arg-children="{$navTree}" />
				<xf:hiddenval name="navigation" value="" />
			</div>
		</div>
		<xf:submitrow icon="save" rowtype="simple" />
	</div>
</xf:form>

<xf:macro id="navigation_list" arg-children="!">
	<ol class="nestable-list">
		<xf:foreach loop="$children" key="$id" value="$child">
			<xf:macro id="navigation_list_entry" arg-nav="{$child.record}" arg-children="{$child.children}" />
		</xf:foreach>
	</ol>
</xf:macro>

<xf:macro id="navigation_list_entry" arg-nav="!" arg-children="!">
	<li class="nestable-item" data-id="{$nav.navigation_id}">
		<div class="nestable-handle" aria-label="{{ phrase('drag_handle')|for_attr }}"><xf:fa icon="fa-bars" /></div>
		<div class="nestable-content">{$nav.title}</div>
		<xf:if is="$children is not empty">
			<xf:macro id="navigation_list" arg-children="{$children}" />
		</xf:if>
	</li>
</xf:macro>]]></template>
  <template type="admin" title="node_add" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:title>{{ phrase('add_node') }}</xf:title>

<xf:form action="{{ link('nodes/add') }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:radiorow name="node_type_id" value="{$defaultNodeTypeId}"
				label="{{ phrase('node_type') }}">

				<xf:foreach loop="$nodeTypes" value="$nodeType">
					<xf:if is="$nodeType.node_type_id == 'Forum'">
						<xf:option value="{$nodeType.node_type_id}"
							label="{$nodeType.title}"
							data-hide="true"
							data-xf-init="disabler"
							data-container=".js-forumTypes" />
					<xf:else />
						<xf:option value="{$nodeType.node_type_id}">{$nodeType.title}</xf:option>
					</xf:if>
				</xf:foreach>

				<xf:explain>{{ phrase('this_cannot_be_changed_once_node_has_been_created') }}</xf:explain>
			</xf:radiorow>

			<div class="js-forumTypes">
				<xf:radiorow name="forum_type_id" value="{$defaultForumTypeId}"
					label="{{ phrase('forum_type') }}">
					<xf:foreach loop="$forumTypesInfo" key="$forumTypeId" value="$forumTypeInfo">
						<xf:option value="{$forumTypeId}"
							label="{$forumTypeInfo.title}"
							hint="{$forumTypeInfo.description}" />
					</xf:foreach>
				</xf:radiorow>
			</div>
		</div>
		<xf:submitrow submit="{{ phrase('proceed...') }}" />
	</div>
	<xf:hiddenval name="parent_node_id">{$parentNodeId}</xf:hiddenval>
</xf:form>]]></template>
  <template type="admin" title="node_edit_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="title" arg-node="!">
	<xf:textboxrow name="node[title]" value="{$node.title}" label="{{ phrase('title') }}" />
</xf:macro>

<xf:macro id="description" arg-node="!">
	<xf:textarearow name="node[description]" value="{$node.description}" autosize="true"
		label="{{ phrase('description') }}"
		hint="{{ phrase('you_may_use_html') }}"
		explain="{{ phrase('node_description_explain') }}" />
</xf:macro>

<xf:macro id="node_name" arg-node="!" arg-optional="{{ true }}" arg-additionalExplain="">
	<xf:textboxrow name="node[node_name]" value="{$node.node_name}"
		label="{{ phrase('url_portion') }}"
		hint="{{ $optional ? phrase('optional') : '' }}"
		explain="{{ $optional ? phrase('if_entered_url_to_node_not_contain_id_change_breaks_urls') : '' }}{{ $additionalExplain ? ' ' . $additionalExplain|raw : '' }}"
		dir="ltr" />
</xf:macro>

<xf:macro id="position" arg-node="!" arg-nodeTree="!">
	<xf:selectrow name="node[parent_node_id]" value="{$node.parent_node_id}"
		label="{{ phrase('parent_node') }}">

		<xf:option value="0">{{ phrase('(none)') }}</xf:option>

		<xf:foreach loop="$nodeTree.getFlattened(0)" value="$treeEntry">
			<xf:option value="{$treeEntry.record.node_id}">{{ repeat('--', $treeEntry.depth) }} {$treeEntry.record.title}</xf:option>
		</xf:foreach>
	</xf:selectrow>

	<xf:macro id="display_order_macros::row"
		arg-name="node[display_order]"
		arg-value="{$node}"
		arg-explain="{{ phrase('position_of_this_item_relative_to_other_nodes_with_same_parent') }}" />

	<xf:checkboxrow>
		<xf:option name="node[display_in_list]" selected="$node.display_in_list"
			label="{{ phrase('display_in_node_list') }}"
			hint="{{ phrase('if_unselected_users_will_not_see_this_node_in_list') }}" />
	</xf:checkboxrow>
</xf:macro>

<xf:macro id="style" arg-node="!" arg-styleTree="!">
	<xf:checkboxrow>
		<xf:option name="style_override" selected="$node.style_id"
			label="{{ phrase('override_user_style_choice') }}"
			explain="{{ phrase('if_specified_all_visitors_view_using_selected_style') }}">

			<xf:select name="node[style_id]" value="{$node.style_id}">
				<xf:foreach loop="$styleTree.getFlattened(0)" value="$treeEntry">
					<xf:option value="{$treeEntry.record.style_id}">{{ repeat('--', $treeEntry.depth) }} {$treeEntry.record.title}</xf:option>
				</xf:foreach>
			</xf:select>

		</xf:option>
	</xf:checkboxrow>
</xf:macro>

<xf:macro id="navigation" arg-node="!" arg-navChoices="!">
	<xf:set var="$defaultValue" value="{{ $node.Parent.effective_navigation_id ?: 'forums' }}" />
	<xf:set var="$defaultNav" value="{$navChoices.{$defaultValue}}" />
	<xf:selectrow name="node[navigation_id]" value="{$node.navigation_id}"
		label="{{ phrase('navigation_section') }}"
		explain="{{ phrase('navigation_section_explain') }}">

		<xf:option value="">{{ phrase('default') . ($defaultNav ? ' (' . $defaultNav.title . ')' : '') }}</xf:option>

		<xf:foreach loop="$navChoices" value="$nav">
			<xf:if is="$nav.navigation_id != '_default'">
				<xf:option value="{$nav.navigation_id}">{$nav.title}</xf:option>
			</xf:if>
		</xf:foreach>
	</xf:selectrow>
</xf:macro>]]></template>
  <template type="admin" title="node_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('nodes') }}</xf:title>

<xf:pageaction>
	<div class="buttonGroup">
		<xf:button href="{{ link('nodes/add') }}" icon="add" overlay="true">{{ phrase('add_node') }}</xf:button>
		<xf:button href="{{ link('nodes/sort') }}" icon="sort" overlay="true" />
	</div>
</xf:pageaction>

<xf:if is="$nodeTree.countChildren()">
	<div class="block">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="nodes" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$nodeTree.getFlattened(0)" value="$treeEntry">
						<xf:set var="$node" value="{$treeEntry.record}" />
						<xf:datarow>
							<xf:cell class="dataList-cell--min">
								<xf:macro id="node_icon" arg-node="{$node}" />
							</xf:cell>
							<xf:cell class="dataList-cell--link dataList-cell--main" hash="{$node.node_id}">
								<a href="{{ link('nodes/edit', $node) }}">
									<div class="u-depth{$treeEntry.depth}">
										<div class="dataList-mainRow">
											{$node.title}
											<span class="dataList-hint" dir="auto">
												{$node.NodeType.title}
												<xf:if is="
													$node.node_type_id == 'Forum'
													AND $node.Data.TypeHandler
													AND $node.Data.forum_type_id != 'discussion'
												">
													({{ $node.Data.TypeHandler.getTypeTitle() }})
												</xf:if>
											</span>
										</div>
									</div>
								</a>
							</xf:cell>
							<xf:action
								class="{{ {$customPermissions.{$node.node_id}} ? 'dataList-cell--highlighted' : '' }}"
								href="{{ link('nodes/permissions', $node) }}">
								{{ phrase('permissions') }}
							</xf:action>
							<xf:if is="{$moderators.{$node.node_id}}">
								<xf:popup class="dataList-cell--action u-hideMedium"
									label="{{ phrase('moderators_count_x', {'moderators': count({$moderators.{$node.node_id}})}) }}">

									<div class="menu" data-menu="menu" aria-hidden="true">
										<div class="menu-content">
											<h3 class="menu-header">{{ phrase('moderators') }}</h3>
											<xf:foreach loop="{$moderators.{$node.node_id}}" value="$moderator">
												<a href="{{ link('moderators/content/edit', $moderator) }}" class="menu-linkRow">{$moderator.User.username}</a>
											</xf:foreach>
											<hr class="menu-separator" />
											<a href="{{ link('moderators/add', null, {'type': 'node', 'type_id': {'node': $node.node_id}}) }}" class="menu-linkRow">{{ phrase('add_moderator') }}</a>
										</div>
									</div>
								</xf:popup>
							<xf:else />
								<xf:action href="{{ link('moderators/add', null, {'type': 'node', 'type_id': {'node': $node.node_id}}) }}" class="u-hideMedium">{{ phrase('add_moderator') }}</xf:action>
							</xf:if>
							<xf:popup class="dataList-cell--action u-hideMedium"
								label="{{ phrase('add...') }}">

								<div class="menu" data-menu="menu" aria-hidden="true">
									<div class="menu-content">
										<h3 class="menu-header">{{ phrase('add...') }}</h3>
										<a href="{{ link('nodes/add', null, {'parent_node_id': $node.parent_node_id}) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('sibling') }}</a>
										<a href="{{ link('nodes/add', null, {'parent_node_id': $node.node_id}) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('child') }}</a>
									</div>
								</div>
							</xf:popup>
							<xf:delete href="{{ link('nodes/delete', $node) }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($nodeTree.getFlattened(0)) }}</span>
			</div>
		</div>
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>

<xf:macro id="node_icon" arg-node="!">
	<xf:if is="$node.node_type_id == 'Forum' AND $node.Data.TypeHandler">
		<xf:set var="$typeIcon" value="{{ $node.Data.TypeHandler.getTypeIconClass() }}" />
		<xf:if is="$typeIcon">
			<xf:fa icon="{$typeIcon}" />
		<xf:else />
			<i class="nodeIcon nodeIcon--{$node.node_type_id}"></i>
		</xf:if>
	<xf:else />
		<i class="nodeIcon nodeIcon--{$node.node_type_id}"></i>
	</xf:if>
</xf:macro>]]></template>
  <template type="admin" title="node_sort" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('sort_nodes') }}</xf:title>

<xf:macro id="public:nestable_macros::setup" />

<xf:form action="{{ link('nodes/sort') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<div class="nestable-container" data-xf-init="nestable">
				<xf:macro id="node_list" arg-children="{$nodeTree}" />
				<xf:hiddenval name="nodes" value="" />
			</div>
		</div>
		<xf:submitrow icon="save" rowtype="simple" />
	</div>
</xf:form>

<xf:macro id="node_list" arg-children="!">
	<ol class="nestable-list">
		<xf:foreach loop="$children" key="$id" value="$child">
			<xf:macro id="node_list_entry" arg-node="{$child}" arg-children="{$child.children}" />
		</xf:foreach>
	</ol>
</xf:macro>

<xf:macro id="node_list_entry" arg-node="!" arg-children="!">
	<li class="nestable-item" data-id="{$node.id}">
		<div class="nestable-handle" aria-label="{{ phrase('drag_handle')|for_attr }}"><xf:macro id="node_list::node_icon" arg-node="{$node.record}" /></div>
		<div class="nestable-content">
			<strong>{$node.record.title}</strong>
			<span class="nestable-label nestable-label--smallest" dir="auto">
				{$node.record.NodeType.title}
				<xf:if is="
					$node.record.node_type_id == 'Forum'
					AND $node.record.Data.TypeHandler
					AND $node.record.Data.forum_type_id != 'discussion'
				">
					({{ $node.record.Data.TypeHandler.getTypeTitle() }})
				</xf:if>
			</span>
		</div>
		<xf:if is="$node.children is not empty">
			<xf:macro id="node_list" arg-children="{$node.children}" />
		</xf:if>
	</li>
</xf:macro>]]></template>
  <template type="admin" title="notice_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$notice.isInsert()">
	<xf:title>{{ phrase('add_notice') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_notice:') }} {$notice.title}</xf:title>
</xf:if>

<xf:pageaction if="$notice.isUpdate()">
	<xf:button href="{{ link('notices/reset', $notice) }}" overlay="true">{{ phrase('reset') }}</xf:button>
	<xf:button href="{{ link('notices/delete', $notice) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('notices/save', $notice) }}" ajax="true" class="block">
	<div class="block-container">
		<h2 class="block-tabHeader tabs hScroller" data-xf-init="tabs h-scroller" role="tablist">
			<span class="hScroller-scroll">
				<a class="tabs-tab is-active" role="tab" tabindex="0" aria-controls="notice-options">{{ phrase('notice_options') }}</a>
				<xf:macro id="helper_criteria::user_tabs" />
				<xf:macro id="helper_criteria::page_tabs" />
			</span>
		</h2>

		<ul class="tabPanes block-body">
			<li class="is-active" role="tabpanel" id="notice-options">
				<xf:textboxrow name="title" value="{$notice}"
					label="{{ phrase('title') }}"
					explain="{{ phrase('notice_title_explain') }}" />

				<xf:codeeditorrow name="message" value="{$notice}"
					mode="html" data-line-wrapping="true"
					class="codeEditor--autoSize codeEditor--proportional"
					label="{{ phrase('message') }}"
					hint="{{ phrase('you_may_use_html') }}"
					explain="{{ phrase('the_message_to_be_shown_when_the_display_criteria_are_met') }}" />

				<hr class="formRowSep" />

				<xf:radiorow name="display_image" value="{$notice}"
					label="{{ phrase('display_image') }}">

					<xf:option value=""
						label="{{ phrase('no_image') }}" />
					<xf:option value="avatar"
						label="{{ phrase('show_visitors_avatar') }}" />
					<xf:option value="image"
						label="{{ phrase('specify_image:') }}">
						<xf:assetupload name="image_url" value="{$notice}" asset="notice_images" />
					</xf:option>
				</xf:radiorow>

				<xf:radiorow name="display_style" value="{$notice}"
					label="{{ phrase('display_styling') }}">

					<xf:option value="primary">{{ phrase('primary') }}</xf:option>
					<xf:option value="accent">{{ phrase('accent') }}</xf:option>
					<xf:option value="dark">{{ phrase('dark') }}</xf:option>
					<xf:option value="light">{{ phrase('light') }}</xf:option>
					<xf:option value="custom" label="{{ phrase('other_using_custom_css_class_name:') }}">
						<xf:textbox name="css_class" value="{$notice.css_class}"
							maxlength="{{ max_length($notice, 'css_class') }}"
							dir="ltr" />
					</xf:option>
				</xf:radiorow>

				<xf:radiorow name="visibility" value="{$notice}"
					label="{{ phrase('visibility') }}"
					explain="{{
						phrase('notice_visibility_explain',
						{
							'styleUrl': link(
								'styles/style-properties/group',
								{'style_id': $xf.options.defaultStyleId},
								{'group': 'page'}
							)
						})
					}}">

					<xf:option>{{ phrase('never_hide') }}</xf:option>
					<xf:option value="wide">{{ phrase('hide_wide', {'width': property('responsiveWide')}) }}</xf:option>
					<xf:option value="medium">{{ phrase('hide_medium', {'width': property('responsiveMedium')}) }}</xf:option>
					<xf:option value="narrow">{{ phrase('hide_narrow', {'width': property('responsiveNarrow')}) }}</xf:option>
				</xf:radiorow>

				<hr class="formRowSep" />

				<xf:radiorow name="notice_type" value="{$notice}"
					label="{{ phrase('notice_type') }}"
					explain="{{ phrase('notice_display_type_desc') }}">

					<xf:foreach loop="$noticeTypes" key="$typeId" value="$typeValue">
						<xf:if is="$typeId == 'floating'">
							<xf:option value="{$typeId}"
								data-xf-init="disabler"
								data-container=".js-hiderContainer"
								data-hide="yes">{$typeValue}</xf:option>
						<xf:else />
							<xf:option value="{$typeId}">{$typeValue}</xf:option>
						</xf:if>
					</xf:foreach>

				</xf:radiorow>

				<div class="js-hiderContainer">

					<xf:numberboxrow name="display_duration" value="{$notice}" step="100"
						label="{{ phrase('display_duration_milliseconds') }}"
						explain="{{ phrase('notice_display_length_desc') }}" />

					<xf:numberboxrow name="delay_duration" value="{$notice}" step="100"
						label="{{ phrase('delay_duration_milliseconds') }}"
						explain="{{ phrase('notice_fade_delay_desc') }}" />
				</div>

				<hr class="formRowSep" />

				<xf:checkboxrow label="{{ phrase('options') }}">
					<xf:option name="dismissible" selected="$notice.dismissible"
						label="{{ phrase('notice_may_be_dismissed') }}"
						hint="{{ phrase('users_may_hide_this_notice_when_they_have_read_it') }}">

						<xf:dependent>
							<xf:checkbox>
								<xf:option value="1" label="{{ phrase('automatically_dismiss_notice') }}"
									name="auto_dismiss" selected="$notice.auto_dismiss">
									<xf:hint>{{ phrase('automatically_dismiss_notice_explain') }}</xf:hint>
								</xf:option>
							</xf:checkbox>
						</xf:dependent>

					</xf:option>
					<xf:option name="active" selected="$notice.active"
						label="{{ phrase('notice_is_active') }}"
						hint="{{ phrase('use_this_to_temporarily_disable_this_notice') }}" />
				</xf:checkboxrow>

				<xf:macro id="display_order_macros::row" arg-value="{$notice}" />
			</li>

			<xf:macro id="helper_criteria::user_panes"
				arg-criteria="{{ $userCriteria.getCriteriaForTemplate() }}"
				arg-data="{{ $userCriteria.getExtraTemplateData() }}" />

			<xf:macro id="helper_criteria::page_panes"
				arg-criteria="{{ $pageCriteria.getCriteriaForTemplate() }}"
				arg-data="{{ $pageCriteria.getExtraTemplateData() }}" />

		</ul>

		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="notice_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('notices') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('notices/add') }}" icon="add">{{ phrase('add_notice') }}</xf:button>
</xf:pageaction>

<xf:if is="$notices is not empty">
	<xf:if is="$invalidNotices">
		<div class="blockMessage blockMessage--important">
			{{ phrase('following_notices_may_contain_page_criteria_which_is_no_longer_matched:') }}
			<ul class="listInline listInline--comma">
				<xf:foreach loop="$invalidNotices" value="$invalidNotice">
					<li><a href="{{ link('notices/edit', $invalidNotice) }}">{$invalidNotice.title}</a></li>
				</xf:foreach>
			</ul>
		</div>
	</xf:if>

	<xf:form action="{{ link('notices/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="notices" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$noticeTypes" key="$typeId" value="$phrase" if="{$notices.{$typeId}} is not empty">
						<tbody class="dataList-rowGroup">
							<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
								<xf:cell colspan="3">{$phrase}</xf:cell>
							</xf:datarow>
							<xf:foreach loop="{$notices.{$typeId}}" value="$notice">
								<xf:datarow
									label="{$notice.title}"
									href="{{ link('notices/edit', $notice) }}"
									delete="{{ link('notices/delete', $notice) }}">
									<xf:toggle name="active[{$notice.notice_id}]" selected="$notice.active"
										class="dataList-cell--separated" submit="true"
										tooltip="{{ phrase('enable_disable_x', {'title': $notice.title}) }}" />
								</xf:datarow>
							</xf:foreach>
						</tbody>
					</xf:foreach>
				</xf:datalist>
				<div class="block-footer">
					<span class="block-footer-counter">{{ display_totals($totalNotices) }}</span>
				</div>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>

<xf:macro id="option_macros::option_form_block" arg-options="{$options}" />]]></template>
  <template type="admin" title="notice_reset" version_id="2000038" version_string="2.0.0 Beta 8"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('notices/reset', $notice) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_reset_following_notice:') }}
				<strong><a href="{{ link('notices/edit', $notice) }}">{$notice.title}</a></strong>
				{{ phrase('resetting_notice_display_to_all_users_matching_not_restore_guests') }}
			</xf:inforow>
		</div>
		<xf:submitrow rowtype="simple" submit="{{ phrase('reset') }}" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="oauth_client_edit" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:if is="$client.isInsert()">
	<xf:title>{{ phrase('add_oauth2_client') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_oauth2_client') }} {$client.title}</xf:title>
</xf:if>

<xf:pageaction if="$client.isUpdate()">
	<xf:button href="{{ link('oauth2/clients/delete', $client) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('oauth2/clients/save', $client) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="title" value="{$client}"
				label="{{ phrase('title') }}" />

			<xf:textarearow name="description" value="{$client}"
				autosize="true"
				label="{{ phrase('description') }}" />

			<hr class="formRowSep" />

			<xf:if is="$client.isUpdate()">
				<xf:formrow label="{{ phrase('client_id') }}">
					<code class="js-clientIdCopyTarget">{$client.client_id}</code>
					<xf:button icon="copy"
						data-xf-init="copy-to-clipboard"
						data-copy-target=".js-clientIdCopyTarget"
						data-success="{{ phrase('client_id_copied_to_clipboard') }}"
						class="button--link is-hidden" />
				</xf:formrow>
				<xf:formrow label="{{ phrase('client_secret') }}" rowtype="button">
					<code>{$client.client_secret_snippet}</code>
					<xf:button href="{{ link('oauth2/clients/view-secret', $client) }}"
						data-xf-click="overlay"
						class="button--link">{{ phrase('view_secret') }}
					</xf:button>

					<xf:button href="{{ link('oauth2/clients/regenerate', $client) }}"
						data-xf-click="overlay"
						class="button--link">{{ phrase('regenerate_secret') }}
					</xf:button>
				</xf:formrow>
			</xf:if>

			<xf:radiorow name="client_type" value="{$client}"
				label="{{ phrase('client_type') }}">
				<xf:option value="confidential">{{ phrase('confidential') }}</xf:option>
				<xf:option value="public">{{ phrase('public') }}</xf:option>
			</xf:radiorow>

			<hr class="formRowSep" />

			<xf:formrow label="{{ phrase('authorization_endpoint') }}">{{ link_type('public', 'canonical:oauth2/authorize') }}</xf:formrow>
			<xf:formrow label="{{ phrase('token_endpoint') }}">{{ link_type('api', 'canonical:oauth2/token') }}</xf:formrow>
			<xf:formrow label="{{ phrase('token_revocation_endpoint') }}">{{ link_type('api', 'canonical:oauth2/revoke') }}</xf:formrow>

			<hr class="formRowSep" />

			<xf:formrow name="redirect_uris" value="{$client}"
				label="{{ phrase('redirect_uris') }}"
				explain="{{ phrase('list_of_uris_that_may_be_used_for_redirecting_users_back_to_your_application') }}">
				<ul class="listPlain inputGroup-container">
					<xf:foreach loop="{$client.redirect_uris}" key="$counter" value="$uri">
						<li class="inputGroup">
							<xf:textbox name="redirect_uris[{$counter}]" value="{$uri}" />
						</li>
					</xf:foreach>
					<li class="inputGroup" data-xf-init="field-adder" dir="ltr" >
						<xf:textbox name="redirect_uris[]" />
					</li>
				</ul>
			</xf:formrow>

			<hr class="formRowSep" />

			<xf:textboxrow name="homepage_url" value="{$client}"
				label="{{ phrase('homepage_url') }}"
				explain="{{ phrase('optional_url_to_homepage_or_information_page_for_this_application') }}" />

			<xf:assetuploadrow name="image_url" value="{$client}" asset="applications"
				label="{{ phrase('image_url') }}" />

			<hr class="formRowSep" />

			<xf:checkboxrow name="allowed_scopes" value="{$client.allowed_scopes}"
				label="{{ phrase('allowed_scopes') }}"
				explain="{{ phrase('scopes_allow_oauth2_client_to_only_access_certain_parts_of_api') }}">

				<xf:foreach loop="$scopes" value="$scope">
					<xf:option value="{$scope.api_scope_id}" label="{$scope.api_scope_id}" hint="{$scope.description}" />
				</xf:foreach>
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<xf:checkboxrow>
				<xf:option name="active" value="1" selected="$client.active">{{ phrase('client_is_active') }}</xf:option>
			</xf:checkboxrow>
		</div>

		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="oauth_client_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('oauth2_clients') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('oauth2/clients/add') }}" icon="add">{{ phrase('add_oauth2_client') }}</xf:button>
</xf:pageaction>

<xf:if is="$clients is not empty">
	<xf:form action="{{ link('oauth2/clients/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro template="filter_macros" name="quick_filter" arg-key="oauth2-clients" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$clients" value="$client">
						<xf:datarow
							label="{$client.title}"
							href="{{ link('oauth2/clients/edit', $client) }}"
							delete="{{ link('oauth2/clients/delete', $client) }}">
							<xf:explain>
								<ul class="listInline listInline--bullet">
									<li>
										{{ phrase('created') }}:
										<xf:date time="{$client.creation_date}"/>
									</li>
								</ul>
							</xf:explain>

							<xf:toggle name="active[{$client.client_id}]" selected="$client.active"
								class="dataList-cell--separated" submit="true"
								tooltip="{{ phrase('enable_disable_x', {'title': $client.title}) }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($clients) }}</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="oauth_client_regenerate" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('oauth2/clients/regenerate', $client) }}" class="block" ajax="true">

	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_regenerate_following_clients_secret') }}:
				<strong><a href="{{ link('oauth2/clients/edit', $client) }}">{$client.title}</a></strong>
				<span>{{ phrase('any_applications_using_old_client_secret_value_will_not_function') }}</span>
			</xf:inforow>
		</div>

		<xf:submitrow rowtype="simple" submit="{{ phrase('regenerate_client_secret') }}"/>
	</div>

</xf:form>]]></template>
  <template type="admin" title="oauth_client_view" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('oauth2_client_details') }} {$client.title}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('client_secret') }}" rowtype="button">
				<code class="js-clientSecretCopyTarget">{$client.client_secret}</code>
				<xf:button icon="copy"
					data-xf-init="copy-to-clipboard"
					data-copy-target=".js-clientSecretCopyTarget"
					data-success="{{ phrase('client_secret_copied_to_clipboard') }}"
					class="button--link is-hidden" />
			</xf:formrow>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="option_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$option.isInsert()">
	<xf:title>{{ phrase('add_option') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_option:') }} {$option.title}</xf:title>
</xf:if>

<xf:if is="$group">
	<xf:breadcrumb href="{{ link('options/groups', $group) }}">{$group.title}</xf:breadcrumb>
</xf:if>

<xf:pageaction if="$option.isUpdate()">
	<xf:button href="{{ link('options/delete', $option, {'_xfRedirect': $redirect}) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('options/save', $option) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">

			<xf:textboxrow name="option_id" value="{$option}"
				label="{{ phrase('option_id') }}"
				hint="{{ phrase('a_z_0_9_and_underscore_only') }}"
				dir="ltr" />

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$option.addon_id}" />

			<hr class="formRowSep" />

			<xf:textboxrow name="title" value="{$option}"
				label="{{ phrase('title') }}" />

			<xf:textarearow name="explain" value="{$option}" autosize="true"
				label="{{ phrase('explanation') }}"
				hint="{{ phrase('you_may_use_html') }}" />

			<hr class="formRowSep" />

			<xf:selectrow name="edit_format" value="{$option}"
				label="{{ phrase('edit_format') }}">

				<xf:option value="textbox">{{ phrase('text_box') }}</xf:option>
				<xf:option value="spinbox">{{ phrase('number_box') }}</xf:option>
				<xf:option value="onoff">{{ phrase('on_off_check_box') }}</xf:option>
				<xf:option value="onofftextbox">{{ phrase('on_off_check_box_with_text_box') }}</xf:option>
				<xf:option value="radio">{{ phrase('radio_buttons') }}</xf:option>
				<xf:option value="select">{{ phrase('select_menu') }}</xf:option>
				<xf:option value="checkbox">{{ phrase('check_boxes') }}</xf:option>
				<xf:option value="template">{{ phrase('named_template') }}</xf:option>
				<xf:option value="callback">{{ phrase('php_callback') }}</xf:option>
				<xf:option value="username">{{ phrase('user_name_input') }}</xf:option>
			</xf:selectrow>

			<xf:textarearow name="edit_format_params" value="{$option}" autosize="true"
				label="{{ phrase('format_parameters') }}"
				code="true" />

			<hr class="formRowSep" />

			<xf:selectrow name="data_type" value="{{ $option.data_type ?: 'string' }}"
				label="{{ phrase('data_type') }}">

				<xf:option value="boolean">{{ phrase('boolean') }}</xf:option>
				<xf:option value="string">{{ phrase('string') }}</xf:option>
				<xf:option value="integer">{{ phrase('integer') }}</xf:option>
				<xf:option value="unsigned_integer">{{ phrase('unsigned_integer') }}</xf:option>
				<xf:option value="positive_integer">{{ phrase('positive_integer') }}</xf:option>
				<xf:option value="numeric">{{ phrase('numeric') }}</xf:option>
				<xf:option value="unsigned_numeric">{{ phrase('unsigned_numeric') }}</xf:option>
				<xf:option value="array">{{ phrase('array') }}</xf:option>
			</xf:selectrow>

			<xf:textarearow name="default_value" value="{{ $option.data_type == 'array' ? $option.default_value|json : $option.default_value }}"
				autosize="true"
				label="{{ phrase('default_value') }}"
				code="true" />

			<xf:textarearow name="sub_options" autosize="true"
				value="{$option.sub_options|join('
')}"
				label="{{ phrase('array_sub_options') }}"
				dir="ltr" />

			<xf:formrow rowtype="input"
				label="{{ phrase('validation_callback') }}">
				<xf:macro id="helper_callback_fields::callback_fields"
					arg-namePrefix="validation"
					arg-data="{$option}" />
			</xf:formrow>

			<hr class="formRowSep" />

			<xf:checkboxrow listclass="listColumns"
				label="{{ phrase('display_in_groups') }}">

				<xf:foreach loop="$groups" value="$group">
					<xf:option name="relations[{$group.group_id}][selected]" selected="{$relations.{$group.group_id}} !== null"
						label="{$group.title}" data-hide="true">

						<xf:macro id="display_order_macros::input"
							arg-name="relations[{$group.group_id}][display_order]"
							arg-value="{$relations.{$group.group_id}|default(1)}" />
					</xf:option>
				</xf:foreach>

			</xf:checkboxrow>

			<hr class="formRowSep" />

			<xf:checkboxrow>
				<xf:option name="advanced" selected="{$option.advanced}"
					label="{{ phrase('show_in_advanced_mode_only') }}"
					hint="{{ phrase('option_advanced_mode_hint') }}" />
			</xf:checkboxrow>
		</div>
		<xf:submitrow icon="save" sticky="true" />
	</div>
	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="admin" title="option_email_dkim_confirm" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('finish_setting_up_dkim_email_authentication') }}</xf:title>

<xf:form action="{{ link('options/email-dkim-verify', $option) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow>{{ phrase('to_finish_setting_up_dkim_email_authentication_you_will_need_to_add_new') }}</xf:inforow>

			<xf:formrow label="{{ phrase('type') }}">TXT</xf:formrow>

			<xf:formrow label="{{ phrase('name') }}" rowtype="button">
				<div class="inputGroup">
					<xf:textbox value="{$dnsKey}" disabled="disabled" class="js-copyDnsKeyTarget" />
					<span class="inputGroup-splitter"></span>
					<xf:button icon="copy"
						data-xf-init="copy-to-clipboard"
						data-copy-target=".js-copyDnsKeyTarget"
						class="button--link is-hidden" />
				</div>
			</xf:formrow>

			<xf:formrow label="{{ phrase('value') }}" rowtype="button">
				<div class="inputGroup">
					<xf:textbox value="{$dnsValue}" disabled="disabled" class="js-copyDnsValueTarget" />
					<span class="inputGroup-splitter"></span>
					<xf:button icon="copy"
						data-xf-init="copy-to-clipboard"
						data-copy-target=".js-copyDnsValueTarget"
						class="button--link is-hidden" />
				</div>
			</xf:formrow>
		</div>
		
		<xf:submitrow submit="{{ phrase('confirm') }}" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="option_email_dkim_setup" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('setup_dkim_email_authentication') }}</xf:title>

<xf:form action="{{ link('options/email-dkim-setup', $option) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">

			<xf:textboxrow name="domain" value="{{ $option.option_value.domain ?: $domain }}"
				label="{{ phrase('domain') }}"
				explain="{{ phrase('in_most_cases_this_will_be_your_board_url_or_root_domain_minus_any') }}"
				required="required" />

		</div>
		<xf:submitrow submit="{{ phrase('proceed...') }}" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="option_email_handler_google" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{$option.title}</xf:title>

<xf:form action="{{ link('options/email-handler-oauth', $option) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow>
				{{ phrase('email_transport_google_setup_explain:') }}
				<div><code>{$redirectUri}</code></div>
			</xf:inforow>

			<xf:textboxrow name="client_id" value="{$option.option_value.oauth.client_id}"
				label="{{ phrase('client_id') }}"
				explain="{{ phrase('google_client_id_explain') }}"
				required="required" />

			<xf:textboxrow name="client_secret"
				label="{{ phrase('client_secret') }}"
				explain="{{ phrase('secret_that_corresponds_to_your_google_client_id_above') }}"
				required="required" />

			<xf:radiorow label="{{ phrase('connection_type') }}" name="type" value="{{ $option.option_value.type ?: 'pop3' }}">
				<xf:option value="pop3">POP3</xf:option>
				<xf:option value="imap">IMAP</xf:option>
			</xf:radiorow>

			<xf:inforow>
				{{ phrase('continuing_will_redirect_you_to_google_to_confirm_account_you_want_to') }}
			</xf:inforow>
		</div>
		<xf:submitrow sticky="true" submit="{{ phrase('continue') }}" />
	</div>
	<xf:hiddenval name="oauth_provider">google</xf:hiddenval>
</xf:form>]]></template>
  <template type="admin" title="option_email_handler_microsoft" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{$option.title}</xf:title>

<xf:form action="{{ link('options/email-handler-oauth', $option) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow>
				{{ phrase('you_will_need_to_navigate_to_microsoft_azure_portal_and_register:') }}
				<div><code>{$redirectUri}</code></div>
			</xf:inforow>

			<xf:textboxrow name="client_id" value="{$option.option_value.oauth.client_id}"
				label="{{ phrase('client_id') }}"
				explain="{{ phrase('you_can_get_client_id_via_microsoft_azure_portal') }}"
				required="required" />

			<xf:textboxrow name="client_secret"
				label="{{ phrase('client_secret') }}"
				explain="{{ phrase('secret_that_corresponds_to_your_azure_client_id_above') }}"
				required="required" />

			<xf:radiorow label="{{ phrase('connection_type') }}" name="type" value="{{ $option.option_value.type ?: 'pop3' }}">
				<xf:option value="pop3">POP3</xf:option>
				<xf:option value="imap">IMAP</xf:option>
			</xf:radiorow>

			<xf:inforow>
				{{ phrase('continuing_will_redirect_you_to_microsoft_to_confirm_account_you_want') }}
			</xf:inforow>
		</div>
		<xf:submitrow sticky="true" submit="{{ phrase('continue') }}" />
	</div>
	<xf:hiddenval name="oauth_provider">microsoft</xf:hiddenval>
</xf:form>]]></template>
  <template type="admin" title="option_email_handler_server" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:title>{$option.title}</xf:title>

<xf:form action="{{ link('options/email-handler-server', $option) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('connection_type') }}">
				{$type|to_upper}
				<xf:hiddenval name="type" value="{$type}" />
			</xf:formrow>

			<xf:set var="$values" value="{{ $type == $option.option_value.type ? $option.option_value : [] }}" />

			<xf:formrow label="{{ phrase('host') }}" rowtype="input">
				<div class="inputGroup">
					<xf:textbox name="host" value="{$values.host}" placeholder="{{ phrase('host') }}" size="40" required="required" />
					<span class="inputGroup-text">:</span>
					<xf:textbox name="port" value="{$values.port}" placeholder="{{ phrase('port') }}" size="5" required="required" />
				</div>
			</xf:formrow>

			<xf:formrow label="{{ phrase('user_name_and_password') }}" rowtype="input">
				<div class="inputGroup">
					<xf:textbox name="username" value="{$values.username}" placeholder="{{ phrase('user_name') }}" autocomplete="off" size="15" />
					<span class="inputGroup-splitter"></span>
					<xf:textbox name="password" placeholder="{{ phrase('password') }}" autocomplete="new-password" type="password" size="15" />
				</div>
			</xf:formrow>

			<xf:radiorow label="{{ phrase('encryption') }}" name="encryption" value="{{ $values.encryption ?: '' }}"
				explain="{{ phrase('openssl_php_extension_required_tls_or_ssl_encryption') }}">

				<xf:option value="">{{ phrase('none') }}</xf:option>
				<xf:option value="tls" disabled="{{ !in_array('tls', $transports) }}">STARTTLS</xf:option>
				<xf:option value="ssl" disabled="{{ !in_array('ssl', $transports) }}">SSL/TLS</xf:option>
			</xf:radiorow>
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="option_email_handler_setup" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('email_handler_setup') }}</xf:title>

<xf:form action="{{ link('options/email-handler-setup', $option) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:radiorow label="{$option.title}" name="new_type"
				value="{{ $option.option_value.enabled ? 'unchanged' : 'disabled' }}">

				<xf:option value="disabled">{{ phrase('disabled') }}</xf:option>
				<xf:if is="$option.option_value.enabled">
					<xf:set var="$unchangedHint">
						<ul class="listInline listInline--bullet listInline--selfInline">
							<li>{$option.option_value.type|to_upper}</li>
							<li>{$option.option_value.host}:{$option.option_value.port}</li>
							<xf:if is="$option.option_value.username">
								<li>{$option.option_value.username}</li>
							</xf:if>
							<xf:if is="$option.option_value.oauth AND $option.option_value.oauth.provider == 'Google'">
								<li>{{ phrase('google_oauth') }}</li>
							</xf:if>
						</ul>
					</xf:set>
					<xf:option value="unchanged" label="{{ phrase('do_not_change') }}" hint="{$unchangedHint}" />
				</xf:if>
				<xf:option value="pop3">POP3</xf:option>
				<xf:option value="imap">IMAP</xf:option>
				<xf:option value="google">{{ phrase('google_oauth') }}</xf:option>
				<xf:option value="microsoft">{{ phrase('microsoft_oauth') }}</xf:option>
			</xf:radiorow>
		</div>
		<xf:submitrow submit="{{ phrase('continue') }}" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="option_email_transport_google" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{$option.title}</xf:title>

<xf:form action="{{ link('options/email-transport-oauth', $option) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow>
				{{ phrase('email_transport_google_setup_explain:') }}
				<div><code>{$redirectUri}</code></div>
			</xf:inforow>

			<xf:textboxrow name="client_id" value="{$option.option_value.oauth.client_id}"
				label="{{ phrase('client_id') }}"
				explain="{{ phrase('google_client_id_explain') }}"
				required="required" />

			<xf:textboxrow name="client_secret"
				label="{{ phrase('client_secret') }}"
				explain="{{ phrase('secret_that_corresponds_to_your_google_client_id_above') }}"
				required="required" />

			<xf:inforow>
				{{ phrase('continuing_will_redirect_you_to_google_to_confirm_account_you_want_to') }}
			</xf:inforow>
		</div>
		<xf:submitrow sticky="true" submit="{{ phrase('continue') }}" />
	</div>
	<xf:hiddenval name="oauth_provider">google</xf:hiddenval>
</xf:form>]]></template>
  <template type="admin" title="option_email_transport_microsoft" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{$option.title}</xf:title>

<xf:form action="{{ link('options/email-transport-oauth', $option) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow>
				{{ phrase('you_will_need_to_navigate_to_microsoft_azure_portal_and_register:') }}
				<div><code>{$redirectUri}</code></div>
			</xf:inforow>

			<xf:textboxrow name="client_id" value="{$option.option_value.oauth.client_id}"
				label="{{ phrase('client_id') }}"
				explain="{{ phrase('you_can_get_client_id_via_microsoft_azure_portal') }}"
				required="required" />

			<xf:textboxrow name="client_secret"
				label="{{ phrase('client_secret') }}"
				explain="{{ phrase('secret_that_corresponds_to_your_azure_client_id_above') }}"
				required="required" />

			<xf:inforow>
				{{ phrase('continuing_will_redirect_you_to_microsoft_to_confirm_account_you_want') }}
			</xf:inforow>
		</div>
		<xf:submitrow sticky="true" submit="{{ phrase('continue') }}" />
	</div>
	<xf:hiddenval name="oauth_provider">microsoft</xf:hiddenval>
</xf:form>
]]></template>
  <template type="admin" title="option_email_transport_server" version_id="2030055" version_string="2.3.0 Release Candidate 5"><![CDATA[<xf:title>{$option.title}</xf:title>

<xf:form action="{{ link('options/email-transport-server', $option) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('connection_type') }}">
				{$type|to_upper}
				<xf:hiddenval name="emailTransport" value="{$type}" />
			</xf:formrow>

			<xf:set var="$values" value="{{ $type == $option.option_value.emailTransport ? $option.option_value : [] }}" />

			<xf:formrow label="{{ phrase('host') }}" rowtype="input">
				<div class="inputGroup">
					<xf:textbox name="smtpHost" value="{$values.smtpHost}" placeholder="{{ phrase('host') }}" size="40" required="required" />
					<span class="inputGroup-text">:</span>
					<xf:textbox name="smtpPort" value="{$values.smtpPort}" placeholder="{{ phrase('port') }}" size="5" required="required" />
				</div>
			</xf:formrow>

			<xf:radiorow label="{{ phrase('authentication') }}" name="smtpAuth" value="{{ $values.smtpAuth ?: 'none' }}">
				<xf:option value="none">{{ phrase('none') }}</xf:option>
				<xf:option value="login" label="{{ phrase('user_name_and_password') }}">
					<xf:dependent>
						<div class="inputGroup">
							<xf:textbox name="smtpLoginUsername" value="{$values.smtpLoginUsername}" placeholder="{{ phrase('user_name') }}" size="15" />
							<span class="inputGroup-splitter"></span>
							<xf:textbox name="smtpLoginPassword" placeholder="{{ phrase('password') }}" type="password" size="15" />
						</div>
					</xf:dependent>
				</xf:option>
			</xf:radiorow>

			<xf:checkboxrow>
				<xf:option name="smtpSsl" checked="{$values.smtpSsl}"
					label="{{ phrase('use_ssl_tls') }}"
					hint="{{ phrase('email_transport_smtp_ssl_hint') }}" />
			</xf:checkboxrow>
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="option_email_transport_setup" version_id="2030055" version_string="2.3.0 Release Candidate 5"><![CDATA[<xf:title>{{ phrase('email_transport_setup') }}</xf:title>

<xf:form action="{{ link('options/email-transport-setup', $option) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:radiorow label="{$option.title}" name="new_type" value="unchanged">
				<xf:set var="$unchangedHint">
					<ul class="listInline listInline--bullet listInline--selfInline">
						<li>{{ $option.option_value.emailTransport == 'sendmail' ? phrase('php_built_in_mail_system') : $option.option_value.emailTransport|to_upper }}</li>
						<xf:if is="$option.option_value.smtpHost">
							<li>{$option.option_value.smtpHost}:{$option.option_value.smtpPort}</li>
						</xf:if>
						<xf:if is="$option.option_value.smtpLoginUsername">
							<li>{$option.option_value.smtpLoginUsername}</li>
						</xf:if>
						<xf:if is="$option.option_value.smtpSsl">
							<li>SSL/TLS</li>
						</xf:if>
						<xf:if is="$option.option_value.oauth AND $option.option_value.oauth.provider == 'Google'">
							<li>{{ phrase('google_oauth') }}</li>
						</xf:if>
						<xf:if is="$option.option_value.oauth AND $option.option_value.oauth.provider == 'Microsoft'">
							<li>{{ phrase('microsoft_oauth') }}</li>
						</xf:if>
					</ul>
				</xf:set>

				<xf:option value="unchanged" label="{{ phrase('do_not_change') }}" hint="{$unchangedHint}" />
				<xf:option value="sendmail" label="{{ phrase('php_built_in_mail_system') }}" />
				<xf:option value="smtp" label="SMTP" />
				<xf:option value="google">{{ phrase('google_oauth') }}</xf:option>
				<xf:option value="microsoft">{{ phrase('microsoft_oauth') }}</xf:option>
			</xf:radiorow>
		</div>
		<xf:submitrow submit="{{ phrase('continue') }}" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="option_group_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$group.isInsert()">
	<xf:title>{{ phrase('add_option_group') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_option_group:') }} {$group.title}</xf:title>
</xf:if>

<xf:if is="$group.isUpdate()">
	<xf:breadcrumb href="{{ link('options/groups', $group) }}">{$group.title}</xf:breadcrumb>

	<xf:pageaction>
		<xf:button href="{{ link('options/groups/delete', $group) }}" icon="delete" overlay="true" />
	</xf:pageaction>
</xf:if>

<xf:form action="{{ link('options/groups/save', $group) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">

			<xf:textboxrow name="group_id" value="{$group.group_id}"
				label="{{ phrase('group_id') }}"
				dir="ltr" />

			<hr class="formRowSep" />

			<xf:textboxrow name="title" value="{$group}"
				label="{{ phrase('title') }}" />

			<xf:textarearow name="description" value="{$group}"
				autosize="true"
				label="{{ phrase('description') }}"
				hint="{{ phrase('you_may_use_html') }}" />

			<xf:textboxrow name="icon" value="{$group.icon}"
				label="{{ phrase('icon') }}" />

			<hr class="formRowSep" />

			<xf:macro id="display_order_macros::row" arg-value="{$group}" />

			<xf:checkboxrow>
				<xf:option name="advanced" selected="{$group.advanced}">{{ phrase('show_in_advanced_mode_only') }}</xf:option>
				<xf:option name="debug_only" selected="{$group.debug_only}">{{ phrase('display_this_group_in_debug_mode_only') }}</xf:option>
			</xf:checkboxrow>

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$group.addon_id}" />
		</div>

		<xf:submitrow icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="option_group_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('options') }}</xf:title>

<xf:pageaction>
	<xf:if is="$canAdd">
		<xf:button href="{{ link('options/groups/add') }}" icon="add">{{ phrase('add_option_group') }}</xf:button>
	</xf:if>
	<xf:button class="acp--simple" data-xf-init="admin-toggle-advanced" data-value="1" data-url="{{ link('account/toggle-advanced') }}">{{ phrase('show_advanced_options') }}</xf:button>
</xf:pageaction>

<div class="block">
	<div class="block-outer">
		<xf:macro id="filter_macros::quick_filter" arg-key="options" arg-class="block-outer-opposite" />
	</div>
	<div class="block-container">
		<div class="block-body">
			<xf:datalist>
				<xf:foreach loop="$groups" value="$group">
					<xf:datarow
						icon="{{ $group.icon ?: 'fa-cogs' }}"
						label="{$group.title}"
						href="{{ link('options/groups', $group) }}"
						explain="{$group.description}"
						delete="{{ $group.canEdit() ? link('options/groups/delete', $group) : false }}"
						hash="{$group.group_id}"
						rowclass="{{ $group.advanced ? 'acp--advanced' : '' }}">

						<xf:if is="$group.canEdit()">
							<xf:action href="{{ link('options/groups/edit', $group) }}">{{ phrase('edit') }}</xf:action>
						</xf:if>
					</xf:datarow>
				</xf:foreach>
			</xf:datalist>
		</div>
		<div class="block-footer">
			<span class="block-footer-counter">{{ display_totals($groups) }}</span>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="option_group_menu" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<h3 class="menu-header">{{ phrase('options') }}</h3>
<ul class="listPlain listColumns listColumns--3 listColumns--together">
	<xf:foreach loop="$groups" key="$groupId" value="$group">
		<li class="optionGroup {{ $group.advanced ? 'acp--advanced' : '' }}">
			<a class="menu-linkRow" href="{{ link('options/groups', {'group_id': $groupId}) }}">
				<xf:if is="$group.icon">
					<xf:fa icon="{$group.icon} fa-fw" />
				<xf:else />
					<xf:fa icon="fa-cogs fa-fw" />
				</xf:if>
				{$group.title}
			</a>
		</li>
	</xf:foreach>
</ul>
<hr class="menu-separator menu-separator--hard">
<div class="menu-row menu-row--alt">
	<xf:checkbox>
		<xf:option
			selected="{$xf.visitor.Admin.advanced}"
			class="js-advancedModeToggle"
			label="{{ phrase('show_advanced_options') }}"
			data-xf-init="admin-toggle-advanced"
			data-url="{{ link('account/toggle-advanced') }}" />
	</xf:checkbox>
</div>]]></template>
  <template type="admin" title="option_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{$group.title}</xf:title>
<xf:h1>
	<span class="menuTrigger" data-xf-click="menu" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{$group.title}</span>
	<div class="menu menu--medium" data-menu="menu" aria-hidden="true">
		<div class="menu-content">
			<h3 class="menu-header">{{ phrase('options_groups') }}</h3>
			<div class="menu-scroller">
				<xf:foreach loop="$groups" value="$_group">
					<a href="{{ link('options/groups/', $_group) }}" class="menu-linkRow {{ $_group.group_id == $group.group_id ? 'is-selected' : '' }} {{ $_group.advanced ? 'acp--advanced' : '' }}">
						<xf:if is="$_group.icon">
							<xf:fa icon="{$_group.icon} fa-fw" />
						<xf:else />
							<xf:fa icon="fa-cogs fa-fw" />
						</xf:if>
						{$_group.title}
					</a>
				</xf:foreach>
			</div>
		</div>
	</div>
</xf:h1>
<xf:description>{$group.description}</xf:description>

<xf:pageaction><xf:trim>
	<xf:if is="$canAdd">
		<xf:button href="{{ link('options/add', null, {'group_id': $group.group_id}) }}" icon="add">{{ phrase('add_option') }}</xf:button>
	</xf:if>
	<xf:if is="$group.canEdit()">
		<xf:button href="{{ link('options/groups/edit', $group) }}" icon="edit">{{ phrase('edit_group') }}</xf:button>
	</xf:if>
</xf:trim></xf:pageaction>

<xf:macro id="option_macros::option_form_block"
	arg-group="{$group}"
	arg-options="{$group.Options}"
	arg-forceShowAdvanced="{{ false }}" />]]></template>
  <template type="admin" title="option_macros" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:macro id="option_row" arg-group="" arg-option="!" arg-includeAddOnHint="{{ true }}" arg-forceShowAdvanced="{{ false }}">
	<xf:set var="$formatParams" value="{$option.formatParams}" />
	<xf:set var="$rowClass" value="{{ ($option.advanced AND !$forceShowAdvanced) ? 'acp--advanced' : '' }}" />
	<xf:set var="$inputName"><xf:macro id="input_name" arg-id="{$option.option_id}" /></xf:set>
	<xf:set var="$listedHtml">
		<xf:macro id="listed_html" arg-id="{$option.option_id}" />
	</xf:set>
	<xf:set var="$hintHtml"><xf:trim>
		<xf:if is="$option.canEdit()">
			<xf:macro id="option_edit_link" arg-group="{$group}" arg-option="{$option}" />
		</xf:if>
		<xf:if is="$includeAddOnHint AND $group AND $option.addon_id AND $option.addon_id != $group.addon_id AND $option.addon_id != 'XF'">
			<span class="formRow-hint-featured">
				<a href="{{ link('add-ons/options', $option.AddOn) }}">{$option.AddOn.title}</a>
			</span>
		</xf:if>
	</xf:trim></xf:set>
	<xf:set var="$explainHtml">{$option.explain}</xf:set>

	<span class="u-anchorTarget" id="{$option.option_id}"></span>

	<xf:if is="$option.edit_format == 'onoff'">
		<xf:checkboxrow hint="{$hintHtml}" rowclass="{$rowClass}">
			<xf:option name="{$inputName}" value="1" selected="$option.option_value == 1">
				<xf:label>{$option.title}</xf:label>
			</xf:option>
			<xf:explain>{$explainHtml}</xf:explain>
			<xf:finalhtml>{$listedHtml}</xf:finalhtml>
		</xf:checkboxrow>
	<xf:elseif is="$option.edit_format == 'onofftextbox'" />
		<xf:checkboxrow hint="{$hintHtml}" rowclass="{$rowClass}">
			<xf:option name="{$inputName}[{$formatParams.onoff}]" value="1" selected="{$option.option_value.{$formatParams.onoff}}">
				<xf:label>{$option.title}</xf:label>
				<xf:dependent>
					<xf:if is="{$formatParams.type} == 'spinbox'">
						<xf:numberbox name="{$inputName}[{$formatParams.value}]" value="{{ $option.option_value.{$formatParams.onoff} ? $option.option_value.{$formatParams.value} : $formatParams.default|nl2nl }}" min="{$formatParams.min}" max="{$formatParams.max}" step="{$formatParams.step}" data-step="{$formatParams.stepOverride}" units="{$formatParams.units}" />
					<xf:elseif is="{$formatParams.type} == 'textarea'" />
						<xf:textarea name="{$inputName}[{$formatParams.value}]" value="{{ $option.option_value.{$formatParams.onoff} ? $option.option_value.{$formatParams.value} : $formatParams.default|nl2nl }}" maxlength="{$formatParams.maxlength}" rows="{$formatParams.rows}" autosize="true" />
					<xf:else />
						<xf:textbox name="{$inputName}[{$formatParams.value}]" value="{{ $option.option_value.{$formatParams.onoff} ? $option.option_value.{$formatParams.value} : $formatParams.default|nl2nl }}" placeholder="{$formatParams.placeholder}" maxlength="{$formatParams.maxlength}" />
					</xf:if>
				</xf:dependent>
			</xf:option>
			<xf:explain>{$explainHtml}</xf:explain>
			<xf:finalhtml>{$listedHtml}</xf:finalhtml>
		</xf:checkboxrow>
	<xf:elseif is="$option.edit_format == 'radio'" />
		<xf:radiorow name="{$inputName}" value="{$option.option_value}" rowclass="{$rowClass}">
			<xf:options source="{$formatParams}" />
			<xf:label>{$option.title}</xf:label>
			<xf:hint>{$hintHtml}</xf:hint>
			<xf:explain>{$explainHtml}</xf:explain>
			<xf:finalhtml>{$listedHtml}</xf:finalhtml>
		</xf:radiorow>
	<xf:elseif is="$option.edit_format == 'select'" />
		<xf:selectrow name="{$inputName}" value="{$option.option_value}" rowclass="{$rowClass}">
			<xf:options source="{$formatParams}" />
			<xf:label>{$option.title}</xf:label>
			<xf:hint>{$hintHtml}</xf:hint>
			<xf:explain>{$explainHtml}</xf:explain>
			<xf:finalhtml>{$listedHtml}</xf:finalhtml>
		</xf:selectrow>
	<xf:elseif is="$option.edit_format == 'checkbox'" />
		<xf:checkboxrow rowclass="{$rowClass}">
			<xf:foreach loop="$formatParams" key="$name" value="$text">
				<xf:option name="{$inputName}[{$name}]" selected="{$option.option_value.{$name}}">{$text}</xf:option>
			</xf:foreach>
			<xf:label>{$option.title}</xf:label>
			<xf:hint>{$hintHtml}</xf:hint>
			<xf:explain>{$explainHtml}</xf:explain>
			<xf:finalhtml>{$listedHtml}</xf:finalhtml>
		</xf:checkboxrow>
	<xf:elseif is="$option.edit_format == 'spinbox'" />
		<xf:numberboxrow name="{$inputName}" value="{$option.option_value}" rowclass="{$rowClass}"
			min="{$formatParams.min}" max="{$formatParams.max}" step="{$formatParams.step}" data-step="{$formatParams.stepOverride}" units="{$formatParams.units}"
			label="{$option.title}"
			hint="{$hintHtml}"
			explain="{$explainHtml}"
			finalhtml="{$listedHtml}" />
	<xf:elseif is="$option.edit_format == 'callback'" />
		<xf:set var="$includeHtml">{{ $option.renderDisplayCallback({
				'explainHtml': $explainHtml,
				'hintHtml': $hintHtml,
				'listedHtml': $listedHtml,
				'inputName': $inputName,
				'rowClass': $rowClass
			})|raw }}</xf:set>
		<xf:if is="$includeHtml is empty">
			<xf:formrow rowclass="{$rowClass}">
				<div class="blockMessage blockMessage--error blockMessage--iconic">
					DEBUG: {{ $option.getDisplayCallbackError() }}
					{$hintHtml}
				</div>
			</xf:formrow>
		<xf:else />
			{$includeHtml}
		</xf:if>
	<xf:elseif is="$option.edit_format == 'template'" />
		<xf:set var="$includeHtml"><xf:include template="{$formatParams.template}" /></xf:set>
		<xf:if is="$includeHtml is empty">
			<xf:formrow rowclass="{$rowClass}">
				<div class="blockMessage blockMessage--error blockMessage--iconic">
					DEBUG: {{ phrase('template_x_not_found', {'template': $formatParams.template}) }}
					{$hintHtml}
				</div>

			</xf:formrow>
		<xf:else />
			{$includeHtml}
		</xf:if>
	<xf:elseif is="$option.edit_format == 'textbox' && $formatParams.rows && $formatParams.rows > 1" />
		<xf:textarearow name="{$inputName}" value="{$option.option_value}" rows="{$formatParams.rows}" autosize="true" class="{$formatParams.class}" rowclass="{$rowClass}">
			<xf:label>{$option.title}</xf:label>
			<xf:hint>{$hintHtml}</xf:hint>
			<xf:explain>{$explainHtml}</xf:explain>
			<xf:finalhtml>{$listedHtml}</xf:finalhtml>
		</xf:textarearow>
	<xf:elseif is="$option.edit_format == 'textbox'" />
		<xf:textboxrow name="{$inputName}" value="{$option.option_value}" type="{$formatParams.type}" class="{$formatParams.class}" rowclass="{$rowClass}">
			<xf:label>{$option.title}</xf:label>
			<xf:hint>{$hintHtml}</xf:hint>
			<xf:explain>{$explainHtml}</xf:explain>
			<xf:finalhtml>{$listedHtml}</xf:finalhtml>
		</xf:textboxrow>
	<xf:elseif is="$option.edit_format == 'username'" />
		<xf:set var="$singleUsername" value="{{ true }}" />
		<xf:if is="$option.isDataTypeNumeric()">
			<xf:set var="$user" value="{$xf.app.em.find('XF:User', $option.option_value)}" />
			<xf:set var="$value" value="{$user.username}" />
		<xf:elseif is="$option.data_type == 'array'" />
			<xf:set var="$users" value="{{ $xf.app.em.getRepository('XF:User').getUsersByIdsOrdered(is_array($option.option_value) ? $option.option_value : []) }}" />
			<xf:set var="$value" value="{$users.pluckNamed('username')|join(', ')}" />
			<xf:set var="$singleUsername" value="{{ false }}" />
		<xf:else />
			<xf:set var="$value" value="{$option.option_value}" />
		</xf:if>

		<xf:if is="$singleUsername">
			<xf:textboxrow name="{$inputName}" value="{$value}" ac="single" rowclass="{$rowClass}"
				maxlength="{{ max_length($xf.visitor, 'username') }}">
				<xf:label>{$option.title}</xf:label>
				<xf:hint>{$hintHtml}</xf:hint>
				<xf:explain>{$explainHtml}</xf:explain>
				<xf:finalhtml>{$listedHtml}</xf:finalhtml>
			</xf:textboxrow>
		<xf:else />
			<xf:tokeninputrow name="{$inputName}" value="{$value}" href="{{ link('users/find') }}" rowclass="{$rowClass}"
				explain="{{ phrase('separate_names_with_comma') }}">

				<xf:label>{$option.title}</xf:label>
				<xf:hint>{$hintHtml}</xf:hint>
				<xf:explain>{$explainHtml}</xf:explain>
				<xf:finalhtml>{$listedHtml}</xf:finalhtml>
			</xf:tokeninputrow>
		</xf:if>
	<xf:else />
		<xf:formrow>
			<div class="blockMessage blockMessage--error blockMessage--iconic">
				DEBUG: {{ phrase('unknown_edit_format_x', {'format': $options.edit_format}) }}
				{$hintHtml}
			</div>
		</xf:formrow>
	</xf:if>
</xf:macro>

<xf:macro id="input_name" arg-id="!">options[{$id}]</xf:macro>

<xf:macro id="listed_html" arg-id="!"><xf:hiddenval name="options_listed[]">{$id}</xf:hiddenval></xf:macro>

<xf:macro id="option_edit_link" arg-group="" arg-option="!">
	<xf:if is="$group">
		{{ $option.advanced ? '(adv)' : '' }} {$option.option_id} {$option.Relations.{$group.group_id}.display_order|parens}
	</xf:if>
	<a href="{{ link('options/edit', $option, $group ? {'group_id': $group.group_id} : {}) }}"
		title="{$option.option_id}{{ $group ? ' / ' . {$option.Relations.{$group.group_id}.display_order} : '' }}"
		data-xf-init="tooltip"
	>{{ phrase('edit') }}</a>
</xf:macro>

<xf:macro id="option_form" arg-group="" arg-options="!" arg-formClass="" arg-forceShowAdvanced="{{ true }}">
	<xf:form action="{{ link('options/update') }}" ajax="true" class="{$formClass}">
		<xf:foreach loop="$options" value="$option">
			<xf:macro  name="option_row" arg-group="{$group}" arg-option="{$option}" arg-forceShowAdvanced="{$forceShowAdvanced}" />
		</xf:foreach>
		<xf:submitrow sticky="true" icon="save" />
	</xf:form>
</xf:macro>

<xf:macro id="option_form_block" arg-group="" arg-options="!" arg-containerBeforeHtml="" arg-forceShowAdvanced="{{ true }}">

	<xf:set var="$hundred" value="0" />

	<xf:if is="$options is not empty">
		<xf:form action="{{ link('options/update') }}" ajax="true" class="block">
			<div class="block-container">
				{$containerBeforeHtml|raw}
				<div class="block-body">
					<xf:foreach loop="$options" value="$option">

						<xf:if is="$group">
							<xf:set var="$curHundred" value="{{ floor($option.Relations.{$group.group_id}.display_order / 100) }}" />
							<xf:if is="{{ $curHundred > $hundred }}">
								<xf:set var="$hundred" value="{$curHundred}" />
								<hr class="formRowSep" />
							</xf:if>
						</xf:if>

						<xf:macro id="option_row" arg-group="{$group}" arg-option="{$option}" arg-forceShowAdvanced="{$forceShowAdvanced}" />
					</xf:foreach>
				</div>
				<xf:submitrow sticky="true" icon="save" />
			</div>

			<xf:if is="!$forceShowAdvanced">
				<xf:set var="$advancedCount" value="{{ 0 }}" />
				<xf:foreach loop="$options" value="$option" if="$option.advanced"><xf:set var="$advancedCount" value="{{ $advancedCount + 1 }}" /></xf:foreach>
				<xf:if is="$advancedCount > 0">
					<div class="block-outer block-outer--after acp--simple">
						<div class="block-outer-middle block-outer-hint">
							{{ phrase('list_contains_advanced_options_hidden') }}
							<a tabindex="0" role="button" data-xf-init="admin-toggle-advanced" data-value="1" data-url="{{ link('account/toggle-advanced') }}">{{ phrase('enable_advanced_mode') }}</a>
						</div>
					</div>
				</xf:if>
			</xf:if>
		</xf:form>
	</xf:if>
</xf:macro>]]></template>
  <template type="admin" title="option_template_activitySummaryEmail" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:checkboxrow
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option name="{$inputName}[enabled]" selected="$option.option_value.enabled" label="{$option.title}">
		<xf:dependent>
			<dl class="inputLabelPair">
				<dt><label for="{$inputName}_min">{{ phrase('start_sending_summary_email_when_user_inactive_for') }}</label></dt>
				<dd>
					<div class="inputGroup">
						<xf:numberbox name="{$inputName}[last_activity_min_days]" min="1"
							value="{{ ($option.option_value.enabled ? $option.option_value.last_activity_min_days : 14) }}"
							id="{$inputName}_min" />
						<span class="inputGroup--splitter"></span>
						<span class="inputGroup-text">{{ phrase('units_days') }}</span>
					</div>
				</dd>
			</dl>

			<dl class="inputLabelPair">
				<dt><label for="{$inputName}_freq">{{ phrase('send_summary_email_while_user_is_inactive_every') }}</label></dt>
				<dd>
					<div class="inputGroup">
						<xf:numberbox name="{$inputName}[email_frequency_days]" min="1"
							value="{{ ($option.option_value.enabled ? $option.option_value.email_frequency_days : 14) }}"
							id="{$inputName}_freq" />
						<span class="inputGroup--splitter"></span>
						<span class="inputGroup-text">{{ phrase('units_days') }}</span>
					</div>
				</dd>
			</dl>

			<dl class="inputLabelPair">
				<dt><label for="{$inputName}_max">{{ phrase('stop_sending_summary_email_when_user_inactive_for') }}</label></dt>
				<dd>
					<div class="inputGroup">
						<xf:numberbox name="{$inputName}[last_activity_max_days]" min="0"
							value="{{ ($option.option_value.enabled ? $option.option_value.last_activity_max_days : 180) }}"
							id="{$inputName}_max" />
						<span class="inputGroup--splitter"></span>
						<span class="inputGroup-text">{{ phrase('units_days') }}</span>
					</div>
				</dd>
			</dl>
		</xf:dependent>
	</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="option_template_advancedEmailHandler" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:formrow
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	rowclass="{$rowClass}">

	<xf:if is="$option.option_value.enabled">
		<dl class="pairs pairs--columns pairs--fixedSmall">
			<dt>{{ phrase('connection_type') }}</dt>
			<dd>
				{$option.option_value.type|to_upper}
				<xf:if is="$option.option_value.oauth AND $option.option_value.oauth.provider == 'Google'">
					{{ phrase('google_oauth')|parens }}
				</xf:if>
				<xf:if is="$option.option_value.oauth AND $option.option_value.oauth.provider == 'XF:Service\MicrosoftEmail'">
					{{ phrase('microsoft_oauth')|parens }}
				</xf:if>
			</dd>
		</dl>
		<dl class="pairs pairs--columns pairs--fixedSmall">
			<dt>{{ phrase('host') }}</dt>
			<dd>{$option.option_value.host}:{$option.option_value.port}</dd>
		</dl>

		<xf:if is="$option.option_value.username">
			<dl class="pairs pairs--columns pairs--fixedSmall">
				<dt>{{ phrase('user_name') }}</dt>
				<dd>{$option.option_value.username}</dd>
			</dl>
		</xf:if>

		<xf:if is="$option.option_value.encryption">
			<dl class="pairs pairs--columns pairs--fixedSmall">
				<dt>{{ phrase('encryption') }}</dt>
				<dd>{$option.option_value.encryption|to_upper}</dd>
			</dl>
		</xf:if>
	</xf:if>

	<div class="u-inputSpacer">
		<xf:button href="{{ link('options/email-handler-setup', $option) }}" data-xf-click="overlay">
			{{ $option.option_value.enabled ? phrase('change') : phrase('enable') }}
		</xf:button>
	</div>
</xf:formrow>]]></template>
  <template type="admin" title="option_template_advancedEmailTransport" version_id="2030055" version_string="2.3.0 Release Candidate 5"><![CDATA[<xf:formrow
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	rowclass="{$rowClass}">

	<xf:if is="$option.option_value.emailTransport == 'sendmail'">
		<div>{{ phrase('php_built_in_mail_system') }}</div>
	<xf:else />
		<dl class="pairs pairs--columns pairs--fixedSmall">
			<dt>{{ phrase('connection_type') }}</dt>
			<dd>
				{$option.option_value.emailTransport|to_upper}
				<xf:if is="$option.option_value.oauth AND $option.option_value.oauth.provider == 'Google'">
					{{ phrase('google_oauth')|parens }}
				</xf:if>
				<xf:if is="$option.option_value.oauth AND $option.option_value.oauth.provider == 'XF:Service\MicrosoftEmail'">
					{{ phrase('microsoft_oauth')|parens }}
				</xf:if>
			</dd>
		</dl>

		<dl class="pairs pairs--columns pairs--fixedSmall">
			<dt>{{ phrase('host') }}</dt>
			<dd>{$option.option_value.smtpHost}:{$option.option_value.smtpPort}</dd>
		</dl>

		<xf:if is="$option.option_value.smtpLoginUsername">
			<dl class="pairs pairs--columns pairs--fixedSmall">
				<dt>{{ phrase('user_name') }}</dt>
				<dd>{$option.option_value.smtpLoginUsername}</dd>
			</dl>
		</xf:if>

		<xf:if is="$option.option_value.smtpSsl">
			<dl class="pairs pairs--columns pairs--fixedSmall">
				<dt>{{ phrase('use_ssl_tls') }}</dt>
				<dd>{{ phrase('yes') }}</dd>
			</dl>
		</xf:if>
	</xf:if>

	<div class="u-inputSpacer">
		<xf:button href="{{ link('options/email-transport-setup', $option) }}" data-xf-click="overlay">
			{{ phrase('change') }}
		</xf:button>
	</div>
</xf:formrow>]]></template>
  <template type="admin" title="option_template_allowVideoUploads" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:checkboxrow
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option name="{$inputName}[enabled]" selected="$option.option_value.enabled" label="{$option.title}">
		<xf:dependent>
			<div class="inputGroup">
				<xf:numberbox name="{$inputName}[size]" min="1" max="{$max}"
					value="{{ ($option.option_value.enabled ? $option.option_value.size : $xf.options.attachmentMaxFileSize) }}" />
				<span class="inputGroup--splitter"></span>
				<span class="inputGroup-text">{{ phrase('units_kb') }}</span>
			</div>
		</xf:dependent>
	</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="option_template_attachmentMaxDimensions" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:formrow rowtype="input"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<div class="inputGroup inputGroup--numbers">
		<xf:numberbox name="{$inputName}[width]" min="0" required="{{ false }}" value="{$option.option_value.width}" placeholder="{{ phrase('width') }}" />
		<span class="inputGroup-text">x</span>
		<xf:numberbox name="{$inputName}[height]" min="0" required="{{ false }}" value="{$option.option_value.height}" placeholder="{{ phrase('height') }}" />
		<span class="inputGroup-text">{{ phrase('units_pixels') }}</span>
	</div>
</xf:formrow>]]></template>
  <template type="admin" title="option_template_autoEmbedMedia" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:radiorow name="{$inputName}[embedType]" value="{$option.option_value.embedType}"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option value="0" label="{{ phrase('do_not_auto_embed_media_links') }}" />
	<xf:option value="1" label="{{ phrase('auto_embed_media_links') }}" />
	<xf:option value="2" label="{{ phrase('auto_embed_media_and_add_link_in_this_bb_code') }}">
		<xf:dependent>
			<xf:textbox name="{$inputName}[linkBbCode]" value="{$option.option_value.linkBbCode}" size="30" code="true" />
			<dfn class="inputChoices-explain">{{ phrase('include_url_token') }}</dfn>
		</xf:dependent>
	</xf:option>
</xf:radiorow>]]></template>
  <template type="admin" title="option_template_automatedEmailHandler" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:checkboxrow
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option name="{$inputName}[enabled]" value="1" selected="$option.option_value.enabled"
		label="{{ phrase('enable_automated_email_handler') }}" data-hide="true">
		<xf:dependent>
			<div class="inputChoices-spacer">{{ phrase('connection_type') }}</div>
			<xf:radio name="{$inputName}[type]" value="{{ $option.option_value.type ? $option.option_value.type : 'pop3' }}">
				<xf:option value="pop3">POP3</xf:option>
				<xf:option value="imap">IMAP</xf:option>
			</xf:radio>

			<div class="inputChoices-spacer">{{ phrase('host') }}</div>
			<div class="inputGroup">
				<xf:textbox name="{$inputName}[host]" value="{$option.option_value.host}" placeholder="{{ phrase('host') }}" size="40" id="{$inputName}_host" />
				<span class="inputGroup-text">:</span>
				<xf:textbox name="{$inputName}[port]" value="{$option.option_value.port}" placeholder="{{ phrase('port') }}" size="5" />
			</div>

			<div class="inputChoices-spacer">{{ phrase('user_name_and_password') }}</div>
			<div class="inputGroup">
				<xf:textbox name="{$inputName}[username]" value="{$option.option_value.username}" placeholder="{{ phrase('user_name') }}" size="15" id="{$inputName}_username" />
				<span class="inputGroup-splitter"></span>
				<xf:textbox name="{$inputName}[password]" value="{$option.option_value.password}" type="password" size="15" />
			</div>

			<div class="inputChoices-spacer">{{ phrase('encryption') }}</div>
			<xf:radio name="{$inputName}[encryption]" value="{{ $option.option_value.encryption ? $option.option_value.encryption : '' }}"
				explain="{{ phrase('openssl_php_extension_required_tls_or_ssl_encryption') }}">
				<xf:option>{{ phrase('none') }}</xf:option>
				<xf:option value="tls">STARTTLS</xf:option>
				<xf:option value="ssl">SSL/TLS</xf:option>
			</xf:radio>
		</xf:dependent>
	</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="option_template_captcha" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:set var="$extraKeysInput"><xf:macro id="option_macros::input_name" arg-id="extraCaptchaKeys" /></xf:set>
<xf:radiorow name="{$inputName}" value="{$option.option_value}"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	rowclass="{$rowClass}">

	<xf:option value="">{{ phrase('none') }}</xf:option>

	<!--[XF:captcha_after_none]-->

	<xf:option value="HCaptcha" data-hide="true">
		<xf:label>{{ phrase('use_hcaptcha') }}</xf:label>
		<xf:hint>{{ phrase('hcaptcha_config_hint') }}</xf:hint>
		<xf:dependent>
			<div>{{ phrase('site_key:') }}</div>
			<xf:textbox name="{$extraKeysInput}[hCaptchaSiteKey]" value="{$xf.options.extraCaptchaKeys.hCaptchaSiteKey}" />
		</xf:dependent>
		<xf:dependent>
			<div>{{ phrase('secret_key:') }}</div>
			<xf:textbox name="{$extraKeysInput}[hCaptchaSecretKey]" value="{$xf.options.extraCaptchaKeys.hCaptchaSecretKey}" />
		</xf:dependent>
		<xf:dependent>
			<xf:checkbox>
				<xf:option name="{$extraKeysInput}[hCaptchaInvisible]" selected="{$xf.options.extraCaptchaKeys.hCaptchaInvisible}">{{ phrase('use_invisible_hcaptcha') }}</xf:option>
			</xf:checkbox>
		</xf:dependent>
	</xf:option>

	<!--[XF:captcha_after_hcaptcha]-->

	<xf:option value="Turnstile" data-hide="true">
		<xf:label>{{ phrase('use_cloudflare_turnstile') }}</xf:label>
		<xf:hint>{{ phrase('turnstile_config_hint') }}</xf:hint>
		<xf:dependent>
			<div>{{ phrase('site_key:') }}</div>
			<xf:textbox name="{$extraKeysInput}[turnstileSiteKey]" value="{$xf.options.extraCaptchaKeys.turnstileSiteKey}" />
		</xf:dependent>
		<xf:dependent>
			<div>{{ phrase('secret_key:') }}</div>
			<xf:textbox name="{$extraKeysInput}[turnstileSecretKey]" value="{$xf.options.extraCaptchaKeys.turnstileSecretKey}" />
		</xf:dependent>
	</xf:option>

	<!--[XF:captcha_after_turnstile]-->

	<xf:option value="ReCaptcha" data-hide="true">
		<xf:label>{{ phrase('use_recaptcha') }}</xf:label>
		<xf:hint>{{ phrase('recaptcha_config_hint') }}</xf:hint>
		<xf:dependent>
			<div>{{ phrase('site_key:') }}</div>
			<xf:textbox name="{$extraKeysInput}[reCaptchaSiteKey]" value="{$xf.options.extraCaptchaKeys.reCaptchaSiteKey}" />
		</xf:dependent>
		<xf:dependent>
			<div>{{ phrase('secret_key:') }}</div>
			<xf:textbox name="{$extraKeysInput}[reCaptchaSecretKey]" value="{$xf.options.extraCaptchaKeys.reCaptchaSecretKey}" />
		</xf:dependent>
		<xf:dependent>
			<xf:checkbox>
				<xf:option name="{$extraKeysInput}[reCaptchaInvisible]" selected="{$xf.options.extraCaptchaKeys.reCaptchaInvisible}">{{ phrase('use_invisible_recaptcha') }}</xf:option>
			</xf:checkbox>
		</xf:dependent>
	</xf:option>

	<!--[XF:captcha_after_recaptcha]-->

	<xf:option value="Question">
		<xf:label>{{ phrase('use_question_captcha') }}</xf:label>
		<xf:hint><a href="{{ link('captcha-questions') }}">{{ phrase('define_your_questions') }}</a></xf:hint>
	</xf:option>
	<xf:option value="TextCaptcha" data-hide="true">
		<xf:label>{{ phrase('use_textcaptcha') }}</xf:label>
		<xf:hint><a href="https://textcaptcha.com/" target="_blank">https://textcaptcha.com/</a></xf:hint>
		<xf:dependent>
			<div>{{ phrase('api_key:') }}</div>
			<xf:textbox name="{$extraKeysInput}[textCaptchaApiKey]" value="{$xf.options.extraCaptchaKeys.textCaptchaApiKey}" />
		</xf:dependent>
	</xf:option>

	<!--[XF:captcha_after_question]-->
	<!--[XF:captcha_after_solvemedia]-->

	<xf:option value="KeyCaptcha" data-hide="true">
		<xf:label>{{ phrase('use_keycaptcha') }}</xf:label>
		<xf:hint><a href="https://www.keycaptcha.com/" target="_blank">https://www.keycaptcha.com/</a></xf:hint>
		<xf:dependent>
			<div>{{ phrase('user_id:') }}</div>
			<xf:textbox name="{$extraKeysInput}[keyCaptchaUserId]" value="{$xf.options.extraCaptchaKeys.keyCaptchaUserId}" />
		</xf:dependent>
		<xf:dependent>
			<div>{{ phrase('private_key:') }}</div>
			<xf:textbox name="{$extraKeysInput}[keyCaptchaPrivateKey]" value="{$xf.options.extraCaptchaKeys.keyCaptchaPrivateKey}" />
		</xf:dependent>
	</xf:option>

	<!--[XF:captcha_after_keycaptcha]-->

	<xf:html>
		{$listedHtml}
		<xf:macro id="option_macros::listed_html" arg-id="extraCaptchaKeys" />
	</xf:html>
</xf:radiorow>]]></template>
  <template type="admin" title="option_template_censorWords" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:formrow rowtype="input"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<ul class="listPlain inputGroup-container">
		<xf:foreach loop="$choices" key="$counter" value="$choice">
			<li class="inputGroup">
				<xf:textbox name="{$inputName}[{$counter}][word]" value="{$choice.word}" placeholder="{{ phrase('word_or_phrase') }}" size="20" />
				<span class="inputGroup-splitter"></span>
				<xf:textbox name="{$inputName}[{$counter}][replace]" value="{$choice.replace}" placeholder="{{ phrase('replacement_optional') }}" size="20" />
			</li>
		</xf:foreach>

		<li class="inputGroup" data-xf-init="field-adder" data-increment-format="{$inputName}[{counter}]">
			<xf:textbox name="{$inputName}[{$nextCounter}][word]" placeholder="{{ phrase('word_or_phrase') }}" size="20" />
			<span class="inputGroup-splitter"></span>
			<xf:textbox name="{$inputName}[{$nextCounter}][replace]" placeholder="{{ phrase('replacement_optional') }}" size="20" />
		</li>
	</ul>
</xf:formrow>]]></template>
  <template type="admin" title="option_template_collectServerStats" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:checkboxrow
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option name="{$inputName}[enabled]" selected="$option.option_value.enabled" label="{$option.title}" />
</xf:checkboxrow>

<xf:hiddenval name="{$inputName}[configured]">1</xf:hiddenval>
<xf:hiddenval name="{$inputName}[installation_id]">{$option.option_value.installation_id}</xf:hiddenval>
<xf:hiddenval name="{$inputName}[last_sent]">{$option.option_value.last_sent}</xf:hiddenval>]]></template>
  <template type="admin" title="option_template_contactUrl" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:radiorow name="{$inputName}[type]" value="{$option.option_value.type}"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option value="" label="{{ phrase('no_contact_url') }}" />

	<xf:option value="default" label="{{ phrase('default_url:') }} {{ link_type('public', 'canonical:misc/contact') }}" />

	<xf:option value="custom" label="{{ phrase('custom_url') }}">
		<xf:textbox name="{$inputName}[custom]" value="{$option.option_value.custom}" />
		<xf:dependent>
			<xf:checkbox standalone="true">
				<xf:option name="{$inputName}[overlay]" selected="{$option.option_value.overlay}" label="{{ phrase('open_in_overlay') }}" />
			</xf:checkbox>
		</xf:dependent>
	</xf:option>
</xf:radiorow>



]]></template>
  <template type="admin" title="option_template_cookieConsent" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:radiorow name="{$inputName}[type]"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option value="disabled" selected="$option.option_value.type == 'disabled'"
		label="{{ phrase('disabled') }}" />

	<xf:option value="simple" selected="$option.option_value.type == 'simple'"
		label="{{ phrase('simple') }}" />

	<xf:option value="advanced" selected="$option.option_value.type == 'advanced'"
		label="{{ phrase('advanced') }} {{ phrase('(beta)') }}" />
</xf:radiorow>]]></template>
  <template type="admin" title="option_template_emailBounceHandler" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:include template="option_template_automatedEmailHandler" />]]></template>
  <template type="admin" title="option_template_emailDkim" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:formrow
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	rowclass="{$rowClass}">

	<xf:if is="$option.option_value.enabled">
		<xf:if is="$option.option_value.verified">
			<div class="block-rowMessage block-rowMessage--success">{{ phrase('xenforo_is_signing_your_outgoing_emails_with_dkim') }}</div>
		<xf:elseif is="$option.option_value.failed" />
			<div class="block-rowMessage block-rowMessage--error">{{ phrase('we_were_unable_to_verify_dns_record') }}</div>
		<xf:else />
			<div class="block-rowMessage block-rowMessage--warning">{{ phrase('attempting_to_verify_your_dns_record_but_it_may_take_up_to_24_hours_for') }}</div>
		</xf:if>
	</xf:if>

	<xf:if is="$canUseEmailDkim">
		<div class="u-inputSpacer">
			<xf:button href="{{ link('options/email-dkim-setup', $option) }}" data-xf-click="overlay">
				{{ $option.option_value.enabled ? phrase('change') : phrase('enable') }}
			</xf:button>
			<xf:if is="$option.option_value.enabled">
				<xf:button href="{{ link('options/email-dkim-disable', $option) }}">
					{{ phrase('disable') }}
				</xf:button>
			</xf:if>
		</div>
	<xf:else />
		<div class="block-rowMessage block-rowMessage--error">{$error}</div>
	</xf:if>
</xf:formrow>]]></template>
  <template type="admin" title="option_template_emailSoftBounceThreshold" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:formrow rowtype="inputLabelPair"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<dl class="inputLabelPair">
		<dt><label for="{$inputName}_0">{{ phrase('minimum_number_of_bounces') }}</label></dt>
		<dd><xf:numberbox name="{$inputName}[bounce_total]" value="{$option.option_value.bounce_total}" id="{$inputName}_0" min="1" /></dd>
	</dl>
	<dl class="inputLabelPair">
		<dt><label for="{$inputName}_1">{{ phrase('minimum_number_of_days_with_bounces') }}</label></dt>
		<dd><xf:numberbox name="{$inputName}[unique_days]" value="{$option.option_value.unique_days}" id="{$inputName}_1" min="1" max="30" /></dd>
	</dl>
	<dl class="inputLabelPair">
		<dt><label for="{$inputName}_2">{{ phrase('minimum_number_of_days_between_oldest_and_newest_bounce') }}</label></dt>
		<dd><xf:numberbox name="{$inputName}[days_between]" value="{$option.option_value.days_between}" id="{$inputName}_2" min="0" max="30" /></dd>
	</dl>
</xf:formrow>]]></template>
  <template type="admin" title="option_template_emojiSource" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:radiorow name="{$inputName}[source]" value="{$option.option_value.source}"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option value="cdn" label="{{ phrase('serve_from_preferred_cdn') }}" />
	<xf:option value="local" label="{{ phrase('host_from_following_location') }}">
		<xf:dependent>
			<xf:textbox name="{$inputName}[path]" value="{$option.option_value.path}" size="30" />
			<dfn class="inputChoices-explain">{{ phrase('emoji_source_path_explain') }}</dfn>
		</xf:dependent>
	</xf:option>
</xf:radiorow>]]></template>
  <template type="admin" title="option_template_emojiStyle" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:set var="$shortcodes" value=":slight_smile:&nbsp;:bread:&nbsp;:heart_eyes:&nbsp;:coffee:&nbsp;:thumbsup:&nbsp;:grinning:&nbsp;:hamburger:&nbsp;:zany_face:" />

<xf:radiorow name="{$inputName}" value="{$option.option_value}"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option value="emojione">
		<xf:label>{{ phrase('emojione_by_emojione') }}</xf:label>
		<xf:hint><span style="font-size: 15px">{{ short_to_emoji($shortcodes, 'emojione', true)|raw }}</span></xf:hint>
	</xf:option>

	<xf:option value="twemoji">
		<xf:label>{{ phrase('twemoji_by_twitter') }}</xf:label>
		<xf:hint><span style="font-size: 15px">{{ short_to_emoji($shortcodes, 'twemoji', true)|raw }}</span></xf:hint>
	</xf:option>

	<xf:option value="native">
		<xf:label>{{ phrase('native_device_emoji_where_supported') }}</xf:label>
		<xf:hint><span style="font-size: 18px">{{ short_to_emoji($shortcodes, 'native')|raw }}</span></xf:hint>
	</xf:option>
</xf:radiorow>]]></template>
  <template type="admin" title="option_template_enablePush" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:checkboxrow standalone="true"
	label=""
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:initialhtml>
		<xf:if is="$error">
			<div class="block-rowMessage block-rowMessage--error">{$error}</div>
		</xf:if>
	</xf:initialhtml>
	<xf:option name="{$inputName}" selected="{{ $option.option_value && $canEnablePush }}" disabled="{{ !$canEnablePush ? 'disabled' : false }}">{$option.title}</xf:option>

</xf:checkboxrow>]]></template>
  <template type="admin" title="option_template_enableTrophies" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:checkboxrow
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option name="{$inputName}" selected="$option.option_value" class="js-enableTrophies">{$option.title}</xf:option>
</xf:checkboxrow>

<xf:js>
	processCheckBox()

	const enable = document.querySelector('.js-enableTrophies', 'click', () =>
	{
		processCheckBox()
	})

	function processCheckBox ()
	{
		const userTitle = document.querySelector('input[name="options[userTitleLadderField]"]:checked'),
			trophyOption = document.querySelector('.js-trophy_points'),
			messageOption = document.querySelector('.js-messages'),
			enableTrophies = document.querySelector('.js-enableTrophies')

		if (enableTrophies.checked)
		{
			trophyOption.removeAttribute('disabled')
		}
		else
		{
			trophyOption.setAttribute('disabled', true)

			if (userTitle && userTitle.value === 'trophy_points')
			{
				messageOption.checked = true
			}
		}
	}
</xf:js>]]></template>
  <template type="admin" title="option_template_forumsDefaultPage" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:radiorow name="{$inputName}" value="{$option.option_value}"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<!--[XF:forumsDefaultPage:top]-->
	<xf:option value="forums" label="{{ phrase('forums') }}" />
	<!--[XF:forumsDefaultPage:middle]-->
	<xf:option value="new_posts" label="{{ phrase('new_posts') }}" />
	<!--[XF:forumsDefaultPage:bottom]-->
</xf:radiorow>]]></template>
  <template type="admin" title="option_template_giphy" version_id="2020270" version_string="2.2.2"><![CDATA[<xf:checkboxrow
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option name="{$inputName}[enabled]" selected="$option.option_value.enabled" label="{$option.title}">
		<xf:dependent>
			<div>{{ phrase('api_key:') }}</div>
			<xf:textbox name="{$inputName}[api_key]" value="{$option.option_value.api_key}" required="required"
				pattern="^[a-zA-Z0-9]{32}$" title="{{ phrase('please_enter_a_valid_api_key') }}" />
			<dfn class="formRow-explain">{{ phrase('giphy_own_api_key_explain') }}</dfn>
		</xf:dependent>

		<xf:dependent>
			<div>{{ phrase('only_show_gifs_with_following_rating:') }}</div>
			<xf:select name="{$inputName}[rating]" id="{$option.option_id}_rating" value="{$option.option_value.rating}">
				<xf:option value="g">{{ phrase('giphy_rating_g') }}</xf:option>
				<xf:option value="pg">{{ phrase('giphy_rating_pg') }}</xf:option>
				<xf:option value="pg-13">{{ phrase('giphy_rating_pg_13') }}</xf:option>
				<xf:option value="r">{{ phrase('giphy_rating_r') }}</xf:option>
			</xf:select>
			<dfn class="formRow-explain">{{ phrase('giphy_rating_explain') }}</dfn>
		</xf:dependent>
	</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="option_template_imageLibrary" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:radiorow name="{$inputName}" value="{$option.option_value}"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option value="gd">{{ phrase('php_built_in_gd') }}</xf:option>
	<xf:option value="imPecl" disabled="{{ $noImagick ? 'disabled' : false }}">
		<xf:label>{{ phrase('imagemagick_pecl_extension') }}</xf:label>
		<xf:hint>{{ phrase('must_have_imagick_pecl_extension', {'link': 'https://pecl.php.net/package/imagick'}) }}</xf:hint>
	</xf:option>
</xf:radiorow>]]></template>
  <template type="admin" title="option_template_imageProxyBypass" version_id="2020032" version_string="2.2.0 Beta 2"><![CDATA[<xf:radiorow name="{$inputName}[bypassType]" value="{$option.option_value.bypassType}"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option value="" label="{{ phrase('do_not_bypass_image_proxy') }}" />
	<xf:option value="https" label="{{ phrase('bypass_all_https_requests') }}" />
	<xf:option value="domains" label="{{ phrase('bypass_only_domains_listed_below:') }}">
		<xf:dependent>
			<xf:textarea name="{$inputName}[bypassDomains]" value="{$option.option_value.bypassDomains}" rows="3" autosize="true" />
			<dfn class="inputChoices-explain inputChoices-explain--after">{{ phrase('image_proxy_bypass_domains_explain') }}</dfn>
		</xf:dependent>
	</xf:option>
</xf:radiorow>]]></template>
  <template type="admin" title="option_template_includeEmojiInTitles" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:radiorow name="{$inputName}" value="{$option.option_value}"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">
	<xf:option value="convert">
		<xf:label>{{ phrase('convert_emoji_to_text') }}</xf:label>
		<xf:hint>{{ phrase('include_emoji_in_titles_hint', {'url': '/threads/a-thread-about-my-cat.128/'}) }}</xf:hint>
	</xf:option>
	<xf:option value="include">
		<xf:label>{{ phrase('keep_emoji_in_title') }}</xf:label>
		<xf:hint>{{ phrase('include_emoji_in_titles_hint', {'url': '/threads/a-thread-about-my-' . short_to_emoji(':cat2:', 'native') . '.128/'}) }}</xf:hint>
	</xf:option>
	<xf:option value="remove">
		<xf:label>{{ phrase('remove_emoji_from_title') }}</xf:label>
		<xf:hint>{{ phrase('include_emoji_in_titles_hint', {'url': '/threads/a-thread-about-my.128/'}) }}</xf:hint>
	</xf:option>
</xf:radiorow>]]></template>
  <template type="admin" title="option_template_indexNow" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$canUseIndexNow">
	<xf:checkboxrow
		hint="{$hintHtml}"
		explain="{$explainHtml}"
		html="{$listedHtml}"
		rowclass="{$rowClass}">

		<xf:option name="{$inputName}[enabled]" selected="$option.option_value.enabled" label="{$option.title}" />
	</xf:checkboxrow>
<xf:else />
	<xf:formrow
		label="{$option.title}"
		hint="{$hintHtml}"
		explain="{$explainHtml}"
		rowclass="{$rowClass}">

		<div class="block-rowMessage block-rowMessage--error">{$error}</div>
	</xf:formrow>
</xf:if>]]></template>
  <template type="admin" title="option_template_minMax" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:formrow rowtype="input"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<div class="inputGroup inputGroup--numbers">
		<xf:numberbox name="{$inputName}[min]" value="{$option.option_value.min}" placeholder="{{ phrase('minimum') }}" min="{{ $formatParams.min ?: 0 }}" max="{{ $formatParams.max ?: null }}" />
		<span class="inputGroup-text">{{ $formatParams.between ? $formatParams.between : '-' }}</span>
		<xf:numberbox name="{$inputName}[max]" value="{$option.option_value.max}" placeholder="{{ phrase('maximum') }}" min="{{ $formatParams.min ?: 0 }}" max="{{ $formatParams.max ?: null }}" />
		<xf:if is="{$formatParams.units}"><span class="inputGroup-text">{$formatParams.units}</span></xf:if>
	</div>
</xf:formrow>]]></template>
  <template type="admin" title="option_template_phrase" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:textboxrow name="{$inputName}" value="{$phrase.phrase_text}" type="{$formatParams.type}" class="{$formatParams.class}" rowclass="{$rowClass}">
	<xf:label>{$option.title}</xf:label>
	<xf:hint>{$hintHtml}</xf:hint>
	<xf:explain>{$explainHtml}</xf:explain>
	<xf:finalhtml>{$listedHtml}</xf:finalhtml>
</xf:textboxrow>]]></template>
  <template type="admin" title="option_template_preRegAction" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:checkboxrow
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option name="{$inputName}[enabled]" selected="$option.option_value.enabled"
		label="{{ phrase('enable_writing_before_registering') }}">

		<xf:dependent>
			<div>{{ phrase('inherit_permissions_from:') }}</div>

			<xf:checkbox name="{$inputName}[userGroups]" value="{{ $option.option_value.userGroups ?: [2] }}"
				listclass="listColumns">
				<xf:foreach loop="$userGroups" value="$userGroup">
					<xf:option label="{$userGroup.label}" value="{$userGroup.value}" />
				</xf:foreach>
			</xf:checkbox>
		</xf:dependent>
	</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="option_template_preventDiscouragedRegistration" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:checkboxrow hint="{$hintHtml}"
	explain="{{ phrase('option_explain.preventDiscouragedRegistration', {'link': link('banning/discouraged-ips')}) }}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option name="{$inputName}" selected="$option.option_value">
		<xf:label>{$option.title}</xf:label>
	</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="option_template_privacyPolicyUrl" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:radiorow name="{$inputName}[type]"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option selected="$option.option_value.type == ''"
		label="{{ phrase('no_privacy_policy') }}" />

	<xf:option value="default" selected="$option.option_value.type == 'default'"
		label="{{ phrase('default_url:') }} {{ link_type('public', 'canonical:help/privacy-policy') }}"/>

	<xf:option value="custom" selected="$option.option_value.type == 'custom'"
		label="{{ phrase('custom_url') }}">

		<xf:textbox name="{$inputName}[custom]" value="{$option.option_value.custom}" />
	</xf:option>
</xf:radiorow>]]></template>
  <template type="admin" title="option_template_registrationCheckDnsBl" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:checkboxrow
	label="{$option.title}"
	hint="{$hintHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option name="{$inputName}[check]" selected="$option.option_value.check" label="{{ phrase('check_dnsbl_on_registration') }}" hint="{$option.explain}" data-hide="true">
		<xf:dependent>
			<div>{{ phrase('project_honey_pot_key') }}</div>
			<xf:textbox name="{$inputName}[projectHoneyPotKey]" value="{$option.option_value.projectHoneyPotKey}" class="indented" />
			<dfn class="formRow-explain">{{ phrase('if_entered_project_honey_pot_http_blacklist_checked') }}</dfn>
		</xf:dependent>
		<xf:dependent>
			<div>{{ phrase('action:') }}</div>
			<xf:radio name="{$inputName}[action]" value="{{ $option.option_value.action ? $option.option_value.action : 'moderate' }}" listclass="choiceList indented">
				<xf:option value="moderate">{{ phrase('require_registration_manually_approved_admin') }}</xf:option>
				<xf:option value="block">{{ phrase('block_this_registration') }}</xf:option>
			</xf:radio>
		</xf:dependent>
	</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="option_template_registrationDefaults" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:formrow
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:checkbox>
		<xf:option name="{$inputName}[visible]" selected="$option.option_value.visible">{{ phrase('show_online_status') }}</xf:option>
		<xf:option name="{$inputName}[activity_visible]" selected="$option.option_value.activity_visible">{{ phrase('show_current_activity') }}</xf:option>
		<xf:option name="{$inputName}[content_show_signature]" selected="$option.option_value.content_show_signature">{{ phrase('show_signatures_with_messages') }}</xf:option>
		<xf:option name="{$inputName}[show_dob_date]" selected="$option.option_value.show_dob_date">{{ phrase('show_day_and_month_of_birth') }}</xf:option>
		<xf:option name="{$inputName}[show_dob_year]" selected="$option.option_value.show_dob_year">{{ phrase('show_year_of_birth') }}</xf:option>
		<xf:option name="{$inputName}[receive_admin_email]" selected="$option.option_value.receive_admin_email">{{ phrase('receive_site_mailings_option') }}</xf:option>
		<xf:option name="{$inputName}[email_on_conversation]" selected="$option.option_value.email_on_conversation">{{ phrase('receive_email_when_new_direct_message_is_received') }}</xf:option>
		<xf:option name="{$inputName}[push_on_conversation]" selected="$option.option_value.push_on_conversation">{{ phrase('receive_push_notification_when_new_direct_message_is_received') }}</xf:option>
	</xf:checkbox>
	<div class="u-inputSpacer">
		<dl class="inputLabelPair">
			<dt><label for="{$inputName}_cws">{{ phrase('watch_content_on_creation') }}</label></dt>
			<dd><xf:select name="{$inputName}[creation_watch_state]" value="{$option.option_value.creation_watch_state}" id="{$inputName}_cws">
				<xf:option value="watch_no_email">{{ phrase('yes') }}</xf:option>
				<xf:option value="watch_email">{{ phrase('yes_with_email') }}</xf:option>
				<xf:option>{{ phrase('no') }}</xf:option>
			</xf:select></dd>
		</dl>
		<dl class="inputLabelPair">
			<dt><label for="{$inputName}_iws">{{ phrase('watch_content_on_interaction') }}</label></dt>
			<dd><xf:select name="{$inputName}[interaction_watch_state]" value="{$option.option_value.interaction_watch_state}" id="{$inputName}_iws">
				<xf:option value="watch_no_email">{{ phrase('yes') }}</xf:option>
				<xf:option value="watch_email">{{ phrase('yes_with_email') }}</xf:option>
				<xf:option>{{ phrase('no') }}</xf:option>
			</xf:select></dd>
		</dl>
		<dl class="inputLabelPair">
			<dt><label for="{$inputName}_avp">{{ phrase('view_this_users_profile_page_details') }}</label></dt>
			<dd><xf:select name="{$inputName}[allow_view_profile]" value="{$option.option_value.allow_view_profile}" id="{$inputName}_avp">
				<xf:option value="everyone">{{ phrase('all_visitors') }}</xf:option>
				<xf:option value="members">{{ phrase('members_only') }}</xf:option>
				<xf:option value="followed">{{ phrase('followed_members_only') }}</xf:option>
				<xf:option value="none">{{ phrase('nobody') }}</xf:option>
			</xf:select></dd>
		</dl>
		<dl class="inputLabelPair">
			<dt><label for="{$inputName}_app">{{ phrase('post_messages_on_this_users_profile_page') }}</label></dt>
			<dd><xf:select name="{$inputName}[allow_post_profile]" value="{$option.option_value.allow_post_profile}" id="{$inputName}_app">
				<xf:option value="members">{{ phrase('members_only') }}</xf:option>
				<xf:option value="followed">{{ phrase('followed_members_only') }}</xf:option>
				<xf:option value="none">{{ phrase('nobody') }}</xf:option>
			</xf:select></dd>
		</dl>
		<dl class="inputLabelPair">
			<dt><label for="{$inputName}_arnf">{{ phrase('receive_this_users_news_feed') }}</label></dt>
			<dd><xf:select name="{$inputName}[allow_receive_news_feed]" value="{$option.option_value.allow_receive_news_feed}" id="{$inputName}_arnf">
				<xf:option value="everyone">{{ phrase('all_visitors') }}</xf:option>
				<xf:option value="members">{{ phrase('members_only') }}</xf:option>
				<xf:option value="followed">{{ phrase('followed_members_only') }}</xf:option>
				<xf:option value="none">{{ phrase('nobody') }}</xf:option>
			</xf:select></dd>
		</dl>
		<dl class="inputLabelPair">
			<dt><label for="{$inputName}_aspc">{{ phrase('send_direct_messages_to_this_user') }}</label></dt>
			<dd><xf:select name="{$inputName}[allow_send_personal_conversation]" value="{$option.option_value.allow_send_personal_conversation}" id="{$inputName}_aspc">
				<xf:option value="members">{{ phrase('members_only') }}</xf:option>
				<xf:option value="followed">{{ phrase('followed_members_only') }}</xf:option>
				<xf:option value="none">{{ phrase('nobody') }}</xf:option>
			</xf:select></dd>
		</dl>
		<dl class="inputLabelPair">
			<dt><label for="{$inputName}_avi">{{ phrase('view_this_users_identities') }}</label></dt>
			<dd><xf:select name="{$inputName}[allow_view_identities]" id="{$inputName}_avi" value="{$option.option_value.allow_view_identities}">
				<xf:option value="everyone">{{ phrase('all_visitors') }}</xf:option>
				<xf:option value="members">{{ phrase('members_only') }}</xf:option>
				<xf:option value="followed">{{ phrase('followed_members_only') }}</xf:option>
				<xf:option value="none">{{ phrase('nobody') }}</xf:option>
			</xf:select></dd>
		</dl>
	</div>
</xf:formrow>]]></template>
  <template type="admin" title="option_template_registrationSetup" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:checkboxrow
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option name="{$inputName}[enabled]" selected="$option.option_value.enabled"
		label="{{ phrase('enable_registration') }}" />

	<xf:option name="{$inputName}[emailConfirmation]" selected="$option.option_value.emailConfirmation"
		label="{{ phrase('enable_email_confirmation') }}"
		hint="{{ phrase('if_selected_users_click_link_email_before_registration_complete') }}" />

	<xf:option name="{$inputName}[moderation]" selected="$option.option_value.moderation"
		label="{{ phrase('enable_manual_approval') }}"
		hint="{{ phrase('if_selected_admin_manually_approve_users') }}" />

	<xf:option name="{$inputName}[requireDob]" selected="$option.option_value.requireDob"
		label="{{ phrase('require_date_of_birth') }}" />

	<xf:option selected="{{ $option.option_value.minimumAge ? true : false }}"
		label="{{ phrase('minimum_age:') }}">

		<xf:numberbox name="{$inputName}[minimumAge]" value="{{ $option.option_value.minimumAge ?: 13 }}"
			min="1"
			units="{{ phrase('units_years') }}" />
	</xf:option>

	<xf:option name="{$inputName}[requireEmailChoice]" selected="$option.option_value.requireEmailChoice"
		label="{{ phrase('require_email_choice') }}"
		hint="{{ phrase('require_email_choice_hint') }}" />

	<xf:option name="{$inputName}[requireLocation]" selected="$option.option_value.requireLocation"
		label="{{ phrase('require_location') }}" />
</xf:checkboxrow>]]></template>
  <template type="admin" title="option_template_registrationWelcome" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:checkboxrow
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option name="{$inputName}[messageEnabled]" selected="$option.option_value.messageEnabled" data-hide="true"
		label="{{ phrase('send_welcome_direct_message_on_registration') }}">

		<xf:dependent>
			<div>{{ phrase('other_participants:') }}</div>
			<xf:if is="$option.option_value.messageParticipants AND is_array($option.option_value.messageParticipants)">
				<xf:set var="$users" value="{{ $xf.app.em.getRepository('XF:User').getUsersByIdsOrdered($option.option_value.messageParticipants) }}" />
				<xf:set var="$value" value="{$users.pluckNamed('username')|join(', ')}" />
			<xf:else />
				<xf:set var="$value">{$xf.visitor.username}</xf:set>
			</xf:if>
			<xf:tokeninput name="{$inputName}[messageParticipants]" value="{$value}" href="{{ link('users/find') }}">
				<xf:explain>{{ phrase('list_usernames_of_users_who_will_be_invited_to_this_direct_message') }}</xf:explain>
			</xf:tokeninput>
		</xf:dependent>

		<xf:dependent>
			<div>{{ phrase('direct_message_title:') }}</div>
			<xf:textbox name="{$inputName}[messageTitle]" value="{$option.option_value.messageTitle}" placeholder="{{ phrase('direct_message_title...') }}" maxlength="100" />
		</xf:dependent>

		<xf:dependent>
			<div>{{ phrase('direct_message_body:') }}</div>
			<xf:textarea name="{$inputName}[messageBody]" value="{$option.option_value.messageBody}" rows="5" autosize="true" />
			<p class="formRow-explain">{{ phrase('following_placeholders_will_be_replaced_in_body_for_direct_message') }} {{ phrase('you_may_also_use_phrase_title_which_will_be_replaced') }}</p>
		</xf:dependent>

		<xf:dependent>
			<div>{{ phrase('direct_message_options:') }}</div>
			<xf:checkbox>
				<xf:option name="{$inputName}[messageOpenInvite]" value="1" selected="$option.option_value.messageOpenInvite">
					{{ phrase('allow_anyone_in_direct_message_to_invite_others') }}
				</xf:option>
				<xf:option name="{$inputName}[messageLocked]" value="1" selected="$option.option_value.messageLocked">
					{{ phrase('lock_direct_message_no_responses_will_be_allowed') }}
				</xf:option>
			</xf:checkbox>
		</xf:dependent>

		<xf:dependent>
			<div>{{ phrase('future_message_handling:') }}</div>
			<xf:radio name="{$inputName}[messageDelete]">
				<xf:option value="delete" selected="!$option.option_value.messageDelete OR $option.option_value.messageDelete == 'delete'"
					label="{{ phrase('leave_direct_message_and_accept_future_responses') }}"
					explain="{{ phrase('should_direct_message_receive_responses_restored_to_inbox') }}" />

				<xf:option value="delete_ignore" selected="$option.option_value.messageDelete == 'delete_ignore'"
					label="{{ phrase('leave_direct_message_and_ignore_future_responses') }}"
					explain="{{ phrase('not_notified_of_responses_direct_message_remain_deleted') }}" />

				<xf:option value="no_delete" selected="$option.option_value.messageDelete == 'no_delete'"
					label="{{ phrase('do_not_leave_direct_message') }}"
					explain="{{ phrase('direct_message_remain_in_inbox_and_notified_of_replies') }}" />
			</xf:radio>
		</xf:dependent>

	</xf:option>

	<xf:option name="{$inputName}[emailEnabled]" selected="$option.option_value.emailEnabled" data-hide="true"
		label="{{ phrase('send_welcome_email_on_registration') }}">

		<xf:dependent>
			<div>{{ phrase('from_name:') }}</div>
			<xf:textbox name="{$inputName}[emailFromName]" value="{{ $option.option_value.emailFromName ? $option.option_value.emailFromName : $xf.options.boardTitle }}" />
		</xf:dependent>

		<xf:dependent>
			<div>{{ phrase('from_email:') }}</div>
			<xf:textbox name="{$inputName}[emailFromEmail]" value="{{ $option.option_value.emailFromEmail ? $option.option_value.emailFromEmail : $xf.options.defaultEmailAddress }}" type="email" />
		</xf:dependent>

		<xf:dependent>
			<div>{{ phrase('email_title:') }}</div>
			<xf:textbox name="{$inputName}[emailTitle]" value="{$option.option_value.emailTitle}" />
		</xf:dependent>

		<xf:dependent>
			<div>{{ phrase('email_format:') }}</div>
			<xf:radio name="{$inputName}[emailFormat]" value="{$option.option_value.emailFormat}">
				<xf:option value="plain" label="{{ phrase('plain_text') }}" selected="!$option.option_value.emailFormat OR $option.option_value.emailFormat == 'plain'" />
				<xf:option value="html" label="{{ phrase('html') }}" />
			</xf:radio>
			<p class="formRow-explain">{{ phrase('note_that_email_clients_handle_html_in_widely_varying_ways') }}</p>
		</xf:dependent>

		<xf:dependent>
			<div>{{ phrase('email_body:') }}</div>
			<xf:textarea name="{$inputName}[emailBody]" value="{$option.option_value.emailBody}" rows="5" autosize="true" />
			<p class="formRow-explain">{{ phrase('following_placeholders_will_be_replaced_in_message_for_welcome_email') }} {{ phrase('you_may_also_use_phrase_title_which_will_be_replaced') }}</p>
		</xf:dependent>
	</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="option_template_saveDrafts" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:checkboxrow
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option name="{$inputName}[enabled]" selected="$option.option_value.enabled" label="{$option.title}">
		<xf:dependent>
			<dl class="inputLabelPair">
				<dt><label for="{$inputName}_h">{{ phrase('store_drafts_for_x_hours') }}</label></dt>
				<dd><xf:numberbox name="{$inputName}[lifetime]" id="{$inputName}_h" value="{{ $option.option_value.enabled ? $option.option_value.lifetime : '24' }}" min="1" /></dd>
			</dl>
			<dl class="inputLabelPair">
				<dt><label for="{$inputName}_s">{{ phrase('save_drafts_every_x_seconds') }}</label></dt>
				<dd><xf:numberbox name="{$inputName}[saveFrequency]" id="{$inputName}_s" value="{{ $option.option_value.enabled ? $option.option_value.saveFrequency : '60' }}" min="1" /></dd>
			</dl>
		</xf:dependent>
	</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="option_template_searchSuggestions" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:checkboxrow
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option name="{$inputName}[enabled]" selected="$option.option_value.enabled"
		label="{$option.title}"
		disabled="{{ !$autoCompleteSupported }}" />
</xf:checkboxrow>]]></template>
  <template type="admin" title="option_template_spamPhrases" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:formrow rowtype="input"
	label="{$option.title}"
	hint="{$hintHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:textarea name="{$inputName}[phrases]" value="{$option.option_value.phrases}" rows="5" autosize="true" />
	<p class="formRow-explain">{$explainHtml}</p>

	<div class="u-inputSpacer">{{ phrase('action:') }}</div>
	<xf:radio name="{$inputName}[action]" value="{$option.option_value.action}">
		<xf:option value="moderate">{{ phrase('manually_approve') }}</xf:option>
		<xf:option value="reject">{{ phrase('reject') }}</xf:option>
	</xf:radio>
</xf:formrow>]]></template>
  <template type="admin" title="option_template_spamThreadAction" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:radiorow name="{$inputName}[action]" value="{$option.option_value.action}"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option value="delete" label="{{ phrase('permanently_delete') }}" />
	<xf:option value="soft-delete" label="{{ phrase('remove_from_public_view') }}" />
	<xf:option value="move" label="{{ phrase('move_to_forum') }}">
		<xf:select name="{$inputName}[node_id]" value="{$option.option_value.node_id}">
			<xf:option value="0">&nbsp;</xf:option>
			<xf:foreach loop="$nodeTree.getFlattened()" value="$treeEntry">
				<xf:option value="{$treeEntry.record.node_id}" disabled="{{ $treeEntry.record.node_type_id != 'Forum' }}">
					{{ repeat('--', $treeEntry.depth) }} {$treeEntry.record.title}
				</xf:option>
			</xf:foreach>
			<xf:options source="$formatParams" />
		</xf:select>
	</xf:option>
</xf:radiorow>]]></template>
  <template type="admin" title="option_template_spamUserCriteria" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:formrow rowtype="inputLabelPair"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<dl class="inputLabelPair">
		<dt><label for="spamuc_mc">{{ phrase('maximum_message_count') }}</label></dt>
		<dd><xf:numberbox name="{$inputName}[message_count]" value="{$option.option_value.message_count}" min="0" id="spamuc_mc" /></dd>
	</dl>
	<dl class="inputLabelPair">
		<dt><label for="spamuc_rd">{{ phrase('maximum_days_since_registration') }}</label></dt>
		<dd><xf:numberbox name="{$inputName}[register_date]" value="{$option.option_value.register_date}" min="0" id="spamuc_rd" /></dd>
	</dl>
	<dl class="inputLabelPair">
		<dt><label for="spamuc_tl">{{ phrase('maximum_reaction_score_received') }}</label></dt>
		<dd><xf:numberbox name="{$inputName}[reaction_score]" value="{$option.option_value.reaction_score}" min="0" id="spamuc_tl" /></dd>
	</dl>
</xf:formrow>]]></template>
  <template type="admin" title="option_template_stopForumSpam" version_id="2020370" version_string="2.2.3"><![CDATA[<xf:checkboxrow
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option name="{$inputName}[enabled]" label="{{ phrase('stopforumspam_enable_registration_check') }}" value="1" selected="$option.option_value.enabled" data-hide="true">
		<xf:hint>{{ phrase('stopforumspam_enable_registration_check_explain') }}</xf:hint>
		<xf:checkbox>

			<xf:option name="_moderateThreshold" selected="$option.option_value.moderateThreshold">
				<xf:label>{{ phrase('stopforumspam_moderate_registration_threshold:') }}</xf:label>
				<xf:dependent>
					<xf:numberbox name="{$inputName}[moderateThreshold]" min="1" max="3" value="{$option.option_value.moderateThreshold}" />
					<p class="formRow-explain">{{ phrase('stopforumspam_moderate_registration_threshold_explain') }}</p>
				</xf:dependent>
			</xf:option>
			<xf:option name="_denyThreshold" selected="$option.option_value.denyThreshold">
				<xf:label>{{ phrase('stopforumspam_reject_registration_threshold:') }}</xf:label>
				<xf:dependent>
					<xf:numberbox name="{$inputName}[denyThreshold]" min="1" max="3" value="{$option.option_value.denyThreshold}" />
					<p class="formRow-explain">{{ phrase('stopforumspam_reject_registration_threshold_explain') }}</p>
				</xf:dependent>
			</xf:option>

			<xf:option name="_lastSeenCutOff" selected="$option.option_value.lastSeenCutOff">
				<xf:label>{{ phrase('stopforumspam_lastseencutoff_label:') }}</xf:label>
				<xf:dependent>
					<xf:numberbox name="{$inputName}[lastSeenCutOff]" min="0" value="{$option.option_value.lastSeenCutOff}" units="{{ phrase('units_days') }}" />
					<p class="formRow-explain">{{ phrase('stopforumspam_lastseencutoff_explain') }}</p>
				</xf:dependent>
			</xf:option>

			<xf:option name="_frequencyCutOff" selected="$option.option_value.frequencyCutOff">
				<xf:label>{{ phrase('stopforumspam_frequencycutoff_label:') }}</xf:label>
				<xf:dependent>
					<xf:numberbox name="{$inputName}[frequencyCutOff]" min="0" value="{$option.option_value.frequencyCutOff}" />
					<p class="formRow-explain">{{ phrase('stopforumspam_frequencycutoff_explain') }}</p>
				</xf:dependent>
			</xf:option>

			<xf:option name="{$inputName}[hashEmail]" selected="$option.option_value.hashEmail">
				<xf:label>{{ phrase('stopforumspam_hashemail_label') }}</xf:label>
				<xf:hint>{{ phrase('stopforumspam_hashemail_explain') }}</xf:hint>
			</xf:option>

		</xf:checkbox>
	</xf:option>
	<xf:option name="{$inputName}[submitRejections]" value="1" selected="$option.option_value.submitRejections">
		<xf:label>{{ phrase('stopforumspam_submit_information:') }}</xf:label>
		<xf:dependent>
			<xf:textbox name="{$inputName}[apiKey]" value="{$option.option_value.apiKey}"
				pattern="^[a-zA-Z0-9]+$" title="{{ phrase('please_enter_a_valid_api_key') }}" />
			<p class="formRow-explain">{{ phrase('stopforumspam_submit_information_explain') }}</p>
		</xf:dependent>
	</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="option_template_tagValidation" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:formrow
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{{ phrase('these_limits_only_apply_when_tag_is_created_existing_used') }}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<ul class="inputChoices inputChoices--noChoice">
		<li class="inputChoices-choice">
			<div>{{ phrase('disallowed_words_in_tags:') }}</div>
			<xf:textarea name="{$inputName}[disallowedWords]" value="{$option.option_value.disallowedWords}" autosize="true" />
			<dfn class="inputChoices-explain">{{ phrase('words_or_phrases_in_this_field_not_allowed_in_tags') }}</dfn>
		</li>
		<li class="inputChoices-choice">
			<div>{{ phrase('tag_match_regular_expression:') }}</div>
			<xf:textbox name="{$inputName}[matchRegex]" value="{$option.option_value.matchRegex}" />
			<dfn class="inputChoices-explain">{{ phrase('this_requires_new_tags_to_match_given_regular_expression') }}</dfn>
		</li>
	</ul>
</xf:formrow>]]></template>
  <template type="admin" title="option_template_tosUrl" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:radiorow name="{$inputName}[type]"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option selected="$option.option_value.type == ''"
		label="{{ phrase('no_terms_and_rules') }}" />

	<xf:option value="default" selected="$option.option_value.type == 'default'"
		label="{{ phrase('default_url:') }} {{ link_type('public', 'canonical:help/terms') }}"/>

	<xf:option value="custom" selected="$option.option_value.type == 'custom'"
		label="{{ phrase('custom_url') }}">

		<xf:textbox name="{$inputName}[custom]" value="{$option.option_value.custom}" />
	</xf:option>
</xf:radiorow>]]></template>
  <template type="admin" title="option_template_trendingContentWeights" version_id="2030033" version_string="2.3.0 Beta 3"><![CDATA[<xf:formrow rowtype="inputLabelPair"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:foreach loop="$metrics" value="$metric">
		<dl class="inputLabelPair">
			<dt><label for="{$inputName}_0">{{ phrase_dynamic('activity_log_metric.' . $metric) }}</label></dt>
			<dd>
				<xf:numberbox name="{$inputName}[{$metric}]" value="{$option.option_value.{$metric}}"
					id="{$inputName}_{$metric}"
					min="0" max="100" units="Points" />
			</dd>
		</dl>
	</xf:foreach>
</xf:formrow>]]></template>
  <template type="admin" title="option_template_tweet" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:checkboxrow
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option name="{$inputName}[enabled]" selected="$option.option_value.enabled" label="{$option.title}">
		<xf:textbox name="{$inputName}[via]" value="{$option.option_value.via}" placeholder="{{ phrase('via_twitter_account') }}" />
		<xf:textbox name="{$inputName}[related]" value="{$option.option_value.related}" placeholder="{{ phrase('related_twitter_account') }}" />
	</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="option_template_uneditable" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:formrow
	label="{$option.title}"
	hint="{$hintHtml}"
	rowclass="{$rowClass}">

	{$explainHtml}
</xf:formrow>]]></template>
  <template type="admin" title="option_template_userBanners" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:checkboxrow
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option name="{$inputName}[showStaff]" selected="$option.option_value.showStaff">
		<xf:label>{{ phrase('show_staff_banner') }}</xf:label>
		<xf:hint>{{ phrase('if_enabled_staff_members_automatically_have_banner_added') }}</xf:hint>
	</xf:option>
	<xf:option name="{$inputName}[displayMultiple]" selected="$option.option_value.displayMultiple">
		<xf:label>{{ phrase('allow_banner_stacking') }}</xf:label>
		<xf:hint>{{ phrase('if_enabled_all_banners_applicable_to_user_will_be_shown') }}</xf:hint>
	</xf:option>
	<xf:option name="{$inputName}[showStaffAndOther]" selected="$option.option_value.showStaffAndOther">
		<xf:label>{{ phrase('show_staff_and_group_banner') }}</xf:label>
		<xf:hint>{{ phrase('if_banner_stacking_disabled_staff_only_have_staff_banner') }}</xf:hint>
	</xf:option>
	<xf:option name="{$inputName}[hideUserTitle]" selected="$option.option_value.hideUserTitle">
		<xf:label>{{ phrase('hide_standard_user_title') }}</xf:label>
		<xf:hint>{{ phrase('if_enabled_user_title_hidden_when_banner_shown') }}</xf:hint>
	</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="option_template_userTitleLadderField" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:radiorow name="{$inputName}" value="{$option.option_value}"
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option value="trophy_points" class="js-trophy_points">{{ phrase('trophy_points') }}</xf:option>
	<xf:option value="message_count" class="js-messages">{{ phrase('messages') }}</xf:option>
	<xf:option value="reaction_score" class="js-reactionScore">{{ phrase('reaction_score') }}</xf:option>
</xf:radiorow>]]></template>
  <template type="admin" title="option_template_usernameValidation" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:formrow
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<ul class="inputChoices inputChoices--noChoice">
		<li class="inputChoices-choice">
			<div>{{ phrase('disallowed_words_in_user_names:') }}</div>
			<xf:textarea name="{$inputName}[disallowedNames]" value="{$option.option_value.disallowedNames}" autosize="true" />
			<dfn class="inputChoices-explain">{{ phrase('words_or_phrases_in_field_not_allowed_in_user_names') }}</dfn>
		</li>
		<li class="inputChoices-choice">
			<div>{{ phrase('user_name_match_regular_expression:') }}</div>
			<xf:textbox name="{$inputName}[matchRegex]" value="{$option.option_value.matchRegex}" />
			<dfn class="inputChoices-explain">{{ phrase('requires_user_names_new_registrations_match_regex') }}</dfn>
		</li>
	</ul>
</xf:formrow>]]></template>
  <template type="admin" title="option_template_viewCounts" version_id="2030034" version_string="2.3.0 Beta 4"><![CDATA[<xf:checkboxrow
	label="{$option.title}"
	hint="{$hintHtml}"
	explain="{$explainHtml}"
	html="{$listedHtml}"
	rowclass="{$rowClass}">

	<xf:option name="{$inputName}[guest]" checked="{$option.option_value.guest}"
		label="{{ phrase('count_views_by_guests') }}">

		<xf:checkbox>
			<xf:option name="{$inputName}[robot]" checked="{$option.option_value.robot}"
				label="{{ phrase('count_views_by_robots') }}" />
		</xf:checkbox>
	</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="page_delete" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('pages/delete', $node) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				<strong><a href="{{ link('pages/edit', $node) }}">{$node.title}</a></strong>
			</xf:inforow>

			<xf:macro id="helper_node_delete_children::delete_row" arg-node="{$node}" arg-nodeTree="{$nodeTree}" />
		</div>
		<xf:submitrow rowtype="{{ !$node.hasChildren() ? 'simple' : '' }}" icon="delete" />
	</div>
	<xf:redirect />
</xf:form>]]></template>
  <template type="admin" title="page_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$page.isInsert()">
	<xf:title>{{ phrase('add_page') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_page:') }} {$node.title}</xf:title>
</xf:if>

<xf:pageaction if="$page.isUpdate()">
	<xf:button href="{{ link('pages/delete', $node) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('pages/save', $node) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:macro id="node_edit_macros::node_name" arg-node="{$node}" arg-optional="{{ false }}" />

			<xf:macro id="node_edit_macros::title" arg-node="{$node}" />
			<xf:macro id="node_edit_macros::description" arg-node="{$node}" />
			<xf:macro id="node_edit_macros::position" arg-node="{$node}" arg-nodeTree="{$nodeTree}" />
			<xf:macro id="node_edit_macros::navigation" arg-node="{$node}" arg-navChoices="{$navChoices}" />

			<xf:codeeditorrow name="template" value="{{ $page.isUpdate() ? $page.MasterTemplate.template : '' }}"
				mode="html"
				hint="{{ $page.isUpdate() ? $page.getTemplateName() : '' }}"
				class="codeEditor--short"
				label="{{ phrase('template_html') }}"
				explain="{{ phrase('you_may_use_xenforo_template_syntax_here') }}" />

			<xf:checkboxrow rowclass="surplusLabel"
				label="{{ phrase('optional_components') }}">

				<xf:option name="log_visits" selected="$page.log_visits"
					label="{{ phrase('log_and_count_visits_to_this_page') }}" />

				<xf:option name="list_siblings" selected="$page.list_siblings"
					label="{{ phrase('list_sibling_nodes') }}" />

				<xf:option name="list_children" selected="$page.list_children"
					label="{{ phrase('list_child_nodes') }}" />
			</xf:checkboxrow>

			<xf:formrow rowtype="input"
				label="{{ phrase('php_callback') }}"
				explain="{{ phrase('page_callback_explanation_html') }}">

				<xf:macro id="helper_callback_fields::callback_fields" arg-data="{$page}" />
			</xf:formrow>

			<xf:checkboxrow>
				<xf:option name="advanced_mode" value="1" selected="{$page.advanced_mode}"
					label="{{ phrase('advanced_mode') }}"
					hint="{{ phrase('if_enabled_html_for_your_page_will_not_be_contained_within_block') }}" />
			</xf:checkboxrow>

			<xf:macro id="node_edit_macros::style" arg-node="{$node}" arg-styleTree="{$styleTree}" />
		</div>

		<xf:submitrow sticky="true" icon="save" />
	</div>

</xf:form>]]></template>
  <template type="admin" title="page_nav" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<nav class="pageNavWrapper pageNavWrapper--{{ property('pageNavStyle') }} {$variantClass}">

<xf:set var="$hasSkipStart" value="{{ $startInner > 2 }}" />
<xf:set var="$hasSkipEnd" value="{{ $endInner + 1 < $totalPages }}" />
<div class="pageNav {{ $hasSkipStart ? 'pageNav--skipStart' : '' }} {{ $hasSkipEnd ? 'pageNav--skipEnd' : '' }}">
	<xf:if is="$prev">
		<a href="{$prev}" class="pageNav-jump pageNav-jump--prev">{{ phrase('prev') }}</a>
	</xf:if>

	<ul class="pageNav-main">
		<xf:macro id="page_link"
			arg-page="1"
			arg-current="{$current}"
			arg-link="{$link}"
			arg-data="{$data}"
			arg-params="{$params}"
			arg-pageParam="{$pageParam}" />

		<xf:if is="$hasSkipStart">
			<xf:if is="$startInner == 3">
				<xf:macro id="page_link"
					arg-page="2"
					arg-current="{$current}"
					arg-link="{$link}"
					arg-data="{$data}"
					arg-params="{$params}"
					arg-pageParam="{$pageParam}"
					arg-pageClass="pageNav-page--earlier" />
				<xf:else />
				<li class="pageNav-page pageNav-page--skip pageNav-page--skipStart">
					<a data-xf-init="tooltip" title="{{ phrase('go_to_page')|for_attr }}"
						data-xf-click="menu"
						role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{$xf.language.ellipsis}</a>
					<xf:macro id="page_jump_menu"
						arg-page="{{ $startInner - 1 }}"
						arg-totalPages="{$totalPages}"
						arg-link="{$link}"
						arg-data="{$data}"
						arg-params="{$params}"
						arg-pageParam="{$pageParam}" />
				</li>
			</xf:if>
		</xf:if>

		<xf:foreach loop="$innerPages" value="$page">
			<xf:macro id="page_link"
				arg-page="{$page}"
				arg-current="{$current}"
				arg-link="{$link}"
				arg-data="{$data}"
				arg-params="{$params}"
				arg-pageParam="{$pageParam}"
				arg-pageClass="{{ $page < $current ? 'pageNav-page--earlier' : ($page > $current ? 'pageNav-page--later' : '' ) }}" />
		</xf:foreach>

		<xf:if is="$hasSkipEnd">
			<xf:if is="$endInner + 2 == $totalPages">
				<xf:macro id="page_link"
					arg-page="{{ $totalPages - 1 }}"
					arg-current="{$current}"
					arg-link="{$link}"
					arg-data="{$data}"
					arg-params="{$params}"
					arg-pageParam="{$pageParam}"
					arg-pageClass="pageNav-page--later" />
			<xf:else />
				<li class="pageNav-page pageNav-page--skip pageNav-page--skipEnd">
					<a data-xf-init="tooltip" title="{{ phrase('go_to_page')|for_attr }}"
						data-xf-click="menu"
						role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{$xf.language.ellipsis}</a>
					<xf:macro id="page_jump_menu"
						arg-page="{{ $endInner + 1 }}"
						arg-totalPages="{$totalPages}"
						arg-link="{$link}"
						arg-data="{$data}"
						arg-params="{$params}"
						arg-pageParam="{$pageParam}" />
				</li>
			</xf:if>
		</xf:if>

		<xf:macro id="page_link"
			arg-page="{$totalPages}"
			arg-current="{$current}"
			arg-link="{$link}"
			arg-data="{$data}"
			arg-params="{$params}"
			arg-pageParam="{$pageParam}" />
	</ul>

	<xf:if is="$next">
		<a href="{$next}" class="pageNav-jump pageNav-jump--next">{{ phrase('next') }}</a>
	</xf:if>
</div>

<div class="pageNavSimple">
	<xf:if is="$current > 1">
		<a href="{{ link($link, $data, $params + {($pageParam): 1}) }}"
			class="pageNavSimple-el pageNavSimple-el--first"
			data-xf-init="tooltip" title="{{ phrase('first')|for_attr }}">
			<i aria-hidden="true"></i> <span class="u-srOnly">{{ phrase('first') }}</span>
		</a>
		<a href="{{ link($link, $data, $params + {($pageParam): $current - 1}) }}" class="pageNavSimple-el pageNavSimple-el--prev">
			<i aria-hidden="true"></i> {{ phrase('prev') }}
		</a>
	</xf:if>

	<a class="pageNavSimple-el pageNavSimple-el--current"
		data-xf-init="tooltip" title="{{ phrase('go_to_page')|for_attr }}"
		data-xf-click="menu" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">
		{{ phrase('x_of_y', {'current': $current, 'total': $totalPages}) }}
	</a>
	<xf:macro id="page_jump_menu"
		arg-page="{$current}"
		arg-totalPages="{$totalPages}"
		arg-link="{$link}"
		arg-data="{$data}"
		arg-params="{$params}"
		arg-pageParam="{$pageParam}" />

	<xf:if is="$current < $totalPages">
		<a href="{{ link($link, $data, $params + {($pageParam): $current + 1}) }}" class="pageNavSimple-el pageNavSimple-el--next">
			{{ phrase('next') }} <i aria-hidden="true"></i>
		</a>
		<a href="{{ link($link, $data, $params + {($pageParam): $totalPages}) }}"
			class="pageNavSimple-el pageNavSimple-el--last"
			data-xf-init="tooltip" title="{{ phrase('last')|for_attr }}">
			<i aria-hidden="true"></i> <span class="u-srOnly">{{ phrase('last') }}</span>
		</a>
	</xf:if>
</div>

</nav>

<xf:macro id="page_link"
	arg-page="!"
	arg-current="!"
	arg-link="!"
	arg-data="!"
	arg-params="!"
	arg-pageParam="!"
	arg-pageClass="">

	<xf:if is="$page == $current">
		<li class="pageNav-page pageNav-page--current {$pageClass}"><a href="{{ link($link, $data, $params + {($pageParam): ($page > 1 ? $page : null)}) }}">{$page}</a></li>
	<xf:else />
		<li class="pageNav-page {$pageClass}"><a href="{{ link($link, $data, $params + {($pageParam): ($page > 1 ? $page : null)}) }}">{$page}</a></li>
	</xf:if>
</xf:macro>

<xf:macro id="page_jump_menu"
	arg-page="!"
	arg-totalPages="!"
	arg-link="!"
	arg-data="!"
	arg-params="!"
	arg-pageParam="!">

	<div class="menu menu--pageJump" data-menu="menu" aria-hidden="true">
		<div class="menu-content">
			<h4 class="menu-header">{{ phrase('go_to_page') }}</h4>
			<div class="menu-row" data-xf-init="page-jump" data-page-url="{{ link($link, $data, $params + {($pageParam): '%page%'}) }}">
				<div class="inputGroup inputGroup--numbers">
					<xf:numberbox class="input input--numberNarrow js-pageJumpPage" value="{$page}" min="1" max="{$totalPages}" data-menu-autofocus="true" />
					<span class="inputGroup-text"><xf:button class="js-pageJumpGo">{{ phrase('go') }}</xf:button></span>
				</div>
			</div>
		</div>
	</div>
</xf:macro>]]></template>
  <template type="admin" title="payment_profile_braintree" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:textboxrow name="options[merchant_id]" value="{$profile.options.merchant_id}"
	label="{{ phrase('braintree_merchant_id') }}" />

<xf:textboxrow name="options[public_key]" value="{$profile.options.public_key}"
	label="{{ phrase('braintree_public_key') }}" />

<xf:textboxrow name="options[private_key]" value="{$profile.options.private_key}"
	label="{{ phrase('braintree_private_key') }}"
	explain="{{ phrase('braintree_api_keys_explain') }}" />

<xf:textboxrow name="options[merchant_account]" value="{$profile.options.merchant_account}"
	label="{{ phrase('braintree_merchant_account_id') }}"
	explain="{{ phrase('braintree_merchant_account_id_explain') }}" />

<xf:checkboxrow	explain="{{ phrase('braintree_plan_id_explain', {'boardUrl': $xf.options.boardUrl}) }}">
	<xf:option checked="{$profile.options.plan_id}"
		label="{{ phrase('braintree_plan_id:') }}">

		<xf:textbox name="options[plan_id]" value="{$profile.options.plan_id}" />
	</xf:option>
</xf:checkboxrow>

<hr class="formRowSep" />

<xf:checkboxrow
	explain="{{ phrase('enable_apple_pay_support_braintree_explain') }}">
	<xf:option name="options[apple_pay_enable]" selected="{$profile.options.apple_pay_enable}">
		{{ phrase('enable_apple_pay_support') }}
	</xf:option>
</xf:checkboxrow>

<xf:checkboxrow
	explain="{{ phrase('enable_paypal_support_braintree_explain') }}">
	<xf:option name="options[paypal_enable]" selected="{$profile.options.paypal_enable}">
		{{ phrase('enable_paypal_support') }}
	</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="payment_profile_choose_provider" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('choose_payment_provider') }}</xf:title>

<xf:form action="{{ link('payment-profiles/add') }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:selectrow name="provider_id"
				label="{{ phrase('provider') }}">

				<xf:option />
				<xf:options source="$providers" />
			</xf:selectrow>
		</div>
		<xf:submitrow submit="{{ phrase('proceed...') }}" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="payment_profile_delete" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:if is="$profileUsed">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:inforow rowtype="confirm">
					{{ phrase('this_payment_profile_cannot_be_deleted_because_it_is_in_use:') }}
					<ul class="listInline listInline--comma">
						<xf:foreach loop="$profileUsed" value="$purchasable"><xf:trim>
							<li><a href="{$purchasable.link}">{$purchasable.title}</a></li>
						</xf:trim></xf:foreach>
					</ul>
				</xf:inforow>
			</div>
		</div>
	</div>
<xf:else />
	<xf:form action="{{ link('payment-profiles/delete', $profile) }}" ajax="true" class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:inforow rowtype="confirm">
					<div class="blockMessage blockMessage--important blockMessage--iconic">{{ phrase('note_deleting_payment_profiles_will_not_affect_any_existing_purchases') }}</div>

					{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
					<strong><a href="{{ link('payment-profiles/edit', $profile) }}">{$profile.title}</a></strong>
				</xf:inforow>
			</div>
			<xf:submitrow rowtype="simple" icon="delete" />
		</div>
	</xf:form>
</xf:if>]]></template>
  <template type="admin" title="payment_profile_edit" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:if is="$profile.isInsert()">
	<xf:title>{{ phrase('add_payment_profile:') }} {$provider.title}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_payment_profile:') }} {$provider.title} - {$profile.title}</xf:title>
</xf:if>

<xf:pageaction if="$profile.isUpdate()">
	<xf:button href="{{ link('payment-profiles/delete', $profile) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:if is="$profile.isDeprecated()">
	<div class="blockMessage blockMessage--important blockMessage--iconic">
		<xf:if is="$profile.isUpdate()">
			{{ phrase('this_payment_provider_is_deprecated_will_not_be_removed') }}
		<xf:else />
			{{ phrase('this_payment_provider_is_deprecated') }}
		</xf:if>
	</div>
</xf:if>

<xf:form action="{{ link('payment-profiles/save', $profile) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="title" value="{$profile}"
				label="{{ phrase('title') }}" />

			<xf:textboxrow name="display_title" value="{$profile}"
				label="{{ phrase('display_title') }}"
				explain="{{ phrase('payment_profile_display_title_explain') }}" />

			<hr class="formRowSep" />

			{{ $provider.renderConfig($profile)|raw }}

			<xf:submitrow sticky="true" icon="save" />
		</div>
	</div>

	<xf:hiddenval name="provider_id">{$provider.provider_id}</xf:hiddenval>
</xf:form>]]></template>
  <template type="admin" title="payment_profile_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('payment_profiles') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('payment-profiles/add') }}" icon="add" overlay="true">{{ phrase('add_payment_profile') }}</xf:button>
</xf:pageaction>

<xf:if is="!$xf.livePayments">
	<div class="blockMessage blockMessage--important blockMessage--iconic">
		{{ phrase('live_payments_have_been_disabled') }}
	</div>
</xf:if>

<xf:if is="$providers is not empty">
	<xf:form action="{{ link('payment-profiles/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="payment-profiles" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$providers" key="$providerId" value="$provider">
						<xf:if is="{$groupedProfiles.{$providerId}} is not empty">
							<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
								<xf:cell colspan="3">{$provider.title}</xf:cell>
							</xf:datarow>
							<xf:foreach loop="{$groupedProfiles.{$providerId}}" value="$profile">
								<xf:datarow
									label="{$profile.title}"
									hint="{{ $profile.display_title ?: '' }}"
									href="{{ link('payment-profiles/edit', $profile) }}"
									delete="{{ link('payment-profiles/delete', $profile) }}" />
							</xf:foreach>
						</xf:if>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($totalProfiles) }}</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="payment_profile_paypal" version_id="2000270" version_string="2.0.2"><![CDATA[<xf:textboxrow name="options[primary_account]" value="{$profile.options.primary_account}" type="email"
	label="{{ phrase('paypal_primary_account') }}"
	hint="{{ phrase('required') }}">

	<xf:explain>
		{{ phrase('paypal_primary_account_explain') }}
	</xf:explain>
</xf:textboxrow>

<xf:textarearow name="options[alternate_accounts]" value="{$profile.options.alternate_accounts}" autosize="true"
	label="{{ phrase('paypal_alternate_accounts') }}"
	explain="{{ phrase('paypal_alternate_accounts_explain') }}" />

<xf:checkboxrow>
	<xf:option name="options[require_address]" selected="$profile.options.require_address"
		label="{{ phrase('require_address') }}"
		hint="{{ phrase('require_address_hint') }}" />
</xf:checkboxrow>

<xf:hiddenval name="options[legacy]" value="{{ $profile.options.legacy ? 1 : 0 }}" />]]></template>
  <template type="admin" title="payment_profile_paypalrest" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:textboxrow name="options[client_id]" value="{$profile.options.client_id}"
	label="{{ phrase('client_id') }}"
	hint="{{ phrase('required') }}">
</xf:textboxrow>

<xf:textboxrow name="options[secret_key]" value="{$profile.options.secret_key}"
	label="{{ phrase('secret_key') }}"
	hint="{{ phrase('required') }}">
	<xf:explain>
		{{ phrase('paypalrest_secret_key_explain') }}
	</xf:explain>
</xf:textboxrow>

<hr class="formRowSep" />

<hr class="formRowSep" />

<xf:checkboxrow>
	<xf:option label="{{ phrase('enable_webhook_verification') }}" name="enable_webhook" selected="$profile.options.webhook_id" />
	<xf:explain>{{ phrase('enable_webhook_verification_explain') }}</xf:explain>
</xf:checkboxrow>

<xf:hiddenval name="options[webhook_id]" value="{$profile.options.webhook_id}" />]]></template>
  <template type="admin" title="payment_profile_stripe" version_id="2030031" version_string="2.3.0 Beta 1"><![CDATA[<xf:textboxrow name="options[live_publishable_key]" value="{$profile.options.live_publishable_key}"
	label="{{ phrase('stripe_live_publishable_key') }}" />

<xf:textboxrow name="options[live_secret_key]" value="{$profile.options.live_secret_key}"
	label="{{ phrase('stripe_live_secret_key') }}"
	explain="{{ phrase('stripe_live_secret_key_explain') }}" />

<hr class="formRowSep" />

<xf:textboxrow name="options[test_publishable_key]" value="{$profile.options.test_publishable_key}"
	label="{{ phrase('stripe_test_publishable_key') }}"/>

<xf:textboxrow name="options[test_secret_key]" value="{$profile.options.test_secret_key}"
	label="{{ phrase('stripe_test_secret_key') }}"
	explain="{{ phrase('stripe_test_secret_key_explain') }}" />

<hr class="formRowSep" />

<xf:textboxrow name="options[statement_descriptor]" value="{$profile.options.statement_descriptor}"
	minlength="5" maxlength="22"
	label="{{ phrase('stripe_statement_descriptor') }}"
	explain="{{ phrase('stripe_statement_descriptors_explain_charges_or_payments_on_bank_statements') }}" />

<hr class="formRowSep" />

<xf:formrow label="">
	<div class="formRow-explain">
		{{ phrase('stripe_webhook_explain', {'boardUrl': $xf.options.boardUrl}) }}

		<ul>
			<xf:foreach loop="$events" value="$event">
				<li><pre>{{ $event }}</pre></li>
			</xf:foreach>
		</ul>

		{{ phrase('for_additional_security_it_is_also_recommended_to_input_your_signing') }}
	</div>
</xf:formrow>

<hr class="formRowSep" />

<xf:checkboxrow>
	<xf:option label="{{ phrase('stripe_verify_webhook_with_signing_secret:') }}" selected="$profile.options.signing_secret">
		<xf:textbox name="options[signing_secret]" value="{$profile.options.signing_secret}" />
	</xf:option>
	<xf:explain>{{ phrase('stripe_verify_webhook_with_signing_secret_explain') }}</xf:explain>
</xf:checkboxrow>

<xf:hiddenval name="options[stripe_country]">{$profile.options.stripe_country}</xf:hiddenval>]]></template>
  <template type="admin" title="payment_profile_twocheckout" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:textboxrow name="options[account_number]" value="{$profile.options.account_number}"
	label="{{ phrase('twocheckout_account_number') }}" />

<xf:textboxrow name="options[secret_word]" value="{$profile.options.secret_word}"
	label="{{ phrase('twocheckout_secret_word') }}"
	explain="{{ phrase('twocheckout_account_number_explain') }}" />

<xf:textboxrow name="options[api_username]" value="{$profile.options.api_username}"
	label="{{ phrase('twocheckout_api_username') }}"
	hint="{{ phrase('optional') }}" />

<xf:textboxrow name="options[api_password]" value="{$profile.options.api_password}"
	label="{{ phrase('twocheckout_api_password') }}"
	hint="{{ phrase('optional') }}"
	explain="{{ phrase('twocheckout_api_username_password_explain') }}" />]]></template>
  <template type="admin" title="permission.less" version_id="2020036" version_string="2.2.0 Beta 6"><![CDATA[.formRow.formRow--permissionQuickSet
{
	> dt,
	> dd
	{
		padding-bottom: 0;
	}
}

.permissionChoices
{
	.m-listPlain();
	.m-clearFix();

	> li
	{
		float: left;
		margin-left: 1em;

		&:first-child
		{
			margin-left: 0;
		}
	}
}

.permissionChoices-choice
{
	border: 1px solid transparent;
	border-radius: @xf-borderRadiusMedium;

	&.is-selected
	{
		box-shadow: 1px 1px 5px rgba(0,0,0, .25);

		&.permissionChoices-choice--inherit
		{
			border-color: rgb(199, 199, 199);
			background:   rgb(237, 237, 237);
			color:        rgb(112, 112, 112);
		}

		&.permissionChoices-choice--yes
		{
			border-color: rgb(54, 150, 54);
			background:   rgb(68, 187, 68);
			color:        rgb(196, 253, 196);
		}

		&.permissionChoices-choice--no
		{
			border-color: rgb(229, 149, 36);
			background:   rgb(236, 178, 95);
			color:        rgb(252, 244, 232);
		}

		&.permissionChoices-choice--never
		{
			border-color: rgb(151, 12, 12);
			background:   rgb(203, 16, 16);
			color:        rgb(250, 194, 194);
		}

		label.iconic input + i
		{
			color: inherit;
		}
	}
}

.permissionChoices--flag
{
	label
	{
		display: block;
		min-width: 90px;
		text-align: center;
		padding: 0 @xf-paddingMedium;
	}

	.iconic i
	{
		position: relative;
		vertical-align: top;
	}
}

.permissionChoices--int
{
	.permissionChoices-choice--yes,
	.permissionChoices-choice--inherit
	{
		label
		{
			display: inline-block;
			line-height: 27px;
			padding: 0 @xf-paddingMedium;
			min-width: 90px;
			text-align: center;
		}

		.iconic i
		{
			position: relative;
			vertical-align: top;
		}
	}

	.inputGroup.inputGroup--joined
	{
		position: relative;

		.inputGroup-text
		{
			&.inputNumber-button
			{
				&.inputNumber-button--up
				{
					border-left: 0;
				}
			}
		}

		.input--number
		{
			display: inline;
			width: 80px;
			padding-top: @xf-paddingSmall;
			padding-bottom: @xf-paddingSmall;
		}
	}

	.permissionChoices-choice--int
	{
		&.is-disabled .inputGroup-text
		{
			.xf-inputDisabled(background);
		}

		&.is-disabled .permissionChoices-choiceIntLabel
		{
			display: block;
		}

		&.is-selected .input[type=number],
		&.is-selected .input[type=tel]
		{
			.xf-inputFocus();
		}
	}
}

.permissionChoices-choiceIntLabel
{
	display: none;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
}

@media (max-width: @xf-responsiveNarrow)
{
	.permissionChoices--flag,
	.permissionChoices--int .permissionChoices-choice--inherit
	{
		label
		{
			min-width: 0;
		}
	}
}]]></template>
  <template type="admin" title="permission_analyze" version_id="2020170" version_string="2.2.1"><![CDATA[<xf:title>{{ phrase('analyze_permissions') }}</xf:title>
<xf:description>{{ phrase('analyze_permissions_description') }}</xf:description>

<xf:if is="$analysis">
	<xf:set var="$interfaceGroups" value="{$permissionData.interfaceGroups}" />
	<xf:set var="$permissionsGrouped" value="{$permissionData.permissionsGrouped}" />
	<xf:set var="$permissionsGroupedType" value="{$permissionData.permissionsGroupedType}" />

	<xf:foreach loop="$interfaceGroups" key="$interfaceGroupId" value="$interfaceGroup">
		<xf:if contentcheck="true">
			<div class="block">
				<div class="block-container">
					<h3 class="block-header">{$interfaceGroup.title}</h3>
					<div class="block-body">
			<xf:contentcheck>
			<xf:foreach loop="{$permissionsGrouped.{$interfaceGroupId}}" value="$permission">
				<xf:if is="{$analysis.{$permission.permission_group_id}.{$permission.permission_id}}">
					<xf:set var="$permAnalysis" value="{$analysis.{$permission.permission_group_id}.{$permission.permission_id}}" />
					<xf:formrow label="{$permission.title}">
						<xf:if is="$permission.permission_type == 'flag'">
							<xf:if is="$permAnalysis.final">
								{{ phrase('yes') }}
							<xf:else />
								{{ phrase('no') }}
							</xf:if>
						<xf:else />
							<xf:if is="$permAnalysis.final == -1">
								{{ phrase('unlimited') }}
							<xf:else />
								{$permAnalysis.final}
							</xf:if>
						</xf:if>
						<a data-xf-click="toggle" role="button" tabindex="0">{{ phrase('(details)') }}</a>

						<div class="toggleTarget">
							<xf:foreach loop="$permAnalysis.intermediates" value="$intermediate">
								<dl class="pairs pairs--columns">
									<dt><xf:trim>
										<xf:if is="$intermediate.type == 'system'">
											<xf:if is="$intermediate.contentId">
												{$intermediate.contentTitle} - {{ phrase('content_wide') }}
											<xf:else />
												{{ phrase('global_value') }}
											</xf:if>
										<xf:elseif is="$intermediate.type == 'group'" />
											<xf:if is="$intermediate.contentId">
												{$intermediate.contentTitle} - {$userGroupTitles.{$intermediate.typeId}}
											<xf:else />
												{$userGroupTitles.{$intermediate.typeId}}
											</xf:if>
										<xf:elseif is="$intermediate.type == 'user'" />
											<xf:if is="$intermediate.contentId">
												{$intermediate.contentTitle} - {{ phrase('user_value') }}
											<xf:else />
												{{ phrase('user_value') }}
											</xf:if>
										</xf:if>
									</xf:trim></dt>
									<dd>
										<xf:if is="$permission.permission_type == 'flag'">
											<xf:if is="$intermediate.value == 'deny'">{{ phrase('never') }}
											<xf:elseif is="$intermediate.value == 'content_allow'" />{{ phrase('yes') }}
											<xf:elseif is="$intermediate.value == 'reset'" />{{ phrase('no') }}
											<xf:elseif is="$intermediate.value == 'allow'" />{{ phrase('yes') }}
											<xf:elseif is="$intermediate.value == 'unset'" />{{ phrase('no') }}
											</xf:if>
										<xf:else />
											<xf:if is="$intermediate.value == -1">
												{{ phrase('unlimited') }}
											<xf:else />
												{$intermediate.value}
											</xf:if>
										</xf:if>
									</dd>
								</dl>
							</xf:foreach>
							<xf:if is="$permAnalysis.dependChange">
								<xf:set var="$parentPermission" value="{$permissionsGroupedType.{$permission.permission_group_id}.{$permAnalysis.dependChange.by}}" />
								<div>
									<xf:fa icon="fa-exclamation-triangle" class="u-accentText" />
									{{ phrase('requires_x_permission', {'title': $parentPermission.title}) }}
								</div>
							</xf:if>
						</div>
					</xf:formrow>
				</xf:if>
			</xf:foreach>
			</xf:contentcheck>
					</div>
				</div>
			</div>
		</xf:if>
	</xf:foreach>

</xf:if>

<div class="block">
	<div class="block-container">
		<h2 class="block-tabHeader tabs hScroller" data-xf-init="tabs h-scroller" role="tablist">
			<span class="hScroller-scroll">
				<a class="tabs-tab {{ $contentType == '' ? 'is-active' : '' }}"
					role="tab" tabindex="0" aria-controls="analyze-global-permissions">{{ phrase('global_permissions') }}</a>

				<xf:foreach loop="$contentOptions" key="$_contentType" value="$_contentPermission" if="$_contentPermission.content">
					<a class="tabs-tab {{ $contentType == $_contentType ? 'is-active' : '' }}"
						role="tab" tabindex="0" aria-controls="analyze-{$contentType}">{$_contentPermission.title}</a>
				</xf:foreach>
			</span>
		</h2>

		<ul class="tabPanes">
			<li class="{{ $contentType == '' ? 'is-active' : '' }}" role="tabpanel" id="analyze-global-permissions">
				<xf:form action="{{ link('permissions/analyze') }}">
					<div class="block-body">
						<xf:textboxrow name="username" value="{$username}" ac="single"
							label="{{ phrase('user_name') }}" />
					</div>
					<xf:submitrow submit="{{ phrase('analyze') }}" />
				</xf:form>
			</li>
			<xf:foreach loop="$contentOptions" key="$_contentType" value="$_contentPermission" if="$_contentPermission.content">
				<li class="{{ $contentType == $_contentType ? 'is-active' : '' }}" role="tabpanel" id="analyze-{$_contentType}">
					<xf:form action="{{ link('permissions/analyze') }}">
						<div class="block-body">
							<xf:textboxrow name="username" value="{$username}" ac="single"
								label="{{ phrase('user_name') }}" />

							<xf:selectrow name="content_id" value="{{ $contentType == $_contentType ? $contentId : 0 }}"
								label="{{ phrase('content') }}">

								<xf:option value="0">&nbsp;</xf:option>
								<xf:options source="$_contentPermission.content" />
							</xf:selectrow>
						</div>

						<xf:submitrow submit="{{ phrase('analyze') }}" />
						<xf:hiddenval name="content_type">{$_contentType}</xf:hiddenval>
					</xf:form>
				</li>
			</xf:foreach>
		</ul>
	</div>
</div>]]></template>
  <template type="admin" title="permission_category_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="list"
	arg-category="!"
	arg-isPrivate="!"
	arg-userGroups="!"
	arg-users="!"
	arg-entries="!"
	arg-routeBase="!">

	<xf:form action="{{ link($routeBase . '/save', $category) }}" ajax="true" class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:checkboxrow>
					<xf:option name="private" selected="{$isPrivate}"
						label="{{ phrase('private_category') }}"
						hint="{{ phrase('private_category_hint') }}" />
				</xf:checkboxrow>
			</div>
			<xf:submitrow icon="save" />
		</div>
		<xf:hiddenval name="type">private</xf:hiddenval>
	</xf:form>

	<div class="block">
		<div class="block-container">
			<h3 class="block-header">{{ phrase('user_groups') }}</h3>
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$userGroups" value="$userGroup">
						<xf:datarow
							label="{$userGroup.title}"
							href="{{ link($routeBase . '/edit', $category, {'user_group_id': $userGroup.user_group_id}) }}"
							rowclass="{{ {$entries.groups.{$userGroup.user_group_id}} ? 'dataList-row--custom' : '' }}" />
					</xf:foreach>
				</xf:datalist>
			</div>
		</div>
	</div>

	<xf:form action="{{ link($routeBase . '/edit', $category) }}" class="block">
		<div class="block-container">
			<h3 class="block-header">{{ phrase('users_with_permissions_set') }}</h3>
			<div class="block-body">
				<xf:if is="$users is not empty">
					<xf:datalist>
						<xf:foreach loop="$users" value="$user">
							<xf:datarow
								label="{$user.username}"
								href="{{ link($routeBase . '/edit', $category, {'user_id': $user.user_id}) }}"
								rowclass="dataList-row--custom" />
						</xf:foreach>
					</xf:datalist>
					<hr class="block-separator" />
				</xf:if>
				<xf:textboxrow name="username" ac="single"
					label="{{ phrase('set_permissions_for_user') }}" />
			</div>
			<xf:submitrow submit="{{ phrase('proceed...') }}" />
		</div>
		<xf:hiddenval name="type">user</xf:hiddenval>
	</xf:form>
</xf:macro>

<xf:macro id="edit"
	arg-category="!"
	arg-permissionData="!"
	arg-typeEntries="!"
	arg-routeBase="!"
	arg-saveParams="!">

	<xf:form action="{{ link($routeBase . '/save', $category, $saveParams) }}" ajax="true" class="block">
		<xf:macro id="permission_macros::edit_outer" arg-type="content" />

		<div class="block-container">
			<xf:macro id="permission_macros::content_edit_groups"
				arg-permissionsGrouped="{$permissionData.permissionsGrouped}"
				arg-interfaceGroups="{$permissionData.interfaceGroups}"
				arg-values="{$typeEntries}"
			/>
			<xf:submitrow sticky="true" icon="save" />
		</div>
	</xf:form>
</xf:macro>]]></template>
  <template type="admin" title="permission_definition_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$permission.isInsert()">
	<xf:title>{{ phrase('add_permission') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_permission:') }} {$permission.title}</xf:title>
</xf:if>

<xf:pageaction if="$permission.isUpdate()">
	<xf:button href="{{ link('permission-definitions/permissions/delete', $permission) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('permission-definitions/permissions/save', $permission) }}" ajax="true" class="block">

	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="permission_group_id" value="{$permission}"
				label="{{ phrase('permission_group') }}"
				dir="ltr" />
			<xf:textboxrow name="permission_id" value="{$permission}"
				label="{{ phrase('permission_id') }}"
				dir="ltr" />

			<xf:textboxrow name="title" value="{$permission}"
				label="{{ phrase('title') }}" />

			<xf:textboxrow name="depend_permission_id" value="{$permission}"
				label="{{ phrase('depends_on_permission_id') }}"
				hint="{{ phrase('must_be_in_same_permission_group') }}" />

			<hr class="formRowSep" />

			<xf:radiorow name="permission_type" value="{$permission}"
				label="{{ phrase('permission_type') }}">

				<xf:option value="flag">{{ phrase('flag') }}</xf:option>
				<xf:option value="integer">{{ phrase('integer') }}</xf:option>
			</xf:radiorow>

			<hr class="formRowSep" />

			<xf:selectrow name="interface_group_id" value="{$permission}"
				label="{{ phrase('interface_group') }}">

				<xf:option value="" />
				<xf:foreach loop="$interfaceGroups" value="$interfaceGroup">
					<xf:option value="{$interfaceGroup.interface_group_id}">{$interfaceGroup.title}</xf:option>
				</xf:foreach>
			</xf:selectrow>

			<xf:macro id="display_order_macros::row" arg-value="{$permission}" />

			<hr class="formRowSep" />

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$permission.addon_id}" />
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>

</xf:form>]]></template>
  <template type="admin" title="permission_definition_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('permissions') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('permission-definitions/permissions/add') }}" icon="add">
		{{ phrase('add_permission') }}
	</xf:button>
	<xf:button href="{{ link('permission-definitions/interface-groups/add') }}" icon="add">
		{{ phrase('add_interface_group') }}
	</xf:button>
</xf:pageaction>

<xf:foreach loop="$interfaceGroups" key="$interfaceGroupId" value="$interfaceGroup">
	<div class="block">
		<div class="block-container">
			<h2 class="block-header">
					<span class="u-pullRight">

						<xf:button href="{{ link('permission-definitions/permissions/add', null, {'interface_group_id': $interfaceGroupId}) }}" class="button--link" fa="fa-plus-square">{{ phrase('add_permission') }}</xf:button>
						<xf:button href="{{ link('permission-definitions/interface-groups/edit', $interfaceGroup) }}" class="button--link" fa="fa-edit">{{ phrase('edit') }}</xf:button>
					</span>
				{{ anchor_target('interface_group_' . $interfaceGroup.interface_group_id) }}
				{$interfaceGroup.title}
				<span class="block-desc">
					{$interfaceGroupId} ({$interfaceGroup.display_order})
				</span>
			</h2>
			<div class="block-body">
				<xf:if is="{$permissionsGrouped.{$interfaceGroupId}} is not empty">
					<xf:datalist>
						<xf:foreach loop="{$permissionsGrouped.{$interfaceGroupId}}" value="$permission">
							<xf:datarow
								href="{{ link('permission-definitions/permissions/edit', $permission) }}"
								label="{$permission.title}"
								hint="{$permission.permission_group_id} / {$permission.permission_id} ({$permission.display_order})"
								hash="{$permission.permission_group_id}_{$permission.permission_id}" />
						</xf:foreach>
					</xf:datalist>
				<xf:else />
					<div class="block-row">
						{{ phrase('no_permissions_have_been_created_for_interface_group_yet', {
							'link': link('permission-definitions/permissions/add', null, {
								'interface_group_id': $interfaceGroupId
							})
						}) }}
					</div>
				</xf:if>
			</div>
		</div>
	</div>
</xf:foreach>

<xf:set var="$ungroupedKey" value="" />
<xf:if is="{$permissionsGrouped.{$ungroupedKey}} is not empty">
	<div class="block">
		<div class="block-container">
			<h2 class="block-header">
				{{ phrase('ungrouped_permissions') }}
			</h2>
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="{$permissionsGrouped.{$ungroupedKey}}" value="$permission">
						<xf:datarow
							href="{{ link('permission-definitions/permissions/edit', $permission) }}"
							label="{$permission.title}"
							hint="{$permission.permission_group_id} / {$permission.permission_id}"
							hash="{$permission.permission_group_id}_{$permission.permission_id}" />
					</xf:foreach>
				</xf:datalist>
			</div>
		</div>
	</div>
</xf:if>]]></template>
  <template type="admin" title="permission_interface_group_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$interfaceGroup.isInsert()">
	<xf:title>{{ phrase('add_interface_group') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_interface_group:') }} {$interfaceGroup.title}</xf:title>
</xf:if>

<xf:pageaction if="$interfaceGroup.isUpdate()">
	<xf:button href="{{ link('permission-definitions/interface-groups/delete', $interfaceGroup) }}"
		icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('permission-definitions/interface-groups/save', $interfaceGroup) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="interface_group_id" value="{$interfaceGroup}"
				label="{{ phrase('interface_group_id') }}"
				dir="ltr" />

			<xf:textboxrow name="title" value="{$interfaceGroup}"
				label="{{ phrase('title') }}" />

			<xf:macro id="display_order_macros::row" arg-value="{$interfaceGroup}" />

			<xf:checkboxrow name="is_moderator" value="{$interfaceGroup.is_moderator}">
				<xf:option value="1" label="{{ phrase('this_interface_group_contains_moderator_permissions') }}" />
			</xf:checkboxrow>

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$interfaceGroup.addon_id}" />
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>

</xf:form>]]></template>
  <template type="admin" title="permission_macros" version_id="2030070" version_string="2.3.0"><![CDATA[<xf:macro id="edit_outer" arg-type="!" arg-class="block-outer">
	<xf:js src="xf/permission.js" min="1" />
	<xf:css src="permission.less" />

	<div class="{$class}"
		data-xf-init="permission-form"
		data-form="< form"
		data-permission-type="{$type}">

		<div class="{$class}-main js-globalPermissionQuickSet">
			<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true">{{ phrase('quick_set') }}</xf:button>
			<xf:macro id="quick_set_menu" arg-type="{$type}" />
		</div>
		<div class="{$class}-opposite quickFilter">
			<input type="search" class="input js-permissionFilterInput" placeholder="{{ phrase('filter...') }}" />
		</div>
	</div>

</xf:macro>

<xf:macro id="quick_set_menu" arg-type="!" arg-target="">
	<div class="menu" data-menu="menu" aria-hidden="true">
		<div class="menu-content">
			<h3 class="menu-header">{{ phrase('quick_set') }}</h3>
			<xf:if is="$type == 'global'">
				<a class="menu-linkRow js-permissionQuickSet" data-target="{$target}" data-value="allow" tabindex="0">
					{{ phrase('set_all_to_x', {'value': phrase('yes')}) }}
				</a>
				<a class="menu-linkRow js-permissionQuickSet" data-target="{$target}" data-value="unset" tabindex="0">
					{{ phrase('set_all_to_x', {'value': phrase('no')}) }}
				</a>
				<a class="menu-linkRow js-permissionQuickSet" data-target="{$target}" data-value="deny" tabindex="0">
					{{ phrase('set_all_to_x', {'value': phrase('never')}) }}
				</a>
			<xf:elseif is="$type == 'content'" />
				<a class="menu-linkRow js-permissionQuickSet" data-target="{$target}" data-value="unset" tabindex="0">
					{{ phrase('set_all_to_x', {'value': phrase('inherit')}) }}
				</a>
				<a class="menu-linkRow js-permissionQuickSet" data-target="{$target}" data-value="content_allow" tabindex="0">
					{{ phrase('set_all_to_x', {'value': phrase('yes')}) }}
				</a>
				<a class="menu-linkRow js-permissionQuickSet" data-target="{$target}" data-value="reset" tabindex="0">
					{{ phrase('set_all_to_x', {'value': phrase('no')}) }}
				</a>
				<a class="menu-linkRow js-permissionQuickSet" data-target="{$target}" data-value="deny" tabindex="0">
					{{ phrase('set_all_to_x', {'value': phrase('never')}) }}
				</a>
			</xf:if>
		</div>
	</div>
</xf:macro>

<xf:macro id="edit_groups" arg-interfaceGroups="!" arg-permissionsGrouped="!" arg-values="!">
	<xf:foreach loop="$interfaceGroups" key="$interfaceGroupId" value="$interfaceGroup">
		<xf:if is="{$permissionsGrouped.{$interfaceGroupId}} is not empty">
			<h3 class="block-formSectionHeader">
				<span class="collapseTrigger collapseTrigger--block is-active" data-xf-click="toggle" data-target="< :up:next">
					<span class="block-formSectionHeader-aligner">{$interfaceGroup.title}</span>
				</span>
			</h3>
			<div class="block-body block-body--collapsible is-active"
				data-moderator-permissions="{$interfaceGroup.is_moderator}"
				id="permGroup-{$interfaceGroupId}">

				<xf:if is="count({$permissionsGrouped.{$interfaceGroupId}}) > 2">
					<xf:formrow rowclass="formRow--permissionQuickSet">
						<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true">{{ phrase('quick_set') }}</xf:button>
						<xf:macro id="quick_set_menu" arg-type="global" arg-target="#permGroup-{$interfaceGroupId}" />
					</xf:formrow>
				</xf:if>
				<xf:foreach loop="{$permissionsGrouped.{$interfaceGroupId}}" value="$permission">
					<xf:macro id="edit_permission"
						arg-permission="{$permission}"
						arg-value="{$values.{$permission.permission_group_id}.{$permission.permission_id}}" />
				</xf:foreach>
			</div>
		</xf:if>
	</xf:foreach>
</xf:macro>

<xf:macro id="edit_permission" arg-permission="!" arg-value="!">
	<xf:set var="$inputName" value="permissions[{$permission.permission_group_id}][{$permission.permission_id}]" />
	<xf:formrow
		label="{$permission.title}"
		rowclass="js-permission"
		data-xf-init="permission-choice"
		data-permission-type="{$permission.permission_type}">

		<xf:if is="$permission.permission_type == 'flag'">
			<ul class="permissionChoices permissionChoices--flag">
				<li class="permissionChoices-choice permissionChoices-choice--yes">
					<xf:radio name="{$inputName}" value="{$value}" standalone="true">
						<xf:option value="allow"
							label="{{ phrase('yes') }}" />
					</xf:radio>
				</li>
				<li class="permissionChoices-choice permissionChoices-choice--no">
					<xf:radio name="{$inputName}" value="{{ ($value == 'unset' || !$value) ? 'unset' : '' }}" standalone="true">
						<xf:option value="unset"
							label="{{ phrase('no') }}" />
					</xf:radio>
				</li>
				<li class="permissionChoices-choice permissionChoices-choice--never">
					<xf:radio name="{$inputName}" value="{$value}" standalone="true">
						<xf:option value="deny"
							label="{{ phrase('never') }}" />
					</xf:radio>
				</li>
			</ul>
		<xf:else />
			<ul class="permissionChoices permissionChoices--int">
				<li class="permissionChoices-choice permissionChoices-choice--yes">
					<xf:radio name="{$inputName}" value="{$value}" standalone="true">
						<xf:option value="-1"
							label="{{ phrase('unlimited') }}" />
					</xf:radio>
				</li>
				<li class="permissionChoices-choice permissionChoices-choice--int">
					<div class="inputGroup inputGroup--inline inputGroup--joined inputNumber">
						<span class="inputGroup-text">
							<xf:radio name="{$inputName}" value="{$value}" standalone="true">
								<xf:option value="0"
									selected="{{ $value >= 0 }}"
									data-xf-init="disabler"
									data-container="< li"
									label="{{ phrase('as_follows:') }}"
									hiddenlabel="true"
									id="perm_{$permission.permission_group_id}_{$permission.permission_id}_radio" />
							</xf:radio>
							<label class="permissionChoices-choiceIntLabel" for="perm_{$permission.permission_group_id}_{$permission.permission_id}_radio"></label>
						</span>
						<xf:textbox name="{$inputName}" value="{{ $value >= 0 ? $value|default(0) : 0 }}" type="number"
							class="input--number js-numberBoxTextInput js-permissionIntInput"
							min="0" pattern="\d*" />
					</div>
				</li>
			</ul>
		</xf:if>
	</xf:formrow>
</xf:macro>

<xf:macro id="content_edit_groups" arg-interfaceGroups="!" arg-permissionsGrouped="!" arg-values="!">
	<xf:foreach loop="$interfaceGroups" key="$interfaceGroupId" value="$interfaceGroup">
		<xf:if is="{$permissionsGrouped.{$interfaceGroupId}} is not empty">
			<h3 class="block-formSectionHeader">
				<span class="collapseTrigger collapseTrigger--block is-active" data-xf-click="toggle" data-target="< :up:next">
					<span class="block-formSectionHeader-aligner">{$interfaceGroup.title}</span>
				</span>
			</h3>
			<div class="block-body block-body--collapsible is-active"
				data-moderator-permissions="{$interfaceGroup.is_moderator}"
				id="permGroup-{$interfaceGroupId}">

				<xf:if is="count({$permissionsGrouped.{$interfaceGroupId}}) > 2">
					<xf:formrow rowclass="formRow--permissionQuickSet">
						<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true">{{ phrase('quick_set') }}</xf:button>
						<xf:macro id="quick_set_menu" arg-type="content" arg-target="#permGroup-{$interfaceGroupId}" />
					</xf:formrow>
				</xf:if>
				<xf:foreach loop="{$permissionsGrouped.{$interfaceGroupId}}" value="$permission">
					<xf:macro id="content_edit_permission"
						arg-permission="{$permission}"
						arg-value="{$values.{$permission.permission_group_id}.{$permission.permission_id}}" />
				</xf:foreach>
			</div>
		</xf:if>
	</xf:foreach>
</xf:macro>

<xf:macro id="content_edit_permission" arg-permission="!" arg-value="!">
	<xf:set var="$inputName" value="permissions[{$permission.permission_group_id}][{$permission.permission_id}]" />
	<xf:formrow
		label="{$permission.title}"
		rowclass="js-permission"
		data-xf-init="permission-choice"
		data-permission-type="{$permission.permission_type}">

		<xf:if is="$permission.permission_type == 'flag'">
			<ul class="permissionChoices permissionChoices--flag">
				<li class="permissionChoices-choice permissionChoices-choice--inherit">
					<xf:radio name="{$inputName}" value="{{ (!$value || $value == 'unset') ? 'unset' : '' }}" standalone="true">
						<xf:option value="unset"
							label="{{ phrase('inherit') }}" />
					</xf:radio>
				</li>
				<li class="permissionChoices-choice permissionChoices-choice--yes">
					<xf:radio name="{$inputName}" value="{$value}" standalone="true">
						<xf:option value="content_allow"
							label="{{ phrase('yes') }}" />
					</xf:radio>
				</li>
				<li class="permissionChoices-choice permissionChoices-choice--no">
					<xf:radio name="{$inputName}" value="{$value}" standalone="true">
						<xf:option value="reset"
							label="{{ phrase('no') }}" />
					</xf:radio>
				</li>
				<li class="permissionChoices-choice permissionChoices-choice--never">
					<xf:radio name="{$inputName}" value="{$value}" standalone="true">
						<xf:option value="deny"
							label="{{ phrase('never') }}" />
					</xf:radio>
				</li>
			</ul>
		<xf:else />
			<ul class="permissionChoices permissionChoices--int">
				<li class="permissionChoices-choice permissionChoices-choice--inherit">
					<xf:radio name="{$inputName}" value="{{ (!$value || $value == 0) ? 0 : null }}" standalone="true">
						<xf:option value="0"
							label="{{ phrase('inherit') }}" />
					</xf:radio>
				</li>
				<li class="permissionChoices-choice permissionChoices-choice--yes">
					<xf:radio name="{$inputName}" value="{$value}" standalone="true">
						<xf:option value="-1"
							label="{{ phrase('unlimited') }}" />
					</xf:radio>
				</li>
				<li class="permissionChoices-choice permissionChoices-choice--int">
					<div class="inputGroup inputGroup--inline inputGroup--joined inputNumber">
						<span class="inputGroup-text">
							<xf:radio name="{$inputName}" standalone="true">
								<xf:option value="1"
									selected="{{ $value >= 1 }}"
									data-xf-init="disabler"
									data-container="< li"
									label="{{ phrase('as_follows:') }}"
									hiddenlabel="true"
									id="perm_{$permission.permission_group_id}_{$permission.permission_id}_radio" />
							</xf:radio>
							<label class="permissionChoices-choiceIntLabel" for="perm_{$permission.permission_group_id}_{$permission.permission_id}_radio"></label>
						</span>
						<xf:textbox type="number" name="{$inputName}" value="{{ $value >= 1 ? $value|default(1) : 1 }}"
							class="input--number js-numberBoxTextInput js-permissionIntInput"
							min="0" pattern="\d*" />
					</div>
				</li>
			</ul>
		</xf:if>
	</xf:formrow>
</xf:macro>]]></template>
  <template type="admin" title="permission_node_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$userGroup">
	<xf:title>{$userGroup.title}</xf:title>
<xf:else />
	<xf:title>{$user.username}</xf:title>
</xf:if>

<xf:breadcrumb href="{{ link($routePrefix, $record) }}">{$record.title}</xf:breadcrumb>

<xf:macro id="permission_node_macros::edit"
	arg-node="{$record}"
	arg-permissionData="{$permissionData}"
	arg-typeEntries="{$typeEntries}"
	arg-routeBase="{$routePrefix}"
	arg-saveParams="{$saveParams}" />]]></template>
  <template type="admin" title="permission_node_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{$record.title}</xf:title>

<xf:macro id="permission_node_macros::list"
	arg-node="{$record}"
	arg-isPrivate="{$isPrivate}"
	arg-userGroups="{$userGroups}"
	arg-users="{$users}"
	arg-entries="{$entries}"
	arg-routeBase="{$routePrefix}" />]]></template>
  <template type="admin" title="permission_node_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="list"
	arg-node="!"
	arg-isPrivate="!"
	arg-userGroups="!"
	arg-users="!"
	arg-entries="!"
	arg-routeBase="!">

	<xf:form action="{{ link($routeBase . '/save', $node) }}" ajax="true" class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:checkboxrow>
					<xf:option name="private" selected="{$isPrivate}"
						label="{{ phrase('private_node') }}"
						hint="{{ phrase('if_selected_users_only_view_node_if_granted_permissions') }}" />
				</xf:checkboxrow>
			</div>
			<xf:submitrow icon="save" />
		</div>
		<xf:hiddenval name="type">private</xf:hiddenval>
	</xf:form>

	<div class="block">
		<div class="block-container">
			<h3 class="block-header">{{ phrase('user_groups') }}</h3>
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$userGroups" value="$userGroup">
						<xf:datarow
							label="{$userGroup.title}"
							href="{{ link($routeBase . '/edit', $node, {'user_group_id': $userGroup.user_group_id}) }}"
							rowclass="{{ {$entries.groups.{$userGroup.user_group_id}} ? 'dataList-row--custom' : '' }}" />
					</xf:foreach>
				</xf:datalist>
			</div>
		</div>
	</div>

	<xf:form action="{{ link($routeBase . '/edit', $node) }}" class="block">
		<div class="block-container">
			<h3 class="block-header">{{ phrase('users_with_permissions_set') }}</h3>
			<div class="block-body">
				<xf:if is="$users is not empty">
					<xf:datalist>
						<xf:foreach loop="$users" value="$user">
							<xf:datarow
								label="{$user.username}"
								href="{{ link($routeBase . '/edit', $node, {'user_id': $user.user_id}) }}"
								rowclass="dataList-row--custom" />
						</xf:foreach>
					</xf:datalist>
					<hr class="block-separator" />
				</xf:if>
				<xf:textboxrow name="username" ac="single"
					label="{{ phrase('set_permissions_for_user') }}" />
			</div>
			<xf:submitrow submit="{{ phrase('proceed...') }}" />
		</div>
		<xf:hiddenval name="type">user</xf:hiddenval>
	</xf:form>
</xf:macro>

<xf:macro id="edit"
	arg-node="!"
	arg-permissionData="!"
	arg-typeEntries="!"
	arg-routeBase="!"
	arg-saveParams="!">

	<xf:form action="{{ link($routeBase . '/save', $node, $saveParams) }}"
		ajax="true" class="block">

		<xf:macro id="permission_macros::edit_outer" arg-type="content" />

		<div class="block-container">
			<xf:macro id="permission_macros::content_edit_groups"
				arg-permissionsGrouped="{$permissionData.permissionsGrouped}"
				arg-interfaceGroups="{$permissionData.interfaceGroups}"
				arg-values="{$typeEntries}" />
			<xf:submitrow sticky="true" icon="save" />
		</div>
	</xf:form>
</xf:macro>]]></template>
  <template type="admin" title="permission_node_overview" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('node_permissions') }}</xf:title>

<xf:if is="$nodeTree.countChildren()">
	<div class="block">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="nodes" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$nodeTree.getFlattened(0)" value="$treeEntry">
						<xf:set var="$node" value="{$treeEntry.record}" />
						<xf:datarow rowclass="{{ {$customPermissions.{$node.node_id}} ? 'dataList-row--custom' : '' }}">
							<xf:cell class="dataList-cell--min"><xf:macro template="node_list" name="node_icon" arg-node="{$node}" /></xf:cell>
							<xf:cell class="dataList-cell--link dataList-cell--main" hash="{$node.node_id}">
								<a href="{{ link('permissions/nodes', $node) }}">
									<div class="u-depth{$treeEntry.depth}">
										<div class="dataList-mainRow">{$node.title} <span class="dataList-hint" dir="auto">{$node.NodeType.title} <xf:if is="callable($node.Data, 'getTypeHandler')"> ({{ $node.Data.TypeHandler.getTypeTitle() }})</xf:if></span></div>
									</div>
								</a>
							</xf:cell>
							<xf:action href="{{ link('nodes/edit', $node) }}">{{ phrase('edit') }}</xf:action>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($nodeTree.getFlattened(0)) }}</span>
			</div>
		</div>
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="permission_user_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{$user.username}</xf:title>

<xf:form action="{{ link('permissions/users/save', $user) }}" ajax="true" class="{{ $tabbed ? '' : 'block' }}">

	<xf:if is="$tabbed">
		<div class="block-body">
			<div class="block-row">{{ phrase('user_permissions_warning', {
				'user': $user.username,
				'link': link('permissions/user-groups')
			}) }}</div>
			<xf:hiddenval name="from-user-edit" value="1" />
		</div>
	</xf:if>

	<xf:macro id="permission_macros::edit_outer"
		arg-type="global"
		arg-class="{{ $tabbed ? 'block-row' : 'block-outer' }}"/>

	<div class="{{ $tabbed ? '' : 'block-container' }}">
		<xf:macro id="permission_macros::edit_groups"
			arg-interfaceGroups="{$permissionData.interfaceGroups}"
			arg-permissionsGrouped="{$permissionData.permissionsGrouped}"
			arg-values="{$userEntries}" />
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="permission_user_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('user_permissions') }}</xf:title>

<xf:if is="$users is not empty">
	<div class="block">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="user-permissions" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<h3 class="block-header">{{ phrase('users_with_permissions_set') }}</h3>
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$users" value="$user">
						<xf:datarow
							label="{$user.username}"
							href="{{ link('permissions/users', $user) }}" />
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($users) }}</span>
			</div>
		</div>
	</div>
</xf:if>

<xf:form action="{{ link('permissions/users') }}" method="post" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="username" ac="single"
				label="{{ phrase('set_permissions_for_user') }}" />
		</div>
		<xf:submitrow submit="{{ phrase('proceed...') }}" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="permissions_user_group_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{$userGroup.title}</xf:title>

<xf:form action="{{ link('permissions/user-groups/save', $userGroup) }}" ajax="true" class="block">
	<xf:macro id="permission_macros::edit_outer" arg-type="global" />

	<div class="block-container">
		<xf:macro id="permission_macros::edit_groups"
			arg-interfaceGroups="{$permissionData.interfaceGroups}"
			arg-permissionsGrouped="{$permissionData.permissionsGrouped}"
			arg-values="{$permissionData.values}" />

		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="permissions_user_group_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('user_group_permissions') }}</xf:title>

<xf:if is="$userGroups is not empty">
	<div class="block">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="user-groups" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$userGroups" value="$userGroup">
						<xf:datarow>
							<xf:main hash="{$userGroup.user_group_id}"
								href="{{ link('permissions/user-groups', $userGroup) }}" label="{$userGroup.title}"
								hint="{$userGroup.user_title}" />
							<xf:action href="{{ link('user-groups/edit', $userGroup) }}">{{ phrase('group_info') }}
							</xf:action>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($userGroups) }}</span>
			</div>
		</div>
	</div>
</xf:if>]]></template>
  <template type="admin" title="phrase_delete" version_id="2000038" version_string="2.0.0 Beta 8"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('phrases/delete', $phrase) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<xf:if is="$phrase.language_id">
					{{ phrase('please_confirm_that_you_want_to_revert_the_following:') }}
				<xf:else />
					{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				</xf:if>
				<strong>
					{{ $phrase.language_id ? '<em class="u-dimmed">' . $phrase.Language.title . ':</em> ' : '' }}
					<a href="{{ link('phrases/edit', $phrase) }}">{$phrase.title}</a>
				</strong>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ $phrase.language_id ? phrase('revert') : phrase('button.delete') }}"
			rowtype="simple" icon="{{ !$phrase.language_id ? 'delete' : '' }}" />
	</div>
	<xf:redirect />
</xf:form>]]></template>
  <template type="admin" title="phrase_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$phrase.isInsert()">
	<xf:title>{{ phrase('add_phrase') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_phrase:') }} {$phrase.title}</xf:title>
</xf:if>

<xf:page option="breadcrumbPath" value="languages" />
<xf:breadcrumb href="{{ link('languages/phrases', $language) }}">{$language.title} - {{ phrase('phrases') }}</xf:breadcrumb>

<xf:pageaction if="$phrase.isUpdate() AND $phrase.language_id == $language.language_id">
	<xf:if is="$language.language_id">
		<xf:button href="{{ link('phrases/delete', $phrase, {'_xfRedirect': $redirect}) }}" overlay="true">{{ phrase('revert') }}</xf:button>
	<xf:else />
		<xf:button href="{{ link('phrases/delete', $phrase, {'_xfRedirect': $redirect}) }}" icon="delete" overlay="true" />
	</xf:if>
</xf:pageaction>

<xf:form action="{{ link('phrases/save', $phrase) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('language') }}">
				{$language.title}
				<xf:hiddenval name="language_id">{$language.language_id}</xf:hiddenval>
			</xf:formrow>

			<xf:textboxrow name="title" value="{$phrase}"
				label="{{ phrase('title') }}"
				hint="{{ phrase('must_be_unique') }}"
				autofocus="autofocus"
				autocomplete="off"
				dir="ltr" />

			<xf:if is="$phrase.isUpdate() AND $language.language_id > 0 AND $phrase.Master.phrase_text">
				<xf:formrow label="{{ phrase('master_value') }}">
					<div class="u-ltr">
						{{ $phrase.language_id == 0 ? $phrase.phrase_text|nl2br : $phrase.Master.phrase_text|nl2br }}
					</div>
				</xf:formrow>
			</xf:if>

			<xf:textarearow name="phrase_text" value="{$phrase}"
				dir="{$language.text_direction}" autosize="true"
				label="{{ phrase('phrase_text') }}"
				explain="{{ phrase('phrase_text_explain') }}" />

			<xf:if is="!$language.language_id">
				<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$phrase.addon_id}" />
			<xf:else />
				<xf:hiddenval name="addon_id">{$phrase.addon_id}</xf:hiddenval>
			</xf:if>

			<xf:if is="!$language.language_id">
				<xf:checkboxrow>
					<xf:option name="global_cache" selected="{$phrase.global_cache}">{{ phrase('cache_this_phrase_globally') }}</xf:option>
				</xf:checkboxrow>
			</xf:if>
		</div>
		<xf:submitrow sticky="true" icon="save">
			<xf:html>
				<xf:button type="submit" icon="save" name="exit">{{ phrase('save_and_exit') }}</xf:button>
				<input type="hidden" name="_page" value="{$_page}" />
			</xf:html>
		</xf:submitrow>
	</div>
	<xf:redirect />
</xf:form>]]></template>
  <template type="admin" title="phrase_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{$language.title} - {{ phrase('phrases') }}</xf:title>

<xf:page option="breadcrumbPath" value="languages" />
<xf:page option="section" value="phrases" />

<xf:pageaction>
	<xf:button href="{{ link('phrases/add', null, {'language_id': $language.language_id}) }}" icon="add"
		data-xf-click="prefix-grabber"
		data-filter-element="[data-xf-init~=filter]">
		{{ phrase('add_phrase') }}
	</xf:button>
</xf:pageaction>

<div class="block">
	<div class="block-outer">
		<div class="block-outer-main">
			<xf:macro id="language_macros::language_change_menu"
				arg-languageTree="{$languageTree}"
				arg-currentLanguage="{$language}"
				arg-route="languages/phrases"
				arg-routeParams="{$linkParams}" />

			<xf:macro id="addon_macros::addon_change_menu"
				arg-addOns="{$addOns}"
				arg-currentAddOn="{$currentAddOn}"
				arg-route="languages/phrases"
				arg-routeData="{$language}"
				arg-routeParams="{$linkParams}" />
		</div>
		<xf:macro id="filter_macros::quick_filter"
			arg-key="phrases"
			arg-ajax="{{ link('languages/phrases', $language, $linkParams) }}"
			arg-class="block-outer-opposite" />
	</div>
	<div class="block-container">
		<xf:macro id="filter_macros::filter_bar"
			arg-params="{{ {'language_id': $language.language_id, 'addon_id': $currentAddOn ? $currentAddOn.addon_id : null} }}"
			arg-menu="phrases/refine-search"
			arg-menuTitle="{{ phrase('refine_and_translate') }}" />

		<div class="block-body">
			<xf:datalist>
				<xf:macro id="phrase_list" arg-phrases="{$phrases}" arg-language="{$language}" arg-page="{$page}" />
				<xf:if is="$filter AND $total > $perPage">
					<xf:datarow rowclass="dataList-row--note dataList-row--noHover js-filterForceShow">
						<xf:cell colspan="2">{{ phrase('more_records_matching_filter_more_specific') }}</xf:cell>
					</xf:datarow>
				</xf:if>
			</xf:datalist>
		</div>

		<div class="block-footer">
			<span class="block-footer-counter">{{ display_totals($phrases, $total) }}</span>
		</div>
	</div>

	<xf:pagenav
		page="{$page}" perpage="{$perPage}" total="{$total}"
		link="languages/phrases"
		params="{$linkParams}"
		data="{$language}"
		wrapperclass="js-filterHide block-outer block-outer--after" />
</div>

<xf:macro id="phrase_list" arg-phrases="!" arg-language="!" arg-page="">
	<xf:foreach loop="$phrases" value="$phrase">
		<xf:datarow rowclass="{{ ($phrase.language_id == 0 ? '' : ($phrase.language_id == $language.language_id ? 'dataList-row--custom' : 'dataList-row--parentCustom')) }}">
			<xf:main href="{{ link('phrases/edit', $phrase, {'language_id': $language.language_id}) }}"
				label="{$phrase.title}"
				hint="{{ ($phrase.addon_id && $phrase.addon_id != 'XF' && $phrase.AddOn) ? $phrase.AddOn.title : '' }}"
				colspan="{{ $phrase.language_id == $language.language_id ? 1 : 2 }}"
				hash="{$phrase.phrase_id}"
				dir="auto" />
			<xf:if is="$phrase.language_id == $language.language_id">
				<xf:delete href="{{ link('phrases/delete', $phrase) }}" tooltip="{{ $phrase.language_id ? phrase('revert') : phrase('delete') }}" />
			</xf:if>
		</xf:datarow>
	</xf:foreach>
</xf:macro>]]></template>
  <template type="admin" title="phrase_outdated" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('outdated_phrases') }}</xf:title>

<xf:if is="$total">
	<div class="block">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="outdated-phrases" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$languageTree.getFlattened(0)" value="$treeEntry">
						<xf:set var="$language" value="{$treeEntry.record}" />
						<xf:set var="$outdatedForLang" value="{$outdatedGrouped.{$language.language_id}}" />
						<xf:if is="$outdatedForLang is not empty">
							<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
								<xf:cell>{$language.title}</xf:cell>
							</xf:datarow>
							<xf:foreach loop="$outdatedForLang" value="$outdated">
								<xf:datarow>
									<xf:cell href="{{ link('phrases/edit', $outdated.phrase) }}" class="dataList-cell--main">
										<div class="dataList-mainRow" dir="auto">{$outdated.phrase.title}</div>
										<div class="dataList-subRow">
											<ul class="listInline listInline--bullet">
												<li>{{ phrase('custom_version:') }} {$outdated.phrase.version_string}</li>
												<li>{{ phrase('parent_version:') }} {$outdated.parent_version_string}</li>
											</ul>
										</div>
									</xf:cell>
								</xf:datarow>
							</xf:foreach>
						</xf:if>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($total) }}</span>
			</div>
		</div>
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('there_are_no_outdated_phrases') }}</div>
</xf:if>]]></template>
  <template type="admin" title="phrase_refine_search" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:form action="{{ link('phrases/search') }}">
	<div class="menu-row">
		{{ phrase('language:') }}
		<div class="u-inputSpacer">
			<xf:macro id="language_macros::language_select"
				arg-languageTree="{$languageTree}"
				arg-languageId="{$language.language_id}"
				arg-row="{{ false }}" />
		</div>
	</div>

	<div class="menu-row menu-row--separated">
		{{ phrase('add_on:') }}
		<div class="u-inputSpacer">
			<xf:macro id="addon_macros::addon_select"
				arg-addOnId="{$conditions.addon_id}"
				arg-includeAny="{{ true }}"
				arg-emptyValue="_none"
				arg-row="{{ false }}" />
		</div>
	</div>

	<div class="menu-row">
		{{ phrase('title_contains:') }}
		<div class="u-inputSpacer">
			<xf:textbox name="title" type="search" value="{$conditions.title}" dir="ltr" />
		</div>
	</div>

	<div class="menu-row menu-row--separated">
		{{ phrase('text_contains:') }}
		<div class="u-inputSpacer">
			<ul class="inputList">
				<li>
					<xf:textarea name="text" value="{$conditions.text}" autosize="true" />
				</li>
				<li><xf:checkbox standalone="true"><xf:option name="text_cs" label="{{ phrase('case_sensitive') }}" selected="{$conditions.text_cs}" /></xf:checkbox></li>
			</ul>
		</div>
	</div>

	<div class="menu-row menu-row--separated">
		{{ phrase('phrase_status:') }}
		<div class="u-inputSpacer">
			<xf:checkbox name="state[]" value="{$conditions.state}">
				<xf:option value="default">{{ phrase('unmodified') }}</xf:option>
				<xf:option value="inherited">{{ phrase('modified_in_parent_language') }}</xf:option>
				<xf:option value="custom">{{ phrase('modified_in_this_language') }}</xf:option>
			</xf:checkbox>
		</div>
	</div>

	<div class="menu-footer">
		<span class="menu-footer-controls">
			<xf:if is="$translateOnly">
				<xf:button type="submit" icon="translate" name="translate" class="button--primary" />
			<xf:else />
				<xf:button type="submit" icon="search" class="button--primary">{{ phrase('refine_search') }}</xf:button>
				<xf:button type="submit" icon="translate" name="translate" />
			</xf:if>
		</span>
	</div>
	<xf:hiddenval name="search">1</xf:hiddenval>
</xf:form>]]></template>
  <template type="admin" title="phrase_search" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('search_phrases') }}</xf:title>

<xf:form action="{{ link('phrases/search') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:macro id="language_macros::language_select"
				arg-languageTree="{$languageTree}"
				arg-languageId="{$languageId}" />

			<xf:macro id="addon_macros::addon_select"
				arg-addOnId="_any"
				arg-includeAny="{{ true }}"
				arg-emptyValue="_none" />

			<hr class="formRowSep" />

			<xf:textboxrow name="title" type="search"
				label="{{ phrase('title_contains') }}"
				dir="ltr" />

			<xf:formrow rowtype="input"
				label="{{ phrase('text_contains') }}">

				<ul class="inputList">
					<li><xf:textarea name="text" autosize="true" /></li>
					<li><xf:checkbox standalone="true">
						<xf:option name="text_cs" label="{{ phrase('case_sensitive') }}" />
					</xf:checkbox></li>
				</ul>
			</xf:formrow>

			<hr class="formRowSep" />

			<xf:checkboxrow name="state[]"
				label="{{ phrase('phrase_status') }}">

				<xf:option value="default" selected="true">{{ phrase('unmodified') }}</xf:option>
				<xf:option value="inherited" selected="true">{{ phrase('modified_in_parent_language') }}</xf:option>
				<xf:option value="custom" selected="true">{{ phrase('modified_in_this_language') }}</xf:option>
			</xf:checkboxrow>
		</div>
		<xf:submitrow sticky="true" icon="search">
			<xf:html><xf:button type="submit" icon="translate" name="translate" /></xf:html>
		</xf:submitrow>
	</div>

	<xf:hiddenval name="search">1</xf:hiddenval>
</xf:form>]]></template>
  <template type="admin" title="phrase_search_results" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('phrase_search_results:') }} {$language.title}</xf:title>

<div class="block">
	<div class="block-outer">
		<xf:macro id="filter_macros::quick_filter" arg-class="block-outer-opposite" />
	</div>
	<div class="block-container">
		<xf:macro id="filter_macros::filter_bar"
			arg-route="phrases/search"
			arg-params="{$linkParams}"
			arg-displayValues="{$filterDisplay}"
			arg-phrases="{{ {
				'key:addon_id':  phrase('add_on:'),
				'key:title':     phrase('title_contains:'),
				'key:text':      phrase('text_contains:'),
				'key:text_cs':   phrase('case_sensitive'),
				'key:state':     phrase('phrase_status:'),
				'val:_none':     phrase('none'),
				'val:default':   phrase('unmodified'),
				'val:inherited': phrase('modified_in_parent_language'),
				'val:custom':    phrase('modified_in_this_language')
			} }}"
			arg-menu="phrases/refine-search"
			arg-menuTitle="{{ phrase('refine_and_translate') }}" />


		<xf:if is="$phrases is not empty">
			<div class="block-body">
				<xf:datalist>
					<xf:macro id="phrase_list::phrase_list" arg-phrases="{$phrases}" arg-language="{$language}" />
					<xf:if is="$total > count($phrases)">
						<xf:datarow rowclass="dataList-row--note dataList-row--noHover">
							<xf:cell colspan="2">{{ phrase('more_records_matching_filter_more_specific') }}</xf:cell>
						</xf:datarow>
					</xf:if>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals(count($phrases), $total) }}</span>
			</div>
		<xf:else />
			<div class="block-body block-row">{{ phrase('no_results_found') }}</div>
		</xf:if>
	</div>
</div>]]></template>
  <template type="admin" title="phrase_translate" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="phrase_translate_macros::expanded" arg-phrase="{$phrase}" arg-language="{$language}" />]]></template>
  <template type="admin" title="phrase_translate.less" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[.block--phrase--custom
{
	.block-container
	{
		border-color: red;
		border-top-width: @xf-borderSizeFeature;
	}
}

.block--phrase--parentCustom
{
	.block-container
	{
		border-color: orange;
		border-top-width: @xf-borderSizeFeature;
	}
}]]></template>
  <template type="admin" title="phrase_translate_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="expanded" arg-phrase="!" arg-language="!">
	<xf:js src="xf/translation.js" min="1" />
	<xf:css src="phrase_translate.less" />

	<xf:form action="{{ link('phrases/translate', $phrase) }}" ajax="true" data-xf-init="translate-submit" class="block block--phrase {{ ($phrase.language_id == 0 ? '' : ($phrase.language_id == $language.language_id ? 'block--phrase--custom' : 'block--phrase--parentCustom')) }}">
		<div class="block-container">
			<div class="block-body">
				<xf:textboxrow name="title" rowtype="fullWidth" value="{$phrase.title}"
					label="{{ phrase('title') }}" />

				<xf:formrow rowtype="fullWidth noLabel">
					<ul class="listPlain inputGroup-container">
						<li>
							<div class="inputGroup">
								<span class="inputGroup-label">{{ phrase('phrase_text') }}</span>
								<span class="inputGroup-splitter"></span>
								<span class="inputGroup-label">{{ phrase('master_value') }}</span>
							</div>
						</li>
						<li>
							<div class="inputGroup">
								<xf:textarea name="phrase_text" rows="2" autosize="true" dir="{$language.text_direction}" class="input--fitHeight--short" value="{$phrase.phrase_text}" />
								<span class="inputGroup-splitter"></span>
								<xf:textarea rows="2" autosize="true" readonly="true" dir="{$language.text_direction}" tabindex="-1" class="input--fitHeight--short" value="{{ $phrase.language_id == 0 ? $phrase.phrase_text : $phrase.Master.phrase_text }}" />
							</div>
						</li>
					</ul>
				</xf:formrow>
			</div>
			<xf:submitrow icon="save" rowtype="simple"><xf:html>
				<xf:button type="submit" name="skip">{{ phrase('skip') }}</xf:button>
				<xf:if is="$language.language_id AND $phrase.isUpdate() AND $phrase.language_id == $language.language_id">
					<xf:button type="submit" name="revert">{{ phrase('revert') }}</xf:button>
				</xf:if>
			</xf:html></xf:submitrow>
		</div>
		<xf:hiddenval name="language_id">{$language.language_id}</xf:hiddenval>
		<xf:hiddenval name="addon_id">{$phrase.addon_id}</xf:hiddenval>
		<xf:hiddenval name="global_cache">{$phrase.global_cache}</xf:hiddenval>
	</xf:form>
</xf:macro>

<xf:macro id="collapsed" arg-phrase="!" arg-language="!">
	<xf:if is="$phrase">
		<xf:form action="{{ link('phrases/translate', $phrase) }}" ajax="true" data-xf-init="translate-submit" class="block block--phrase block block--phrase {{ ($phrase.language_id == 0 ? '' : ($phrase.language_id == $language.language_id ? 'block--phrase--custom' : 'block--phrase--parentCustom')) }}">
			<div class="block-outer">
				<div class="block-outer-opposite">
					<div class="buttonGroup">
						<xf:button type="submit" name="edit" icon="edit" class="button--link" />
						<xf:if is="$language.language_id AND $phrase.isUpdate() AND $phrase.language_id == $language.language_id">
							<xf:button type="submit" name="revert" class="button--link">{{ phrase('revert') }}</xf:button>
						</xf:if>
					</div>
				</div>
			</div>
			<div class="block-container">
				<div class="block-body">
					<xf:formrow rowtype="fullWidth">
						<dl class="pairs pairs--inline">
							<dt>{{ phrase('title') }}</dt>
							<dd>{$phrase.title}</dd>
						</dl>
					</xf:formrow>
					<xf:formrow rowtype="fullWidth">
						<dl class="pairs pairs--inline">
							<dt>{{ phrase('phrase_text') }}</dt>
							<dd>
								{$phrase.phrase_text|nl2br}
							</dd>
						</dl>
					</xf:formrow>
				</div>
			</div>
			<xf:hiddenval name="language_id">{$language.language_id}</xf:hiddenval>
		</xf:form>
	</xf:if>
</xf:macro>]]></template>
  <template type="admin" title="phrase_translate_results" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('translate_phrases:') }} {$language.title}</xf:title>

<div class="block">
	<div class="block-outer">
		<div class="block-outer-opposite">
			<div class="buttonGroup">
				<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true">{{ phrase('refine_search') }}</xf:button>
				<div class="menu menu--wide" data-menu="menu" aria-hidden="true"
					data-href="{{ link('phrases/refine-search', null, {'language_id': $language.language_id, 'translate_only': true} + $conditions) }}"
					data-load-target=".js-filterMenuBody">

					<div class="menu-content">
						<h4 class="menu-header">{{ phrase('refine_search') }}</h4>
						<div class="js-filterMenuBody">
							<div class="menu-row">{{ phrase('loading...') }}</div>
						</div>
					</div>
				</div>
			</div>
		</div>
	</div>
</div>

<xf:if is="$phrases is not empty">
	<div>
		<div class="js-phraseTarget">
			<xf:foreach loop="$phrases" value="$phrase">
				<span class="u-anchorTarget" id="phrase-{$phrase.phrase_id}"></span>
				<xf:macro id="phrase_translate_macros::expanded" arg-phrase="{$phrase}" arg-language="{$language}" />
			</xf:foreach>
		</div>
		<div class="block js-phraseLoadMore">
			<div class="block-container">
				<!--<div class="block-body block-row block-row&#45;&#45;alt block-row&#45;&#45;minor block-row&#45;&#45;separated">-->
				<div class="block-footer block-footer--split">
					<span class="block-footer-counter">{{ display_totals($count, $total) }}</span>
					<xf:if is="$hasMore">
						<span class="block-footer-controls"><xf:button href="{{ link('phrases/translation', null, {'last_title': $last.title, 'last_count': $count, 'total': $total, 'language_id': $language.language_id} + $conditions) }}"
							data-xf-click="inserter"
							data-append=".js-phraseTarget"
							data-replace=".js-phraseLoadMore"
							data-scroll-target="#phrase-{$last.phrase_id}"
							data-animate-replace="false">
							{{ phrase('more') }}
						</xf:button></span>
					</xf:if>
				</div>
			</div>
		</div>
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_results_found') }}</div>
</xf:if>]]></template>
  <template type="admin" title="phrase_translated" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="phrase_translate_macros::collapsed" arg-phrase="{$phrase}" arg-language="{$language}" />]]></template>
  <template type="admin" title="pwa_setup" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('pwa_setup') }}</xf:title>
<xf:description>{{ phrase('properly_configured_progressive_web_app_allows_users_to_install_your_site_to_their_device') }}</xf:description>

<xf:if is="$isInstallable">
	<div class="blockMessage blockMessage--success blockMessage--iconic">
		{{ phrase('your_board_meets_requirements_to_be_installable_progressive_web_app') }}
	</div>
<xf:else />
	<div class="blockMessage blockMessage--error blockMessage--iconic">
		{{ phrase('your_board_does_not_meet_requirements_to_be_installable_progressive_web_app') }}
	</div>
</xf:if>

<div class="blockMessage blockMessage--highlight">
	{{ phrase('browsers_only_check_for_updates_to_these_values_periodically_24_hours') }}
</div>

<xf:form action="{{ link('pwa') }}" ajax="true" class="block">
	<div class="block-container">
		<h3 class="block-formSectionHeader">
			<span class="block-formSectionHeader-aligner">{{ phrase('requirements') }}</span>
		</h3>
		<div class="block-body">
			<xf:formrow label="{{ phrase('https_enabled') }}"
				explain="{{ phrase('your_board_must_be_served_over_https_for_progressive_web_app_support') }}">

				<xf:if is="$xf.request.isSecure() || $xf.request.isHostLocal()">
					{{ phrase('yes') }}
				<xf:else />
					{{ phrase('no') }}
				</xf:if>
			</xf:formrow>
		</div>

		<h3 class="block-formSectionHeader">
			<span class="block-formSectionHeader-aligner">{{ phrase('options') }}</span>
		</h3>
		<div class="block-body">
			<xf:foreach loop="$optionGroup.Options" value="$option">
				<xf:macro id="option_macros::option_row"
					arg-group="{$optionGroup}"
					arg-option="{$option}" />
			</xf:foreach>
		</div>

		<h3 class="block-formSectionHeader">
			<span class="block-formSectionHeader-aligner">{{ phrase('language_settings') }}</span>
		</h3>
		<div class="block-body">
			<xf:inforow>
				{{ phrase('these_settings_reflect_default_language_x', {'title': $language.title|parens}) }}
			</xf:inforow>

			<xf:selectrow name="language[language_code]" value="{$language.language_code}"
				label="{{ phrase('locale') }}">

				<xf:option value="">&nbsp;</xf:option>
				<xf:options source="$languageLocales" />
			</xf:selectrow>

			<xf:radiorow name="language[text_direction]" value="{$language.text_direction}"
				label="{{ phrase('text_direction') }}">

				<xf:option value="LTR">{{ phrase('left_to_right') }}</xf:option>
				<xf:option value="RTL">{{ phrase('right_to_left') }}</xf:option>
			</xf:radiorow>
		</div>


		<h3 class="block-formSectionHeader">
			<span class="block-formSectionHeader-aligner">{{ phrase('style_properties') }}</span>
		</h3>
		<div class="block-body p-styleProperties">
			<xf:inforow>
				{{ phrase('these_settings_reflect_default_style_x', {'title': $style.title|parens}) }}
			</xf:inforow>

			<xf:foreach loop="$stylePropertyMaps" value="$map">
				<xf:macro id="style_property_macros::property_edit"
					arg-property="{$map.Property}"
					arg-definitionEditable="{{ $map.isDefinitionEditable() }}"
					arg-enableVariations="{$style.enable_variations}" />
			</xf:foreach>

			<xf:macro id="public:color_picker_macros::color_picker_scripts"
				arg-colorData="{$styleColorData}" />
		</div>

		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="quick_search_results" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:if is="$resultTypeSets is empty">
	<div class="menu-row">{{ phrase('no_results_found') }}</div>
<xf:else />
	<div>
	<xf:foreach loop="$resultTypeSets" value="$resultType">
		{{ $resultType.render( templater() ) }}
	</xf:foreach>
	</div>
</xf:if>]]></template>
  <template type="admin" title="quick_search_type" version_id="2010870" version_string="2.1.8"><![CDATA[<dl class="p-quickSearchResultSet">
	<dt>{$typeName}</dt>
	<dd>
		<ul class="p-quickSearchResultList">
		<xf:foreach loop="$results" value="$result">
			<li>
				<a href="{$result.link}">
					{$result.title}
					<xf:if is="$result.extra is not empty"><span class="p-quickSearchResult-extra">{$result.extra}</span></xf:if>
					<xf:if is="$result.meta is not empty"><span class="p-quickSearchResult-meta">{$result.meta}</span></xf:if>
				</a>
			</li>
		</xf:foreach>
		</ul>
	</dd>
</dl>]]></template>
  <template type="admin" title="reaction_delete" version_id="2010132" version_string="2.1.1 Beta 2"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('reactions/delete', $reaction) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				<strong><a href="{{ link('reactions/edit', $reaction) }}">{$reaction.title}</a></strong>
				<span>{{ phrase('this_will_delete_all_reactions_of_this_type') }}</span>
			</xf:inforow>
		</div>
		<xf:submitrow rowtype="simple" icon="delete" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="reaction_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$reaction.isInsert()">
	<xf:title>{{ phrase('add_reaction') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_reaction:') }} {$reaction.title}</xf:title>
</xf:if>

<xf:pageaction if="$reaction.isUpdate()">
	<xf:button href="{{ link('reactions/delete', $reaction) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('reactions/save', $reaction) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">

			<xf:textboxrow name="title" value="{$reaction}"
				label="{{ phrase('title') }}"/>

			<xf:set var="$explain">{{ phrase('reaction_text_color_explain') }}</xf:set>
			<xf:macro id="public:color_picker_macros::color_picker"
				arg-name="text_color"
				arg-value="{$reaction.text_color}"
				arg-allowPalette="true"
				arg-colorData="{$colorData}"
				arg-label="{{ phrase('text_color') }}"
				arg-explain="{$explain}" />

			<xf:radiorow name="reaction_score" value="{$reaction}" label="{{ phrase('reaction_score') }}">
				<xf:options source="{$reactionScores}" />
				<xf:option label="{{ phrase('custom_score') }}" value=""
					selected="{$reaction.is_custom_score}">
					<xf:numberbox name="custom_reaction_score" value="{$reaction.reaction_score}" step="1" />
				</xf:option>
			</xf:radiorow>

			<hr class="formRowSep" />

			<xf:macro id="display_order_macros::row" arg-value="{$reaction}" />

			<xf:checkboxrow>
				<xf:option name="active" selected="$reaction.active"
					label="{{ phrase('reaction_is_active') }}"
					hint="{{ phrase('reaction_active_hint') }}" />
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<xf:textboxrow name="emoji_shortname" value="{$reaction}"
				label="{{ phrase('emoji_replacement') }}"
				hint="{{ phrase('optional') }}"
				explain="{{ phrase('enter_emoji_or_emoji_short_name_such_as_smile_to_use_as_reaction') }}"
				data-xf-init="emoji-completer" data-exclude-smilies="true" data-insert-emoji="true" />

			<xf:assetuploadrow name="image_url" value="{$reaction}" asset="reactions"
				label="{{ phrase('image_replacement_url') }}"
				hint="{{ phrase('optional') }}" />

			<xf:assetuploadrow name="image_url_2x" value="{$reaction}" asset="reactions"
				hint="{{ phrase('optional') }}"
				label="{{ phrase('2x_image_replacement_url') }}"
				explain="{{ phrase('2x_image_replacement_url_explain') }}" />

			<xf:checkboxrow label="{{ phrase('sprite_mode') }}">
				<xf:option name="sprite_mode" selected="$reaction.sprite_mode"
					label="{{ phrase('enable_sprite_mode_with_following_parameters') }}"
					data-hide="true" data-xf-init="disabler" data-container=".js-reactionSpriteOptions" />
			</xf:checkboxrow>

			<div class="js-reactionSpriteOptions">
				<xf:formrow rowtype="input"
					label="{{ phrase('sprite_dimensions') }}">

					<div class="inputGroup">
						<xf:numberbox name="sprite_params[w]" value="{$reaction.sprite_params.w}" min="1"
							title="{{ phrase('width')|for_attr }}"
							data-xf-init="tooltip" />
						<span class="inputGroup-text">x</span>
						<xf:numberbox name="sprite_params[h]" value="{$reaction.sprite_params.h}" min="1"
							title="{{ phrase('height')|for_attr }}"
							data-xf-init="tooltip" />
						<span class="inputGroup-text">{{ phrase('units_pixels') }}</span>
					</div>
				</xf:formrow>

				<xf:formrow rowtype="input"
					label="{{ phrase('sprite_position') }}">

					<div class="inputGroup">
						<xf:numberbox name="sprite_params[x]" value="{$reaction.sprite_params.x}"
							title="{{ phrase('background_position_x')|for_attr }}"
							data-xf-init="tooltip" />
						<span class="inputGroup-text">x</span>
						<xf:numberbox name="sprite_params[y]" value="{$reaction.sprite_params.y}"
							title="{{ phrase('background_position_y')|for_attr }}"
							data-xf-init="tooltip" />
						<span class="inputGroup-text">{{ phrase('units_pixels') }}</span>
					</div>
					<div class="formRow-explain">{{ phrase('reaction_sprite_params_explain') }}</div>
				</xf:formrow>

				<xf:textboxrow name="sprite_params[bs]" value="{$reaction.sprite_params.bs}"
					label="{{ phrase('background_size') }}"
					explain="{{ phrase('background_size_explain') }}"
					dir="ltr" />
			</div>
		</div>

		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="reaction_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('reactions') }}</xf:title>

<xf:pageaction>
	<div class="buttonGroup">
		<xf:button href="{{ link('reactions/add') }}" icon="add">{{ phrase('add_reaction') }}</xf:button>
		<xf:button href="{{ link('reactions/sort') }}" icon="sort" overlay="true" />
	</div>
</xf:pageaction>

<xf:form action="{{ link('reactions/toggle') }}" ajax="true" class="block">
	<div class="block-outer">
		<xf:macro id="filter_macros::quick_filter" arg-key="reactions" arg-class="block-outer-opposite" />
	</div>
	<div class="block-container">

		<div class="block-body">
			<xf:datalist>
				<xf:foreach loop="$reactions" key="$reactionId" value="$reaction">
					<xf:datarow>
						<xf:cell href="{{ link('reactions/edit', $reaction) }}">
							<xf:reaction id="{$reaction}" showtitle="true" />
						</xf:cell>
						<xf:cell href="{{ link('reactions/edit', $reaction) }}">
							<span class="reactionScore">
								{$reaction.score_title}
								<xf:if is="$reaction.reaction_type == 'positive'">
									(+{$reaction.reaction_score})
								<xf:elseif is="$reaction.reaction_type == 'negative'" />
									({$reaction.reaction_score})
								</xf:if>
							</span>
						</xf:cell>
						<xf:if is="$reaction.canToggle()">
							<xf:toggle name="active[{$reaction.reaction_id}]" selected="$reaction.active"
								class="dataList-cell--separated" submit="true"
								tooltip="{{ phrase('enable_disable_x', {'title': $reaction.title}) }}" />
						<xf:else />
							<xf:cell class="dataList-cell--min dataList-cell--separated dataList-cell--alt" />
						</xf:if>
						<xf:if is="$reaction.canDelete()">
							<xf:delete href="{{ link('reactions/delete', $reaction) }}" />
						<xf:else />
							<xf:cell class="dataList-cell--min dataList-cell--alt" />
						</xf:if>
					</xf:datarow>
				<xf:else />
					<xf:datarow rowclass="dataList-row--noHover dataList-row--note">
						<xf:cell colspan="3" class="dataList-cell--noSearch">
							{{ phrase('no_reactions_have_been_added_yet') }}
						</xf:cell>
					</xf:datarow>
				</xf:foreach>
			</xf:datalist>
		</div>
		<div class="block-footer block-footer--split">
			<span class="block-footer-counter">{{ display_totals($reactions.count()) }}</span>
		</div>
	</div>
</xf:form>]]></template>
  <template type="admin" title="reaction_sort" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('sort_reactions') }}</xf:title>

<xf:macro id="public:nestable_macros::setup" />

<xf:form action="{{ link('reactions/sort') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<div class="nestable-container" data-xf-init="nestable" data-max-depth="1" data-value-function="serialize">
				<xf:macro id="reaction_list" arg-reactions="{$reactions}" />
				<xf:hiddenval name="reactions" value="" />
			</div>
		</div>
		<xf:submitrow icon="save" rowtype="simple" />
	</div>
</xf:form>

<xf:macro id="reaction_list" arg-reactions="!">
	<ol class="nestable-list">
		<xf:foreach loop="$reactions" key="$id" value="$reaction">
			<li class="nestable-item" data-id="{$id}">
				<div class="nestable-handle" aria-label="{{ phrase('drag_handle')|for_attr }}"><xf:fa icon="fa-bars" /></div>
				<div class="nestable-content">
					<xf:reaction id="{$reaction}" showtitle="true" small="true" />
				</div>
			</li>
		</xf:foreach>
	</ol>
</xf:macro>]]></template>
  <template type="admin" title="route_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$route.isInsert()">
	<xf:title>{{ phrase('add_route') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_route:') }} {$route.unique_name}</xf:title>
</xf:if>

<xf:pageaction if="$route.isUpdate()">
	<xf:button href="{{ link('routes/delete', $route) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('routes/save', $route) }}" ajax="true" class="block">

	<div class="block-container">
		<div class="block-body">
			<xf:selectrow name="route_type" value="{$route}"
				label="{{ phrase('route_type') }}">

				<xf:option value="">&nbsp;</xf:option>
				<xf:foreach loop="$routeTypes" key="$routeTypeId" value="$routeType">
					<xf:option value="{$routeTypeId}">{$routeType}</xf:option>
				</xf:foreach>
			</xf:selectrow>

			<xf:textboxrow name="route_prefix" value="{$route}"
				label="{{ phrase('route_prefix') }}"
				dir="ltr" />

			<xf:textboxrow name="sub_name" value="{$route}"
				label="{{ phrase('sub_name') }}"
				dir="ltr" />

			<xf:textboxrow name="format" value="{$route}"
				label="{{ phrase('route_format') }}"
				dir="ltr" />

			<xf:textboxrow name="context" value="{$route}"
				label="{{ phrase('section_context') }}"
				dir="ltr" />

			<xf:formrow rowtype="input"
				label="{{ phrase('link_building_callback') }}"
				explain="{{ phrase('link_building_callback_explanation_html') }}">

				<xf:macro id="helper_callback_fields::callback_fields"
					arg-namePrefix="build"
					arg-data="{$route}" />
			</xf:formrow>

			<xf:textboxrow name="controller" value="{$route}"
				label="{{ phrase('controller') }}"
				dir="ltr" />

			<xf:textboxrow name="action_prefix" value="{$route}"
				label="{{ phrase('action_prefix') }}"
				dir="ltr" />

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$route.addon_id}" />
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>

</xf:form>]]></template>
  <template type="admin" title="route_filter_edit" version_id="2000051" version_string="2.0.0 Release Candidate 1"><![CDATA[<xf:if is="$routeFilter.isInsert()">
	<xf:title>{{ phrase('add_route_filter') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_route_filter:') }} {$routeFilter.find_route}</xf:title>
</xf:if>

<xf:pageaction if="$routeFilter.isUpdate()">
	<xf:button href="{{ link('route-filters/delete', $routeFilter) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('route-filters/save', $routeFilter) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">

			<xf:textboxrow name="find_route" value="{$routeFilter.find_route_readable}"
				maxlength="{{ max_length($routeFilter, 'find_route') }}"
				label="{{ phrase('find_route') }}"
				explain="{{ phrase('you_should_only_enter_route_part_of_url_here_example', {
						'fullUrl': $fullThreadLink,
						'route': $routeValue
					}) }}"
				dir="ltr" />

			<xf:textboxrow name="replace_route" value="{$routeFilter.replace_route_readable}"
				maxlength="{{ max_length($routeFilter, 'replace_route') }}"
				label="{{ phrase('replace_with') }}"
				explain="{{ phrase('route_filter_find_replace_fields_support_wildcards') }}"
				dir="ltr" />

			<xf:checkboxrow>
				<xf:option name="enabled" value="1" selected="$routeFilter.enabled"
					label="{{ phrase('enabled') }}" />
				<xf:option name="url_to_route_only" value="1" selected="$routeFilter.url_to_route_only"
					label="{{ phrase('incoming_url_conversion_only') }}"
					hint="{{ phrase('if_selected_this_filter_will_only_be_used_to_change_incoming_urls') }}" />
			</xf:checkboxrow>
		</div>

		<xf:submitrow sticy="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="route_filter_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('route_filters') }}</xf:title>
<xf:description>{{ phrase('route_filters_allow_you_to_change_standard_urls') }}</xf:description>

<xf:pageaction>
	<xf:button href="{{ link('route-filters/add') }}" icon="add">{{ phrase('add_route_filter') }}</xf:button>
</xf:pageaction>

<xf:if is="$routeFilters is not empty">
	<xf:form action="{{ link('route-filters/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="route-filters" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('find') }}</xf:cell>
						<xf:cell>{{ phrase('replace') }}</xf:cell>
						<xf:cell>&nbsp;</xf:cell>
						<xf:cell>&nbsp;</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$routeFilters" value="$routeFilter">
						<xf:datarow delete="{{ link('route-filters/delete', $routeFilter) }}">
							<xf:cell href="{{ link('route-filters/edit', $routeFilter) }}">
								{$routeFilter.find_route_readable}
							</xf:cell>
							<xf:cell href="{{ link('route-filters/edit', $routeFilter) }}">
								{$routeFilter.replace_route_readable}
							</xf:cell>
							<xf:toggle name="enabled[{$routeFilter.route_filter_id}]"
								selected="$routeFilter.enabled" class="dataList-cell--separated" submit="true"
								tooltip="{{ phrase('enable_disable_route_filter') }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($routeFilters) }}</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="route_list" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:title>{{ phrase('routes') }}</xf:title>

<xf:pageaction>
	<xf:button class="menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true">{{ phrase('add_route...') }}</xf:button>
		<div class="menu" data-menu="menu" aria-hidden="true">
			<div class="menu-content">
				<h3 class="menu-header">{{ phrase('add_route...') }}</h3>

				<xf:foreach loop="$routeTypes" key="$routeTypeId" value="$routeType">
					<a href="{{ link('routes/add', null, {'type': $routeTypeId}) }}"  class="menu-linkRow">{$routeType}</a>
				</xf:foreach>
			</div>
		</div>
</xf:pageaction>

<div class="block">
	<div class="block-container">
		<h2 class="block-tabHeader tabs hScroller" data-xf-init="tabs h-scroller" data-state="replace" role="tablist">
			<span class="hScroller-scroll">
			<xf:foreach loop="$routeTypes" key="$routeTypeId" value="$routeType">
				<a class="tabs-tab {{ $routeTypeId == $selectedTab ? 'is-active' : '' }}"
					role="tab"
					tabindex="0"
					aria-controls="route-{$routeTypeId}"
					id="{{ $routeTypeId != 'public' ? $routeTypeId : '' }}">{$routeType}</a>
			</xf:foreach>
			</span>
		</h2>
		<ul class="tabPanes">
			<xf:foreach loop="$routeTypes" key="$routeTypeId" value="$routeType">
				<li class="block-body {{ $routeTypeId == $selectedTab ? 'is-active' : '' }}"
					role="tabpanel" id="route-{$routeTypeId}">

					<xf:if is="{$routesGrouped.{$routeTypeId}} is not empty">
						<xf:datalist>
							<xf:foreach loop="{$routesGrouped.{$routeTypeId}}" value="$route">
								<xf:datarow
									hash="{$route.route_id}"
									href="{{ link('routes/edit', $route) }}"
									label="{$route.unique_name}"
									hint="{$route.route_prefix}/{$route.format}"
									delete="{{ link('routes/delete', $route) }}"
									dir="auto"/>
							</xf:foreach>
						</xf:datalist>
					<xf:else />
						<div class="block-row">{{ phrase('no_items_have_been_created_yet') }}</div>
					</xf:if>
				</li>
			</xf:foreach>
		</ul>
		<div class="block-footer">
			<span class="block-footer-counter">{{ display_totals($totalRoutes) }}</span>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="search_forum_delete" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('search-forums/delete', $node) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				<strong><a href="{{ link('search-forums/edit', $node) }}">{$node.title}</a></strong>
			</xf:inforow>

			<xf:macro id="helper_node_delete_children::delete_row"
				arg-node="{$node}"
				arg-nodeTree="{$nodeTree}" />
		</div>

		<xf:submitrow rowtype="{{ !$node.hasChildren() ? 'simple' : '' }}" icon="delete" />
	</div>

	<xf:redirect />
</xf:form>]]></template>
  <template type="admin" title="search_forum_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$node.isInsert()">
	<xf:title>{{ phrase('add_search_forum') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_search_forum:') }} {$node.title}</xf:title>
</xf:if>

<xf:pageaction if="$node.isUpdate()">
	<xf:button href="{{ link('search-forums/delete', $node) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('search-forums/save', $node) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:macro id="node_edit_macros::title" arg-node="{$node}" />
			<xf:macro id="node_edit_macros::description" arg-node="{$node}" />

			<hr class="formRowSep" />
			<xf:macro id="node_edit_macros::node_name" arg-node="{$node}" />
			<xf:macro id="node_edit_macros::position"
				arg-node="{$node}"
				arg-nodeTree="{$nodeTree}" />
			<xf:macro id="node_edit_macros::navigation"
				arg-node="{$node}"
				arg-navChoices="{$navChoices}" />
			<xf:macro id="node_edit_macros::style"
				arg-node="{$node}"
				arg-styleTree="{$styleTree}" />
			<hr class="formRowSep" />
		</div>

		<h2 class="block-formSectionHeader">
			<span class="block-formSectionHeader-aligner">{{ phrase('search_results') }}</span>
		</h2>
		<div class="block-body">
			<hr class="formRowSep" />

			<xf:formrow rowtype="input"
				label="{{ phrase('sort_order') }}">

				<div class="inputPair">
					<xf:select name="sort_order" value="{$searchForum.sort_order}" class="input--inline">
						<xf:option value="last_post_date" label="{{ phrase('last_message') }}" />
						<xf:option value="post_date" label="{{ phrase('start_date') }}" />
						<xf:option value="title" label="{{ phrase('title') }}" />
						<xf:option value="reply_count" label="{{ phrase('replies') }}" />
						<xf:option value="view_count" label="{{ phrase('views') }}" />
					</xf:select>

					<xf:select name="sort_direction" value="{$searchForum.sort_direction}"
						class="input--inline">
						<xf:option value="desc" label="{{ phrase('descending') }}" />
						<xf:option value="asc" label="{{ phrase('ascending') }}" />
					</xf:select>
				</div>
			</xf:formrow>

			<xf:numberboxrow name="max_results" value="{$searchForum}"
				label="{{ phrase('maximum_results') }}" />

			<xf:numberboxrow name="cache_ttl" value="{$searchForum}"
				label="{{ phrase('cache_length') }}"
				explain="{{ phrase('search_forum_cache_length_desc') }}"
				units="{{ phrase('units_minutes') }}" />
		</div>

		<h2 class="block-formSectionHeader">
			<span class="block-formSectionHeader-aligner">{{ phrase('thread_criteria') }}</span>
		</h2>
		<div class="block-body">
			<xf:include template="helper_thread_search_criteria" />
		</div>

		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="section_nav_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="section_nav" arg-section="!">
	<xf:set var="$sectionNav" value="{{ $xf.app.get('navigation.admin').getTree($section) }}" />
	<xf:macro id="section_nav_block" arg-sectionNav="{$sectionNav}" />
</xf:macro>

<xf:macro id="section_nav_block" arg-sectionNav="!">
	<div class="block">
		<div class="block-container">
			<h2 class="block-header">{{ phrase('sub_sections') }}</h2>
			<div class="block-body">
				<xf:macro id="navigation_list" arg-children="{$sectionNav}" />
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="navigation_list" arg-children="!" arg-depth="1">
	<xf:foreach loop="$children" value="$child">
		<xf:macro id="navigation_list_entry" arg-navigation="{$child.record}" arg-children="{$child.children}" arg-depth="{$depth}" />
	</xf:foreach>
</xf:macro>

<xf:macro id="navigation_list_entry" arg-navigation="!" arg-children="!" arg-depth="1">
	<xf:if is="$depth == 1 AND !$navigation.link">
		<div class="block-minorHeader">
			<div class="u-depth{{ $depth - 1 }}">
				<xf:if is="{$navigation.icon}"><xf:fa icon="fa-fw {$navigation.icon}" /></xf:if>
				{$navigation.title}
			</div>
		</div>
	<xf:else />
		<a href="{{ link($navigation.link) }}" class="blockLink">
			<div class="u-depth{{ $depth - 1 }}">{$navigation.title}</div>
		</a>
	</xf:if>
	<xf:macro id="navigation_list" arg-children="{$children}" arg-depth="{{ $depth + 1 }}" />
</xf:macro>]]></template>
  <template type="admin" title="smilie_category_delete" version_id="2010036" version_string="2.1.0 Beta 6"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{$confirmUrl}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				<strong><a href="{$editUrl}">{$contentTitle}</a></strong>
				<div class="blockMessage blockMessage--important blockMessage--iconic">{{ phrase('confirm_delete_smilie_category_footnote') }}</div>
			</xf:inforow>
		</div>
		<xf:submitrow rowtype="simple" icon="delete" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="smilie_category_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$smilieCategory.isInsert()">
	<xf:title>{{ phrase('add_smilie_category') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_smilie_category:') }} {$smilieCategory.title}</xf:title>
</xf:if>

<xf:pageaction if="$smilieCategory.isUpdate()">
	<xf:button href="{{ link('smilie-categories/delete', $smilieCategory) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('smilie-categories/save', $smilieCategory) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="title" value="{$smilieCategory}"
				label="{{ phrase('title') }}"/>

			<xf:macro id="display_order_macros::row" arg-value="{$smilieCategory}" />
		</div>

		<xf:submitrow icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="smilie_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$smilie.isInsert()">
	<xf:title>{{ phrase('add_smilie') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_smilie:') }} {$smilie.title}</xf:title>
</xf:if>

<xf:pageaction if="$smilie.isUpdate()">
	<xf:button href="{{ link('smilies/delete', $smilie) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('smilies/save', $smilie) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">

			<xf:textboxrow name="title" value="{$smilie}"
				label="{{ phrase('title') }}" />

			<xf:textarearow name="smilie_text" value="{$smilie}" autosize="true"
				label="{{ phrase('text_to_replace') }}"
				explain="{{ phrase('enter_multiple_values_to_replace_on_separate_lines') }}" />

			<hr class="formRowSep" />

			<xf:textboxrow name="emoji_shortname" value="{$smilie.emoji}"
				dir="ltr"
				autocomplete="off"
				maxlength="{{ max_length($smilie, 'emoji_shortname') }}"
				label="{{ phrase('emoji_replacement') }}"
				hint="{{ phrase('optional') }}"
				explain="{{ phrase('enter_emoji_or_emoji_short_name_such_as_smile_which_will_replace') }}"
				data-xf-init="emoji-completer" data-exclude-smilies="true" data-insert-emoji="true" />

			<xf:assetuploadrow name="image_url" value="{$smilie}" asset="smilies"
				label="{{ phrase('image_replacement_url') }}"
				hint="{{ phrase('optional') }}" />

			<xf:assetuploadrow name="image_url_2x" value="{$smilie}" asset="smilies"
				hint="{{ phrase('optional') }}"
				label="{{ phrase('2x_image_replacement_url') }}"
				explain="{{ phrase('2x_image_replacement_url_explain') }}" />

			<xf:checkboxrow label="{{ phrase('sprite_mode') }}">
				<xf:option name="sprite_mode" selected="$smilie.sprite_mode"
					label="{{ phrase('enable_sprite_mode_with_following_parameters') }}"
					data-hide="true" data-xf-init="disabler" data-container=".js-smilieSpriteOptions" />
			</xf:checkboxrow>

			<div class="js-smilieSpriteOptions">
				<xf:formrow rowtype="input"
					label="{{ phrase('sprite_dimensions') }}">

					<div class="inputGroup">
						<xf:numberbox name="sprite_params[w]" value="{$smilie.sprite_params.w}" min="1"
							title="{{ phrase('width') }}"
							data-xf-init="tooltip" />
						<span class="inputGroup-text">x</span>
						<xf:numberbox name="sprite_params[h]" value="{$smilie.sprite_params.h}" min="1"
							title="{{ phrase('height') }}"
							data-xf-init="tooltip" />
						<span class="inputGroup-text">{{ phrase('units_pixels') }}</span>
					</div>
				</xf:formrow>

				<xf:formrow rowtype="input"
					label="{{ phrase('sprite_position') }}">

					<div class="inputGroup">
						<xf:numberbox name="sprite_params[x]" value="{$smilie.sprite_params.x}"
							title="{{ phrase('background_position_x') }}"
							data-xf-init="tooltip" />
						<span class="inputGroup-text">x</span>
						<xf:numberbox name="sprite_params[y]" value="{$smilie.sprite_params.y}"
							title="{{ phrase('background_position_y') }}"
							data-xf-init="tooltip" />
						<span class="inputGroup-text">{{ phrase('units_pixels') }}</span>
					</div>
				</xf:formrow>

				<xf:textboxrow name="sprite_params[bs]" value="{$smilie.sprite_params.bs}"
					label="{{ phrase('background_size') }}"
					explain="{{ phrase('background_size_explain') }}"
					dir="ltr" />
			</div>

			<hr class="formRowSep" />

			<xf:selectrow name="smilie_category_id" value="{$smilie}"
				label="{{ phrase('smilie_category') }}">

				<xf:option value="0" label="{{ phrase('(none)') }}" />
				<xf:options source="{$smilieCategories}" />
			</xf:selectrow>

			<xf:macro id="display_order_macros::row" arg-value="{$smilie}" />

			<xf:checkboxrow>
				<xf:option name="display_in_editor" selected="$smilie.display_in_editor"
					label="{{ phrase('show_this_smilie_in_the_text_editor') }}"
					explain="{{ phrase('hidden_smilies_hint') }}" />
			</xf:checkboxrow>
		</div>

		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="smilie_import" version_id="2000170" version_string="2.0.1"><![CDATA[<xf:title>{{ phrase('import_smilies') }}</xf:title>

<xf:form action="{{ link('smilies/import-form') }}" upload="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:radiorow name="mode" value="upload">
				<xf:option value="upload"
					label="{{ phrase('import_from_uploaded_xml_file') }}"
					hint="{{ phrase('smilie_pre_import_explain') }}">

					<xf:upload name="upload" accept=".xml" />
				</xf:option>
				<xf:if is="$smilieXmlFiles">
					<xf:option value="imported"
						label="{{ phrase('import_from_import_generated_xml') }}"
						hint="{{ phrase('import_from_import_generated_xml_explain') }}">
						<xf:select name="filename">
							<xf:options source="$smilieXmlFiles" />
						</xf:select>
					</xf:option>
				</xf:if>
				<xf:option value="directory"
					label="{{ phrase('import_from_directory_on_server') }}"
					hint="{{ phrase('smilie_pre_import_directory_explain') }}">

					<xf:textbox name="directory" placeholder="styles/default/xenforo/smilies..." />
				</xf:option>
			</xf:radiorow>
		</div>
		<xf:submitrow submit="{{ phrase('proceed...') }}" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="smilie_import_form" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('import_smilies') }}</xf:title>

<xf:form action="{{ link('smilies/import') }}" ajax="true" data-json-name="json" class="js-stickyParent">
	<xf:foreach loop="$smilies" key="$i" value="$smilie">
		<div class="block">
			<div class="block-container">
				<div class="block-body">
					<xf:macro id="smilie" arg-smilie="{$smilie}" arg-i="{$i}" />
				</div>
			</div>
		</div>
	</xf:foreach>

	<div class="block">
		<div class="block-container">
			<xf:submitrow icon="import" />
		</div>
	</div>

	<xf:foreach loop="$newCategories" key="$newCategoryId" value="$newCategory">
		<xf:hiddenval name="categories[{$newCategoryId}][title]">{$newCategory.title}</xf:hiddenval>
		<xf:hiddenval name="categories[{$newCategoryId}][display_order]">{$newCategory.display_order}</xf:hiddenval>
	</xf:foreach>
</xf:form>

<xf:macro id="smilie" arg-smilie="!" arg-i="!" global="true">
	<xf:formrow>
		<div>
			<xf:if is="$smilie.sprite_mode">
				<img src="{{ transparent_img() }}" alt="" class="smilie smilie--sprite" style="{{ $smilie.getSpriteCss() }}" />
			<xf:elseif is="$smilie.image_url" />
				<img src="{$smilie.image_url}" class="smilie" alt="" />
			<xf:else />
				<span style="font-size: 1.2em">{$smilie.emoji|emoji}</span>
			</xf:if>
		</div>
		<xf:checkbox standalone="true">
			<xf:option name="import[]" value="{$i}" selected="true"
				data-xf-init="disabler" data-hide="true" data-container=".js-importSmilie{$i}">
				{{ phrase('import_this_smilie') }}
			</xf:option>
		</xf:checkbox>
	</xf:formrow>

	<div class="js-importSmilie{$i}">
		<hr class="formRowSep" />

		<xf:textboxrow name="smilies[{$i}][title]" value="{$smilie.title}"
			label="{{ phrase('title') }}" />

		<xf:textarearow name="smilies[{$i}][smilie_text]" value="{$smilie.smilie_text}" autosize="true"
			label="{{ phrase('text_to_replace') }}" />

		<xf:if is="$uploadMode">
			<h3 class="block-formSectionHeader">
				<span class="collapseTrigger collapseTrigger--block" data-xf-click="toggle" data-target=".js-importSmilie{$i}Advanced">
					<span class="block-formSectionHeader-aligner">{{ phrase('more_options') }}</span>
				</span>
			</h3>
		</xf:if>

		<div class="js-importSmilie{$i}Advanced {{ $uploadMode ? 'u-hidden u-hidden--transition' : '' }}">

			<xf:if is="!$uploadMode">
				<hr class="formRowSep" />
			</xf:if>

			<xf:textboxrow name="smilies[{$i}][image_url]" value="{$smilie.image_url}"
				label="{{ phrase('image_replacement_url') }}"
				hint="{{ phrase('optional') }}" />

			<xf:textboxrow name="smilies[{$i}][image_url_2x]" value="{$smilie.image_url_2x}"
				label="{{ phrase('2x_image_replacement_url') }}"
				hint="{{ phrase('optional') }}"
				explain="{{ phrase('2x_image_replacement_url_explain') }}" />

			<xf:textboxrow name="smilies[{$i}][emoji_shortname]" value="{$smilie.emoji}"
				dir="ltr"
				autocomplete="off"
				maxlength="{{ max_length($smilie, 'emoji_shortname') }}"
				label="{{ phrase('emoji_replacement') }}"
				hint="{{ phrase('optional') }}"
				explain="{{ phrase('enter_emoji_or_emoji_short_name_such_as_smile_which_will_replace') }}"
				data-xf-init="emoji-completer" data-no-smilies="true" data-insert-emoji="true" />

			<xf:if is="$uploadMode">
				<xf:checkboxrow label="{{ phrase('sprite_mode') }}">

					<xf:option name="smilies[{$i}][sprite_mode]" selected="$smilie.sprite_mode">
						{{ phrase('enable_sprite_mode_with_following_parameters') }}
					</xf:option>
				</xf:checkboxrow>

				<xf:formrow rowtype="input"
					label="{{ phrase('sprite_dimensions') }}">

					<div class="inputGroup">
						<xf:numberbox name="smilies[{$i}][sprite_params][w]" value="{$smilie.sprite_params.w}"
							min="1"
							title="{{ phrase('width') }}"
							data-xf-init="tooltip" />
						<span class="inputGroup-splitter"></span>
						<xf:numberbox name="smilies[{$i}][sprite_params][h]" value="{$smilie.sprite_params.h}"
							min="1"
							title="{{ phrase('height') }}"
							data-xf-init="tooltip" />
						<span class="inputGroup-text">px</span>
					</div>
				</xf:formrow>

				<xf:formrow rowtype="input"
					label="{{ phrase('sprite_position') }}">

					<div class="inputGroup">
						<xf:numberbox name="smilies[{$i}][sprite_params][x]" value="{$smilie.sprite_params.x}"
							title="{{ phrase('background_position_x') }}"
							data-xf-init="tooltip" />
						<span class="inputGroup-splitter"></span>
						<xf:numberbox name="smilies[{$i}][sprite_params][y]" value="{$smilie.sprite_params.y}"
							title="{{ phrase('background_position_y') }}"
							data-xf-init="tooltip" />
						<span class="inputGroup-text">px</span>
					</div>
				</xf:formrow>

				<xf:textboxrow name="smilies[{$i}][sprite_params][bs]" value="{$smilie.sprite_params.bs}"
					label="{{ phrase('background_size') }}"
					explain="{{ phrase('background_size_explain') }}" />
			</xf:if>

			<hr class="formRowSep" />

			<xf:selectrow name="smilies[{$i}][smilie_category_id]"
				value="{{ $smilieCategoryMap.{$i} ?: 0 }}"
				label="{{ phrase('smilie_category') }}">

				<xf:option value="0" label="{{ phrase('(none)') }}" />
				<xf:optgroup label="{{ phrase('new') }}">
					<xf:options source="$newCategoryPairs" />
				</xf:optgroup>
				<xf:optgroup label="{{ phrase('existing') }}">
					<xf:options source="$categoryPairs" />
				</xf:optgroup>
			</xf:selectrow>

			<xf:macro id="display_order_macros::row"
				arg-name="smilies[{$i}][display_order]"
				arg-value="{$smilie.display_order}" />

			<xf:checkboxrow>
				<xf:option name="smilies[{$i}][display_in_editor]" selected="$smilie.display_in_editor">
					{{ phrase('show_this_smilie_in_the_text_editor') }}
				</xf:option>
			</xf:checkboxrow>

		</div>
	</div>
</xf:macro>]]></template>
  <template type="admin" title="smilie_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('smilies') }}</xf:title>

<xf:pageaction>
	<div class="buttonGroup">
		<xf:button href="{{ link('smilies/add') }}" icon="add">{{ phrase('add_smilie') }}</xf:button>
		<xf:button href="{{ link('smilie-categories/add') }}" icon="add" overlay="true">{{ phrase('add_category') }}</xf:button>

		<div class="buttonGroup-buttonWrapper">
			<xf:button class="menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true" title="{{ phrase('more_options') }}">&#8226;&#8226;&#8226;</xf:button>
			<div class="menu" data-menu="menu" aria-hidden="true">
				<div class="menu-content">
					<h4 class="menu-header">{{ phrase('more_options') }}</h4>
					<a href="{{ link('smilies/sort') }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('button.sort') }}</a>
					<a href="{{ link('smilies/import') }}" class="menu-linkRow">{{ phrase('button.import') }}</a>
					<a href="{{ link('smilies', {}, {'export': 1}) }}" class="menu-linkRow">{{ phrase('button.export') }}</a>
				</div>
			</div>
		</div>
	</div>
</xf:pageaction>

<xf:css src="public:help_page_smilies.less" />

<xf:form action="{{ link(($exportView ? 'smilies/export' : 'smilies/toggle')) }}"
	ajax="{{ $exportView ? false : true }}" class="block"

	data-xf-init="select-plus"
	data-sp-checkbox=".dataList-cell input[type=checkbox]"
	data-sp-container=".dataList-row"
	data-sp-control=".dataList-cell--link a[href]"
data-sp-debug="{{ true }}">

	<div class="block-outer">
		<xf:macro id="filter_macros::quick_filter" arg-key="smilies" arg-class="block-outer-opposite" />
	</div>
	<div class="block-container">

		<h2 class="block-tabHeader tabs" role="tablist">
			<!--[XF:tabs:start]-->
			<a class="tabs-tab {{ $exportView ? '' : 'is-active' }}" role="tab" tabindex="0" aria-controls="smilie-list" href="{{ link('smilies') }}">{{ phrase('smilies') }}</a>
			<a class="tabs-tab {{ $exportView ? 'is-active' : '' }}" role="tab" tabindex="0" aria-controls="export-mode" href="{{ link('smilies', {}, {'export': 1}) }}">{{ phrase('export') }}</a>
			<!--[XF:tabs:end]-->
		</h2>

		<div class="block-body">
			<xf:datalist>
				<xf:foreach loop="$smilieData.smilieCategories" key="$smilieCategoryId" value="$smilieCategory">
					<tbody class="dataList-rowGroup">
					<xf:if is="{{ count($smilieData.smilieCategories) > 1 }}">
						<xf:datarow rowtype="subsection" rowclass="{{ !$smilieCategoryId ? 'dataList-row--noHover' : '' }}">
							<xf:if is="$exportView">
								<xf:cell><xf:checkbox standalone="true"><xf:option check-all="< .dataList-rowGroup" /></xf:checkbox></xf:cell>
							</xf:if>
							<xf:if is="{{ $smilieCategoryId > 0 }}">
								<xf:cell href="{{ link('smilie-categories/edit', $smilieCategory) }}"
									colspan="3" overlay="true">
									{{ $smilieCategory.title }}
								</xf:cell>
								<xf:if is="!$exportView">
									<xf:delete href="{{ link('smilie-categories/delete', $smilieCategory) }}" />
								</xf:if>
							<xf:else />
								<xf:cell colspan="4">{{ phrase('smilie_category_title.uncategorized') }}</xf:cell>
							</xf:if>
						</xf:datarow>
					</xf:if>

					<xf:foreach loop="{$smilieData.smilies.{$smilieCategoryId}}" key="$smilieId" value="$smilie">
						<xf:datarow>
							<xf:if is="$exportView">
								<xf:toggle name="export[]" value="{$smilie.smilie_id}" />
							</xf:if>
							<xf:cell href="{{ link('smilies/edit', $smilie) }}" class="dataList-cell--min">
								{{ smilie($smilie.smilie_text_options.0) }}
							</xf:cell>
							<xf:cell href="{{ link('smilies/edit', $smilie) }}">
								{$smilie.title}
							</xf:cell>
							<xf:cell href="{{ link('smilies/edit', $smilie) }}">
								<xf:foreach loop="$smilie.smilie_text_options" value="$smilieText">
									<span class="smilieText">{$smilieText}</span>
								</xf:foreach>
							</xf:cell>
							<xf:if is="!$exportView">
								<xf:delete href="{{ link('smilies/delete', $smilie) }}" />
							</xf:if>
						</xf:datarow>
					<xf:else />
						<xf:datarow rowclass="dataList-row--noHover dataList-row--note">
							<xf:cell colspan="4" class="dataList-cell--noSearch">
								<xf:if is="{{ count($smilieData.smilieCategories) > 1 }}">
									{{ phrase('no_smilies_have_been_added_to_this_category_yet') }}
								<xf:else />
									{{ phrase('no_smilies_have_been_added_yet') }}
								</xf:if>
							</xf:cell>
						</xf:datarow>
					</xf:foreach>
					</tbody>
				</xf:foreach>
			</xf:datalist>
		</div>
		<div class="block-footer block-footer--split">
			<span class="block-footer-counter">{{ display_totals($smilieData.totalSmilies) }}</span>
			<xf:if is="$exportView">
				<span class="block-footer-select"><xf:checkbox standalone="true"><xf:option check-all=".dataList" label="{{ phrase('select_all') }}" /></xf:checkbox></span>
				<span class="block-footer-controls"><xf:button type="submit" icon="export" /></span>
			</xf:if>
		</div>
	</div>
</xf:form>]]></template>
  <template type="admin" title="smilie_sort" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('sort_smilies') }}</xf:title>

<xf:macro id="public:nestable_macros::setup" />

<xf:form action="{{ link('smilies/sort') }}" class="block" ajax="true">
	<div class="block-container">
		<xf:foreach loop="$smilieData.smilieCategories" key="$smilieCategoryId" value="$smilieCategory">
			<xf:if is="{{ $smilieCategoryId > 0 }}">
				<h4 class="block-minorHeader">{$smilieCategory.title}</h4>
			<xf:else />
				<h4 class="block-minorHeader">{{ phrase('smilie_category_title.uncategorized') }}</h4>
			</xf:if>
			<div class="block-body">
				<div class="nestable-container" data-xf-init="nestable" data-parent-id="{$smilieCategoryId}" data-max-depth="1" data-value-target=".js-smilieData">
					<xf:if contentcheck="true">
						<ol class="nestable-list">
							<xf:contentcheck>
							<xf:foreach loop="{$smilieData.smilies.{$smilieCategoryId}}" key="$smilieId" value="$smilie" i="$i">
								<li class="nestable-item" data-id="{$smilieId}">
									<div class="nestable-handle nestable-handle--full" aria-label="{{ phrase('drag_handle')|for_attr }}"><xf:fa icon="fa-bars" /></div>
									<div class="nestable-content">{{ smilie($smilie.smilie_text_options.0) }} {$smilie.title} <xf:foreach loop="$smilie.smilie_text_options" value="$smilieText"><span class="smilieText">{$smilieText}</span> </xf:foreach></div>
								</li>
							</xf:foreach>
							</xf:contentcheck>
						</ol>
					</xf:if>
					<xf:hiddenval name="smilies[]" value="" class="js-smilieData" />
				</div>
			</div>
		</xf:foreach>
		<xf:submitrow icon="save" rowtype="simple" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="stats" version_id="2030170" version_string="2.3.1"><![CDATA[<xf:title>{{ phrase('statistics') }}</xf:title>

<xf:css src="public:chartist.css" />
<xf:css src="stats.less" />

<xf:js prod="xf/stats-compiled.js" dev="vendor/chartist/chartist.min.js, xf/stats.js" />

<div class="block">
	<div class="block-container">
		<h2 class="block-header">
			<xf:if is="$grouping == 'daily'">
				{{ phrase('daily_statistics') }}
			<xf:elseif is="$grouping == 'weekly'" />
				{{ phrase('weekly_statistics') }}
			<xf:elseif is="$grouping == 'monthly'" />
				{{ phrase('monthly_statistics') }}
			</xf:if>
			<div class="block-desc">{{ date($start, 'absolute') }} - {{ date($end, 'absolute') }}</div>
		</h2>
		<div class="block-body">
			<div class="block-row">
				<div data-xf-init="stats" data-averages="{{ $value_type === 'average' }}" data-line-smooth="true">
					<script class="js-statsData" type="application/json">
						{$data|json|raw}
					</script>
					<script class="js-statsSeriesLabels" type="application/json">
						{$displayTypesPhrased|json|raw}
					</script>
					<div class="ct-chart ct-major-tenth js-statsChart"></div>
					<ul class="ct-legend js-statsLegend"></ul>
				</div>
			</div>
			<xf:if is="$grouping != 'daily' && $value_type == 'average'">
				<div class="block-row block-row--minor">
					{{ phrase('values_represent_daily_averages_within_each_time_period') }}
				</div>
			</xf:if>
		</div>
		<h3 class="block-header">
			<span class="collapseTrigger collapseTrigger--block" data-xf-click="toggle" data-target="< :up :next">
				{{ phrase('raw_statistics') }}
			</span>
		</h3>
		<div class="block-body block-body--collapsible">
			<xf:datalist class="dataList--contained" data-xf-init="responsive-data-list">
				<xf:datarow rowtype="header">
					<xf:cell>{{ phrase('period') }}</xf:cell>
					<xf:foreach loop="$displayTypes" value="$displayType">
						<xf:cell>{$displayTypesPhrased.{$displayType}}</xf:cell>
					</xf:foreach>
				</xf:datarow>
			<xf:foreach loop="$data" value="$stat">
				<xf:datarow>
					<xf:cell class="dataList-cell--alt">{$stat.label}</xf:cell>
					<xf:foreach loop="$displayTypes" value="$displayType">
						<xf:cell>{$stat.averages.{$displayType}|number($grouping == 'daily' ? 0 : 2)}</xf:cell>
					</xf:foreach>
				</xf:datarow>
			</xf:foreach>
			</xf:datalist>
		</div>
	</div>
</div>

<xf:form action="{{ link('stats') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('date_range') }}" rowtype="input">
				<div class="inputGroup inputGroup--auto">
					<xf:dateinput name="start" value="{{ date($start, 'Y-m-d') }}" />
					<span class="inputGroup-text">-</span>
					<xf:dateinput name="end" value="{{ $endDisplay ? date($endDisplay, 'Y-m-d') : '' }}" />
					<span class="inputGroup-splitter"></span>
					<xf:select name="date_preset" class="js-presetChange input--autoSize">
						<xf:option value="-1">{{ phrase('date_presets:') }}</xf:option>
						<xf:optgroup>
							<xf:options source="{$datePresets}" />
							<xf:option value="1995-01-01">{{ phrase('all_time') }}</xf:option>
						</xf:optgroup>
					</xf:select>
				</div>
			</xf:formrow>

			<xf:radiorow name="grouping" value="{$grouping}"
				label="{{ phrase('grouping') }}">

				<xf:option value="daily">{{ phrase('daily') }}</xf:option>
				<xf:option value="weekly">{{ phrase('weekly') }}</xf:option>
				<xf:option value="monthly">{{ phrase('monthly') }}</xf:option>
			</xf:radiorow>

			<xf:radiorow name="value_type" value="{$value_type}"
				label="{{ phrase('display_value_type') }}">

				<xf:option value="average">{{ phrase('daily_averages') }}</xf:option>
				<xf:option value="total">{{ phrase('totals') }}</xf:option>
			</xf:radiorow>

			<xf:checkboxrow name="display_types" value="{$displayTypes}"
				label="{{ phrase('display_statistics') }}">

				<xf:foreach loop="array_keys($statsTypeOptions)" value="$contentType">
					<xf:optgroup listclass="listColumns" label="{$contentTypePhrases.{$contentType}}">
						<xf:options source="{$statsTypeOptions.{$contentType}}" />
					</xf:optgroup>
				</xf:foreach>
			</xf:checkboxrow>
		</div>
		<xf:submitrow submit="{{ phrase('show') }}" sticky="true" />
	</div>
</xf:form>

<xf:js>
	document.querySelectorAll('.js-presetChange').forEach(element =>
	{
		XF.on(element, 'change', function (e)
		{
			const ctrl = e.currentTarget,
				value = ctrl.value,
				form = ctrl.closest('form')

			if (value == -1)
			{
				return
			}

			const startInput = form.querySelector(ctrl.getAttribute('data-start') || 'input[name=start]')
			if (startInput)
			{
				startInput.value = value
			}

			const endInput = form.querySelector(ctrl.getAttribute('data-end') || 'input[name=end]')
			if (endInput)
			{
				endInput.value = ''
			}

			if (XF.trigger(form, 'submit'))
			{
				form.submit()
			}
		})
	})
</xf:js>]]></template>
  <template type="admin" title="stats.less" version_id="2000052" version_string="2.0.0 Release Candidate 2"><![CDATA[.listColumns
{
	&.contentTypes
	{
		margin-bottom: 14px;
	}
}

.ct-chart
{
	svg
	{
		-webkit-backface-visibility: hidden;
	}

	.ct-series-a
	{
		.ct-line,
		.ct-point
		{
			stroke: @xf-paletteColor3;
		}
	}

	.ct-series-b
	{
		.ct-line,
		.ct-point
		{
			stroke: @xf-paletteAccent2;
		}
	}

	.ct-series-c
	{
		.ct-line,
		.ct-point
		{
			stroke: @xf-paletteColor5;
		}
	}

	.ct-series-d
	{
		.ct-line,
		.ct-point
		{
			stroke: @xf-paletteAccent3;
		}
	}

	.ct-grid
	{
		stroke: fade(@xf-textColor, 15%);
	}

	.ct-label
	{
		color: @xf-textColor;
		font-size: @xf-fontSizeSmallest;
	}

	.ct-line
	{
		stroke-width: 2px;
	}

	.ct-point
	{
		stroke-width: 8px;
	}

	.ct-label.ct-horizontal.ct-end
	{
		.m-transform(translateX(-50%));
		text-align: center;
		justify-content: center;
	}
}

.ct-chart--small
{
	.ct-point
	{
		opacity: 0;
	}
}

.ct-legend
{
	.m-listPlain();
	text-align: center;
	font-size: @xf-fontSizeSmaller;

	> li
	{
		display: inline-block;
		position: relative;
        padding-left: 16px;
		margin-right: 2em;

		&:last-child
		{
			margin-right: 0;
		}

		i
		{
			content: '';
			position: absolute;
			left: 0;
			top: 3px;
			width: 12px;
			height: 12px;
			border-radius: @xf-borderRadiusSmall;
			background: transparent;
		}
	}
}]]></template>
  <template type="admin" title="style_customized_components" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('customized_style_components:') }} {$style.title}</xf:title>

<xf:if is="$templates is not empty OR $properties is not empty">
	<xf:form action="{{ link('styles/mass-revert', $style) }}" ajax="true" class="block">
		<div class="block-outer">
			<div class="block-outer-main">
				<xf:macro id="style_macros::style_change_menu"
					arg-styleTree="{$styleTree}"
					arg-currentStyle="{$style}"
					arg-route="styles/customized-components" />
			</div>
			<div class="block-outer-opposite">
				<xf:macro id="filter_macros::quick_filter" arg-key="customized-components" arg-class="block-outer-opposite" />
			</div>
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:if is="$templates is not empty">
						<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
							<xf:cell>{{ phrase('templates') }}</xf:cell>
							<xf:cell class="dataList-cell--min"><xf:checkbox standalone="true"><xf:option check-all=".dataList .js-checkAllTemplates >" /></xf:checkbox></xf:cell>
						</xf:datarow>
						<xf:foreach loop="$templates" value="$template">
							<xf:datarow rowclass="js-checkAllTemplates">
								<xf:main href="{{ link('templates/edit', $template) }}"
									label="{$template.title}"
									hint="{{ $template.version_string ? phrase('customized_in_version', {'version': $template.version_string}) : '' }}" />
								<xf:toggle name="template_ids[]" value="{$template.template_id}" />
							</xf:datarow>
						</xf:foreach>
					</xf:if>
					<xf:if is="$properties is not empty">
						<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
							<xf:cell>{{ phrase('style_properties') }}</xf:cell>
							<xf:cell class="dataList-cell--min"><xf:checkbox standalone="true"><xf:option check-all=".dataList .js-checkAllProperties >" /></xf:checkbox></xf:cell>
						</xf:datarow>
						<xf:foreach loop="$properties" value="$property">
							<xf:datarow rowclass="js-checkAllProperties">
								<xf:main href="{{ link('styles/style-properties/group', $style, {'group': $property.group_name}) }}"
									label="{$property.title}"
									hint="{$property.property_name}" />
								<xf:toggle name="property_ids[]" value="{$property.property_id}" />
							</xf:datarow>
						</xf:foreach>
					</xf:if>
				</xf:datalist>
			</div>
			<div class="block-footer block-footer--split">
				<span class="block-footer-counter">{{ display_totals($itemCount) }}</span>
				<span class="block-footer-select"><xf:checkbox standalone="true"><xf:option check-all=".dataList >" label="{{ phrase('select_all') }}" /></xf:checkbox></span>
				<span class="block-footer-controls">
					<xf:button type="submit">{{ phrase('revert') }}</xf:button>
				</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="block">
		<div class="block-outer">
			<xf:macro id="style_macros::style_change_menu"
				arg-styleTree="{$styleTree}"
				arg-currentStyle="{$style}"
				arg-route="styles/customized-components" />
		</div>
		<div class="block-container">
			<div class="block-body block-row">
				{{ phrase('style_contains_no_customized_templates_or_style_properties') }}
			</div>
		</div>
	</div>
</xf:if>]]></template>
  <template type="admin" title="style_delete" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{$confirmUrl}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				<strong><a href="{$contentUrl}">{$contentTitle}</a></strong>
				<xf:if is="$content.hasDataUriAssets()">
					<div class="blockMessage blockMessage--important blockMessage--iconic">
						{{ phrase('all_asset_files_directly_associated_with_style_will_be_deleted') }}
					</div>
				</xf:if>
			</xf:inforow>
		</div>
		<xf:submitrow rowtype="simple" icon="delete" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="style_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$style.isInsert()">
	<xf:title>{{ phrase('add_style') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_style:') }} {$style.title}</xf:title>
</xf:if>

<xf:pageaction if="$style.isUpdate()">
	<xf:button href="{{ link('styles/delete', $style) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('styles/save', $style) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="title" value="{$style}"
				label="{{ phrase('title') }}" />

			<xf:textarearow name="description" value="{$style}" autosize="true"
				label="{{ phrase('description') }}" />

			<xf:selectrow name="parent_id" value="{$style}"
				label="{{ phrase('parent_style') }}">
				<xf:option value="0">{{ phrase('(no_parent)') }}</xf:option>
				<xf:foreach loop="$styleTree.getFlattened(1)" value="$treeEntry">
					<xf:option value="{$treeEntry.record.style_id}">
						{{ repeat('--', $treeEntry.depth) }} {$treeEntry.record.title}
					</xf:option>
				</xf:foreach>
			</xf:selectrow>

			<xf:formrow label="{{ phrase('asset_locations') }}"
				explain="{{ phrase('asset_locations_explain') }}"
				rowtype="input"
				data-xf-init="admin-asset-editor">

				<ul class="listPlain inputGroup-container">
					<xf:foreach loop="$style.effective_assets" key="$key" i="$i" istart="-1" value="$path">
						<li class="inputGroup">
							<xf:textbox name="assets[{$i}][key]" placeholder="{{ phrase('asset_key') }}"
								value="{$key}"
								disabled="{{ ($style.isAssetInherited($key) OR $style.isAssetModified($key)) ? 'disabled' : '' }}" />
							<xf:hiddenval name="assets[{$i}][key]" class="js-assetKey" disabled="{{ !$style.isAssetModified($key) ? 'disabled' : '' }}">{$key}</xf:hiddenval>

							<span class="inputGroup-splitter"></span>

							<xf:textbox name="assets[{$i}][path]" placeholder="{{ phrase('asset_path') }}" class="js-assetValue"
								value="{$path}" data-parent-value="{{ $style.isAssetModified($key) ? $style.getParentAssetValue($key) : null }}"
								disabled="{{ $style.isAssetInherited($key) ? 'disabled' : '' }}" />

							<span class="inputGroup-splitter"></span>

							<xf:if is="$style.isAssetCustom($key)">
								<xf:button fa="fa-pencil" class="button--plain button--iconOnly button--adminStyleAsset is-disabled" />
							<xf:else />
								<xf:button
									class="button--plain button--icon button--iconOnly button--adminStyleAsset {{ $style.isAssetInherited($key) ? 'is-modify js-assetModify' : '' }} {{ ($style.isAssetModified($key)) ? 'is-revert js-assetModify' : '' }}"
									data-xf-init="tooltip" title="{{ $style.isAssetInherited($key) ? phrase('modify_in_this_style') : phrase('revert_value_to_parent') }}" />
							</xf:if>
						</li>
					</xf:foreach>

					<li class="inputGroup" data-xf-init="field-adder" data-increment-format="assets[{counter}]">
						<xf:textbox name="assets[{$nextCounter}][key]" placeholder="{{ phrase('asset_key') }}" />

						<span class="inputGroup-splitter"></span>

						<xf:textbox name="assets[{$nextCounter}][path]" placeholder="{{ phrase('asset_path') }}" />

						<span class="inputGroup-splitter"></span>

						<xf:button fa="fa-pencil" class="button--plain button--iconOnly button--adminStyleAsset is-disabled" />
					</li>
				</ul>
			</xf:formrow>

			<xf:checkboxrow>
				<xf:option name="enable_variations" selected="{$style.enable_variations}"
					hint="{{ phrase('enable_variations_hint') }}">
					{{ phrase('enable_variations') }}
				</xf:option>

				<xf:option name="user_selectable" selected="{$style.user_selectable}">
					{{ phrase('allow_user_selection') }}
				</xf:option>
			</xf:checkboxrow>
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="style_export" version_id="2030033" version_string="2.3.0 Beta 3"><![CDATA[<xf:if is="$asArchive">
	<xf:title>{{ phrase('export_style_as_archive:') }} {$style.title}</xf:title>
<xf:else />
	<xf:title>{{ phrase('export_style_as_xml:') }} {$style.title}</xf:title>
</xf:if>

<xf:set var="$addOnRepo" value="{{ $xf.app.em.getRepository('XF:AddOn') }}" />

<xf:form action="{{ link(($asArchive ? 'styles/export-archive' : 'styles/export'), $style) }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$asArchive">
				<xf:inforow>
					<div class="blockMessage blockMessage--important"><strong>{{ phrase('note:') }}</strong> {{ phrase('style_archives_only_contain_files_extensions_x', {'extensions': $allowedExtensions|join(', ')}) }}</div>
				</xf:inforow>
			</xf:if>
			<xf:formrow label="{{ phrase('style') }}">{$style.title}</xf:formrow>

			<xf:selectrow name="addon_id"
				label="{{ phrase('export_from_add_on') }}">

				<xf:option>{{ phrase('(all)') }}</xf:option>
				<xf:foreach loop="$addOnRepo.findAddOnsForList().fetch()" value="$addOn">
					<xf:option value="{$addOn.addon_id}">{$addOn.title}</xf:option>
				</xf:foreach>
			</xf:selectrow>

			<xf:if is="$xf.designer OR $xf.development">
				<xf:checkboxrow>
					<xf:option name="independent"
						label="{{ phrase('export_as_independent_style') }}"
						hint="{{ phrase('if_selected_customizations_in_parent_styles_will_be_included') }}" />
				</xf:checkboxrow>
			</xf:if>
		</div>
		<xf:submitrow icon="export" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="style_import" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:title>{{ phrase('import_style') }}</xf:title>

<xf:form action="{{ link('styles/import') }}" upload="true" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$canSupportStyleArchives">
				<xf:uploadrow name="upload" accept=".xml,.zip"
					label="{{ phrase('import_from_uploaded_xml_or_archive_file') }}" />
			<xf:else />
				<xf:uploadrow name="upload" accept=".xml"
					label="{{ phrase('import_from_uploaded_xml_file') }}" />
			</xf:if>

			<xf:radiorow name="target"
				label="{{ phrase('import_as') }}">

				<xf:option value="new" checked="checked"
					label="{{ phrase('child_of_style:') }}">

					<xf:select name="parent_style_id">
						<xf:option>{{ phrase('(no_parent)') }}</xf:option>
						<xf:foreach loop="$styleTree.getFlattened(0)" value="$treeEntry">
							<xf:option value="{$treeEntry.record.style_id}">
								{{ repeat('--', $treeEntry.depth) }} {$treeEntry.record.title}
							</xf:option>
						</xf:foreach>
					</xf:select>
				</xf:option>
				<xf:option value="overwrite"
					label="{{ phrase('overwrite_style') }}">

					<xf:select name="overwrite_style_id">
						<xf:foreach loop="$styleTree.getFlattened(0)" value="$treeEntry">
							<xf:option value="{$treeEntry.record.style_id}">{{ repeat('--', $treeEntry.depth) }}
								{$treeEntry.record.title}
							</xf:option>
						</xf:foreach>
					</xf:select>
				</xf:option>
			</xf:radiorow>

			<xf:checkboxrow>
				<xf:option name="force">
					<xf:label>{{ phrase('skip_import_checks') }}</xf:label>
					<xf:hint>{{ phrase('selecting_bypass_checks_made_by_import_prevent_accidents') }}</xf:hint>
				</xf:option>
			</xf:checkboxrow>

		</div>
		<xf:submitrow icon="import" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="style_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('styles') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('styles/add') }}" icon="add">{{ phrase('add_style') }}</xf:button>
	<xf:button href="{{ link('styles/import') }}" icon="import" />
</xf:pageaction>

<xf:macro id="style_list" arg-children="!" arg-defaultStyleId="!" arg-depth="1" arg-canSupportStyleArchives="{{ false }}">
	<xf:if is="$children is not empty">
		<xf:foreach loop="$children" value="$child">
			<xf:macro id="style_list_entry"
				arg-style="{$child.record}"
				arg-children="{$child.children}"
				arg-defaultStyleId="{$defaultStyleId}"
				arg-depth="{$depth}"
				arg-canSupportStyleArchives="{$canSupportStyleArchives}" />
		</xf:foreach>
	</xf:if>
</xf:macro>

<xf:macro id="style_list_entry" arg-style="!" arg-children="!" arg-defaultStyleId="!" arg-depth="1" arg-canSupportStyleArchives="{{ false }}">
	<xf:datarow>

		<xf:main
			hash="{$style.style_id}"
			href="{{ ($style.style_id ? link('styles/edit', $style) : '') }}"
			label="{$style.title}"
			explain="{$style.description}"
			class="dataList-cell--d{$depth}">

			<xf:hint><xf:if is="$xf.designer AND $style.designer_mode">
				{{ phrase('designer_mode_enabled:') }} {$style.designer_mode}
			</xf:if></xf:hint>
		</xf:main>

		<xf:if is="$style.style_id">
			<xf:toggle name="user_selectable[{$style.style_id}]"
				selected="$style.user_selectable"
				class="dataList-cell--separated u-hideMedium"
				submit="true"
				tooltip="{{ phrase('enable_disable_user_selection_x', {'title': $style.title}) }}" />
			<xf:toggle name="default_style_id"
				type="radio"
				value="{$style.style_id}"
				selected="{{ $defaultStyleId == $style.style_id ? 1 : 0 }}"
				class="dataList-cell--separated"
				submit="true" />
		<xf:else />
			<xf:cell class="u-hideMedium">&nbsp;</xf:cell>
			<xf:cell>&nbsp;</xf:cell>
		</xf:if>

		<xf:if is="$style.canEdit()">
			<xf:action href="{{ link('styles/templates', $style) }}" class="dataList-cell--responsiveMenuItem">{{ phrase('templates') }}</xf:action>
			<xf:action href="{{ link('styles/style-properties', $style) }}" class="dataList-cell--responsiveMenuItem">{{ phrase('style_properties') }}</xf:action>
		<xf:else />
			<xf:cell class="dataList-cell--alt dataList-cell--fauxResponsiveMenuItem"> </xf:cell>
			<xf:cell class="dataList-cell--alt dataList-cell--fauxResponsiveMenuItem">&nbsp;</xf:cell>
		</xf:if>

		<xf:if is="$style.style_id">
			<xf:popup label="&#8226;&#8226;&#8226;">
				<div class="menu" data-menu="menu" aria-hidden="true" data-menu-builder="dataList">
					<div class="menu-content">
						<h3 class="menu-header">{{ phrase('more_options') }}</h3>
						<a href="{{ link('styles/export', $style) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('export_as_xml') }}</a>
						<xf:if is="$canSupportStyleArchives">
							<a href="{{ link('styles/export-archive', $style) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('export_as_archive') }}</a>
						</xf:if>
						<a href="{{ link('styles/customized-components', $style) }}" class="menu-linkRow">{{ phrase('customized_components') }}</a>
						<div class="js-menuBuilderTarget u-showMediumBlock"></div>
					</div>
				</div>
			</xf:popup>
		<xf:else />
			<xf:cell class="dataList-cell--alt">&nbsp;</xf:cell>
		</xf:if>

		<xf:if is="$style.style_id">
			<xf:delete href="{{ link('styles/delete', $style) }}" />
		<xf:else />
			<xf:cell class="dataList-cell--alt">&nbsp;</xf:cell>
		</xf:if>

	</xf:datarow>
	<xf:macro id="style_list"
		arg-children="{$children}"
		arg-depth="{{ $depth + 1 }}"
		arg-defaultStyleId="{$defaultStyleId}"
		arg-canSupportStyleArchives="{$canSupportStyleArchives}" />
</xf:macro>

<xf:if is="$styleTree is not empty">
	<xf:form action="{{ link('styles/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="styles" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:macro id="style_list" arg-children="{$styleTree}"
						arg-defaultStyleId="{$xf.options.defaultStyleId}"
						arg-canSupportStyleArchives="{$canSupportStyleArchives}" />
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($styleTree.getFlattened(0)) }}</span>
			</div>
		</div>
	</xf:form>
</xf:if>]]></template>
  <template type="admin" title="style_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="style_change_menu"
	arg-styleTree="!"
	arg-route="!"
	arg-routeParams="{{ {} }}"
	arg-currentStyle="{{ null }}"
	arg-linkClass="button button--link">

	<a class="{$linkClass} menuTrigger"
		data-xf-click="menu"
		role="button"
		tabindex="0"
		aria-expanded="false"
		aria-haspopup="true">{{ phrase('style:') }} {$currentStyle.title}</a>

	<div class="menu" data-menu="menu" aria-hidden="true">
		<div class="menu-content">
			<h3 class="menu-header">{{ phrase('styles') }}</h3>
			<xf:foreach loop="$styleTree.getFlattened()" value="$treeEntry">
				<a href="{{ link($route, $treeEntry.record, $routeParams) }}"
					class="menu-linkRow {{ ($currentStyle && $currentStyle.style_id == $treeEntry.record.style_id) ? 'is-selected' : '' }}">
					<span class="u-depth{$treeEntry.depth}">{$treeEntry.record.title}</span>
				</a>
			</xf:foreach>
		</div>
	</div>
</xf:macro>

<xf:macro id="style_select"
	arg-styleTree="!"
	arg-styleId="!"
	arg-name="style_id"
	arg-row="{{ true }}">

	<xf:set var="$select">
		<xf:select name="{$name}" value="{$styleId}">
			<xf:foreach loop="{{ $styleTree.getFlattened() }}" value="$treeEntry">
				<xf:option value="{$treeEntry.record.style_id}">{{ repeat('--', $treeEntry.depth) }} {$treeEntry.record.title}</xf:option>
			</xf:foreach>
		</xf:select>
	</xf:set>

	<xf:if is="$row">
		<xf:formrow rowtype="input"
			label="{{ phrase('style') }}">

			{$select|raw}
		</xf:formrow>
	<xf:else />
		{$select|raw}
	</xf:if>
</xf:macro>]]></template>
  <template type="admin" title="style_mass_revert" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('styles/mass-revert', $style) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_reversion_of_customized_components_from_style', {'numTemplates': count($templateIds), 'numProperties': count($propertyIds), 'style': $style.title}) }}
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('revert') }}" rowtype="simple" name="perform_revert" value="1" />
	</div>
	<xf:redirect />
	<xf:foreach loop="$templateIds" value="$templateId">
		<xf:hiddenval name="template_ids[]">{$templateId}</xf:hiddenval>
	</xf:foreach>
	<xf:foreach loop="$propertyIds" value="$propertyId">
		<xf:hiddenval name="property_ids[]">{$propertyId}</xf:hiddenval>
	</xf:foreach>
</xf:form>]]></template>
  <template type="admin" title="style_properties.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[@_stylePropertiesInputWidth: 300px;

.cssCustomHighlight
{
	.hint
	{
		display: none;
	}

	&.cssCustomHighlight--custom
	{
		color: red;

		.hint.hint--custom
		{
			display: unset;
		}
	}

	&.cssCustomHighlight--inherited
	{
		color: orange;

		.hint.hint--inherited
		{
			display: unset;
		}
	}

	&.cssCustomHighlight--added
	{
		color: green;

		.hint.hint--added
		{
			display: unset;
		}
	}
}

.cssPropertyWrapper
{
	.formRow-hint--customState
	{
		float: right;

		> span
		{
			font-size: @xf-fontSizeSmallest;
			font-weight: @xf-fontWeightHeavy;
			vertical-align: .3em;
		}
	}

	> h3.block-header
	{
		display: grid;
		grid-template-columns: 1fr auto;

		&::before,
		&::after
		{
			display: none;
		}
	}
}

.cssPropertyDescription
{
	.m-clearFix();

	font-size: @xf-fontSizeSmall;
	color: @xf-textColorDimmed;
}

.cssProperty
{
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;

	> li
	{
		display: inline-block;
		vertical-align: top;
		margin-top: @xf-paddingLargest;
		margin-right: 20px;
		max-width: 100%;
	}
}

.cssPropertyExtra
{
	.cssPropertyHeader
	{
		margin-bottom: 3px;
	}

	.input,
	.codeEditor
	{
		width: 450px;
		max-width: 100%;
	}
}

.m-cssPropertyHeaderText()
{
	font-size: @xf-fontSizeLarge;
	font-weight: @xf-fontWeightNormal;
	color: @xf-textColorFeature;
}

.cssPropertyHeader
{
	margin: 0;
	padding: 0;
	.m-cssPropertyHeaderText();
	padding-bottom: 2px;
	border-bottom: 1px solid @xf-borderColor;
}

.cssPropertyRevert
{
	font-size: @xf-fontSizeSmaller;
	float: right;
}

table.cssPropertySet
{
	border: none;
	border-spacing: 0;
	border-collapse: collapse;

	td
	{
		padding: 3px;

		&:first-child
		{
			padding-left: 0;
		}

		&:last-child
		{
			padding-right: 0;
		}
	}
}

.cssPropertySet-headerRow
{
	th
	{
		font-size: @xf-fontSizeSmaller;
		font-weight: @xf-fontWeightNormal;
		text-align: left;
		vertical-align: baseline;
		padding: 0 4px;

		&.cssPropertySet-headerSetLabel
		{
			.m-cssPropertyHeaderText();
			padding-left: 0;
			padding-right: 6px;
		}
	}

	&.cssPropertySet-headerRow--separated th
	{
		border-bottom: 1px solid @xf-borderColor;
		padding-bottom: 2px;
	}
}

.cssPropertySet-rowLabel
{
	font-size: @xf-fontSizeSmall;
	font-weight: @xf-fontWeightNormal;
	text-align: right;
}

.input
{
	&.input--cssProp
	{
		font-size: @xf-fontSizeSmall;
		padding: @xf-paddingSmall;
	}

	&.input--cssLength
	{
		text-align: right;
		width: 120px;
	}

	&.input--colorWidthMatched
	{
		width: @_stylePropertiesInputWidth;
		max-width: 100%;
	}

	.p-styleProperties &.input--number
	{
		width: @_stylePropertiesInputWidth;
		max-width: 100%;
		text-align: left;

		&.js-numberBoxTextInput
		{
			width: (@_stylePropertiesInputWidth - 70px);
		}
	}
}

.p-styleProperties .inputGroup--color.inputGroup--color--showTxt
{
	flex: 1 1 50%;
	display: grid;
	gap: @xf-paddingSmall;
	grid-template-columns: 1fr 1fr 1fr 4em;
	grid-template-areas:
		'txt txt txt swatch'
		'h s l swatch';

	input[type=text]
	{
		grid-area: txt;

		& + .inputGroup-text
		{
			display: contents;

			.colorPickerBox
			{
				width: unset;
				height: unset;
				grid-area: swatch;
				border-radius: 4px;

				&.is-unknown
				{
					&::after
					{
						font-size: @xf-fontSizeLargest;
						line-height: 52px;
					}
				}
			}
		}
	}

	&.inputGroup.inputGroup--joined .input
	{
		border-radius: 0;
	}

	.inputGroup-text--hslTxt
	{
		font-size: @xf-fontSizeSmallest;
		color: @xf-linkColor;

		> *::before
		{
			color: @xf-textColorMuted;
		}

		> .js-hslTxt-h::before { content: 'H: '; }
		> .js-hslTxt-s::before { content: 'S: '; }
		> .js-hslTxt-l::before { content: 'L: '; }
	}
}

.p-styleProperties .formRow--variationHeadings
{
	> dt,
	> dd
	{
		padding: 0;
	}

	ul
	{
		display: flex;
		font-size: @xf-fontSizeSmall;
		font-variant: all-small-caps;

		li
		{
			flex: 1 1 auto;
			padding: @xf-paddingSmall @xf-formRowPaddingHOuter 0;
		}
	}
}

.inputChoices
{
	&.inputChoices--cssTextOptions
	{
		> li
		{
			display: inline-block;
			margin-bottom: 0;
			margin-right: 10px;
			font-size: @xf-fontSizeSmall;

			&:last-child
			{
				margin-right: 0;
			}
		}
	}
}

.formRow
{
	.formRow-revert
	{
		margin-top: @xf-paddingMedium;
		font-size: @xf-fontSizeSmaller;
	}

	.formRow-hint--customState
	{
		display: block;
		font-size: @xf-fontSizeSmallest;

		.iconic-label
		{
			font-weight: @xf-fontWeightHeavy;
		}
	}
}

@media (max-width: @xf-responsiveNarrow)
{
	.p-styleProperties .inputGroup--color,
	.input.input--colorWidthMatched
	{
		width: 200px;
	}

	.cssProperty
	{
		display: block;

		> li
		{
			display: block;
			margin-right: 0;
		}
	}

	.cssPropertySet
	{
		width: 100%;

		.input--cssLength
		{
			width: 80px;
		}

		.inputGroup.inputGroup--colorSmall
		{
			width: 130px;
		}

		.colorPickerBox
		{
			width: 30px;
		}
	}

	.cssPropertyExtra .input,
	.cssPropertyExtra .codeEditor
	{
		width: calc(~'100vw - 45px');
	}
}]]></template>
  <template type="admin" title="style_property_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$property.isInsert()">
	<xf:title>{{ phrase('add_property') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_property:') }} {$property.master_title}</xf:title>
</xf:if>

<xf:pageaction if="$property.isUpdate()">
	<xf:button href="{{ link('style-properties/delete', $property) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('style-properties//save', $property) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('style') }}">

				{$style.title}
				<xf:hiddenval name="style_id">{$style.style_id}</xf:hiddenval>
			</xf:formrow>

			<xf:textboxrow name="property_name" value="{$property}"
				label="{{ phrase('property_name') }}"
				explain="{{ phrase('this_is_how_you_will_refer_to_property_in_template') }}"
				dir="ltr" />

			<xf:textboxrow name="title" value="{$property.master_title}"
				maxlength="{{ max_length($property, 'title') }}"
				label="{{ phrase('title') }}" />

			<xf:textarearow name="description" value="{$property.master_description}" autosize="true"
				maxlength="{{ max_length($property, 'description') }}"
				label="{{ phrase('description') }}" />

			<hr class="formRowSep" />

			<xf:radiorow name="property_type" value="{{ $property.property_type ?: 'css' }}"
				label="{{ phrase('type') }}">

				<xf:option value="css" data-xf-init="disabler" data-container=".js-propertyTypeCss" data-hide="true">
					CSS</xf:option>
				<xf:option value="value" data-xf-init="disabler" data-container=".js-propertyTypeValue" data-hide="true">
					{{ phrase('value') }}</xf:option>

			</xf:radiorow>

			<div class="js-propertyTypeCss">
				<xf:checkboxrow name="css_components" value="{{ $property.css_components }}" listclass="listColumns"
					label="{{ phrase('css_components') }}">

					<xf:option value="text">{{ phrase('text') }}</xf:option>
					<xf:option value="background">{{ phrase('background') }}</xf:option>
					<xf:option value="border">{{ phrase('border') }}</xf:option>
					<xf:option value="border_radius">{{ phrase('border_radius') }}</xf:option>
					<xf:option value="border_width_simple">{{ phrase('simple_border_width') }}</xf:option>
					<xf:option value="border_color_simple">{{ phrase('simple_border_color') }}</xf:option>
					<xf:option value="border_radius_simple">{{ phrase('simple_border_radius') }}</xf:option>
					<xf:option value="padding">{{ phrase('padding') }}</xf:option>
					<xf:option value="extra">{{ phrase('extra') }}</xf:option>
					<xf:explain>{{ phrase('css_components_explain') }}</xf:explain>
				</xf:checkboxrow>
			</div>
			<div class="js-propertyTypeValue">
				<xf:radiorow name="value_type" value="{{ $property.value_type ?: 'string' }}" listclass="listColumns"
					label="{{ phrase('value_type') }}">

					<xf:option value="string">{{ phrase('string') }}</xf:option>
					<xf:option value="color">{{ phrase('color') }}</xf:option>
					<xf:option value="unit">{{ phrase('unit') }}</xf:option>
					<xf:option value="number">{{ phrase('number') }}</xf:option>
					<xf:option value="boolean">{{ phrase('boolean') }}</xf:option>
					<xf:option value="radio">{{ phrase('radio_buttons') }}</xf:option>
					<xf:option value="select">{{ phrase('select_menu') }}</xf:option>
					<xf:option value="template">{{ phrase('template') }}</xf:option>
				</xf:radiorow>

				<xf:if is="!$property.exists() || $property.canHaveVariations()">
					<xf:checkboxrow>
						<xf:option name="has_variations" checked="{$property.has_variations}"
							label="{{ phrase('enable_variations') }}"
							hint="{{ phrase('enable_variations_hint') }}" />
					</xf:checkboxrow>
				</xf:if>

				<xf:textarearow name="value_parameters" value="{$property}" autosize="true"
					label="{{ phrase('value_formatting_parameters') }}"
					code="true" />

				<xf:textboxrow name="depends_on" value="{$property}"
					label="{{ phrase('depends_on') }}"
					explain="{{ phrase('depends_on_explain') }}"
					dir="ltr" />

				<xf:textboxrow name="value_group" value="{$property}"
					label="{{ phrase('value_grouping') }}"
					explain="{{ phrase('value_grouping_explain') }}"
					dir="ltr" />
			</div>

			<hr class="formRowSep" />

			<xf:selectrow name="group_name" value="{$property}"
				label="{{ phrase('group') }}">
				<xf:option value="">&nbsp;</xf:option>
				<xf:foreach loop="$groups" value="$group">
					<xf:option value="{$group.group_name}">{$group.title}</xf:option>
				</xf:foreach>
			</xf:selectrow>

			<xf:macro id="display_order_macros::row" arg-value="{$property}" />

			<xf:if is="$style.style_id == 0">
				<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$property.addon_id}" />
			</xf:if>
		</div>
		<xf:submitrow icon="save" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="style_property_group_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$group.isInsert()">
	<xf:title>{{ phrase('add_property_group') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_property_group:') }} {$group.master_title}</xf:title>
</xf:if>

<xf:pageaction if="$group.isUpdate()">
	<xf:button href="{{ link('style-properties/groups/delete', $group) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('style-properties/groups/save', $group) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('style') }}">
				{$style.title}
				<xf:hiddenval name="style_id">{$style.style_id}</xf:hiddenval>
			</xf:formrow>

			<xf:textboxrow name="group_name" value="{$group}"
				label="{{ phrase('group_name') }}"
				explain="{{ phrase('this_is_unique_identifier_for_this_group') }}"
				dir="ltr" />

			<xf:textboxrow name="title" value="{$group.master_title}" maxlength="{{ max_length($group, 'title') }}"
				label="{{ phrase('title') }}" />

			<xf:textarearow name="description" value="{$group.master_description}" maxlength="{{ max_length($group, 'description') }}"
				label="{{ phrase('description') }}" />

			<xf:macro id="display_order_macros::row" arg-value="{$group}" />

			<xf:if is="$style.style_id == 0">
				<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$group.addon_id}" />
			</xf:if>
		</div>
		<xf:submitrow icon="save" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="style_property_group_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{$style.title} - {{ phrase('style_properties') }}</xf:title>

<xf:page option="breadcrumbPath" value="styles" />
<xf:page option="section" value="styleProperties" />

<xf:pageaction if="$style.canEditStylePropertyDefinitions()">
	<xf:button href="{{ link('style-properties/groups/add', null, {'style_id': $style.style_id}) }}" icon="add">
		{{ phrase('add_property_group') }}
	</xf:button>
</xf:pageaction>

<div class="block">
	<div class="block-outer">
		<xf:macro id="style_macros::style_change_menu"
			arg-styleTree="{$styleTree}"
			arg-currentStyle="{$style}"
			arg-route="styles/style-properties" />
	</div>
	<div class="block-container">
		<div class="block-body">
			<xf:datalist>
				<xf:foreach loop="$groups" value="$group">
					<xf:set var="$canEdit" value="{{ $group.canEdit() && $group.style_id == $style.style_id }}" />
					<xf:datarow
						label="{$group.title}"
						href="{{ link('styles/style-properties/group', $style, {'group': $group.group_name}) }}"
						explain="{$group.description}"
						delete="{{ $canEdit ? link('style-properties/groups/delete', $group) : false }}"
						hash="{$group.group_name}"
						colspan="{{ $canEdit ? 1 : 3 }}">

						<xf:if is="$canEdit">
							<xf:action href="{{ link('style-properties/groups/edit', $group) }}">{{ phrase('edit') }}</xf:action>
						</xf:if>
					</xf:datarow>
				</xf:foreach>

				<xf:if is="$hasUngrouped">
					<xf:datarow
						label="{{ phrase('ungrouped_properties') }}"
						href="{{ link('styles/style-properties/group', $style, {'ungrouped': 1}) }}"
						colspan="3" />
				</xf:if>
			</xf:datalist>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="style_property_group_view" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ $group ? $group.title : phrase('ungrouped_properties') }}</xf:title>
<xf:if is="$group">
	<xf:description>{$group.description}</xf:description>
</xf:if>

<xf:js src="xf/style_edit.js" min="1" />

<xf:page option="breadcrumbPath" value="styles" />
<xf:page option="section" value="styleProperties" />

<xf:breadcrumb href="{{ link('styles/style-properties', $style) }}">{$style.title} - {{ phrase('style_properties') }}</xf:breadcrumb>

<xf:pageaction if="$style.canEditStylePropertyDefinitions() && $group">
	<xf:button href="{{ link('style-properties/add', null, {'style_id': $style.style_id, 'group': $group.group_name}) }}"
		icon="add">
		{{ phrase('add_property') }}
	</xf:button>

	<xf:button href="{{ link('style-properties/groups/edit', $group) }}" data-xf-click="overlay">
		{{ phrase('edit') }}
	</xf:button>
</xf:pageaction>

<xf:if is="$propertyMap is not empty">
	<xf:form action="{{ link('styles/style-properties/group', $style, $urlParams) }}"
		class="block p-styleProperties"
		ajax="true"
		data-redirect="false"
		data-json-name="json" data-json-opt-in="properties,properties_listed"
		data-xf-init="style-properties-update"
		autocomplete="off">

		<div class="block-outer">
			<div class="block-outer-main">
				<xf:macro id="style_macros::style_change_menu"
					arg-styleTree="{$styleTree}"
					arg-currentStyle="{$style}"
					arg-route="styles/style-properties/group"
					arg-routeParams="{{ {'group': $group.group_name} }}" />

				<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true">{{ phrase('group:') }} {$group.title}</xf:button>
				<div class="menu" data-menu="menu" aria-hidden="true">
					<div class="menu-content">
						<h3 class="menu-header">{{ phrase('groups') }}</h3>
						<div class="menu-scroller">
							<xf:foreach loop="$groups" value="$_group">
								<a href="{{ link('styles/style-properties/group', $style, {'group': $_group.group_name}) }}"
									class="menu-linkRow {{ ($group && $group.group_name == $_group.group_name) ? 'is-selected' : '' }}">{$_group.title}</a>
							</xf:foreach>
							<xf:if is="$hasUngrouped">
								<a href="{{ link('styles/style-properties/group', $style, {'ungrouped': 1}) }}"
									class="menu-linkRow {{ !$group ? 'is-selected' : '' }}">
									{{ phrase('ungrouped_properties') }}</a>
							</xf:if>
						</div>
					</div>
				</div>
			</div>
		</div>
		<div class="block-container">
			<xf:set var="$hasActive" value="{{ false }}" />
			<xf:if contentcheck="true">
				<div data-toggle-wrapper="1">
					<h3 class="block-header">
						<span class="collapseTrigger collapseTrigger--block is-active"
							data-xf-click="toggle"
							data-target="< :up :next"
							data-xf-init="toggle-storage"
							data-storage-key="sp-settings-{$group.group_name}">
							{{ phrase('settings') }}
						</span>
					</h3>
					<div class="block-body block-body--collapsible is-active">
					<xf:contentcheck>
						<xf:set var="$propValueGroup" value="{{ null }}" />
						<xf:foreach loop="$propertyMap" value="$map" if="{$map.Property.property_type} == 'value'">
							<xf:if is="$propValueGroup != $map.Property.value_group">
								<xf:if is="$map.Property.value_group_title">
									<span class="u-anchorTarget" id="_{$map.Property.value_group}"></span>
									<div class="block-formSectionHeader">
										<span class="block-formSectionHeader-aligner">
											{$map.Property.value_group_title}
										</span>
									</div>
								<xf:else />
									<hr class="formRowSep" />
								</xf:if>
								<xf:if is="$style.enable_variations">
									<xf:set var="$hasVariations" value="{{ false }}" />
									<xf:foreach loop="$propertyMap" value="$_map" if="
										{$_map.Property.property_type} == 'value'
										&& {$_map.Property.has_variations}
										&& {$_map.Property.display_order} >= {$map.Property.display_order}">
										<xf:set var="$hasVariations" value="{{ true }}" />
									</xf:foreach>
									<xf:if is="$hasVariations == true">
										<dl class="formRow formRow--variationHeadings">
											<dt></dt>
											<dd>
												<ul class="listPlain u-muted">
													<xf:foreach loop="$style.getVariations()" value="$variation">
														<li>{{ phrase_dynamic('style_variation.' . $variation) }}</li>
													</xf:foreach>
												</ul>
											</dd>
										</dl>
									</xf:if>
								</xf:if>
							</xf:if>
							<xf:macro id="style_property_macros::property_edit"
								arg-property="{$map.Property}"
								arg-definitionEditable="{{ $map.isDefinitionEditable() }}"
								arg-customizationState="{{ $map.getCustomizationState() }}"
								arg-enableVariations="{$style.enable_variations}" />
							<xf:set var="$hasActive" value="{{ true }}" />
							<xf:set var="$propValueGroup" value="{$map.Property.value_group}" />
						</xf:foreach>
					</xf:contentcheck>
					</div>
				</div>
			</xf:if>

			<xf:foreach loop="$propertyMap" value="$map" if="{$map.Property.property_type} == 'css'">
				<xf:macro id="style_property_macros::property_edit"
					arg-property="{$map.Property}"
					arg-definitionEditable="{{ $map.isDefinitionEditable() }}"
					arg-customizationState="{{ $map.getCustomizationState() }}"
					arg-isActive="{{ $hasActive ? false : true }}" />
				<xf:set var="$hasActive" value="{{ true }}" />
			</xf:foreach>

			<xf:submitrow rowtype="simple" icon="save" sticky="true" />
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('this_group_does_not_have_any_style_properties') }}</div>
</xf:if>

<xf:macro id="public:color_picker_macros::color_picker_scripts" arg-colorData="{$colorData}" />]]></template>
  <template type="admin" title="style_property_macros" version_id="2030035" version_string="2.3.0 Beta 5"><![CDATA[<xf:macro id="property_edit"
	arg-property="!"
	arg-definitionEditable="{{ false }}"
	arg-isActive="{{ true }}"
	arg-customizationState=""
	arg-enableVariations="{{ false }}"
	arg-submitName="properties">

	<xf:if is="$property.property_type == 'css'">
		<xf:macro id="property_edit_css"
			arg-property="{$property}"
			arg-definitionEditable="{$definitionEditable}"
			arg-isActive="{$isActive}"
			arg-customizationState="{$customizationState}"
			arg-submitName="{$submitName}" />
	<xf:else />
		<xf:macro id="property_edit_value"
			arg-property="{$property}"
			arg-definitionEditable="{$definitionEditable}"
			arg-customizationState="{$customizationState}"
			arg-enableVariations="{$enableVariations}"
			arg-submitName="{$submitName}" />
	</xf:if>
</xf:macro>

<xf:macro id="property_edit_value"
	arg-property="!"
	arg-definitionEditable="!"
	arg-customizationState="!"
	arg-enableVariations="{{ false }}"
	arg-submitName="!">

	<xf:css src="style_properties.less" />

	<xf:set var="$titleHtml"><span class="u-anchorTarget" id="sp-{$property.property_name}"></span>{$property.title}</xf:set>

	<xf:set var="$formBaseKey" value="{$submitName}[{$property.property_name}]" />

	<xf:set var="$hintHtml"><xf:trim>
		<xf:if is="$xf.development">{$property.property_name} {$property.display_order|parens}</xf:if>
		<xf:if is="$definitionEditable">
			<a href="{{ link('style-properties/edit', $property) }}">{{ phrase('edit') }}</a>
		</xf:if>

		<xf:if is="$property.addon_id AND $property.Group AND $property.addon_id != $property.Group.addon_id AND $property.addon_id != 'XF'">
			<span class="formRow-hint-featured">
				{$property.AddOn.title}
			</span>
		</xf:if>

		<xf:macro id="customization_hint"
			arg-state="{$customizationState}"
			arg-submitName="{$submitName}"
			arg-property="{$property}"
			arg-checkbox="{{ true }}" />

		<xf:hiddenval name="{$submitName}_listed[]" value="{$property.property_name}" />
	</xf:trim></xf:set>

	<xf:set var="$valueOptions" value="{{ $property.getValueOptions() }}" />

	<xf:set var="$rowClass" value="{{ $property.depends_on ? 'js-stylePropDependsOn-' . $property.depends_on : '' }} xf-{$property.property_name} js-property--{$property.property_name}" />

	<span class="u-anchorTarget" id="@xf-{$property.property_name}"></span>

	<xf:if is="$property.value_type == 'boolean'">

		<!--boolean-->
		<xf:checkboxrow rowclass="{$rowClass}"
			hint="{$hintHtml}">

			<xf:option name="{$formBaseKey}"
				value="1"
				selected="$property.property_value == 1"
				data-xf-init="disabler"
				data-container=".js-stylePropDependsOn-{$property.property_name}"
				data-optional="true"
				data-hide="{{ $valueOptions.hideDependent ?: 'false' }}"
				label="{$titleHtml}"
				hint="{$property.description}"  />
		</xf:checkboxrow>


	<xf:elseif is="$property.value_type == 'radio'" />

		<xf:if is="$property.has_variations">
			<xf:formrow rowtype="input"
				rowclass="formRow-styleProperty {$rowClass}"
				label="{$titleHtml}"
				hint="{$hintHtml}"
				explain="{$property.description}">

				<xf:if is="$enableVariations">
					<ul class="listPlain inputGroup-container">
						<li>
							<div class="inputGroup inputGroup--grow">
								<xf:foreach loop="$property.getVariations()" value="$variation">
									<xf:if is="$variation != 'default'">
										<span class="inputGroup-splitter"></span>
									</xf:if>

									<xf:radio name="{$formBaseKey}[{$variation}]" value="{{ $property.getVariationValue($variation) }}">
										<xf:options source="{$valueOptions}" />
									</xf:radio>
								</xf:foreach>
							</div>
						</li>
					</ul>
				<xf:else />
					<xf:radio name="{$formBaseKey}[default]" value="{{ $property.getVariationValue('default') }}">
						<xf:options source="{$valueOptions}" />
					</xf:radio>

					<xf:foreach loop="$property.getVariations(false)" value="$variation">
						<xf:hiddenval name="{$formBaseKey}[{$variation}]" value="{{ $property.getVariationValue($variation) }}" />
					</xf:foreach>
				</xf:if>
			</xf:formrow>
		<xf:else />
			<xf:radiorow name="{$formBaseKey}" value="{$property.property_value}" rowclass="{$rowClass}"
				label="{$titleHtml}"
				hint="{$hintHtml}"
				explain="{$property.description}">

				<xf:options source="{$valueOptions}" />
			</xf:radiorow>
		</xf:if>


	<xf:elseif is="$property.value_type == 'select'" />

		<xf:selectrow name="{$formBaseKey}" value="{$property.property_value}" rowclass="{$rowClass}"
			label="{$titleHtml}"
			hint="{$hintHtml}"
			explain="{$property.description}">

			<xf:options source="{$valueOptions}" />
		</xf:selectrow>

	<xf:elseif is="$property.value_type == 'number'" />

		<xf:numberboxrow name="{$formBaseKey}" value="{$property.property_value}"
			min="{$valueOptions.min}"
			max="{$valueOptions.max}"
			step="{$valueOptions.step}"
			units="{$valueOptions.units}"
			rowclass="{$rowClass}" rowid="propRow_{$property.property_name}"
			label="{$titleHtml}"
			hint="{$hintHtml}"
			explain="{$property.description}" />

	<xf:elseif is="$property.value_type == 'color'" />

		<xf:if is="$property.has_variations">
			<xf:formrow rowtype="input"
				rowclass="formRow-styleProperty {$rowClass}"
				label="{$titleHtml}"
				hint="{$hintHtml}"
				explain="{$property.description}">

				<xf:if is="$enableVariations">
					<ul class="listPlain inputGroup-container">
						<li>
							<div class="inputGroup inputGroup--grow">
								<xf:foreach loop="$property.getVariations()" value="$variation">
									<xf:if is="$variation != 'default'">
										<span class="inputGroup-splitter"></span>
									</xf:if>

									<xf:macro id="public:color_picker_macros::color_picker"
										arg-name="{$formBaseKey}[{$variation}]"
										arg-value="{{ $property.getVariationValue($variation) }}"
										arg-mapVariation="{$variation}"
										arg-mapName="@xf-{$property.property_name}"
										arg-allowPalette="{{ $valueOptions.hidePalette ? 'false' : 'true'}}"
										arg-row="{{ false }}"
										arg-includeScripts="{{ false }}"
										arg-showTxt="{{ true }}"/>
								</xf:foreach>
							</div>
						</li>
					</ul>
				<xf:else />
					<xf:macro id="public:color_picker_macros::color_picker"
						arg-name="{$formBaseKey}[default]"
						arg-value="{{ $property.getVariationValue('default') }}"
						arg-mapVariation="default"
						arg-mapName="@xf-{$property.property_name}"
						arg-allowPalette="{{ $valueOptions.hidePalette ? 'false' : 'true'}}"
						arg-row="{{ false }}"
						arg-includeScripts="{{ false }}"
						arg-showTxt="{{ true }}"/>

					<xf:foreach loop="$property.getVariations(false)" value="$variation">
						<xf:hiddenval name="{$formBaseKey}[{$variation}]" value="{{ $property.getVariationValue($variation) }}" />
					</xf:foreach>
				</xf:if>
			</xf:formrow>
		<xf:else />
			<xf:macro template="public:color_picker_macros" name="color_picker"
				arg-name="{$formBaseKey}"
				arg-value="{$property.property_value}"
				arg-mapVariation="default"
				arg-mapName="@xf-{$property.property_name}"
				arg-allowPalette="{{ $valueOptions.hidePalette ? 'false' : 'true'}}"
				arg-label="{$titleHtml}"
				arg-hint="{$hintHtml}"
				arg-explain="{$property.description}"
				arg-rowClass="formRow-styleProperty {$rowClass}" rowid="propRow_{$property.property_name}"
				arg-includeScripts="{{ false }}"
				arg-showTxt="{{ true }}"/>
		</xf:if>

	<xf:elseif is="$property.value_type == 'unit'" />

		<xf:textboxrow
			name="{$formBaseKey}"
			value="{$property.property_value}"
			class="input--number"
			rowclass="{$rowClass}"
			label="{$titleHtml}"
			hint="{$hintHtml}"
			explain="{$property.description}"
			dir="ltr" />

	<xf:elseif is="$property.value_type == 'template'" />

		<xf:if is="$valueOptions.template">
			<xf:set var="$includeHtml"><xf:include template="{$valueOptions.template}" /></xf:set>
			<xf:if is="$includeHtml is empty">
				<xf:formrow label="{$titleHtml}" hint="{$hintHtml}">
					<div class="blockMessage blockMessage--error blockMessage--iconic">{{ phrase('template_x_not_found', {'template': $valueOptions.template}) }}</div>
				</xf:formrow>
			<xf:else />
				{$includeHtml}
			</xf:if>
		<xf:else />
			<xf:formrow label="{$titleHtml}" hint="{$hintHtml}">
				<div class="blockMessage blockMessage--error blockMessage--iconic">{{ phrase('no_template_specified') }}</div>
			</xf:formrow>
		</xf:if>

	<xf:elseif is="$property.value_type == 'string' && $valueOptions.rows > 1" />


		<xf:textarearow name="{$formBaseKey}"
			value="{$property.property_value}"
			rows="{$valueOptions.rows}"
			autosize="true"
			class="{$valueOptions.class}"
			code="{$valueOptions.code}"
			rowclass="{$rowClass}"
			label="{$titleHtml}"
			hint="{$hintHtml}"
			explain="{$property.description}"
			dir="auto" />

	<xf:elseif is="$property.value_type == 'string' && $valueOptions.asset" />

		<xf:if is="$property.has_variations">
			<xf:formrow rowtype="input"
				class="{$valueOptions.class}"
				rowclass="formRow-styleProperty {$rowClass}"
				label="{$titleHtml}"
				hint="{$hintHtml}"
				explain="{$property.description}">

				<xf:if is="$enableVariations">
					<ul class="listPlain inputGroup-container">
						<li>
							<div class="inputGroup inputGroup--grow">
								<xf:foreach loop="$property.getVariations()" value="$variation">
									<xf:if is="$variation != 'default'">
										<span class="inputGroup-splitter"></span>
									</xf:if>

									<xf:assetupload name="{$formBaseKey}[{$variation}]" value="{{ $property.getVariationValue($variation) }}"
										asset="{$valueOptions.asset}_{$variation}" />
								</xf:foreach>
							</div>
						</li>
					</ul>
				<xf:else />
					<xf:assetupload name="{$formBaseKey}[default]" value="{{ $property.getVariationValue('default') }}"
						asset="{$valueOptions.asset}_default" />

					<xf:foreach loop="$property.getVariations(false)" value="$variation">
						<xf:hiddenval name="{$formBaseKey}[{$variation}]" value="{{ $property.getVariationValue($variation) }}" />
					</xf:foreach>
				</xf:if>
			</xf:formrow>
		<xf:else />
			<xf:assetuploadrow name="{$formBaseKey}" value="{$property.property_value}" asset="{$valueOptions.asset}"
				class="{$valueOptions.class}"
				rowclass="{$rowClass}"
				label="{$titleHtml}"
				hint="{$hintHtml}"
				explain="{$property.description}" />
		</xf:if>

	<xf:else />

		<xf:textboxrow name="{$formBaseKey}"
			value="{$property.property_value}"
			type="{$valueOptions.type}"
			class="{$valueOptions.class}"
			code="{$valueOptions.code}"
			rowclass="{$rowClass}"
			label="{$titleHtml}"
			hint="{$hintHtml}"
			explain="{$property.description}"
			dir="auto" />

	</xf:if>
</xf:macro>


<xf:macro id="property_edit_css"
	arg-property="!"
	arg-definitionEditable="!"
	arg-isActive="{{ true }}"
	arg-customizationState="!"
	arg-submitName="!">

	<xf:css src="style_properties.less" />
	<xf:css src="public:color_picker.less" />
	<xf:js src="xf/color_picker.js" min="1" />

	<xf:set var="$formBaseKey" value="{$submitName}[{$property.property_name}]" />

	<div class="cssPropertyWrapper js-property--{$property.property_name}" data-toggle-wrapper="1">
		<h3 class="block-header block-header--separated">
			<span class="collapseTrigger collapseTrigger--block {{ $isActive ? 'is-active' : '' }}"
				data-xf-click="toggle"
				data-target="< :up :next"
				data-xf-init="toggle-storage"
				data-storage-key="sp-{$property.property_name}">
				<span class="u-anchorTarget" id="sp-{$property.property_name}"></span><span>{$property.title}</span>
				<xf:if is="$property.description"><span class="block-desc">{$property.description}</span></xf:if>
			</span>

			<!-- customization_hint -->
			<xf:macro id="customization_hint"
				arg-state="{$customizationState}"
				arg-submitName="{$submitName}"
				arg-property="{$property}"
				arg-checkbox="1"/>
			<!-- /customization_hint -->
			<xf:hiddenval name="{$submitName}_listed[]" value="{$property.property_name}" />
		</h3>
		<div class="block-body block-body--collapsible {{ $isActive ? 'is-active' : '' }}">
			<div class="block-row">
				<xf:if contentcheck="true">
					<div class="cssPropertyDescription">
					<xf:contentcheck>
						<xf:if is="$definitionEditable">
							<span class="u-pullRight">
								<xf:button href="{{ link('style-properties/edit', $property) }}"
									class="button--link button--small" icon="edit" />
							</span>
						</xf:if>
						<xf:if is="$xf.development"><div class="u-muted">{$property.property_name} {$property.display_order|parens}</div></xf:if>
					</xf:contentcheck>
					</div>
				</xf:if>

				<ul class="cssProperty">
					<xf:if is="$property.isValidCssComponent('text')">
						<li>
							<h4 class="cssPropertyHeader">{{ phrase('text') }}</h4>
							<table class="cssPropertySet">
							<tr class="cssPropertySet-headerRow">
								<th>{{ phrase('size') }}</th>
								<th>{{ phrase('color') }}</th>
								<th>{{ phrase('weight') }}</th>
							</tr>
							<tr>
								<td><xf:textbox
									name="{$formBaseKey}[font-size]"
									value="{{ $property.getCssPropertyValue('font-size') }}"
									title="font-size"
									class="input--cssProp input--cssLength"
									dir="ltr" />
								</td>

								<td><div class="inputGroup inputGroup--joined inputGroup--colorSmall" data-xf-init="color-picker">
									<xf:textbox name="{$formBaseKey}[color]" value="{{ $property.getCssPropertyValue('color') }}" title="color" class="input--cssProp" dir="ltr" />
									<div class="inputGroup-text"><span class="colorPickerBox js-colorPickerTrigger"></span></div>
								</div></td>

								<td><xf:select name="{$formBaseKey}[font-weight]"
									value="{{ $property.getCssPropertyValue('font-weight') }}"
									title="font-weight"
									class="input--cssProp">

									<xf:option value="">&nbsp;</xf:option>
									<xf:option value="@xf-fontWeightHeavy">{{ phrase('weight_bold') }}</xf:option>
									<xf:option value="@xf-fontWeightNormal">{{ phrase('weight_normal') }}</xf:option>
									<xf:option value="@xf-fontWeightLight">{{ phrase('weight_light') }}</xf:option>
								</xf:select></td>
							</tr>
							<tr>
								<td colspan="3">
									<xf:checkbox listclass="inputChoices--cssTextOptions">
										<xf:option name="{$formBaseKey}[font-style]" value="italic"
											selected="{{ $property.getCssPropertyValue('font-style') == 'italic' }}" >
											{{ phrase('italic') }}
										</xf:option>

										<xf:option name="{$formBaseKey}[text-decoration]" value="underline"
											selected="{{ $property.getCssPropertyValue('text-decoration') == 'underline' }}">
											{{ phrase('underline') }}
										</xf:option>

										<xf:option name="{$formBaseKey}[text-decoration]" value="none"
											selected="{{ $property.getCssPropertyValue('text-decoration') == 'none' }}">
											{{ phrase('no_text_decoration') }}
										</xf:option>
									</xf:checkbox>
								</td>
							</tr>
							</table>
						</li>
					</xf:if>

					<xf:if is="$property.isValidCssComponent('background')">
						<li>
							<h4 class="cssPropertyHeader">{{ phrase('background') }}</h4>
							<table class="cssPropertySet">
							<tr class="cssPropertySet-headerRow">
								<th>{{ phrase('color') }}</th>
							</tr>
							<tr>
								<td><div class="inputGroup inputGroup--joined inputGroup--color" data-xf-init="color-picker">
									<xf:textbox name="{$formBaseKey}[background-color]" value="{{ $property.getCssPropertyValue('background-color') }}" title="background-color" class="input--cssProp" dir="ltr" />
									<div class="inputGroup-text"><span class="colorPickerBox js-colorPickerTrigger"></span></div>
								</div></td>
							</tr>
							<tr class="cssPropertySet-headerRow">
								<th>{{ phrase('image') }}</th>
							</tr>
							<tr>
								<td><xf:assetupload name="{$formBaseKey}[background-image]" asset="style_properties"
									value="{{ $property.getCssPropertyValue('background-image') }}"
									title="background-image"
									class="input--cssProp input--colorWidthMatched" /></td>
							</tr>
							</table>
						</li>
					</xf:if>

					<xf:if is="$property.isValidCssComponent('border') OR $property.isValidCssComponent('border_radius')">
						<li>
							<table class="cssPropertySet">
							<tr class="cssPropertySet-headerRow cssPropertySet-headerRow--separated">
								<th class="cssPropertySet-headerSetLabel">{{ phrase('border') }}</th>
								<xf:if is="$property.isValidCssComponent('border')">
									<th>{{ phrase('width') }}</th>
									<th>{{ phrase('color') }}</th>
								</xf:if>
								<xf:if is="$property.isValidCssComponent('border_radius')">
									<th>{{ phrase('radius') }}</th>
								</xf:if>
							</tr>
							<tr>
								<td class="cssPropertySet-rowLabel">{{ phrase('all') }}</td>

								<xf:if is="$property.isValidCssComponent('border')">
									<td><xf:textbox name="{$formBaseKey}[border-width]"
										value="{{ $property.getCssPropertyValue('border-width') }}"
										title="border-width"
										class="input--cssProp input--cssLength" dir="ltr" /></td>

									<td><div class="inputGroup inputGroup--joined inputGroup--colorSmall" data-xf-init="color-picker">
										<xf:textbox name="{$formBaseKey}[border-color]" value="{{ $property.getCssPropertyValue('border-color') }}" title="border-color" class="input--cssProp" dir="ltr" />
										<div class="inputGroup-text"><span class="colorPickerBox js-colorPickerTrigger"></span></div>
									</div></td>
								</xf:if>

								<xf:if is="$property.isValidCssComponent('border_radius')">
									<td><xf:textbox name="{$formBaseKey}[border-radius]"
										value="{{ $property.getCssPropertyValue('border-radius') }}"
										title="border-radius"
										class="input--cssProp input--cssLength"
										dir="ltr" />
									</td>
								</xf:if>
							</tr>
							<tr>
								<td class="cssPropertySet-rowLabel">{{ phrase('top') }}</td>

								<xf:if is="$property.isValidCssComponent('border')">
									<td><xf:textbox name="{$formBaseKey}[border-top-width]"
										value="{{ $property.getCssPropertyValue('border-top-width') }}"
										title="border-top-width"
										class="input--cssProp input--cssLength"
										dir="ltr" />
									</td>

									<td><div class="inputGroup inputGroup--joined inputGroup--colorSmall" data-xf-init="color-picker">
										<xf:textbox name="{$formBaseKey}[border-top-color]"	value="{{ $property.getCssPropertyValue('border-top-color') }}" title="border-top-color" class="input--cssProp" dir="ltr" />
										<div class="inputGroup-text"><span class="colorPickerBox js-colorPickerTrigger"></span></div>
									</div></td>
								</xf:if>

								<xf:if is="$property.isValidCssComponent('border_radius')">
									<td><xf:textbox name="{$formBaseKey}[border-top-left-radius]"
										value="{{ $property.getCssPropertyValue('border-top-left-radius') }}"
										title="border-top-left-radius"
										class="input--cssProp input--cssLength"
										dir="ltr" />
									</td>
								</xf:if>
							</tr>
							<tr>
								<td class="cssPropertySet-rowLabel">{{ phrase('right') }}</td>

								<xf:if is="$property.isValidCssComponent('border')">
									<td><xf:textbox name="{$formBaseKey}[border-right-width]"
										value="{{ $property.getCssPropertyValue('border-right-width') }}"
										title="border-right-width"
										class="input--cssProp input--cssLength"
										dir="ltr" />
									</td>

									<td><div class="inputGroup inputGroup--joined inputGroup--colorSmall" data-xf-init="color-picker">
										<xf:textbox name="{$formBaseKey}[border-right-color]" value="{{ $property.getCssPropertyValue('border-right-color') }}" title="border-right-color" class="input--cssProp" dir="ltr" />
										<div class="inputGroup-text"><span class="colorPickerBox js-colorPickerTrigger"></span></div>
									</div></td>
								</xf:if>

								<xf:if is="$property.isValidCssComponent('border_radius')">
									<td><xf:textbox name="{$formBaseKey}[border-top-right-radius]"
										value="{{ $property.getCssPropertyValue('border-top-right-radius') }}"
										title="border-top-right-radius"
										class="input--cssProp input--cssLength"
										dir="ltr" />
									</td>
								</xf:if>
							</tr>
							<tr>
								<td class="cssPropertySet-rowLabel">{{ phrase('bottom') }}</td>

								<xf:if is="$property.isValidCssComponent('border')">
									<td><xf:textbox name="{$formBaseKey}[border-bottom-width]"
										value="{{ $property.getCssPropertyValue('border-bottom-width') }}"
										title="border-bottom-width"
										class="input--cssProp input--cssLength"
										dir="ltr" />
									</td>

									<td><div class="inputGroup inputGroup--joined inputGroup--colorSmall" data-xf-init="color-picker">
										<xf:textbox name="{$formBaseKey}[border-bottom-color]"
											value="{{ $property.getCssPropertyValue('border-bottom-color') }}"
											title="border-bottom-color"
											class="input--cssProp"
											dir="ltr" />
										<div class="inputGroup-text"><span class="colorPickerBox js-colorPickerTrigger"></span></div>
									</div></td>
								</xf:if>

								<xf:if is="$property.isValidCssComponent('border_radius')">
									<td><xf:textbox name="{$formBaseKey}[border-bottom-right-radius]"
										value="{{ $property.getCssPropertyValue('border-bottom-right-radius') }}"
										title="border-bottom-right-radius"
										class="input--cssProp input--cssLength"
										dir="ltr" />
									</td>
								</xf:if>
							</tr>
							<tr>
								<td class="cssPropertySet-rowLabel">{{ phrase('left') }}</td>

								<xf:if is="$property.isValidCssComponent('border')">
									<td><xf:textbox name="{$formBaseKey}[border-left-width]"
										value="{{ $property.getCssPropertyValue('border-left-width') }}"
										title="border-left-width"
										class="input--cssProp input--cssLength"
										dir="ltr" />
									</td>

									<td><div class="inputGroup inputGroup--joined inputGroup--colorSmall" data-xf-init="color-picker">
										<xf:textbox name="{$formBaseKey}[border-left-color]"
											value="{{ $property.getCssPropertyValue('border-left-color') }}"
											title="border-left-color"
											class="input--cssProp"
											dir="ltr" />
										<div class="inputGroup-text"><span class="colorPickerBox js-colorPickerTrigger"></span></div>
									</div></td>
								</xf:if>

								<xf:if is="$property.isValidCssComponent('border_radius')">
									<td><xf:textbox name="{$formBaseKey}[border-bottom-left-radius]"
										value="{{ $property.getCssPropertyValue('border-bottom-left-radius') }}"
										title="border-bottom-left-radius"
										class="input--cssProp input--cssLength"
										dir="ltr" />
									</td>
								</xf:if>
							</tr>
							</table>
						</li>
					<xf:elseif is="$property.isValidCssComponent(['border_color_simple', 'border_width_simple', 'border_radius_simple'])" />
						<li>
							<h4 class="cssPropertyHeader">{{ phrase('border') }}</h4>
							<table class="cssPropertySet">
							<xf:if is="$property.isValidCssComponent('border_width_simple')">
								<tr class="cssPropertySet-headerRow">
									<th>{{ phrase('width') }}</th>
								</tr>
								<tr>
									<td><xf:textbox name="{$formBaseKey}[border-width]"
										value="{{ $property.getCssPropertyValue('border-width') }}"
										title="border-width"
										class="input--cssProp input--colorWidthMatched"
										dir="ltr" /></td>
								</tr>
							</xf:if>

							<xf:if is="$property.isValidCssComponent('border_color_simple')">
								<tr class="cssPropertySet-headerRow">
									<th>{{ phrase('color') }}</th>
								</tr>
								<tr>
									<td><div class="inputGroup inputGroup--joined inputGroup--color" data-xf-init="color-picker">
										<xf:textbox name="{$formBaseKey}[border-color]" value="{{ $property.getCssPropertyValue('border-color') }}" title="border-color" class="input--cssProp" dir="ltr" />
										<div class="inputGroup-text"><span class="colorPickerBox js-colorPickerTrigger"></span></div>
									</div></td>
								</tr>
							</xf:if>

							<xf:if is="$property.isValidCssComponent('border_radius_simple')">
								<tr class="cssPropertySet-headerRow">
									<th>{{ phrase('radius') }}</th>
								</tr>
								<tr>
									<td><xf:textbox name="{$formBaseKey}[border-radius]"
										value="{{ $property.getCssPropertyValue('border-radius') }}"
										title="border-radius"
										class="input--cssProp input--colorWidthMatched"
										dir="ltr" /></td>
								</tr>
							</xf:if>
							</table>
						</li>
					</xf:if>

					<xf:if is="$property.isValidCssComponent('padding')">
						<li>
							<h4 class="cssPropertyHeader">{{ phrase('padding') }}</h4>
							<table class="cssPropertySet">
							<tr>
								<td class="cssPropertySet-rowLabel">{{ phrase('all') }}</td>

								<td><xf:textbox name="{$formBaseKey}[padding]"
									value="{{ $property.getCssPropertyValue('padding') }}"
									title="padding"
									class="input--cssProp input--cssLength"
									dir="ltr" />
								</td>
							</tr>
							<tr>
								<td class="cssPropertySet-rowLabel">{{ phrase('top') }}</td>

								<td><xf:textbox name="{$formBaseKey}[padding-top]"
									value="{{ $property.getCssPropertyValue('padding-top') }}"
									title="padding-top"
									class="input--cssProp input--cssLength"
									dir="ltr" />
								</td>
							</tr>
							<tr>
								<td class="cssPropertySet-rowLabel">{{ phrase('right') }}</td>

								<td><xf:textbox name="{$formBaseKey}[padding-right]"
									value="{{ $property.getCssPropertyValue('padding-right') }}"
									title="padding-right"
									class="input--cssProp input--cssLength"
									dir="ltr" />
								</td>
							</tr>
							<tr>
								<td class="cssPropertySet-rowLabel">{{ phrase('bottom') }}</td>

								<td><xf:textbox name="{$formBaseKey}[padding-bottom]"
									value="{{ $property.getCssPropertyValue('padding-bottom') }}"
									title="padding-bottom"
									class="input--cssProp input--cssLength"
									dir="ltr" />
								</td>
							</tr>
							<tr>
								<td class="cssPropertySet-rowLabel">{{ phrase('left') }}</td>

								<td><xf:textbox name="{$formBaseKey}[padding-left]"
									value="{{ $property.getCssPropertyValue('padding-left') }}"
									title="padding-left"
									class="input--cssProp input--cssLength"
									dir="ltr" />
								</td>
							</tr>
							</table>
						</li>
					</xf:if>

					<xf:if is="$property.isValidCssComponent('extra')">
						<li class="cssPropertyExtra">
							<h4 class="cssPropertyHeader">{{ phrase('extra') }}</h4>
							<table class="cssPropertySet">
								<tr class="cssPropertySet-headerRow">
									<th>{{ phrase('freeform_css_code') }}</th>
								</tr>
								<tr>
									<!--<td><xf:codeeditor name="{$formBaseKey}[extra]" value="{{ $property.getCssPropertyValue('extra') }}"
										mode="less"
										class="codeEditor&#45;&#45;autoSize"
										label="{{ phrase('extra') }}" /></td>-->
									<td><xf:textarea name="{$formBaseKey}[extra]" value="{{ $property.getCssPropertyValue('extra') }}"
										label="{{ phrase('extra') }}" /></td>
								</tr>
							</table>
						</li>
					</xf:if>
				</ul>
			</div>
		</div>
	</div>
</xf:macro>





<xf:macro id="customization_hint"
	arg-state="!"
	arg-submitName="!"
	arg-property="!"
	arg-checkbox="{{ false }}">

	<!-- customization_hint {$property.property_name} -->
	<span class="formRow-hint--customState cssCustomHighlight cssCustomHighlight--{$state}">

		<span class="hint hint--custom"
			data-xf-init="tooltip" title="{{ phrase('property_customized_in_this_style')|for_attr }}">
			<xf:if is="$checkbox">
				<xf:macro id="revert_code"
					arg-submitName="{$submitName}"
					arg-property="{$property}"
					arg-label="{{ phrase('revert_customized_value') }}"
					arg-Xcontainer="dl.xf-{$property.property_name} > dd"
					arg-container=".js-property--{$property.property_name}"
				/>
			<xf:else />
				{{ phrase('value_customized') }}
			</xf:if>
		</span>

		<span class="hint hint--inherited"
			data-xf-init="tooltip" title="{{ phrase('property_customized_in_parent_style')|for_attr }}">{{ phrase('value_inherited') }}</span>

		<span class="hint hint--added"
			data-xf-init="tooltip" title="{{ phrase('property_created_in_this_style')|for_attr }}">{{ phrase('custom_property') }}</span>

	</span>
	<!-- / customization_hint {$property.property_name} -->
</xf:macro>

<xf:macro id="revert_code"
	arg-submitName="!"
	arg-property="!"
	arg-label="!"
	arg-container="< dl">

	<xf:checkbox standalone="true">
		<xf:option name="{$submitName}_revert[]" value="{$property.property_name}"
			labelclass="formRow-revert"
			class="js-disablerExemption"
			data-xf-init="disabler" data-container="{$container}" data-invert="true"
			label="{$label}" />
	</xf:checkbox>
</xf:macro>

<xf:macro id="variation_labels"
	arg-property="!">

	<div class="inputGroup">
		<xf:foreach loop="$property.getVariations()" value="$variation">
			<xf:if is="$variation != 'default'">
				<span class="inputGroup-splitter"></span>
			</xf:if>

			<span class="inputGroup-label">{{ phrase_dynamic('style_variation.' . $variation) }}</span>
		</xf:foreach>
	</div>
</xf:macro>]]></template>
  <template type="admin" title="style_property_template_messageUserElements" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:checkboxrow rowclass="{$rowClass}"
	label="{$titleHtml}"
	hint="{$hintHtml}"
	explain="{$property.description}">

	<xf:option name="{$formBaseKey}[register_date]" selected="{$property.property_value.register_date}">
		{{ phrase('registration_date') }}
	</xf:option>
	<xf:option name="{$formBaseKey}[message_count]" selected="{$property.property_value.message_count}">
		{{ phrase('total_messages') }}
	</xf:option>
	<xf:option name="{$formBaseKey}[solutions]" selected="{$property.property_value.solutions}">
		{{ phrase('solutions') }}
	</xf:option>
	<xf:option name="{$formBaseKey}[reaction_score]" selected="{$property.property_value.reaction_score}">
		{{ phrase('reaction_score') }}
	</xf:option>
	<xf:option name="{$formBaseKey}[trophy_points]" selected="{$property.property_value.trophy_points}">
		{{ phrase('trophy_points') }}
	</xf:option>
	<xf:option name="{$formBaseKey}[age]" selected="{$property.property_value.age}">
		{{ phrase('age') }}
	</xf:option>
	<xf:option name="{$formBaseKey}[location]" selected="{$property.property_value.location}">
		{{ phrase('location') }}
	</xf:option>
	<xf:option name="{$formBaseKey}[website]" selected="{$property.property_value.website}">
		{{ phrase('website') }}
	</xf:option>
	<xf:option name="{$formBaseKey}[custom_fields]" selected="{$property.property_value.custom_fields}">
		{{ phrase('custom_fields') }}
	</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="style_variation_chooser" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:title>{{ phrase('style_variation') }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:macro name="public:style_variation_macros::variation_menu"
				arg-style="{$style}"
				arg-routeType="admin"
				arg-route="account/style-variation"
				arg-selectedVariation="{$xf.visitor.Admin.admin_style_variation}" />
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="tag_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$tag.isInsert()">
	<xf:title>{{ phrase('add_tag') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_tag:') }} {$tag.tag}</xf:title>
</xf:if>

<xf:pageaction if="$tag.isUpdate()">
	<xf:button href="{{ link('tags/delete', $tag) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('tags/save', $tag) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="tag" value="{$tag}"
				label="{{ phrase('tag') }}" />

			<xf:textboxrow name="tag_url" value="{$tag}"
				label="{{ phrase('url_version') }}"
				explain="{{ phrase('this_uniquely_identify_this_tag_in_url') }}"
				dir="ltr" />

			<xf:checkboxrow>
				<xf:option name="permanent" selected="{$tag.permanent}"
					label="{{ phrase('permanent') }}"
					hint="{{ phrase('making_tag_permanent_prevents_it_from_being_removed') }}" />
			</xf:checkboxrow>
		</div>

		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="tag_list" version_id="2000170" version_string="2.0.1"><![CDATA[<xf:title>{{ phrase('tags') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('tags/add') }}" icon="add">{{ phrase('add_tag') }}</xf:button>
</xf:pageaction>

<xf:form action="{{ link('tags') }}" class="block">
	<div class="block-outer">
		<span class="filterBlock">
			<xf:textbox name="containing" value="{$filters.containing}" placeholder="{{ phrase('tag_contains...') }}"
				class="input--inline filterBlock-input" />
			<span>
				<span class="filterBlock-label">{{ phrase('ordered_by:') }}</span>
				<xf:select name="order" value="{{ $filters.order ? $filters.order : 'tag' }}" class="input--inline filterBlock-input">
					<xf:option value="tag">{{ phrase('tag') }}</xf:option>
					<xf:option value="use_count">{{ phrase('total') }}</xf:option>
					<xf:option value="last_use_date">{{ phrase('last_used') }}</xf:option>
				</xf:select>
			</span>
			<xf:button type="submit">{{ phrase('go') }}</xf:button>
		</span>
	</div>
	<div class="block-container">
		<xf:if is="$tags is not empty">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('tag') }}</xf:cell>
						<xf:cell>{{ phrase('total') }}</xf:cell>
						<xf:cell>{{ phrase('last_used') }}</xf:cell>
						<xf:cell class="dataList-cell--min">&nbsp;</xf:cell>
						<xf:cell class="dataList-cell--min">&nbsp;</xf:cell>
						<xf:cell class="dataList-cell--min">&nbsp;</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$tags" value="$tag">
						<xf:datarow>
							<xf:cell href="{{ link('tags/edit', $tag) }}">{$tag.tag}</xf:cell>
							<xf:cell href="{{ link('tags/edit', $tag) }}">{$tag.use_count|number}</xf:cell>
							<xf:cell href="{{ link('tags/edit', $tag) }}">
								<xf:if is="$tag.last_use_date">
									<xf:date time="{$tag.last_use_date}" />
									<xf:else />
									&nbsp;
								</xf:if>
							</xf:cell>
							<xf:action href="{{ link_type('public', 'tags', $tag) }}">{{ phrase('view') }}</xf:action>
							<xf:action href="{{ link('tags/merge', $tag) }}" overlay="true">{{ phrase('merge') }}</xf:action>
							<xf:delete href="{{ link('tags/delete', $tag) }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($tags, $total) }}</span>
			</div>
		<xf:else />
			<div class="block-body block-row">{{ phrase('no_results_found') }}</div>
		</xf:if>
	</div>

	<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
		link="tags" params="{$filters}"
		wrapperclass="block-outer block-outer--after" />
</xf:form>]]></template>
  <template type="admin" title="tag_merge" version_id="2001070" version_string="2.0.10"><![CDATA[<xf:title>{{ phrase('merge_tags') }}</xf:title>

<xf:form action="{{ link('tags/merge', $tag) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow explain="{{ phrase('this_tag_will_be_deleted') }}"
				label="{{ phrase('source_tag') }}">
				{$tag.tag}
			</xf:formrow>

			<xf:textboxrow name="target"
				ac="single"
				data-acurl="{{ link_type('public', 'misc/tag-auto-complete') }}"
				label="{{ phrase('target_tag') }}"
				explain="{{ phrase('all_content_tagged_with_x_will_now_be_tagged_with_this_tag', {'tag': $tag.tag}) }}" />
		</div>
		<xf:submitrow submit="{{ phrase('merge') }}" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="template_auto_merge" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('templates/auto-merge') }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('this_feature_attempt_automatically_merge_custom_template_changes') }}
				<strong>{{ phrase('if_conflict_discovered_while_merging_no_automatic_merging') }}</strong>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('merge') }}" rowtype="simple" />
	</div>
	<xf:redirect />
</xf:form>]]></template>
  <template type="admin" title="template_compare" version_id="2000033" version_string="2.0.0 Beta 3"><![CDATA[<xf:title>{{ phrase('custom_changes:') }} {$template.title}</xf:title>

<xf:css src="public:diff.less" />

<div class="block">
	<div class="block-container">
		<div class="block-body block-row block-body--contained" dir="ltr">
			<ol class="diffList diffList--code">
				<xf:foreach loop="$diffs" value="$diff">
					<xf:set var="$diffHtml">{{ $diff.1|join('<br />') }}</xf:set>
					<li class="diffList-line diffList-line--{$diff.0}">{{ trim($diffHtml) !== '' ? $diffHtml : '&nbsp;' }}</li>
				</xf:foreach>
			</ol>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="template_delete" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('templates/delete', $template) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<xf:if is="$template.style_id">
					{{ phrase('please_confirm_that_you_want_to_revert_the_following:') }}
				<xf:else />
					{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				</xf:if>
				<strong>
					{{ $template.style_id ? '<em class="u-dimmed">' . $template.Style.title . ':</em> ' : '' }}
					<a href="{{ link('templates/edit', $template) }}">{$template.title}</a>
				</strong>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ $template.style_id ? phrase('revert') : phrase('button.delete') }}"
			rowtype="simple" icon="{{ !$template.style_id ? 'delete' : '' }}" />
	</div>
	<xf:redirect />
</xf:form>]]></template>
  <template type="admin" title="template_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$template.isInsert()">
	<xf:title>{{ phrase('add_template') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_template:') }} {$template.title}</xf:title>
</xf:if>

<xf:page option="breadcrumbPath" value="styles" />
<xf:breadcrumb href="{{ link('styles/templates', $style, {'type': $template.type}) }}">{$style.title} - {{ phrase('templates') }}</xf:breadcrumb>

<xf:pageaction if="$template.isUpdate() AND $template.style_id == $style.style_id">
	<xf:if is="$style.style_id">
		<xf:button href="{{ link('templates/compare', $template) }}" data-xf-click="overlay" data-cache="false">{{ phrase('view_custom_changes') }}</xf:button>
		<xf:button href="{{ link('templates/delete', $template, {'_xfRedirect': $redirect}) }}" overlay="true">{{ phrase('revert') }}</xf:button>
	<xf:else />
		<xf:button href="{{ link('templates/delete', $template, {'_xfRedirect': $redirect}) }}" icon="delete" overlay="true" />
	</xf:if>
</xf:pageaction>

<xf:form action="{{ link('templates/save', $template) }}" ajax="true" class="block">

	<xf:hiddenval name="style_id">{$style.style_id}</xf:hiddenval>

	<div class="block-container">

		<xf:radiotabs name="type" value="{$template.type}" readonly="{$template.isUpdate()}">
			<xf:initialhtml>
				<xf:macro template="style_macros" name="style_change_menu"
					arg-styleTree="{$styleTree}"
					arg-currentStyle="{$style}"
					arg-route="{{ $template.isInsert() ? 'styles/add-template' : 'styles/edit-template' }}"
					arg-routeParams="{{ {'template_id': {$template.template_id}, 'type': {$template.type}} }}"
					arg-linkClass="tabs-tab" />
				<span class="tabs-tab is-readonly">{{ phrase('type:') }}</span>
			</xf:initialhtml>
			<xf:option value="public">{$types.public}</xf:option>
			<xf:option value="email">{$types.email}</xf:option>
			<xf:option value="admin">{$types.admin}</xf:option>
		</xf:radiotabs>

		<div class="block-body" data-xf-init="code-editor-switcher-container" data-template-suffix-mode="1">

			<xf:textboxrow name="title" value="{$template.title}" class="js-codeEditorSwitcher formRow--noLabel"
				rowtype="fullWidth"
				maxlength="{{ max_length($template, 'title') }}"
				autofocus="autofocus"
				autocomplete="off"
				label="{{ phrase('template_name') }}"
				hint="{{ phrase('must_be_unique') }}"
				dir="ltr" />

			<xf:codeeditorrow name="template" value="{$template.template}"
				mode="html"
				rows="12"
				rowtype="fullWidth noLabel"
				rowclass="js-codeEditorContainer"
				data-submit-selector=".js-submitButton"
				label="{{ phrase('template') }}"
				explain="{{ phrase('you_may_use_xenforo_template_syntax_here') }}">
				<xf:finalhtml>
					<xf:if is="$hasHistory">
						<div class="js-historyTarget toggleTarget" data-href="trigger-href"></div>
					</xf:if>
				</xf:finalhtml>
			</xf:codeeditorrow>

			<xf:if is="!$style.style_id">
				<xf:macro template="addon_macros" name="addon_edit" arg-addOnId="{$template.addon_id}" />
			<xf:else />
				<xf:hiddenval name="addon_id">{$template.addon_id}</xf:hiddenval>
			</xf:if>
		</div>

		<xf:submitrow icon="save" class="js-submitButton"
			data-ajax-redirect="{{ ($template.isInsert() || $template.style_id != $style.style_id) ? '1' : '0' }}">
			<xf:html>
				<xf:button type="submit" name="exit" icon="save">{{ phrase('save_and_exit') }}</xf:button>
				<xf:if is="$hasHistory">
					<xf:button href="{{ link('templates/history', $template) }}" class="blockLink" icon="history"
						data-xf-click="toggle"
						data-target=".js-historyTarget">{{ phrase('view_history') }}</xf:button>
				</xf:if>
			</xf:html>
		</xf:submitrow>
	</div>
	<xf:redirect />
</xf:form>]]></template>
  <template type="admin" title="template_history" version_id="2000170" version_string="2.0.1"><![CDATA[<xf:title>{{ phrase('template_history') }}</xf:title>

<xf:form method="post" action="{{ link('templates/history', $template) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:datalist data-xf-init="responsive-data-list">
				<xf:datarow rowtype="header">
					<xf:cell class="dataList-cell--min">{{ phrase('old') }}</xf:cell>
					<xf:cell class="dataList-cell--min">{{ phrase('new') }}</xf:cell>
					<xf:cell>{{ phrase('edit_date') }}</xf:cell>
					<xf:cell />
				</xf:datarow>
				<xf:datarow>
					<xf:cell />
					<xf:cell><input type="radio" name="new" value="0" {{ $newId == 0 ? 'checked="checked"' : '' }} /></xf:cell>
					<xf:cell>{{ phrase('current_version') }}</xf:cell>
					<xf:cell />
				</xf:datarow>
				<xf:foreach loop="$list" value="$history">
					<xf:datarow>
						<xf:cell><input type="radio" name="old" value="{$history.template_history_id}" {{ $oldId == $history.template_history_id ? 'checked="checked"' : '' }} /></xf:cell>
						<xf:cell><input type="radio" name="new" value="{$history.template_history_id}" {{ $newId == $history.template_history_id ? 'checked="checked"' : '' }} /></xf:cell>
						<xf:cell><xf:date time="{$history.edit_date}" /></xf:cell>
						<xf:action href="{{ link('templates/history', $template, {'view': $history.template_history_id}) }}" overlay="true">{{ phrase('view_pre_edit_version') }}</xf:action>
					</xf:datarow>
				</xf:foreach>
			</xf:datalist>
		</div>
		<div class="block-footer">
			<span class="block-footer-controls"><xf:button type="submit">{{ phrase('compare') }}</xf:button></span>
		</div>
	</div>
</xf:form>]]></template>
  <template type="admin" title="template_history_compare" version_id="2000033" version_string="2.0.0 Beta 3"><![CDATA[<xf:title>{{ phrase('version_comparison') }}</xf:title>

<xf:css src="public:diff.less" />

<div class="block">
	<div class="block-container">
		<div class="block-body block-row block-body--contained" dir="ltr">
			<ol class="diffList diffList--code">
				<xf:foreach loop="$diffs" value="$diff">
					<xf:set var="$diffHtml">{{ $diff.1|join('<br />') }}</xf:set>
					<li class="diffList-line diffList-line--{$diff.0}">{{ trim($diffHtml) !== '' ? $diffHtml : '&nbsp;' }}</li>
				</xf:foreach>
			</ol>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="template_history_view" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('template_history') }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body block-body--contained block-row" dir="ltr">
			<pre>{$history.template}</pre>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="template_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{$style.title} - {{ phrase('templates') }}</xf:title>

<xf:page option="breadcrumbPath" value="styles" />
<xf:page option="section" value="templates" />

<xf:pageaction>
	<xf:button href="{{ link('templates/add', null, {'style_id': $style.style_id, 'type': $type}) }}" icon="add"
		data-xf-click="prefix-grabber"
		data-filter-element="[data-xf-init~=filter]">
		{{ phrase('add_template') }}
	</xf:button>
</xf:pageaction>

<div class="block">
	<div class="block-outer">
		<div class="block-outer-main">
			<xf:macro id="style_macros::style_change_menu"
				arg-styleTree="{$styleTree}"
				arg-currentStyle="{$style}"
				arg-route="styles/templates"
				arg-routeParams="{$linkParams}" />

			<xf:macro id="addon_macros::addon_change_menu"
				arg-addOns="{$addOns}"
				arg-currentAddOn="{$currentAddOn}"
				arg-route="styles/templates"
				arg-routeData="{$style}"
				arg-routeParams="{$linkParams}" />
		</div>
		<xf:macro id="filter_macros::quick_filter"
			arg-key="templates"
			arg-ajax="{{ link('styles/templates', $style, $linkParams) }}"
			arg-class="block-outer-opposite" />
	</div>
	<div class="block-container">
		<h2 class="block-tabHeader tabs hScroller" data-xf-init="h-scroller">
			<span class="hScroller-scroll">
			<xf:foreach loop="$types" key="$typeId" value="$typeName">
				<a href="{{ link('styles/templates', $style, {'type': $typeId} + $linkParams) }}"
					class="tabs-tab {{ $typeId == $type ? 'is-active' : '' }}">{$typeName}</a>
			</xf:foreach>
			</span>
		</h2>

		<xf:macro id="filter_macros::filter_bar"
			arg-menu="templates/refine-search"
			arg-params="{{ $linkParams + {'style_id': $style.style_id} }}" />

		<div class="block-body">
			<xf:datalist>
				<xf:macro id="template_list" arg-templates="{$templates}" arg-style="{$style}" />
				<xf:if is="$filter AND $total > $perPage">
					<xf:datarow rowclass="dataList-row--note dataList-row--noHover js-filterForceShow">
						<xf:cell colspan="2">{{ phrase('more_records_matching_filter_more_specific') }}</xf:cell>
					</xf:datarow>
				</xf:if>
			</xf:datalist>
		</div>

		<div class="block-footer">
			<span class="block-footer-counter">{{ display_totals($templates, $total) }}</span>
		</div>
	</div>

	<xf:pagenav
		page="{$page}" perpage="{$perPage}" total="{$total}"
		link="styles/templates"
		params="{$linkParams}"
		data="{$style}"
		wrapperclass="js-filterHide block-outer block-outer--after" />
</div>

<xf:macro id="template_list" arg-templates="!" arg-style="!">
	<xf:foreach loop="$templates" value="$template">
		<xf:datarow
			rowclass="{{ ($template.style_id == 0 ? '' : ($template.style_id == $style.style_id ? 'dataList-row--custom' : 'dataList-row--parentCustom')) }}">
			<xf:main href="{{ link('templates/edit', $template, {'style_id': $style.style_id}) }}"
				label="{$template.title}"
				hint="{{ ($template.addon_id && $template.addon_id != 'XF' && $template.AddOn) ? $template.AddOn.title : '' }}"
				colspan="{{ $template.style_id == $style.style_id ? 1 : 2 }}"
				hash="{$template.template_id}"
				dir="auto" />
			<xf:if is="$template.style_id == $style.style_id">
				<xf:delete href="{{ link('templates/delete', $template) }}"
					tooltip="{{ $template.style_id ? phrase('revert') : phrase('delete') }} " />
			</xf:if>
		</xf:datarow>
	</xf:foreach>
</xf:macro>]]></template>
  <template type="admin" title="template_merge_outdated" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:title>{{ phrase('merge_template_changes:') }} {$template.title}</xf:title>

<xf:css src="public:diff.less" />
<xf:js src="xf/form.js, xf/template_merge.js" min="1" />

<xf:form action="{{ link('templates/merge-outdated', $template) }}" data-xf-init="template-merger" class="block">
	<div class="block-container">
		<div class="block-body">
			<div class="block-row block-row--separated">
				<div class="diffListContainer" dir="ltr">
					<ol class="diffList diffList--code diffList--wrapped diffList--editable">
					<xf:foreach loop="$diffs" value="$diff">
						<xf:set var="$diffHtml" value="{$diff.1|escape|join('<br />')}" />
						<xf:if is="$diff.0 == 'c'">
							<li class="diffList-conflict js-conflictContainer">
								<xf:set var="$parentHtml" value="{$diff.3|escape|join('<br />')}" />
								<div class="diffList-line js-diffParent"><xf:trim>
									<xf:if is="$diff.3">
										<span>{{ trim($parentHtml) !== '' ? $parentHtml|raw : '&nbsp;' }}</span><xf:hiddenval name="" value="{$diff.3|join("
")}" />
									<xf:else />
										<i>{{ phrase('deleted') }}</i>
									</xf:if>
								</xf:trim></div>
								<div class="diffList-resolve">

									<xf:button class="js-resolveButton" data-target=".js-diffParent">
										&uarr; {{ phrase('resolve_using_parent_version') }}
									</xf:button>
									<xf:button class="js-resolveButton" data-target=".js-diffParent, .js-diffCustom">
										{{ phrase('resolve_using_both') }}
									</xf:button>
									<xf:button class="js-resolveButton" data-target=".js-diffCustom">
										{{ phrase('resolve_using_custom_version') }} &darr;
									</xf:button>

									<xf:hiddenval name="merged[]" class="js-mergedInput" value="{{ $diff.3|join("
") }}" />
								</div>
								<div class="diffList-line js-diffCustom"><xf:trim>
									<xf:if is="$diff.1">
										<span>{{ trim($diffHtml) !== '' ? $diffHtml|raw : '&nbsp;' }}</span><xf:hiddenval name="" value="{{ $diff.1|join("
") }}" />
									<xf:else />
										<i>{{ phrase('deleted') }}</i>
									</xf:if>
								</xf:trim></div>
							</li>
						<xf:else />
							<li class="diffList-line diffList-line--{$diff.0}"><xf:trim>
								<xf:if is="$diff.1">
									<span>{{ trim($diffHtml) !== '' ? $diffHtml|raw : '&nbsp;' }}</span><xf:hiddenval name="merged[]" value="{{ $diff.1|join("
") }}" />
								<xf:else />
									<i>{{ phrase('deleted') }}</i>
								</xf:if>
							</xf:trim></li>
						</xf:if>
					</xf:foreach>
					</ol>
				</div>
			</div>
			<div class="block-row block-row--separated">
				{{ phrase('you_may_click_on_update_to_edit_it') }}
			</div>
		</div>
		<xf:submitrow submit="{{ phrase('merge') }}" rowtype="simple" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="template_modification.less" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[.templateModContents
{
	.xf-input();
	max-height: 250px;
	min-height: 15px;
	margin: 0;
	overflow: auto;
	font-family: @xf-fontFamilyCode;
	direction: ltr;
}

.templateModApply
{
	&.is-active
	{
		font-weight: @xf-fontWeightHeavy;
		font-size: 120%;
	}

	&.templateModApply--ok { color: green; }
	&.templateModApply--notFound { color: grey;}
	&.templateModApply--error { color: red; }
}]]></template>
  <template type="admin" title="template_modification_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$modification.isInsert()">
	<xf:title>{{ phrase('add_template_modification') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_template_modification:') }} {$modification.template}</xf:title>
</xf:if>

<xf:css src="template_modification.less" />

<xf:if is="!$modification.canEdit()">
	<div class="blockMessage blockMessage--important blockMessage--iconic">
		{{ phrase('only_limited_fields_in_item_may_be_edited') }}
	</div>
</xf:if>

<xf:pageaction if="$modification.isUpdate() && $modification.canEdit()">
	<xf:button href="{{ link('template-modifications/delete', $modification) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('template-modifications/save', $modification) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">

			<xf:formrow label="{{ phrase('template_modification_type') }}">
				{$types.{$modification.type}}
				<xf:hiddenval name="type">{$modification.type}</xf:hiddenval>
			</xf:formrow>

			<xf:textboxrow name="template" value="{$modification}" id="js-templateModificationTemplate"
				readonly="{{ !$modification.canEdit() }}"
				ac="single"
				data-acurl="{{ link('template-modifications/auto-complete', null, {'type': $modification.type}) }}"
				label="{{ phrase('template') }}"
				dir="ltr" />

			<xf:textboxrow name="modification_key" value="{$modification}"
				readonly="{{ !$modification.canEdit() }}"
				label="{{ phrase('modification_key') }}"
				explain="{{ phrase('this_is_used_to_uniquely_identify_modification_across_add_on_upgrades') }}"
				dir="ltr" />

			<xf:textboxrow name="description" value="{$modification}" readonly="{{ !$modification.canEdit() }}"
				label="{{ phrase('description') }}" />

			<hr class="formRowSep" />

			<div class="js-templateContentsContainer u-hidden u-hidden--transition">
				<xf:formrow rowtype="input"
					label="{{ phrase('template_contents') }}">

					<pre class="templateModContents"
						id="js-templateContents"
						data-contents-url="{{ link('template-modifications/contents', '', {'type': $modification.type}) }}"
					><!--
						--><i>{{ phrase('requested_template_not_found') }}</i><!--
					--></pre>
				</xf:formrow>
			</div>

			<xf:radiorow name="action" value="{$modification}" readonly="{{ !$modification.canEdit() }}"
				label="{{ phrase('search_type') }}">

				<xf:option value="str_replace"
					label="{{ phrase('simple_replacement') }}" />
				<xf:option value="preg_replace"
					label="{{ phrase('regular_expression') }}"
					hint="{{ phrase('search_text_must_contain_delimiters_modifiers_for_regex') }}" />
				<xf:option value="callback"
					label="{{ phrase('php_callback') }}"
					hint="{{ phrase('search_text_must_be_full_regular_expression') }}" />
			</xf:radiorow>

			<xf:codeeditorrow name="find" value="{$modification.find}" mode="html"
				readonly="{{ !$modification.canEdit() }}"
				class="codeEditor--short"
				data-auto-close-tags="false"
				label="{{ phrase('find') }}" />

			<xf:codeeditorrow name="replace" value="{$modification.replace}" mode="html"
				readonly="{{ !$modification.canEdit() }}"
				class="codeEditor--short"
				data-auto-close-tags="false"
				label="{{ phrase('replace') }}"
				explain="{{ phrase('template_modification_replace_description') }}" />

			<hr class="formRowSep" />

			<xf:numberboxrow name="execution_order" value="{$modification}"
				readonly="{{ !$modification.canEdit() }}"
				label="{{ phrase('execution_order') }}" />

			<xf:checkboxrow>
				<xf:option name="enabled" value="1" selected="$modification.enabled"
					hint="{{ ($xf.development AND $modification.addon_id) ? phrase('field_value_maintained_addon_upgrade_explain') : '' }}">
					{{ phrase('automatically_apply_template_modification') }}
				</xf:option>
			</xf:checkboxrow>

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$modification.addon_id}" />
		</div>
		<xf:submitrow sticky="true" icon="save"><xf:html>
			<xf:button type="submit" name="test" value="1">{{ phrase('test') }}</xf:button>
		</xf:html></xf:submitrow>
	</div>

</xf:form>

<xf:js>
	const templateInput = document.querySelector('#js-templateModificationTemplate')
	const contents = document.querySelector('#js-templateContents')
	const container = contents.closest('.js-templateContentsContainer')
	const invalidContents = contents.innerHTML

	const updateContents = (templateName) =>
	{
		if (templateName === '')
		{
			XF.Transition.removeClassTransitioned(container, 'is-active')
			return
		}

		XF.ajax(
			'get',
			contents.getAttribute('data-contents-url'),
			{ template: templateName },
			(data) =>
			{
				if (data.template !== false)
				{
					contents.textContent = data.template
				}
				else
				{
					contents.innerHTML = invalidContents
				}

				XF.Transition.addClassTransitioned(container, 'is-active')
				XF.layoutChange()
			},
		)
	}

	if (templateInput.value)
	{
		updateContents(templateInput.value)
	}

	let timer

	templateInput.addEventListener('change', () =>
	{
		if (timer)
		{
			clearTimeout(timer)
		}
		timer = setTimeout(() =>
		{
			updateContents(templateInput.value)
		}, 200)
	})

	templateInput.addEventListener('AutoComplete', () =>
	{
		if (timer)
		{
			clearTimeout(timer)
		}
		timer = setTimeout(() =>
		{
			updateContents(templateInput.value)
		}, 200)
	})
</xf:js>]]></template>
  <template type="admin" title="template_modification_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('template_modifications') }}</xf:title>

<xf:page option="skipBreadcrumb" value="templateModifications" />

<xf:pageaction if="$canCreateModification">
	<xf:button href="{{ link('template-modifications/add', '', {'type': $type}) }}" icon="add">
		{{ phrase('add_template_modification') }}
	</xf:button>
</xf:pageaction>

<xf:css src="template_modification.less" />

<xf:form action="{{ link('template-modifications/toggle') }}" class="block" ajax="true">
	<div class="block-outer">
		<xf:macro id="filter_macros::quick_filter" arg-key="template-modifications" arg-class="block-outer-opposite" />
	</div>
	<div class="block-container">
		<h2 class="block-tabHeader tabs hScroller" data-xf-init="h-scroller">
			<span class="hScroller-scroll">
			<xf:foreach loop="$types" key="$typeId" value="$typeName">
				<a href="{{ link('template-modifications', '', {'type': $typeId}) }}"
					class="tabs-tab {{ $typeId == $type ? 'is-active' : '' }}">{$typeName}</a>
			</xf:foreach>
			</span>
		</h2>
		<xf:if is="$groupedModifications">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$groupedModifications" key="$addOnId" value="$modifications">
						<tbody class="dataList-rowGroup">
							<xf:if is="$addOnId">
								<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
									<xf:cell colspan="4">{$addOns.{$addOnId}.title}</xf:cell>
								</xf:datarow>
								<xf:else />
								<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
									<xf:cell colspan="4">{{ phrase('custom_modifications') }}</xf:cell>
								</xf:datarow>
							</xf:if>
							<xf:foreach loop="$modifications" value="$modification">
								<xf:datarow
									label="{$modification.template}"
									hint="{$modification.description}"
									delete="{{ $modification.canEdit() ? link('template-modifications/delete', $modification) : null }}"
									href="{{ link('template-modifications/edit', $modification) }}">

									<xf:toggle name="enabled[{$modification.modification_id}]"
										selected="$modification.enabled"
										class="dataList-cell--separated" submit="true"
										tooltip="{{ phrase('enable_disable_x', {'title': $modification.modification_key}) }}" />

									<xf:action href="{{ link('template-modifications/log', $modification) }}" overlay="true">
										<span class="templateModApply templateModApply--ok{{ $modification.log_summary.ok ? ' is-active' : '' }}">{$modification.log_summary.ok}</span>
										/ <span class="templateModApply templateModApply--notFound{{ $modification.log_summary.not_found ? ' is-active' : '' }}">{$modification.log_summary.not_found}</span>
										/ <span class="templateModApply templateModApply--error{{ $modification.log_summary.error ? ' is-active' : '' }}">{$modification.log_summary.error}</span>
									</xf:action>
								</xf:datarow>
							</xf:foreach>
						</tbody>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($modificationCount) }}</span>
			</div>
		<xf:else />
			<div class="block-body block-row">{{ phrase('no_template_modifications_have_been_defined_yet') }}</div>
		</xf:if>
	</div>
</xf:form>]]></template>
  <template type="admin" title="template_modification_log" version_id="2001070" version_string="2.0.10"><![CDATA[<xf:title>{{ phrase('template_modification_log') }}</xf:title>

<xf:if is="$modification.Logs is not empty">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('template') }}</xf:cell>
						<xf:cell>{{ phrase('style') }}</xf:cell>
						<xf:cell>{{ phrase('status') }}</xf:cell>
						<xf:cell>{{ phrase('apply_count') }}</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$modification.Logs" value="$log">
						<xf:datarow>
							<xf:cell>{$log.Template.title}</xf:cell>
							<xf:cell><xf:if is="$log.Template.style_id">{$log.Template.Style.title}<xf:else />{{ phrase('master_style') }}</xf:if></xf:cell>
							<xf:if is="$log.status == 'ok'">
								<xf:cell>OK</xf:cell>
								<xf:cell>{$log.apply_count}</xf:cell>
							<xf:else />
								<xf:cell>
									<xf:if is="$log.status == 'error_compile'">{{ phrase('compiler_error_may_be_from_another_template_modification') }}
										<xf:elseif is="$log.status == 'error_invalid_regex'" />{{ phrase('invalid_regular_expression') }}
										<xf:elseif is="$log.status == 'error_unknown_action'" />{{ phrase('unknown_action') }}
										<xf:elseif is="$log.status == 'error_invalid_callback'" />{{ phrase('invalid_callback') }}
										<xf:elseif is="$log.status == 'error_callback_failed'" />{{ phrase('callback_failed') }}
									</xf:if>
								</xf:cell>
								<xf:cell>-</xf:cell>
							</xf:if>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
		</div>
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('this_template_modification_does_not_match_any_templates') }}</div>
</xf:if>]]></template>
  <template type="admin" title="template_modification_test" version_id="2000033" version_string="2.0.0 Beta 3"><![CDATA[<xf:title>{{ phrase('template_modification_test') }}</xf:title>

<xf:css src="public:diff.less" />

<div class="block">
	<div class="block-container">
		<div class="block-body block-row block-body--contained" dir="ltr">
			<ol class="diffList diffList--code">
				<xf:foreach loop="$diffs" value="$diff">
					<xf:set var="$diffHtml">{{ $diff.1|join('<br />') }}</xf:set>
					<li class="diffList-line diffList-line--{$diff.0}">{{ trim($diffHtml) !== '' ? $diffHtml : '&nbsp;' }}</li>
				</xf:foreach>
			</ol>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="template_outdated" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('outdated_templates') }}</xf:title>
<xf:description>{{ phrase('outdated_templates_desc') }}</xf:description>

<xf:if is="$autoMerged">
	<div class="blockMessage blockMessage--success blockMessage--iconic">
		{{ phrase('all_automatically_mergeable_templates_have_been_processed') }}
	</div>
</xf:if>

<xf:pageaction>
	<xf:button href="{{ link('styles/customized-components') }}">{{ phrase('customized_components') }}</xf:button>
	<xf:if is="$total">
		<xf:button href="{{ link('templates/auto-merge') }}" overlay="true">{{ phrase('automatically_merge') }}</xf:button>
	</xf:if>
</xf:pageaction>

<xf:if is="$total">
	<div class="block">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="outdated-templates" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$styleTree.getFlattened(0)" value="$treeEntry">
						<xf:set var="$style" value="{$treeEntry.record}" />
						<xf:set var="$outdatedForStyle" value="{$outdatedGrouped.{$style.style_id}}" />
						<xf:if is="$outdatedForStyle is not empty">
							<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
								<xf:cell colspan="2">{$style.title}</xf:cell>
							</xf:datarow>
							<xf:foreach loop="$outdatedForStyle" value="$outdated">
								<xf:datarow>
									<xf:cell href="{{ link('templates/edit', $outdated.template) }}" class="dataList-cell--main">
										<div class="dataList-mainRow" dir="auto">{$outdated.template.title}</div>
										<div class="dataList-subRow">
											<ul class="listInline listInline--bullet">
												<xf:if is="$outdated.outdated_by_date">
													<li>{{ phrase('last_edited:') }} <xf:date time="{$outdated.template.last_edit_date}" /></li>
													<li>{{ phrase('parent_last_edited:') }} <xf:date time="{$outdated.parent_last_edit_date}" /></li>
												<xf:elseif is="$outdated.outdated_by_version" />
													<li>{{ phrase('custom_version:') }} {$outdated.template.version_string}</li>
													<li>{{ phrase('parent_version:') }} {$outdated.parent_version_string}</li>
												</xf:if>
											</ul>
										</div>
									</xf:cell>
									<xf:action href="{{ link('templates/merge-outdated', $outdated.template) }}">{{ phrase('merge') }}</xf:action>
								</xf:datarow>
							</xf:foreach>
						</xf:if>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($total) }}</span>
			</div>
		</div>
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('there_are_no_outdated_templates') }}</div>
</xf:if>]]></template>
  <template type="admin" title="template_refine_search" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:form action="{{ link('templates/search') }}">
	<div class="menu-row">
		{{ phrase('style:') }}
		<div class="u-inputSpacer">
			<xf:macro id="style_macros::style_select"
				arg-styleTree="{$styleTree}"
				arg-styleId="{$style.style_id}"
				arg-row="{{ false }}" />
		</div>
	</div>

	<div class="menu-row">
		{{ phrase('template_type:') }}
		<div class="u-inputSpacer">
			<xf:select name="type" value="{$conditions.type}">
				<xf:foreach loop="$types" key="$typeId" value="$type">
					<xf:option value="{$typeId}">{$type}</xf:option>
				</xf:foreach>
			</xf:select>
		</div>
	</div>

	<div class="menu-row menu-row--separated">
		{{ phrase('add_on:') }}
		<div class="u-inputSpacer">
			<xf:macro id="addon_macros::addon_select"
				arg-addOnId="{$conditions.addon_id}"
				arg-includeAny="{{ true }}"
				arg-emptyValue="_none"
				arg-row="{{ false }}" />
		</div>
	</div>

	<div class="menu-row">
		{{ phrase('title_contains:') }}
		<div class="u-inputSpacer">
			<xf:textbox name="title" type="search" value="{$conditions.title}" dir="ltr" />
		</div>
	</div>

	<div class="menu-row menu-row--separated">
		{{ phrase('text_contains:') }}
		<div class="u-inputSpacer">
			<ul class="inputList">
				<li>
					<xf:textarea name="template" value="{$conditions.template}" autosize="true" code="true" />
				</li>
				<li><xf:checkbox standalone="true"><xf:option name="template_cs" selected="{$conditions.template_cs}" label="{{ phrase('case_sensitive') }}" /></xf:checkbox></li>
			</ul>
		</div>
	</div>

	<div class="menu-row menu-row--separated">
		{{ phrase('template_status:') }}
		<div class="u-inputSpacer">
			<xf:checkbox name="state[]" value="{$conditions.state}">
				<xf:option value="default">{{ phrase('unmodified') }}</xf:option>
				<xf:option value="inherited">{{ phrase('modified_in_parent_style') }}
				</xf:option>
				<xf:option value="custom">{{ phrase('modified_in_this_style') }}</xf:option>
			</xf:checkbox>
		</div>
	</div>

	<div class="menu-footer">
		<span class="menu-footer-controls">
			<xf:button type="submit" icon="search" class="button--primary">{{ phrase('refine_search') }}</xf:button>
		</span>
	</div>
	<xf:hiddenval name="search">1</xf:hiddenval>
</xf:form>]]></template>
  <template type="admin" title="template_search" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('search_templates') }}</xf:title>

<xf:form action="{{ link('templates/search') }}" class="block">

	<div class="block-container">
		<div class="block-body">
			<xf:macro id="style_macros::style_select"
				arg-styleTree="{$styleTree}"
				arg-styleId="{$styleId}" />

			<xf:selectrow name="type" selected="public"
				label="{{ phrase('template_type') }}">

				<xf:foreach loop="$types" key="$typeId" value="$type">
					<xf:option value="{$typeId}">{$type}</xf:option>
				</xf:foreach>
			</xf:selectrow>

			<xf:macro id="addon_macros::addon_select"
				arg-addOnId="_any"
				arg-includeAny="{{ true }}"
				arg-emptyValue="_none" />

			<hr class="formRowSep" />

			<xf:textboxrow name="title"
				label="{{ phrase('title_contains') }}"
				dir="ltr" />

			<xf:formrow rowtype="input"
				label="{{ phrase('template_contains') }}">

				<ul class="inputList">
					<li><xf:textarea name="template" autosize="true" code="true" /></li>
					<li><xf:checkbox standalone="true"><xf:option name="template_cs" label="{{ phrase('case_sensitive') }}" /></xf:checkbox></li>
				</ul>
			</xf:formrow>

			<hr class="formRowSep" />

			<xf:checkboxrow name="state[]"
				label="{{ phrase('template_status') }}">

				<xf:option value="default" selected="1">{{ phrase('unmodified') }}</xf:option>
				<xf:option value="inherited" selected="1">{{ phrase('modified_in_parent_style') }}</xf:option>
				<xf:option value="custom" selected="1">{{ phrase('modified_in_this_style') }}</xf:option>
			</xf:checkboxrow>
		</div>
		<xf:submitrow sticky="true" icon="search" />
	</div>
	<xf:hiddenval name="search">1</xf:hiddenval>

</xf:form>]]></template>
  <template type="admin" title="template_search_results" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('template_search_results:') }} {$style.title}</xf:title>

<div class="block">
	<xf:if is="$templates is not empty">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-class="block-outer-opposite" />
		</div>
	</xf:if>
	<div class="block-container">

		<xf:macro id="filter_macros::filter_bar"
			arg-route="templates/search"
			arg-content="{$style}"
			arg-params="{$linkParams}"
			arg-displayValues="{$filterDisplay}"
			arg-phrases="{{ {
				'key:type':        phrase('template_type:'),
				'key:addon_id':    phrase('add_on:'),
				'key:title':       phrase('title_contains:'),
				'key:template':    phrase('text_contains:'),
				'key:template_cs': phrase('case_sensitive'),
				'key:state':       phrase('template_status:'),
				'val:_none':       phrase('none'),
				'val:default':     phrase('unmodified'),
				'val:inherited':   phrase('modified_in_parent_style'),
				'val:custom':      phrase('modified_in_this_style')
			} }}"
			arg-menu="templates/refine-search" />

		<xf:if is="$templates is not empty">
			<div class="block-body">
				<xf:datalist>
					<xf:macro id="template_list::template_list" arg-templates="{$templates}" arg-style="{$style}" />
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($templates) }}</span>
			</div>
		<xf:else />
			<div class="block-body block-row">{{ phrase('no_results_found') }}</div>
		</xf:if>
	</div>
</div>]]></template>
  <template type="admin" title="thread_batch_update" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('batch_update_threads') }}</xf:title>

<xf:if is="$success">
	<div class="blockMessage blockMessage--success blockMessage--iconic">{{ phrase('batch_update_was_completed_successfully') }}</div>
</xf:if>

<xf:form action="{{ link('threads/batch-update/confirm') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:include template="helper_thread_search_criteria" />
		</div>
		<xf:submitrow icon="search" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="thread_batch_update_confirm" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:title>{{ phrase('batch_update_threads') }}</xf:title>

<xf:form action="{{ link('threads/batch-update/action') }}" class="block">
	<div class="block-container">
		<h2 class="block-header">{{ phrase('update_threads') }}</h2>
		<div class="block-body">
			<xf:formrow label="{{ phrase('matched_threads') }}">
				{$total|number}
				<xf:if is="!$threadIds">
					<span role="presentation" aria-hidden="true">&middot;</span>
					<a href="{{ link('threads/list', null, {'criteria': $criteria, 'all': true}) }}">{{ phrase('view_or_filter_matches') }}</a>
				</xf:if>
			</xf:formrow>

			<hr class="formRowSep" />

			<xf:selectrow name="actions[node_id]"
				label="{{ phrase('move_to_forum') }}">

				<xf:option value="0"></xf:option>
				<xf:foreach loop="$forums" value="$forum">
					<xf:option value="{$forum.value}" label="{$forum.label}" disabled="{$forum.disabled}" />
				</xf:foreach>
				<xf:explain><xf:if is="$hasPrefixes">
					{{ phrase('move_to_forum_prefixes_explain') }}
				</xf:if></xf:explain>
			</xf:selectrow>

			<xf:selectrow name="actions[discussion_type]"
				label="{{ phrase('change_thread_type') }}"
				explain="{{ phrase('thread_type_will_only_be_changed_if_it_is_valid_for_forum') }}">
				<xf:option value=""></xf:option>
				<xf:options source="$threadTypes" />
			</xf:selectrow>

			<xf:if is="$prefixes.prefixesGrouped">
				<xf:checkboxrow
					explain="{{ phrase('prefix_will_only_be_applied_if_valid_for_forum') }}">
					<xf:option name="actions[apply_thread_prefix]"
						label="{{ phrase('set_prefix') }}">

						<xf:dependent>
							<xf:macro id="public:prefix_macros::select"
								arg-prefixes="{$prefixes.prefixesGrouped}"
								arg-name="actions[prefix_id]"
								arg-type="thread" />
						</xf:dependent>
					</xf:option>
				</xf:checkboxrow>
			</xf:if>

			<hr class="formRowSep" />

			<xf:checkboxrow>
				<xf:option name="actions[stick]" value="stick">{{ phrase('stick_threads') }}</xf:option>
				<xf:option name="actions[unstick]" value="unstick">{{ phrase('unstick_threads') }}</xf:option>
				<xf:option name="actions[lock]" value="lock">{{ phrase('lock_threads') }}</xf:option>
				<xf:option name="actions[unlock]" value="unlock">{{ phrase('unlock_threads') }}</xf:option>
				<xf:option name="actions[approve]" value="approve">{{ phrase('approve_threads') }}</xf:option>
				<xf:option name="actions[unapprove]" value="unapprove">{{ phrase('unapprove_threads') }}</xf:option>
				<xf:option name="actions[feature]" value="feature">{{ phrase('feature_threads') }}</xf:option>
				<xf:option name="actions[unfeature]" value="unfeature">{{ phrase('unfeature_threads') }}</xf:option>
				<xf:option name="actions[soft_delete]" value="soft_delete">{{ phrase('soft_delete_threads') }}</xf:option>
			</xf:checkboxrow>

		</div>
		<xf:submitrow submit="{{ phrase('update_threads') }}" icon="save" />
	</div>

	<xf:if is="$threadIds">
		<xf:hiddenval name="thread_ids">{$threadIds|json}</xf:hiddenval>
	<xf:else />
		<xf:hiddenval name="criteria">{$criteria|json}</xf:hiddenval>
	</xf:if>
</xf:form>

<xf:form action="{{ link('threads/batch-update/action') }}" class="block">
	<div class="block-container">
		<h2 class="block-header">{{ phrase('delete_threads') }}</h2>
		<div class="block-body">
			<xf:checkboxrow>
				<xf:option name="actions[delete]">
					{{ phrase('confirm_deletion_of_x_threads', {'total': $total|number}) }}
				</xf:option>
			</xf:checkboxrow>
		</div>
		<xf:submitrow name="confirm_delete" icon="delete" />
	</div>

	<xf:if is="$threadIds">
		<xf:hiddenval name="thread_ids">{$threadIds|json}</xf:hiddenval>
	<xf:else />
		<xf:hiddenval name="criteria">{$criteria|json}</xf:hiddenval>
	</xf:if>
</xf:form>]]></template>
  <template type="admin" title="thread_field_delete" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:include template="base_custom_field_delete" />]]></template>
  <template type="admin" title="thread_field_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:include template="base_custom_field_edit">
	<xf:set var="$extraOptions">
		<xf:macro id="base_custom_field_macros::common_options"
			arg-field="{$field}"
			arg-supportsGroupEditable="{{ true }}"/>
	</xf:set>
	<xf:set var="$displayOptions">
		<xf:selectrow name="node_ids[]" value="{$nodeIds}" multiple="multiple" size="7"
			label="{{ phrase('applicable_forums') }}">

			<xf:option value="" selected="!{$nodeIds}">{{ phrase('(none)') }}</xf:option>
			<xf:foreach loop="$nodeTree.getFlattened(0)" value="$treeEntry">
				<xf:option value="{$treeEntry.record.node_id}" disabled="{{ $treeEntry.record.node_type_id != 'Forum' }}">{{ repeat('&nbsp;&nbsp;', $treeEntry.depth)|raw }} {$treeEntry.record.title}</xf:option>
			</xf:foreach>
		</xf:selectrow>
	</xf:set>
</xf:include>]]></template>
  <template type="admin" title="thread_field_list" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('custom_thread_fields') }}</xf:title>

<xf:include template="base_custom_field_list" />]]></template>
  <template type="admin" title="thread_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('threads') }}</xf:title>

<xf:if is="$threads is not empty">
	<xf:form action="{{ link('threads/batch-update/confirm') }}" class="block" ajax="true" data-json-name="json">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:if is="$showingAll">
							<xf:cell class="dataList-cell--min">
								<xf:checkbox standalone="true"><xf:option check-all=".dataList >" data-xf-init="tooltip" title="{{ phrase('select_all') }}" /></xf:checkbox>
							</xf:cell>
						</xf:if>
						<xf:cell colspan="1">{{ phrase('title') }}</xf:cell>
						<xf:cell class="dataList-cell--min">{{ phrase('type') }}</xf:cell>
						<xf:cell class="dataList-cell--min">{{ phrase('forum') }}</xf:cell>
						<xf:cell class="dataList-cell--min">{{ phrase('thread_starter') }}</xf:cell>
						<xf:cell class="dataList-cell--min">{{ phrase('replies') }}</xf:cell>
						<xf:cell class="dataList-cell--min">{{ phrase('last_message') }}</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$threads" value="$thread">
						<xf:datarow>
							<xf:if is="$showingAll">
								<xf:toggle name="thread_ids[]" value="{$thread.thread_id}" selected="true" />
							</xf:if>
							<xf:main href="{{ link_type('public', 'threads', $thread) }}" label="{$thread.title}" />
							<xf:cell class="dataList-cell--min">
								{{ $thread.TypeHandler.getTypeTitle() }}
							</xf:cell>
							<xf:cell class="dataList-cell--min">
								{$thread.Forum.title}
							</xf:cell>
							<xf:cell class="dataList-cell--min">
								{$thread.username}
							</xf:cell>
							<xf:cell class="dataList-cell--min">
								{$thread.reply_count|number}
							</xf:cell>
							<xf:cell class="dataList-cell--min">
								<xf:date time="{$thread.last_post_date}" />
							</xf:cell>
						</xf:datarow>
					</xf:foreach>
					<xf:if is="$filter AND $total > $perPage">
						<xf:datarow rowclass="dataList-row--note dataList-row--noHover js-filterForceShow">
							<xf:cell colspan="3">{{ phrase('more_records_matching_filter_more_specific') }}</xf:cell>
						</xf:datarow>
					</xf:if>
				</xf:datalist>
			</div>
			<div class="block-footer block-footer--split">
				<span class="block-footer-counter">{{ display_totals($threads, $total) }}</span>
				<span class="block-footer-select"><xf:checkbox standalone="true"><xf:option check-all=".dataList" label="{{ phrase('select_all') }}" /></xf:checkbox></span>
				<xf:if is="$showAll">
					<span class="block-footer-controls">
						<a href="{{ link('threads/list', null, {'criteria': $criteria, 'all': true}) }}">{{ phrase('show_all_matches') }}</a>
					</span>
				<xf:elseif is="$showingAll" />
					<span class="block-footer-controls"><xf:button type="submit">{{ phrase('batch_update') }}</xf:button></span>
				</xf:if>
			</div>
		</div>

		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="threads/list"
			params="{{ {'criteria': $criteria, 'order': $order, 'direction': $direction, 'all': $showingAll} }}"
			wrapperclass="js-filterHide block-outer block-outer--after" />
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_records_matched') }}</div>
</xf:if>]]></template>
  <template type="admin" title="thread_prefix_delete" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:include template="base_prefix_delete" />]]></template>
  <template type="admin" title="thread_prefix_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:include template="base_prefix_edit">
	<xf:set var="$extraOptions">
		<xf:macro id="forum_selection_macros::select_forums"
			arg-nodeIds="{$nodeIds}"
			arg-nodeTree="{$nodeTree}" />
	</xf:set>
</xf:include>]]></template>
  <template type="admin" title="thread_prefix_group_delete" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:include template="base_prefix_group_delete" />]]></template>
  <template type="admin" title="thread_prefix_group_edit" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:include template="base_prefix_group_edit" />]]></template>
  <template type="admin" title="thread_prefix_list" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('thread_prefixes') }}</xf:title>

<xf:include template="base_prefix_list" />]]></template>
  <template type="admin" title="thread_prefix_quickset_chooser" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:include template="base_prefix_quickset_chooser">
	<xf:set var="$prefixType" value="thread" />
</xf:include>]]></template>
  <template type="admin" title="thread_prefix_quickset_editor" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:include template="base_prefix_quickset_editor">
	<xf:set var="$extraOptions">
		<xf:checkboxrow name="apply_node_ids"
			label="{{ phrase('applicable_forums') }}">

			<xf:option label="{{ phrase('apply_forum_options:') }}">
				<xf:dependent>
					<xf:macro id="forum_selection_macros::select_forums"
						arg-nodeIds="{$nodeIds}"
						arg-nodeTree="{$nodeTree}"
						arg-withRow="0" />
				</xf:dependent>
			</xf:option>
		</xf:checkboxrow>
	</xf:set>
</xf:include>]]></template>
  <template type="admin" title="thread_prompt_delete" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:include template="base_prompt_delete" />]]></template>
  <template type="admin" title="thread_prompt_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:include template="base_prompt_edit">
	<xf:set var="$extraOptions">
		<xf:macro id="forum_selection_macros::select_forums"
			arg-nodeIds="{$nodeIds}"
			arg-nodeTree="{$nodeTree}" />
	</xf:set>
</xf:include>]]></template>
  <template type="admin" title="thread_prompt_group_delete" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:include template="base_prompt_group_delete" />]]></template>
  <template type="admin" title="thread_prompt_group_edit" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:include template="base_prompt_group_edit" />]]></template>
  <template type="admin" title="thread_prompt_list" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('thread_prompts') }}</xf:title>

<xf:include template="base_prompt_list" />

<div class="block">
	<div class="block-container">
		<h2 class="block-header">{{ phrase('default_thread_prompt') }}</h2>
		<div class="block-body">
			<xf:datalist>
				<xf:datarow>
					<xf:cell href="{{ link('phrases/edit-by-name', {}, {'title': 'thread_prompt.default'}) }}" class="dataList-cell">{{ phrase('thread_prompt.default') }}</xf:cell>
				</xf:datarow>
			</xf:datalist>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="thread_prompt_quickset_chooser" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:include template="base_prompt_quickset_chooser">
	<xf:set var="$prefixType" value="thread" />
</xf:include>]]></template>
  <template type="admin" title="thread_prompt_quickset_editor" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:include template="base_prompt_quickset_editor">
	<xf:set var="$extraOptions">
		<xf:checkboxrow name="apply_node_ids"
			label="{{ phrase('applicable_forums') }}">

			<xf:option label="{{ phrase('apply_forum_options:') }}">
				<xf:dependent>
					<xf:macro id="forum_selection_macros::select_forums"
						arg-nodeIds="{$nodeIds}"
						arg-nodeTree="{$nodeTree}"
						arg-withRow="0" />
				</xf:dependent>
			</xf:option>
		</xf:checkboxrow>
	</xf:set>
</xf:include>]]></template>
  <template type="admin" title="thread_reply_ban_list" version_id="2000170" version_string="2.0.1"><![CDATA[<xf:title>{{ phrase('thread_reply_bans') }}</xf:title>

<xf:if is="$bans is not empty">
	<xf:form action="{{ link('threads/reply-bans') }}" class="block">
		<div class="block-outer">
			<span class="filterBlock">
				<xf:textbox name="username" value="{$user.username}" class="input filterBlock-input" ac="single"
					 placeholder="{{ phrase('user_name...') }}" />

				<xf:button type="submit" class="button--small">{{ phrase('filter') }}</xf:button>
			</span>
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('user') }}</xf:cell>
						<xf:cell>{{ phrase('thread') }}</xf:cell>
						<xf:cell>{{ phrase('reason') }}</xf:cell>
						<xf:cell>{{ phrase('end_date') }}</xf:cell>
						<xf:cell></xf:cell>
					</xf:datarow>
					<xf:foreach loop="$bans" value="$ban">
						<xf:datarow rowclass="dataList-row--noHover">
							<xf:cell>
								<xf:username user="$ban.User" href="{{ link('users/edit', $ban.User) }}" />
							</xf:cell>
							<xf:cell>
								<a href="{{ link_type('public', 'threads', $ban.Thread) }}">{$ban.Thread.title}</a>
							</xf:cell>
							<xf:cell>
								<xf:if is="$ban.reason">
									{$ban.reason}
								<xf:else />
									{{ phrase('n_a') }}
								</xf:if>
							</xf:cell>
							<xf:cell>
								<xf:if is="$ban.expiry_date">
									<xf:date time="{$ban.expiry_date}" />
								<xf:else />
									{{ phrase('permanent') }}
								</xf:if>
							</xf:cell>
							<xf:delete href="{{ link('threads/reply-bans/delete', $ban) }}" overlay="true" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($bans, $total) }}</span>
			</div>
		</div>

		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="threads/reply-bans" params="{$linkParams}"
			wrapperclass="block-outer block-outer--after" />
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_results_found') }}</div>
</xf:if>]]></template>
  <template type="admin" title="tools_file_check" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('file_health_check') }}</xf:title>

<xf:form action="{{ link('tools/file-check') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="close">{{ phrase('file_health_check_description', {'button': phrase('proceed')}) }}</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('proceed...') }}" rowtype="simple" />
	</div>
</xf:form>

<xf:if is="$fileChecks is not empty">
	<div class="block">
		<div class="block-container">
			<h3 class="block-header">{{ phrase('file_health_check_results') }}</h3>
			<div class="block-body">
				<xf:macro id="file_check_list" arg-fileChecks="{$fileChecks}" />
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($fileChecks, $total) }}</span>
			</div>
		</div>
		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="tools/file-check"
			wrapperclass="block-outer block-outer--after" />
	</div>
</xf:if>

<xf:macro id="file_check_list" arg-fileChecks="!">
	<xf:datalist data-xf-init="responsive-data-list">
		<xf:datarow rowtype="header">
			<xf:cell>{{ phrase('check_date') }}</xf:cell>
			<xf:cell>{{ phrase('check_state') }}</xf:cell>
			<xf:cell>{{ phrase('missing') }}</xf:cell>
			<xf:cell>{{ phrase('unexpected_contents') }}</xf:cell>
			<xf:cell>{{ phrase('total_checked') }}</xf:cell>
			<xf:cell> </xf:cell>
		</xf:datarow>

		<xf:foreach loop="$fileChecks" value="$fileCheck" i="$i">
			<xf:datarow rowclass="{{ $i == 1 ? 'dataList-row--highlighted' : '' }}">
				<xf:cell>
					<xf:date time="$fileCheck.check_date" />
				</xf:cell>
				<xf:cell>
					<xf:if is="$fileCheck.check_state == 'success'">
						{{ phrase('success') }}
					<xf:elseif is="$fileCheck.check_state == 'failure'" />
						{{ phrase('failed') }}
					<xf:elseif is="$fileCheck.check_state == 'pending'" />
						{{ phrase('pending') }}
					</xf:if>
				</xf:cell>

				<xf:if is="$fileCheck.check_state == 'pending'">
					<xf:cell>{{ phrase('n_a') }}</xf:cell>
					<xf:cell>{{ phrase('n_a') }}</xf:cell>
					<xf:cell>{{ phrase('n_a') }}</xf:cell>
					<xf:action></xf:action>
				<xf:else />
					<xf:cell>{$fileCheck.total_missing|number}</xf:cell>
					<xf:cell>{$fileCheck.total_inconsistent|number}</xf:cell>
					<xf:cell>{$fileCheck.total_checked|number}</xf:cell>
					<xf:action href="{{ link('tools/file-check/results', $fileCheck) }}">{{ phrase('results') }}</xf:action>
				</xf:if>
			</xf:datarow>
		</xf:foreach>
	</xf:datalist>
</xf:macro>]]></template>
  <template type="admin" title="tools_file_check_result" version_id="2000570" version_string="2.0.5"><![CDATA[<xf:title>{{ phrase('file_health_check_results') }}</xf:title>

<xf:pageaction>
	<form action="{{ link('tools/file-check') }}" method="post" class="u-pullRight">
		<xf:button type="submit">{{ phrase('re_run_check') }}</xf:button>
		<xf:csrf />
	</form>
</xf:pageaction>

<xf:if is="$fileCheck.check_state == 'success'">
	<div class="blockMessage blockMessage--success blockMessage--iconic">
		{{ phrase('file_health_check_okay', {'numFiles': $fileCheck.total_checked|number}) }} {{ smilie(':)') }}
	</div>
<xf:else />
	<div class="blockMessage blockMessage--error blockMessage--iconic">
		{{ phrase('check_completed_on_x_files', {'total_checked': $fileCheck.total_checked|number})|nl2br }}
	</div>

	<xf:if is="$results">
		<div class="block">
			<div class="block-container">
				<div class="block-body">
					<xf:datalist>
						<xf:foreach loop="$addOns" key="$addOnId" value="$addOn">
							<xf:if is="{$results.missing.{$addOnId}} OR {$results.inconsistent.{$addOnId}}">
								<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
									<xf:cell>{$addOn.title}</xf:cell>
								</xf:datarow>

								<xf:foreach loop="{$results.missing.{$addOnId}}" value="$path">
									<xf:datarow rowclass="dataList-row--noHover">
										<xf:cell dir="auto">
											{$path}
											<span class="label label--primary label--smallest" title="{{ phrase('file_not_found')|for_attr }}" data-xf-init="tooltip">
												{{ phrase('missing') }}
											</span>
										</xf:cell>
									</xf:datarow>
								</xf:foreach>

								<xf:foreach loop="{$results.inconsistent.{$addOnId}}" value="$path">
									<xf:datarow rowclass="dataList-row--noHover">
										<xf:cell dir="auto">
											{$path}
											<span class="label label--primary label--smallest" title="{{ phrase('file_contents_unexpected')|for_attr }}" data-xf-init="tooltip">
												{{ phrase('unexpected_contents') }}
											</span>
										</xf:cell>
									</xf:datarow>
								</xf:foreach>
							</xf:if>
						</xf:foreach>
					</xf:datalist>
				</div>
			</div>
		</div>
	<xf:else />
		<div class="blockMessage">{{ phrase('file_check_results_file_not_found_please_rerun') }}</div>
	</xf:if>
</xf:if>]]></template>
  <template type="admin" title="tools_install_xf_addon" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('install_official_xenforo_add_ons') }}</xf:title>

<xf:form action="{{ link('tools/install-xf-add-on') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow>
				{{ phrase('installable_official_xenforo_add_on_explain') }}
			</xf:inforow>
			<xf:checkboxrow label="{{ phrase('installable_add_ons') }}">
				<xf:foreach loop="$installableAddOns" key="$addOnId" value="$install">
					<xf:option name="confirm_install[{$addOnId}]" value="{$install.version_id}">
						{$install.title} <span class="u-muted">{$install.version_string}</span>
					</xf:option>
				</xf:foreach>
			</xf:checkboxrow>
			<xf:if is="$upgradeCheck.license_agreement_required">
				<xf:checkboxrow rowtype="" standalone="true">
					<xf:option name="agree" required="required">{{ phrase('install_xf_addon_terms_confirm') }}</xf:option>
					<xf:explain>{{ phrase('xf_addon_license_agreement_last_updated_x', {'last_agreement_update': $upgradeCheck.last_agreement_update}) }}</xf:explain>
				</xf:checkboxrow>
			</xf:if>
		</div>
		<xf:submitrow icon="download" submit="{{ phrase('download_and_install...') }}"/>
	</div>
</xf:form>]]></template>
  <template type="admin" title="tools_rebuild" version_id="2030170" version_string="2.3.1"><![CDATA[<xf:title>{{ phrase('rebuild_caches') }}</xf:title>

<xf:if is="$success">
	<div class="blockMessage blockMessage--success blockMessage--iconic">{{ phrase('cache_rebuilt_successfully') }}</div>
</xf:if>

<xf:if is="$hasStoppedManualJobs">
	<div class="blockMessage blockMessage--important blockMessage--iconic">
		{{ phrase('there_manual_rebuild_jobs_awaiting_completion_continue_running', {'link': link('tools/run-job')}) }}
	</div>
</xf:if>

<!--[XF:rebuild_top]-->

<xf:set var="$searchBody">
	<xf:selectrow name="options[type]"
		label="{{ phrase('content_type') }}">

		<xf:option>{{ phrase('(all)') }}</xf:option>
		<xf:options source="{{ $xf.app.getContentTypePhrases(true, 'search_handler_class') }}" />
	</xf:selectrow>

	<xf:checkboxrow>
		<xf:option name="options[truncate]">{{ phrase('delete_index_before_rebuilding') }}</xf:option>
	</xf:checkboxrow>

	<xf:numberboxrow name="options[batch]" value="500" min="1"
		label="{{ phrase('items_to_process_per_page') }}" />
</xf:set>
<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_search_index') }}"
	arg-body="{$searchBody}"
	arg-job="XF:SearchRebuild" />
<!--[XF:after_search]-->

<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_icon_usage') }}"
	arg-job="XF:IconUsage" />
<!--[XF:after_icon_usage]-->

<xf:set var="$threadBody">
	<xf:checkboxrow>
		<xf:option name="options[position_rebuild]" value="1"
			label="{{ phrase('rebuild_position_and_post_counters') }}"
			hint="{{ phrase('will_slow_process_down_only_needed_if_posts_in_incorrect_order') }}" />
	</xf:checkboxrow>
</xf:set>
<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_threads') }}"
	arg-body="{$threadBody}"
	arg-job="XF:Thread" />
<!--[XF:after_thread]-->

<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_forums') }}"
	arg-job="XF:Forum" />
<!--[XF:after_forums]-->

<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_user_caches') }}"
	arg-job="XF:User" />
<!--[XF:after_users]-->

<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_user_group_promotions') }}"
	arg-job="XF:UserGroupPromotion" />
<!--[XF:after_promotions]-->

<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_trophies') }}"
	arg-job="XF:Trophy" />
<!--[XF:after_trophies]-->

<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_reaction_score') }}"
	arg-job="XF:ReactionScore" />
<!--[XF:after_reactions]-->

<xf:set var="$likesContentTypes" value="{$xf.app.getContentTypePhrases(true, 'like_handler_class')}" />
<xf:if is="$likesContentTypes">
	<xf:set var="$likesCountedBody">
		<xf:selectrow name="options[type]"
			label="{{ phrase('content_type') }}">

			<xf:options source="{$likesContentTypes}" />
		</xf:selectrow>
	</xf:set>
	<xf:macro id="rebuild_job"
		arg-header="{{ phrase('rebuild_likes_counted_status') }}"
		arg-body="{$likesCountedBody}"
		arg-job="XF:LikeIsCounted" />
</xf:if>
<!--[XF:after_like_status]-->

<xf:set var="$reactionsCountedBody">
	<xf:selectrow name="options[type]"
		label="{{ phrase('content_type') }}">

		<xf:options source="{{ $xf.app.getContentTypePhrases(true, 'reaction_handler_class') }}" />
	</xf:selectrow>
</xf:set>
<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_reactions_counted_status') }}"
	arg-body="{$reactionsCountedBody}"
	arg-job="XF:ReactionIsCounted" />
<!--[XF:after_reaction_status]-->

<xf:macro id="rebuild_job"
	arg-header="{{ phrase('optimize_attachments') }}"
	arg-job="XF:AttachmentOptimization" />
<!--[XF:after_optimize_attachments]-->

<xf:macro id="rebuild_job"
	arg-header="{{ phrase('optimize_avatars') }}"
	arg-job="XF:AvatarOptimization" />
<!--[XF:after_optimize_avatars]-->

<xf:macro id="rebuild_job"
	arg-header="{{ phrase('optimize_profile_banners') }}"
	arg-job="XF:ProfileBannerOptimization" />
<!--[XF:after_optimize_profile_banners]-->

<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_attachment_thumbnails') }}"
	arg-job="XF:AttachmentThumb" />
<!--[XF:after_thumbnails]-->

<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_direct_messages') }}"
	arg-job="XF:Conversation" />
<!--[XF:after_conversations]-->

<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_profile_posts') }}"
	arg-job="XF:ProfilePost" />
<!--[XF:after_profile_posts]-->

<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_poll_information') }}"
	arg-job="XF:Poll" />
<!--[XF:after_polls]-->

<xf:set var="$statsBody">
	<xf:numberboxrow name="options[batch]" value="28" min="1"
		label="{{ phrase('days_to_process_per_page') }}" />

	<xf:checkboxrow>
		<xf:option name="options[delete]" value="1"
			label="{{ phrase('delete_existing_cached_data') }}"
			hint="{{ phrase('some_data_can_not_be_rebuilt') }}" />
	</xf:checkboxrow>
</xf:set>
<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_daily_statistics') }}"
	arg-body="{$statsBody}"
	arg-job="XF:Stats" />
<!--[XF:after_stats]-->

<xf:form action="{{ link('tools/clean-up-permissions') }}" class="block">
	<div class="block-container">
		<h2 class="block-header">{{ phrase('clean_up_permissions') }}</h2>
		<div class="block-body">
			<xf:inforow>{{ phrase('this_will_clean_up_permission_combinations_no_longer_in_use') }}</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('run') }}" />
	</div>
</xf:form>
<!--[XF:after_permissions]-->

<xf:set var="$postMdBody">
	<xf:checkboxrow name="options[types]" listclass="listColumns">
		<xf:option value="quotes"
			label="{{ phrase('quotes') }}"
			selected="true" />
		<xf:option value="attachments"
			label="{{ phrase('attachments') }}"
			selected="true" />
		<xf:option value="embeds"
			label="{{ phrase('content_embeds') }}"
			selected="true" />
		<xf:option value="images"
			label="{{ phrase('images') }}"
			selected="true" />
	</xf:checkboxrow>
</xf:set>
<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_post_embed_metadata') }}"
	arg-body="{$postMdBody}"
	arg-job="XF:PostEmbedMetadata" />

<xf:set var="$conversationMdBody">
	<xf:checkboxrow name="options[types]" listclass="listColumns">
		<xf:option value="quotes"
			label="{{ phrase('quotes') }}"
			selected="true" />
		<xf:option value="attachments"
			label="{{ phrase('attachments') }}"
			selected="true" />
		<xf:option value="embeds"
			label="{{ phrase('content_embeds') }}"
			selected="true" />
		<xf:option value="images"
			label="{{ phrase('images') }}"
			selected="true" />
	</xf:checkboxrow>
</xf:set>
<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_direct_message_embed_metadata') }}"
	arg-body="{$conversationMdBody}"
	arg-job="XF:ConversationEmbedMetadata" />

<xf:set var="$profilePostMdBody">
	<xf:checkboxrow name="options[types]" listclass="listColumns">
		<xf:option value="quotes"
			label="{{ phrase('quotes') }}"
			selected="true" />
		<xf:option value="attachments"
			label="{{ phrase('attachments') }}"
			selected="true" />
		<xf:option value="embeds"
			label="{{ phrase('content_embeds') }}"
			selected="true" />
		<xf:option value="images"
			label="{{ phrase('images') }}"
			selected="true" />
	</xf:checkboxrow>
</xf:set>
<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_profile_post_embed_metadata') }}"
	arg-body="{$profilePostMdBody}"
	arg-job="XF:ProfilePostEmbedMetadata" />

<xf:set var="$profilePostCommentMdBody">
	<xf:checkboxrow name="options[types]" listclass="listColumns">
		<xf:option value="quotes"
			label="{{ phrase('quotes') }}"
			selected="true" />
		<xf:option value="attachments"
			label="{{ phrase('attachments') }}"
			selected="true" />
		<xf:option value="embeds"
			label="{{ phrase('content_embeds') }}"
			selected="true" />
		<xf:option value="images"
			label="{{ phrase('images') }}"
			selected="true" />
	</xf:checkboxrow>
</xf:set>
<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_profile_post_comment_embed_metadata') }}"
	arg-body="{$profilePostCommentMdBody}"
	arg-job="XF:ProfilePostCommentEmbedMetadata" />
<!--[XF:after_metadata]-->

<xf:set var="$sitemapBody">
	<xf:inforow>{{ phrase('sitemap_contents_can_be_controlled_via_sitemap_options') }}</xf:inforow>
</xf:set>
<xf:macro id="rebuild_job"
	arg-header="{{ phrase('rebuild_sitemap') }}"
	arg-body="{$sitemapBody}"
	arg-job="XF:Sitemap" />
<!--[XF:after_sitemap]-->

<xf:set var="$gravatarBody">
	<xf:checkboxrow>
		<xf:option name="options[posters_only]" selected="1" label="{{ phrase('limit_to_users_who_have_posted') }}" />
		<xf:option name="options[import_table]" label="{{ phrase('limit_to_imported_users_logged_in_this_table:') }}">
			<xf:textbox name="options[import_table_name]" />
		</xf:option>
		<xf:explain>{{ phrase('fetch_gravatars_job_explain') }}</xf:explain>
	</xf:checkboxrow>
</xf:set>
<xf:macro id="rebuild_job"
	arg-header="{{ phrase('fetch_gravatars_for_users_with_no_avatar') }}"
	arg-body="{$gravatarBody}"
	arg-job="XF:Gravatar" />

<!--[XF:rebuild_bottom]-->

<xf:macro id="rebuild_job" arg-header="!" arg-body="" arg-submit="{{ phrase('rebuild_now') }}" arg-job="!">
	<span class="u-anchorTarget" id="job-{{ $job|replace(':', '-')|to_lower }}"></span>
	<xf:form action="{{ link('tools/rebuild') }}" class="block">
		<div class="block-container">
			<h2 class="block-header">{$header|raw}</h2>
			<xf:if is="$body"><div class="block-body">{$body|raw}</div></xf:if>
			<xf:submitrow submit="{$submit}" />
		</div>
		<xf:hiddenval name="job">{$job}</xf:hiddenval>
	</xf:form>
</xf:macro>]]></template>
  <template type="admin" title="tools_run_job" version_id="2000170" version_string="2.0.1"><![CDATA[<xf:title>{{ phrase('processing...') }}</xf:title>
<xf:page option="template">PAGE_RUN_JOB</xf:page>

<xf:if is="$canCancel">
	<xf:pageaction>
		<form action="{{ link('tools/run-job', null, {'cancel': $jobId}) }}" method="post" onsubmit="window.stop()" class="u-pullRight">
			<xf:button type="submit">{{ phrase('button.cancel') }}</xf:button>
			{{ redirect_input(null, null, false) }}
			<xf:csrf />
		</form>
	</xf:pageaction>
</xf:if>

<form action="{{ link('tools/run-job') }}" method="post" class="blockMessage" data-xf-init="auto-submit">

	<div><xf:if is="$status">{$status}<xf:else />{{ phrase('processing...') }}</xf:if></div>

	<div class="u-noJsOnly">
		<xf:button type="submit">{{ phrase('proceed...') }}</xf:button>
	</div>
	{{ redirect_input(null, null, false) }}
	<xf:csrf />
	<xf:hiddenval name="only_ids">{$onlyIds|join(',')}</xf:hiddenval>
</form>]]></template>
  <template type="admin" title="tools_test_image_proxy" version_id="2000033" version_string="2.0.0 Beta 3"><![CDATA[<xf:title>{{ phrase('test_image_proxy') }}</xf:title>
<xf:description>{{ phrase('tool_helps_diagnose_errors_relating_to_image_proxy_system') }}</xf:description>

<xf:if is="$results">
	<xf:if is="$results.valid">
		<div class="blockMessage blockMessage--success blockMessage--iconic">{{ phrase('url_x_was_fetched_successfully', {'url': $url}) }}</div>
	<xf:else />
		<div class="blockMessage blockMessage--error blockMessage--iconic">
			{{ phrase('url_x_could_not_be_fetched_or_is_not_valid_image_error_y', {'url': $url, 'error': $results.error}) }}
		</div>
	</xf:if>
</xf:if>

<xf:form action="{{ link('tools/test-image-proxy') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="url" value="{$url}" type="url"
				label="{{ phrase('url') }}"
				dir="ltr" />
		</div>
		<xf:submitrow submit="{{ phrase('run_test') }}" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="tools_test_mail" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('test_outbound_email') }}</xf:title>
<xf:description>{{ phrase('use_this_tool_to_diagnose_outbound_mail_transport_issues') }}</xf:description>

<xf:if is="$result">
	<xf:if is="$result.sent is not empty">
		<div class="blockMessage blockMessage--success">
			{{ phrase('email_was_sent_successfully_with_no_errors') }}
			<xf:if is="$transportClass == 'Symfony\Component\Mailer\Transport\SendmailTransport'">
				{{ phrase('note_error_tracking_limited_with_sendmail_check_email_log') }}
			</xf:if>
		</div>
	<xf:else />
		<div class="blockMessage blockMessage--error">
			{{ phrase('errors_were_encountered_while_trying_to_send_email') }}
		</div>
	</xf:if>
	<xf:if is="$result.log">
		<div class="block">
			<div class="block-container">
				<h3 class="block-formSectionHeader">
					<span class="collapseTrigger collapseTrigger--block" data-xf-click="toggle" data-target="< :up:next">
						{{ phrase('expand_log_details') }}
					</span>
				</h3>
				<div class="block-body block-body--contained block-body--collapsible" tabindex="-1">
					<div class="block-row">
						<pre>{$result.log}</pre>
					</div>
				</div>
			</div>
		</div>
	</xf:if>
</xf:if>

<xf:form action="{{ link('tools/test-email') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="email" value="{$email}" type="email"
				label="{{ phrase('email') }}"
				dir="ltr" />

			<xf:formrow label="{{ phrase('email_transport_class') }}">
				<code>\{$transportClass}<xf:if is="$transportExtra"> ({$transportExtra})</xf:if></code>
			</xf:formrow>
		</div>
		<xf:submitrow submit="{{ phrase('run_test') }}" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="tools_test_url_unfurling" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('test_url_unfurling') }}</xf:title>
<xf:description>{{ phrase('this_tool_helps_diagnose_errors_relating_to_url_unfurl_system') }}</xf:description>

<xf:if is="$error">
	<div class="blockMessage blockMessage--error">
		{{ phrase('following_error_occurred_while_fetching_metadata_from_url_x', {'url': $url}) }}<br />
		<pre class="u-preWrap">{$error}</pre>
	</div>
</xf:if>

<xf:form action="{{ link('tools/test-url-unfurling') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="url" type="url"
				label="{{ phrase('url') }}" value="{$url}" />
		</div>
		<xf:submitrow submit="{{ phrase('run_test') }}" />
	</div>
</xf:form>

<xf:if contentcheck="true">
	<div class="block">
		<div class="block-container">
		<xf:contentcheck>
			<xf:if is="$results">
				<h2 class="block-header">{{ phrase('results') }}</h2>
				<div class="block-body">
					<xf:formrow label="{{ phrase('title') }}">
						{{ $results.title ?: phrase('n_a') }}
					</xf:formrow>

					<xf:formrow label="{{ phrase('description') }}">
						{{ $results.description ?: phrase('n_a') }}
					</xf:formrow>

					<xf:formrow label="{{ phrase('image') }}">
						<xf:if is="$results.image_url">
							<img src="{$results.image_url}" style="width: 100px" />
							<div class="formRow-explain">
								{{ phrase('url:') }} <a href="{$results.image_url}" target="_blank">{$results.image_url}</a>
							</div>
						<xf:else />
							{{ phrase('n_a') }}
						</xf:if>
					</xf:formrow>

					<xf:formrow label="{{ phrase('icon') }}">
						<xf:if is="$results.favicon_url">
							<img src="{$results.favicon_url}" style="width: 32px" />
							<div class="formRow-explain">
								{{ phrase('url:') }} <a href="{$results.favicon_url}" target="_blank">{$results.favicon_url}</a>
							</div>
						<xf:else />
							{{ phrase('n_a') }}
						</xf:if>
					</xf:formrow>
				</div>
			</xf:if>

			<xf:if is="$body">
				<xf:if is="$results">
					<h2 class="block-minorHeader">
						<span class="collapseTrigger collapseTrigger--block" data-xf-click="toggle" data-target="< :up :next">
							{{ phrase('raw_response') }}
						</span>
					</h2>
				<xf:else />
					<h2 class="block-header">{{ phrase('raw_response') }}</h2>
				</xf:if>
				<div class="block-body {{ $results ? 'block-body--collapsible' : '' }}">
					<xf:macro id="public:prism_macros::setup" />

					<xf:formrow label="{{ phrase('code_language.html') }}" rowtype="fullWidth noLabel">
						{{ phrase('following_html_is_what_was_fetched_within_default_time_and_size') }}

						<div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code">
							<div class="bbCodeBlock-content" dir="ltr">
								<pre class="bbCodeCode" dir="ltr"><code>{$body}</code></pre>
							</div>
						</div>
					</xf:formrow>
				</div>
			</xf:if>
		</xf:contentcheck>
		</div>
	</div>
</xf:if>
]]></template>
  <template type="admin" title="tools_transmogrifer" version_id="2000170" version_string="2.0.1"><![CDATA[<xf:title>{{ phrase('transmogrification_reset_control') }}</xf:title>

<xf:css>
	.transmogrifier
	{
		border: none;
		padding: 10px 0;
		width: 310px;
		margin: 30px auto;

		background-color: yellow;
		background-image: repeating-linear-gradient(-45deg, transparent, transparent 15px, rgb(0,0,0) 15px, rgb(0,0,0) 30px);
	}

	.transmogrifier div
	{
		padding: 20px 0;
		background-color: #f0f0f0;
		border: 1px solid black;
		width: 280px;
		text-align: center;
		margin: auto;
	}

	.transmogrifier button
	{
		width: 240px;
		background-color: white;
		border: 2px outset black;
		color: red;
		font-size: 12pt;
		font-weight: bold;
		text-transform: uppercase;
		padding: 10px;
		box-shadow: 2px 2px 10px 0px rgba(0,0,0,0.5);
	}

	.transmogrifier button:active
	{
		background-color: #ffff33;
		-webkit-box-shadow: 0 0 0 0 transparent;
		-moz-box-shadow: 0 0 0 0 transparent;
		-khtml-box-shadow: 0 0 0 0 transparent;
		box-shadow: 0 0 0 0 transparent;
		text-shadow: 0 0 0 transparent, 0 0 10px white;
	}

	.transmogrifier button:hover
	{
		background-color: #ffff77;
	}
</xf:css>

<xf:form action="{{ link('tools/transmogrifier-reset') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('you_sure_you_want_to_issue_transmogrification_reset_imperative') }}
				<div class="transmogrifier">
					<div><xf:button type="submit" icon="confirm">{{ phrase('reset_transmogrifier') }}</xf:button></div>
				</div>
			</xf:inforow>
		</div>
	</div>
</xf:form>]]></template>
  <template type="admin" title="tools_transmogrifer_reset" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('transmogrification_reset_successful') }}</xf:title>

<div class="blockMessage blockMessage--success blockMessage--iconic" style="text-align: center">
	{{ phrase('transmogrification_reset_imperative_was_generated_and_executed') }}
	<div>
		<dl class="pairs pairs--inline">
			<dt>{{ phrase('transmogrification_count') }}</dt>
			<dd>{$count|number}</dd>
		</dl>
	</div>
</div>]]></template>
  <template type="admin" title="tools_upgrade_check" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('upgrade_check') }}</xf:title>

<xf:if is="$failed">
	<div class="blockMessage blockMessage--error">
		{{ phrase('last_upgrade_check_failed_see_log') }}
	</div>
</xf:if>

<xf:if is="$upgradeCheck">
	<xf:macro id="upgrade_check_macros::full_status"
		arg-upgradeCheck="{$upgradeCheck}"
		arg-showSuccess="{{ true }}"
	/>
</xf:if>

<xf:form action="{{ link('tools/upgrade-check') }}" class="block">
	<div class="block-container">
		<div class="block-body block-row">
			<xf:inforow rowtype="close">
				<xf:if is="$upgradeCheck.check_date">
					{{ phrase('last_upgrade_check_x', {'date': date_dynamic($upgradeCheck.check_date)}) }}
				<xf:else />
					{{ phrase('no_upgrade_check_has_been_performed') }}
				</xf:if>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('check_now...') }}" rowtype="simple" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="tools_upgrade_xf" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('upgrade_xenforo:') }} {$availableUpdate.version_string}</xf:title>

<div class="blocks">

<div class="blockMessage blockMessage--important">
	<b>{{ phrase('note:') }}</b>
	{{ phrase('strongly_recommended_backup_database_and_files') }}
</div>

<xf:form action="{{ link('tools/upgrade-xf') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<div class="block-row">
				{{ phrase('xenforo_version_x_available_for_installation', {'version': $availableUpdate.version_string}) }}
				<xf:if is="$availableUpdate.significant_upgrade">
					<br />
					<br />
					{{ phrase('xf_one_click_upgrade_significant_explain') }}
				</xf:if>

				<br />
				<br />
				{{ phrase('one_click_upgrade_explain') }}
			</div>

			<xf:if is="$upgradeCheck.license_agreement_required">
				<xf:checkboxrow rowtype="fullWidth noLabel" standalone="true">
					<xf:option name="agree" required="required">{{ phrase('install_xf_addon_terms_confirm') }}</xf:option>
					<xf:explain>{{ phrase('xf_addon_license_agreement_last_updated_x', {'last_agreement_update': $upgradeCheck.last_agreement_update}) }}</xf:explain>
				</xf:checkboxrow>
			</xf:if>
		</div>
		<xf:submitrow icon="download" submit="{{ phrase('download_and_upgrade...') }}" rowtype="simple"/>
	</div>
	<xf:hiddenval name="confirm_version_id" value="{$availableUpdate.version_id}" />
	<xf:if is="$useLatest">
		<xf:hiddenval name="latest">1</xf:hiddenval>
	</xf:if>
</xf:form>

<xf:if is="$alternativeVersion">
	<div class="blocks-textJoiner"><span></span><em>{{ phrase('or_separator') }}</em><span></span></div>

	<div class="block">
		<div class="block-container">
			<h2 class="block-minorHeader">{{ phrase('alternative_upgrade_xenforo_x', {'version': $alternativeVersion.version_string}) }}</h2>
			<div class="block-body block-row">
				{{ phrase('xenforo_version_x_available_for_installation', {'version': $alternativeVersion.version_string}) }}
				<br />
				<br />
				{{ phrase('xf_one_click_upgrade_significant_explain') }}
			</div>
			<xf:submitrow rowtype="simple"><xf:html>
				<xf:button href="{{ link('tools/upgrade-xf', null, {'latest': 1}) }}" class="button--primary">{{ phrase('upgrade_to_x...', {'version': $alternativeVersion.version_string}) }}</xf:button>
			</xf:html></xf:submitrow>
		</div>
	</div>
</xf:if>

</div>]]></template>
  <template type="admin" title="tools_upgrade_xf_addon" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('upgrade_official_xenforo_add_ons') }}</xf:title>

<div class="blockMessage blockMessage--important">
	<b>{{ phrase('note:') }}</b>
	{{ phrase('strongly_recommended_backup_database_and_files') }}
</div>

<xf:form action="{{ link('tools/upgrade-xf-add-on') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow>
				{{ phrase('updates_available_official_xenforo_add_on_explain') }}
			</xf:inforow>
			<xf:checkboxrow label="{{ phrase('available_add_on_upgrades') }}" rowtype="">
				<xf:foreach loop="$availableUpdates" key="$addOnId" value="$availableUpdate">
					<xf:option name="confirm_updates[{$addOnId}]" value="{$availableUpdate.version_id}">
						{$addOns.{$addOnId}.title} <span class="u-muted">{$availableUpdate.version_string}</span>
					</xf:option>
				</xf:foreach>
			</xf:checkboxrow>
			<xf:if is="$upgradeCheck.license_agreement_required">
				<xf:checkboxrow rowtype="" standalone="true">
					<xf:option name="agree" required="required">{{ phrase('install_xf_addon_terms_confirm') }}</xf:option>
					<xf:explain>{{ phrase('xf_addon_license_agreement_last_updated_x', {'last_agreement_update': $upgradeCheck.last_agreement_update}) }}</xf:explain>
				</xf:checkboxrow>
			</xf:if>
		</div>
		<xf:submitrow icon="download" submit="{{ phrase('download_and_upgrade...') }}"/>
	</div>
</xf:form>]]></template>
  <template type="admin" title="tools_upgrade_xf_redirect" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:title>{{ phrase('upgrade_xenforo') }}</xf:title>

<form action="{$upgraderUrl}" method="post" class="blockMessage" data-xf-init="auto-submit">

	<div>{{ phrase('starting_upgrade...') }}</div>

	<div class="u-noJsOnly">
		<xf:button type="submit">{{ phrase('proceed...') }}</xf:button>
	</div>

	<xf:csrf />
	<xf:hiddenval name="key" value="{$upgradeKey}" />
</form>]]></template>
  <template type="admin" title="trophy_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$trophy.isInsert()">
	<xf:title>{{ phrase('add_trophy') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_trophy:') }} {$trophy.title}</xf:title>
</xf:if>

<xf:pageaction if="$trophy.isUpdate()">
	<xf:button href="{{ link('trophies/delete', $trophy) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('trophies/save', $trophy) }}" ajax="true" class="block">
	<div class="block-container">
		<h2 class="block-tabHeader tabs hScroller" data-xf-init="h-scroller tabs" role="tablist">
			<span class="hScroller-scroll">
				<a class="tabs-tab is-active" role="tab" tabindex="0" aria-controls="trophy-options">{{ phrase('trophy_options') }}</a>
				<xf:macro id="helper_criteria::user_tabs" arg-userTabTitle="{{ phrase('award_this_trophy_if') }}" />
			</span>
		</h2>

		<ul class="block-body tabPanes">
			<li class="is-active" role="tabpanel" id="trophy-options">
				<xf:textboxrow name="title" value="{$trophy}"
					label="{{ phrase('title') }}"/>

				<xf:numberboxrow name="trophy_points" value="{$trophy}"
					label="{{ phrase('trophy_points') }}"
					explain="{{ phrase('points_can_be_used_track_progression_and_change_title') }}" />

				<xf:textarearow name="description" value="{$trophy}" autosize="true"
					label="{{ phrase('description') }}"
					hint="{{ phrase('you_may_use_html') }}"
					explain="{{ phrase('optionally_describe_trophy_and_criteria_user_needs_to_award') }}" />
			</li>

			<xf:macro id="helper_criteria::user_panes"
				arg-criteria="{{ $userCriteria.getCriteriaForTemplate() }}"
				arg-data="{{ $userCriteria.getExtraTemplateData() }}" />
		</ul>

		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="trophy_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('trophies') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('trophies/add') }}" icon="add">{{ phrase('add_trophy') }}</xf:button>
</xf:pageaction>

<xf:if is="$trophies is not empty">
	<div class="block">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="trophies" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$trophies" value="$trophy">
						<xf:datarow
							label="{$trophy.title}"
							hint="{{ phrase('points:') }} {$trophy.trophy_points}"
							href="{{ link('trophies/edit', $trophy) }}"
							delete="{{ link('trophies/delete', $trophy) }}" />
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($trophies) }}</span>
			</div>
		</div>
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_trophies_have_been_created_yet') }}</div>
</xf:if>

<xf:macro id="option_macros::option_form_block" arg-options="{$options}" />]]></template>
  <template type="admin" title="two_step_config_authy" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:textboxrow name="options[authy_api_key]" label="{{ phrase('authy_api_key') }}" value="{$provider.options.authy_api_key}">
	<xf:explain>{{ phrase('authy_api_key_explain') }}</xf:explain>
</xf:textboxrow>]]></template>
  <template type="admin" title="two_step_provider_edit" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:title>{{ phrase('edit_provider:') }} {$provider.title}</xf:title>

<xf:if is="{{ $provider.isDeprecated() }}">
	<div class="blockMessage blockMessage--error blockMessage--iconic">
		{{ phrase('two_step_provider_is_deprecated_admin') }}
	</div>
</xf:if>

<xf:if is="{{ !$provider.canEdit() }}">
	<div class="blockMessage blockMessage--important blockMessage--iconic">
		{{ phrase('only_limited_fields_in_item_may_be_edited') }}
	</div>
</xf:if>

<xf:form action="{{ link('two-step/save', $provider) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('provider_id') }}">
				{$provider.provider_id}
			</xf:formrow>

			<xf:formrow label="{{ phrase('provider_class') }}">
				{$provider.provider_class}
			</xf:formrow>

			<xf:formrow label="{{ phrase('title') }}">
				{$provider.title}
			</xf:formrow>

			<xf:formrow label="{{ phrase('description') }}">
				{$provider.description}
			</xf:formrow>

			<xf:macro id="display_order_macros::row"
				arg-name="priority" arg-value="{$provider}" />

			<xf:if contentcheck="true">
				<hr class="formRowSep" />
				<xf:contentcheck>
					{$provider.renderOptions()|raw}
				</xf:contentcheck>
			</xf:if>
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="two_step_provider_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('two_step_verification_providers') }}</xf:title>

<xf:form action="{{ link('two-step/toggle') }}" class="block" ajax="true">
	<div class="block-outer">
		<xf:macro id="filter_macros::quick_filter" arg-key="two-step" arg-class="block-outer-opposite" />
	</div>
	<div class="block-container">
		<xf:if is="$activeProviders is not empty">
			<div class="block-body">
				<xf:datalist>
					<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
						<xf:cell>{{ phrase('active_providers') }}</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$activeProviders" value="$provider">
						<xf:datarow label="{$provider.title}" href="{{ link('two-step/edit', $provider) }}" />
					</xf:foreach>
				</xf:datalist>
			</div>
		</xf:if>

		<xf:if is="$inactiveProviders is not empty">
			<div class="block-body">
				<xf:datalist>
					<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
						<xf:cell>{{ phrase('inactive_providers') }}</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$inactiveProviders" value="$provider">
						<xf:datarow label="{$provider.title}" href="{{ link('two-step/edit', $provider) }}" />
					</xf:foreach>
				</xf:datalist>
			</div>
		</xf:if>
		<div class="block-footer">
			<span class="block-footer-counter">{{ display_totals(count($activeProviders) + count($inactiveProviders)) }}</span>
		</div>
	</div>
</xf:form>]]></template>
  <template type="admin" title="upgrade_check_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="serious_errors" arg-upgradeCheck="!">
	<xf:if contentcheck="true">
		<div class="blockMessage blockMessage--error blockMessage--iconic">
			{{ phrase('upgrade_check_errors_must_be_resolved', {'link': link('tools/upgrade-check')}) }}
			<ul>
			<xf:contentcheck>
				<xf:if is="$upgradeCheck.error_code">
					<li>{$upgradeCheck.error_message}</li>
				<xf:else />
					<xf:if is="!$upgradeCheck.branding_valid">
						<li>{{ phrase('default_copyright_notice_branding_has_been_removed') }}</li>
					</xf:if>
					<xf:foreach loop="$upgradeCheck.invalid_add_ons" key="$addOnId" value="$reason">
						<xf:if is="$reason == 'using_newer'">
							<li>{{ phrase('running_version_of_x_which_is_newer_than_permitted', {'title':
								{$upgradeCheck.RelevantAddOns.{$addOnId}.title}}) }}
							</li>
						<xf:elseif is="$reason == 'no_license'" />
							<li>{{ phrase('running_x_which_not_permitted', {'title':
								{$upgradeCheck.RelevantAddOns.{$addOnId}.title}}) }}
							</li>
						</xf:if>
					</xf:foreach>
				</xf:if>
			</xf:contentcheck>
			</ul>
		</div>
	</xf:if>
</xf:macro>

<xf:macro id="warnings" arg-upgradeCheck="!">
	<xf:if is="!$upgradeCheck.hasLicenseErrors()">
		<xf:if contentcheck="true">
			<div class="blockMessage blockMessage--warning blockMessage--iconic">
				{{ phrase('upgrade_check_warnings_should_be_resolved', {'link': link('tools/upgrade-check')}) }}
				<ul>
				<xf:contentcheck>
					<xf:if is="!$upgradeCheck.board_url_valid">
						<li>{{ phrase('board_url_option_not_match_license_url', {'link':
							link('options/groups/basicBoard/') . '#boardUrl'}) }}
						</li>
					</xf:if>
					<xf:if is="$upgradeCheck.license_expired">
						<li>{{ phrase('your_license_has_now_expired_explain') }}</li>
					</xf:if>
				</xf:contentcheck>
				</ul>
			</div>
		</xf:if>
	</xf:if>
</xf:macro>

<xf:macro id="updates" arg-upgradeCheck="!">
	<xf:if is="$xf.visitor.hasAdminPermission('upgradeXenForo') AND $upgradeCheck.available_updates AND !$upgradeCheck.hasLicenseErrors()">
		<xf:if contentcheck="true">
			<div class="blockMessage blockMessage--highlight blockMessage--iconic">
				<xf:contentcheck>
					<xf:if is="$upgradeCheck.hasAvailableUpdate('XF')">
						{{ phrase('xenforo_x_is_now_available', {'version': $upgradeCheck.available_updates.XF.version_string}) }}
						<div style="margin-top: .5em">
							<xf:button href="{{ link('tools/upgrade-xf') }}" class="button--link">{{ phrase('upgrade_now') }}
							</xf:button>
						</div>
					<xf:elseif is="$upgradeCheck.hasAvailableAddOnUpdate()" />
						{{ phrase('following_updates_official_add_ons_now_available') }}
						<ul class="listInline listInline--comma listInline--selfInline">
							<xf:foreach loop="$upgradeCheck.available_updates" key="$addOnId" value="$update" if="$upgradeCheck.hasAvailableUpdate($addOnId)">
								<li>{$upgradeCheck.RelevantAddOns.{$addOnId}.title} {$update.version_string}</li>
							</xf:foreach>
						</ul>
						<div style="margin-top: .5em">
							<xf:button href="{{ link('tools/upgrade-xf-add-on') }}" class="button--link">
								{{ phrase('upgrade_now') }}
							</xf:button>
						</div>
					</xf:if>
				</xf:contentcheck>
			</div>
		</xf:if>
	</xf:if>
</xf:macro>

<xf:macro id="installable_add_ons" arg-upgradeCheck="!">
	<xf:if is="$xf.visitor.hasAdminPermission('upgradeXenForo') AND $upgradeCheck.installable_add_ons AND !$upgradeCheck.hasLicenseErrors()">
		<xf:if contentcheck="true">
			<div class="blockMessage blockMessage--highlight blockMessage--iconic">
				<xf:contentcheck>
					<xf:if is="$upgradeCheck.installable_add_ons">
						{{ phrase('following_official_add_ons_now_available_to_install') }}
						<ul class="listInline listInline--comma listInline--selfInline">
							<xf:foreach loop="$upgradeCheck.installable_add_ons" key="$addOnId" value="$install">
								<li>{$install.title} {$install.version_string}</li>
							</xf:foreach>
						</ul>
						<div style="margin-top: .5em">
							<xf:button href="{{ link('tools/install-xf-add-on') }}" class="button--link">
								{{ phrase('install_now') }}
							</xf:button>
						</div>
					</xf:if>
				</xf:contentcheck>
			</div>
		</xf:if>
	</xf:if>
</xf:macro>

<xf:macro id="full_status"
	arg-upgradeCheck="!"
	arg-showSeriousErrors="{{ false }}"
	arg-showWarnings="{{ true }}"
	arg-showUpdates="{{ true }}"
	arg-showInstalls="{{ false }}"
	arg-showSuccess="{{ false }}">

	<xf:if is="$showSeriousErrors">
		<xf:macro id="serious_errors" arg-upgradeCheck="{$upgradeCheck}" />
	</xf:if>
	<xf:if is="$showWarnings">
		<xf:macro id="warnings" arg-upgradeCheck="{$upgradeCheck}" />
	</xf:if>
	<xf:if is="$showUpdates">
		<xf:macro id="updates" arg-upgradeCheck="{$upgradeCheck}" />
	</xf:if>
	<xf:if is="$showInstalls">
		<xf:macro id="installs" arg-upgradeCheck="{$upgradeCheck}" />
	</xf:if>

	<xf:if is="$showSuccess AND !$upgradeCheck.hasNotice()">
		<div class="blockMessage blockMessage--success">
			{{ phrase('version_of_xenforo_and_official_add_ons_fully_up_to_date_no_issues') }}
		</div>
	</xf:if>
</xf:macro>]]></template>
  <template type="admin" title="user_alert" version_id="2000036" version_string="2.0.0 Beta 6"><![CDATA[<xf:title>{{ phrase('alert_users') }}</xf:title>
<xf:description>{{ phrase('alert_users_description') }}</xf:description>

<xf:if is="$sent">
	<div class="blockMessage blockMessage--success blockMessage--iconic">
		{{ phrase('your_alert_was_sent_to_x_users', {'sent': $sent|number}) }}
	</div>
</xf:if>

<xf:form action="{{ link('users/alert/confirm') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="from_user" value="{$xf.visitor.username}" ac="single"
				label="{{ phrase('from_user') }}"
				explain="{{ phrase('from_user_explain') }}" />

			<hr class="formRowSep" />

			<xf:textboxrow name="link_url" type="url"
				label="{{ phrase('link_url') }}"
				dir="ltr" />

			<xf:textboxrow name="link_title"
				label="{{ phrase('link_title') }}"
				explain="{{ phrase('link_title_explain') }}" />

			<xf:codeeditorrow name="alert_body"
				mode="html" data-line-wrapping="true"
				class="codeEditor--autoSize codeEditor--proportional"
				label="{{ phrase('alert_body') }}"
				hint="{{ phrase('you_may_use_html') }}"
				explain="{{ phrase('following_placeholders_will_be_replaced_in_message') }} {{ phrase('you_may_also_use_phrase_title_which_will_be_replaced') }}" />
		</div>

		<h2 class="block-formSectionHeader"><span class="block-formSectionHeader-aligner">{{ phrase('user_criteria') }}</span></h2>
		<div class="block-body">
			<xf:include template="helper_user_search_criteria" />
		</div>

		<xf:submitrow submit="{{ phrase('proceed...') }}" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="user_alert_confirm" version_id="2000170" version_string="2.0.1"><![CDATA[<xf:title>{{ phrase('confirm_sending_alert') }}</xf:title>

<xf:form action="{{ link('users/alert/send') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('number_of_users_matching_criteria') }}">
				{$total|number}
				<span role="presentation" aria-hidden="true">&middot;</span>
				<a href="{{ link('users/list', null, {'criteria': $criteria}) }}">{{ phrase('view_full_list') }}</a>
			</xf:formrow>
			<xf:formrow label="{{ phrase('test') }}">
				<xf:button type="submit" name="test" value="1">{{ phrase('send_test') }}</xf:button>
			</xf:formrow>
		</div>
		<xf:submitrow submit="{{ phrase('send') }}" />
	</div>

	<xf:hiddenval name="json_criteria">{$criteria|json}</xf:hiddenval>

	<xf:hiddenval name="total">{$total}</xf:hiddenval>

	<xf:hiddenval name="from_user">{$user.username}</xf:hiddenval>

	<xf:hiddenval name="link_url">{$alert.link_url}</xf:hiddenval>
	<xf:hiddenval name="link_title">{$alert.link_title}</xf:hiddenval>
	<xf:hiddenval name="alert_body">{$alert.alert_body}</xf:hiddenval>
</xf:form>]]></template>
  <template type="admin" title="user_avatar" version_id="2030055" version_string="2.3.0 Release Candidate 5"><![CDATA[<xf:title>{{ phrase('avatar') }}</xf:title>

<xf:form action="{{ link('users/avatar', $user) }}" upload="true" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$user.getAvatarUrl('s')">
				<xf:formrow label="{{ phrase('current_avatar') }}">
					<xf:avatar user="$user" size="l" />
					<div><br /><xf:checkbox standalone="true"><xf:option name="delete_avatar" label="{{ phrase('delete_current_avatar') }}" /></xf:checkbox></div>
				</xf:formrow>
			</xf:if>

			<xf:uploadrow name="upload" accept=".gif,.jpeg,.jpg,.jpe,.png,.webp"
				label="{{ phrase('upload_avatar') }}" />
		</div>
		<xf:submitrow icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="user_banner" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:title>{{ phrase('profile_banner') }}</xf:title>

<xf:form action="{{ link('users/banner', $user) }}" upload="true" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$user.Profile.banner_date">
				<xf:formrow label="{{ phrase('current_profile_banner') }}">
					<xf:profilebanner user="$user" size="l" class="memberProfileBanner--small" />
					<div><xf:checkbox standalone="true"><xf:option name="delete_banner" label="{{ phrase('delete_current_banner') }}" /></xf:checkbox></div>
				</xf:formrow>
			</xf:if>

			<xf:uploadrow name="upload" accept=".gif,.jpeg,.jpg,.jpe,.png"
				label="{{ phrase('upload_new_profile_banner') }}" />
		</div>
		<xf:submitrow icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="user_batch_update" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('batch_update_users') }}</xf:title>

<xf:if is="$success">
	<div class="blockMessage blockMessage--success blockMessage--iconic">{{ phrase('batch_update_was_completed_successfully') }}</div>
</xf:if>

<xf:form action="{{ link('users/batch-update/confirm') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:include template="helper_user_search_criteria" />
		</div>
		<xf:submitrow submit="{{ phrase('proceed...') }}" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="user_batch_update_confirm" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:title>{{ phrase('batch_update_users') }}</xf:title>

<xf:form action="{{ link('users/batch-update/action') }}" class="block">
	<div class="block-container">
		<h2 class="block-header">{{ phrase('update_users') }}</h2>
		<div class="block-body">
			<xf:formrow label="{{ phrase('matched_users') }}">
				{$total|number}
				<xf:if is="!$userIds">
					<span role="presentation" aria-hidden="true">&middot;</span>
					<a href="{{ link('users/list', null, {'criteria': $criteria, 'all': true}) }}">{{ phrase('view_or_filter_matches') }}</a>
				</xf:if>
			</xf:formrow>

			<hr class="formRowSep" />

			<xf:selectrow name="actions[set_primary_group_id]"
				label="{{ phrase('set_primary_user_group') }}">

				<xf:option></xf:option>
				<xf:foreach loop="$userGroups" value="$userGroup">
					<xf:option value="{$userGroup.user_group_id}">{$userGroup.title}</xf:option>
				</xf:foreach>
			</xf:selectrow>

			<xf:selectrow name="actions[add_group_id]"
				label="{{ phrase('add_secondary_user_group') }}">

				<xf:option></xf:option>
				<xf:foreach loop="$userGroups" value="$userGroup">
					<xf:option value="{$userGroup.user_group_id}">{$userGroup.title}</xf:option>
				</xf:foreach>
			</xf:selectrow>

			<xf:selectrow name="actions[remove_group_id]"
				label="{{ phrase('remove_secondary_user_group') }}">

				<xf:option></xf:option>
				<xf:foreach loop="$userGroups" value="$userGroup">
					<xf:option value="{$userGroup.user_group_id}">{$userGroup.title}</xf:option>
				</xf:foreach>
			</xf:selectrow>

			<hr class="formRowSep" />

			<xf:selectrow name="actions[set_user_state]"
				label="{{ phrase('set_user_state') }}">

				<xf:option></xf:option>
				<xf:option value="valid">{{ phrase('valid') }}</xf:option>
				<xf:option value="email_confirm">{{ phrase('awaiting_email_confirmation') }}</xf:option>
				<xf:option value="email_confirm_edit">{{ phrase('awaiting_email_confirmation_from_edit') }}</xf:option>
				<xf:option value="email_bounce">{{ phrase('email_invalid_bounced') }}</xf:option>
				<xf:option value="moderated">{{ phrase('awaiting_approval') }}</xf:option>
				<xf:option value="rejected">{{ phrase('rejected') }}</xf:option>
				<xf:option value="disabled">{{ phrase('disabled') }}</xf:option>
			</xf:selectrow>

			<xf:selectrow name="actions[set_security_lock]"
				label="{{ phrase('set_security_lock') }}"
				explain="{{ phrase('administrators_will_not_be_security_locked') }}">

				<xf:option></xf:option>
				<xf:option value="none">{{ phrase('none') }}</xf:option>
				<xf:option value="change">{{ phrase('locked:') }} {{ phrase('user_must_change_password') }}</xf:option>
				<xf:option value="reset">{{ phrase('locked:') }} {{ phrase('user_must_reset_password') }}</xf:option>
			</xf:selectrow>

			<hr class="formRowSep" />

			<xf:textboxrow name="actions[custom_title]"
				label="{{ phrase('set_custom_title') }}" />

			<xf:checkboxrow
				explain="{{ phrase('super_admins_will_not_be_updated') }}">

				<xf:option name="actions[discourage]">{{ phrase('discourage_users') }}</xf:option>
				<xf:option name="actions[undiscourage]">{{ phrase('undiscourage_users') }}</xf:option>
				<xf:option name="actions[ban]">{{ phrase('ban_users_permanently') }}</xf:option>
				<xf:option name="actions[unban]">{{ phrase('unban_users') }}</xf:option>
				<xf:option name="actions[remove_avatar]">{{ phrase('remove_avatars') }}</xf:option>
				<xf:option name="actions[remove_signature]">{{ phrase('remove_signatures') }}</xf:option>
				<xf:option name="actions[remove_website]">{{ phrase('remove_websites') }}</xf:option>
				<xf:option name="actions[enable_activity_summary_email]">{{ phrase('enable_activity_summary_email') }}</xf:option>
				<xf:option name="actions[disable_activity_summary_email]">{{ phrase('disable_activity_summary_email') }}</xf:option>
			</xf:checkboxrow>
		</div>
		<xf:submitrow submit="{{ phrase('update_users') }}" icon="save" />
	</div>

	<xf:if is="$userIds">
		<xf:hiddenval name="user_ids">{$userIds|json}</xf:hiddenval>
	<xf:else />
		<xf:hiddenval name="criteria">{$criteria|json}</xf:hiddenval>
	</xf:if>
</xf:form>

<xf:form action="{{ link('users/batch-update/action') }}" class="block">
	<div class="block-container">
		<h2 class="block-header">{{ phrase('delete_users') }}</h2>
		<div class="block-body">
			<xf:checkboxrow
				explain="{{ phrase('administrators_and_moderators_will_not_be_deleted') }}">

				<xf:option name="actions[delete]">{{ phrase('confirm_deletion_of_x_users', {'total': $total|number}) }}</xf:option>
			</xf:checkboxrow>
		</div>
		<xf:submitrow name="confirm_delete" icon="delete" />
	</div>

	<xf:if is="$userIds">
		<xf:hiddenval name="user_ids">{$userIds|json}</xf:hiddenval>
	<xf:else />
		<xf:hiddenval name="criteria">{$criteria|json}</xf:hiddenval>
	</xf:if>
</xf:form>]]></template>
  <template type="admin" title="user_change_log" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('user_change_log:') }} {$user.username}</xf:title>

<xf:if is="$changesGrouped">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:macro id="change_log_list" arg-changesGrouped="{$changesGrouped}" />
			</div>
		</div>
		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="users/change-log" data="{$user}"
			wrapperclass="block-outer block-outer--after" />
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_changes_have_been_logged') }}</div>
</xf:if>

<xf:macro id="change_log_list" arg-changesGrouped="!">
	<xf:datalist data-xf-init="responsive-data-list">
	<thead>
		<xf:datarow rowtype="header">
			<xf:cell class="dataList-cell--minWidth">{{ phrase('field_name') }}</xf:cell>
			<xf:cell class="dataList-cell--minWidth">{{ phrase('old_value') }}</xf:cell>
			<xf:cell class="dataList-cell--minWidth">{{ phrase('new_value') }}</xf:cell>
		</xf:datarow>
	</thead>
	<xf:foreach loop="$changesGrouped" value="$group">
		<tbody class="dataList-rowGroup">
			<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover">
				<xf:cell href="{{ link('users/edit', $group.content) }}" colspan="3">
					<span class="u-pullRight"><xf:date time="{$group.date}" /></span>
					<ul class="listInline listInline--bullet">
						<li><xf:avatar user="$group.content" size="xxs" href="" /> {$group.content.username}</li>
						<xf:if is="$group.editUser && $group.editUser.user_id != $group.content_id">
							<li>{{ phrase('edited_by_x', {'name': $group.editUser.username}) }}</li>
						</xf:if>
					</ul>
				</xf:cell>
			</xf:datarow>
			<xf:foreach loop="$group.changes" value="$change">
				<xf:datarow rowclass="{{ $change.protected ? 'dataList-row--protected' : '' }}">
					<xf:cell class="dataList-cell--minWidth">{$change.label}</xf:cell>
					<xf:cell class="dataList-cell--minWidth dataList-cell--breakWord">{$change.old}</xf:cell>
					<xf:cell class="dataList-cell--minWidth dataList-cell--breakWord">{$change.new}</xf:cell>
				</xf:datarow>
			</xf:foreach>
		</tbody>
	</xf:foreach>
	</xf:datalist>
</xf:macro>]]></template>
  <template type="admin" title="user_delete" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('users/delete', $user) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				<strong><a href="{{ link('users/edit', $user) }}">{$user.username}</a></strong>
				<div class="blockMessage blockMessage--important"><b>{{ phrase('note:') }}</b> {{ phrase('this_will_not_remove_any_content_this_user_has_already_created') }}</div>
			</xf:inforow>
			<xf:if is="$user.is_super_admin">
				<xf:passwordboxrow name="visitor_password"
					label="{{ phrase('your_password') }}"
					explain="{{ phrase('you_must_enter_your_current_password_to_validate_this_request') }}" />
			</xf:if>
			<xf:radiorow name="rename">
				<xf:option value="0" selected="true">{{ phrase('do_not_rename_this_user') }}</xf:option>
				<xf:option value="1" label="{{ phrase('rename_this_user_to:') }}">
					<xf:textbox name="rename_to" value="{{ phrase('deleted_member') }} {$user.user_id}" maxlength="max_length($user, 'username')" />
				</xf:option>
				<xf:explain>{{ phrase('user_delete_rename_explain') }}</xf:explain>
			</xf:radiorow>
		</div>
		<xf:submitrow icon="delete" />
	</div>
	<xf:redirect />
</xf:form>]]></template>
  <template type="admin" title="user_delete_conversations" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('users/delete-direct-messages', $user) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('this_will_delete_all_direct_messages_started_by_this_user') }}
			</xf:inforow>
		</div>
		<xf:submitrow rowtype="simple" icon="delete" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="user_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$user.isInsert()">
	<xf:title>{{ phrase('add_user') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_user:') }} {$user.username}</xf:title>
</xf:if>

<xf:pageaction if="$user.isUpdate()">
	<div>
		<xf:button href="{{ link('users/delete', $user) }}" icon="delete" overlay="true" />

		<xf:button class="menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true">{{ phrase('actions') }}</xf:button>
		<div class="menu" data-menu="menu" aria-hidden="true">
			<div class="menu-content">
				<h3 class="menu-header">{{ phrase('actions') }}</h3>
				<!--[XF:actions_menu:top]-->
				<a href="{{ link_type('public', 'members', $user) }}" class="menu-linkRow" target="_blank">{{ phrase('view_public_profile') }}</a>

				<xf:if is="$user.is_banned">
					<a href="{{ link('banning/users/lift', $user) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('lift_ban') }}</a>
				<xf:elseif is="!$user.is_moderator AND !$user.is_admin" />
					<a href="{{ link('banning/users/add', $user) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('ban_user') }}</a>
				</xf:if>

				<xf:if is="!$user.is_moderator AND !$user.is_admin">
					<a href="{{ link('users/merge', $user) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('merge_with_user') }}</a>
					<a href="{{ link('users/delete-direct-messages', $user) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('delete_direct_messages') }}</a>
				</xf:if>

				<xf:if is="!$user.is_super_admin AND $xf.options.editHistory.enabled">
					<a href="{{ link('users/revert-message-edit', $user) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('revert_message_edits') }}</a>
				</xf:if>

				<xf:if is="!$user.is_super_admin">
					<a href="{{ link('users/remove-reactions', $user) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('remove_reactions') }}</a>
					<a href="{{ link('users/manage-watched-threads', $user) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('manage_watched_threads') }}</a>
				</xf:if>

				<xf:if is="$user.isAwaitingEmailConfirmation()">
					<a href="{{ link('users/resend-confirmation', $user) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('resend_account_confirmation') }}</a>
				</xf:if>
				<!--[XF:actions_menu:bottom]-->
			</div>
		</div>
	</div>
</xf:pageaction>

<xf:if is="$success">
	<div class="blockMessage blockMessage--success blockMessage--iconic">{{ phrase('redirect_changes_saved_successfully') }}</div>
</xf:if>

<div class="block">
	<xf:if is="$user.user_id">
	<xf:if contentcheck="true">
		<div class="block-outer">
			<ul class="listInline listInline--bullet">
			<xf:contentcheck>
				<!--[XF:status_list:start]-->
				<xf:if is="$user.is_admin">
					<li><a href="{{ link('admins/edit', $user) }}">{{ $user.is_super_admin ?  phrase('super_administrator') : phrase('administrator') }}</a></li>
				</xf:if>
				<xf:if is="$user.is_moderator">
					<li><a href="{{ link('moderators', null, {'user_id': $user.user_id}) }}">{{ phrase('moderator') }}</a></li>
				</xf:if>
				<xf:if is="$user.Option.is_discouraged">
					<li>{{ phrase('discouraged') }}</li>
				</xf:if>
				<xf:if is="$user.is_banned">
					<li><a href="{{ link('banning/users/lift', $user) }}" data-xf-click="overlay">{{ phrase('banned') }}</a></li>
				</xf:if>
				<!--[XF:status_list:end]-->
			</xf:contentcheck>
			</ul>
		</div>
	</xf:if>
	</xf:if>

	<xf:form action="{{ link('users/save', $user) }}" ajax="true" class="block-container" novalidate="novalidate">
		<xf:if is="$user.is_super_admin">
			<div class="block-body">
				<xf:passwordboxrow name="visitor_password" label="{{ phrase('your_password') }}">
					<xf:explain>{{ phrase('you_must_enter_your_current_password_to_validate_this_request') }}</xf:explain>
				</xf:passwordboxrow>
			</div>
		</xf:if>

		<h2 class="block-tabHeader tabs hScroller" data-xf-init="tabs h-scroller" data-state="replace" role="tablist">
			<span class="hScroller-scroll">
				<!--[XF:tabs:start]-->
				<a class="tabs-tab is-active" role="tab" tabindex="0"
					id="user-details"
					aria-controls="user-details"
					href="{{ link('users/edit', $user) }}#user-details">{{ phrase('user_details') }}</a>
				<xf:if is="$user.user_id">
					<a class="tabs-tab" role="tab" tabindex="0"
						id="user-extras"
						aria-controls="user-extras"
						href="{{ link('users/edit', $user) }}#user-extras">{{ phrase('extra') }}</a>
					<a class="tabs-tab" role="tab" tabindex="0"
						id="user-ips"
						aria-controls="user-ips"
						href="{{ link('users/edit', $user) }}#user-ips">{{ phrase('ip_addresses') }}</a>
					<a class="tabs-tab" role="tab" tabindex="0"
						id="user-changes"
						aria-controls="user-changes"
						href="{{ link('users/edit', $user) }}#user-changes">{{ phrase('change_log') }}</a>
					<a class="tabs-tab" role="tab" tabindex="0"
						id="user-permissions"
						aria-controls="user-permissions"
						href="{{ link('users/edit', $user) }}#user-permissions">{{ phrase('permissions') }}</a>
				</xf:if>
				<!--[XF:tabs:end]-->
			</span>
		</h2>

		<ul class="tabPanes">
			<!--[XF:tab_panes:start]-->
			<li class="is-active" role="tabpanel" aria-labelledby="user-details">
				<div class="block-body">
					<xf:textboxrow name="user[username]" value="{$user}"
						label="{{ phrase('user_name') }}">
						<xf:html><xf:if is="$user.exists()">
							<xf:checkbox style="margin-top: 5px;">
								<xf:option name="username_change_invisible">{{ phrase('do_not_display_username_change_publicly_if_changed') }}</xf:option>
							</xf:checkbox>
						</xf:if></xf:html>
					</xf:textboxrow>

					<xf:if is="$user.username_date">
						<xf:formrow label="{{ phrase('last_username_change') }}">
							<xf:date time="{$user.username_date}" />
						</xf:formrow>
					</xf:if>

					<xf:if is="$user.next_allowed_username_change">
						<xf:formrow label="{{ phrase('next_allowed_username_change') }}">
							<xf:date time="{$user.next_allowed_username_change}" />
						</xf:formrow>
					</xf:if>

					<xf:textboxrow name="user[email]" value="{$user}" dir="ltr"
						label="{{ phrase('email') }}" />

					<xf:if is="$user.exists()">
						<xf:radiorow name="change_password"
							label="{{ phrase('password') }}"
							explain="{{ phrase('changing_users_password_will_reset_any_security_lock_on_their_account') }}">

							<xf:option value="" checked="checked"
								label="{{ phrase('do_not_change') }}" />
							<xf:option value="generate"
								label="{{ phrase('send_password_reset') }}"
								hint="{{ phrase('password_reset_confirmation_will_be_emailed_to_user') }}" />
							<xf:option value="change"
								label="{{ phrase('set_new_password:') }}">
								<xf:textbox name="password" autocomplete="off" />
							</xf:option>
						</xf:radiorow>
					<xf:else />
						<xf:textboxrow name="password" autocomplete="off"
							label="{{ phrase('password') }}" />
					</xf:if>

					<xf:if is="$user.user_id">
						<xf:formrow label="{{ phrase('two_step_verification') }}">
							<xf:if is="$user.Option.use_tfa">
								<ul class="inputChoices">
									<li class="inputChoices-choice inputChoices-plainChoice">{{ phrase('enabled') }}</li>
									<li class="inputChoices-choice"><xf:checkbox standalone="true"><xf:option name="disable_tfa"
										label="{{ phrase('disable_two_step_verification') }}" /></xf:checkbox></li>
								</ul>
							<xf:else />
								{{ phrase('disabled') }}
							</xf:if>
						</xf:formrow>

						<xf:formrow label="{{ phrase('avatar') }}" rowtype="button avatar">
							<xf:avatar user="$user" size="l" href="{{ link('users/avatar', $user) }}" data-xf-click="overlay" />
							<div>
								<xf:button href="{{ link('users/avatar', $user) }}" data-xf-click="overlay" class="button--link">{{ phrase('edit_avatar') }}</xf:button>
							</div>
						</xf:formrow>

						<xf:formrow label="{{ phrase('profile_banner') }}" rowtype="button memberProfileBanner">
							<xf:profilebanner user="$user" size="l" class="memberProfileBanner--small" href="{{ link('users/banner', $user) }}" overlay="true" hideempty="true" />
							<xf:button href="{{ link('users/banner', $user) }}" data-xf-click="overlay" class="button--link">{{ phrase('edit_profile_banner') }}</xf:button>
						</xf:formrow>

						<xf:formrow label="{{ phrase('joined') }}">
							<xf:date time="{$user.register_date}" />
						</xf:formrow>
						<xf:if is="$user.last_activity">
							<xf:formrow label="{{ phrase('last_activity') }}">
								<xf:date time="{$user.last_activity}" />
							</xf:formrow>
						</xf:if>
					</xf:if>

					<hr class="formRowSep" />

					<xf:set var="$_userChangesHtml">
						<xf:if is="$user.user_id">
							<xf:if is="!$user.is_moderator"><a href="{{ link('moderators') }}">{{ phrase('make_this_user_moderator') }}</a></xf:if>
							<xf:if is="!$user.is_admin AND !$user.is_moderator">/</xf:if>
							<xf:if is="!$user.is_admin"><a href="{{ link('admins') }}">{{ phrase('make_this_user_administrator') }}</a></xf:if>
						</xf:if>
					</xf:set>

					<xf:selectrow name="user[user_group_id]" value="{$user}"
						label="{{ phrase('user_group') }}">
						<xf:options source="$userGroups" />
						<xf:explain>{$_userChangesHtml|raw}</xf:explain>
					</xf:selectrow>

					<xf:checkboxrow name="user[secondary_group_ids]" value="{$user.secondary_group_ids}"
						listclass="listColumns"
						label="{{ phrase('secondary_user_groups') }}">
						<xf:options source="$userGroups" />
					</xf:checkboxrow>

					<xf:checkboxrow>
						<xf:option name="user[is_staff]" selected="$user.is_staff"
							label="{{ phrase('display_user_as_staff') }}"
							hint="{{ phrase('if_selected_this_user_will_be_listed_publicly_as_staff_member') }}" />
					</xf:checkboxrow>

					<xf:selectrow name="user[user_state]" value="{$user}"
						label="{{ phrase('user_state') }}">

						<xf:option value="valid">{{ phrase('valid') }}</xf:option>
						<xf:option value="email_confirm">{{ phrase('awaiting_email_confirmation') }}</xf:option>
						<xf:option value="email_confirm_edit">{{ phrase('awaiting_email_confirmation_from_edit') }}</xf:option>
						<xf:option value="email_bounce">{{ phrase('email_invalid_bounced') }}</xf:option>
						<xf:option value="moderated">{{ phrase('awaiting_approval') }}</xf:option>
						<xf:option value="rejected">{{ phrase('rejected') }}</xf:option>
						<xf:option value="disabled">{{ phrase('disabled') }}</xf:option>
						<xf:explain>
							{{ phrase('when_user_state_non_x_users_receive_permissions_guest_group', {'valid_state': phrase('valid'), 'guest': '<a href="' . link('user-groups/edit', {'user_group_id': 1, 'title': $userGroups.1}) . '" target="_blank">' . $userGroups.1 . '</a>'}) }}
						</xf:explain>
					</xf:selectrow>

					<xf:selectrow name="user[security_lock]" value="{$user}"
						label="{{ phrase('security_lock') }}">

						<xf:option value="">{{ phrase('none') }}</xf:option>
						<xf:option value="change">{{ phrase('locked:') }} {{ phrase('user_must_change_password') }}</xf:option>
						<xf:option value="reset">{{ phrase('locked:') }} {{ phrase('user_must_reset_password') }}</xf:option>
						<xf:explain>
							{{ phrase('user_security_lock_explain') }}
						</xf:explain>
					</xf:selectrow>

					<hr class="formRowSep" />

					<xf:checkboxrow>
						<xf:option name="option[is_discouraged]" selected="$user.Option.is_discouraged"
							hint="{{ phrase('discouraged_hint') }}">{{ phrase('discouraged') }}</xf:option>
						<xf:explain><a href="{{ link('banning/discouraged-ips') }}">{{ phrase('alternatively_use_ip_discouragement') }}</a></xf:explain>
					</xf:checkboxrow>
				</div>

				<h3 class="block-formSectionHeader">
					<span class="collapseTrigger collapseTrigger--block" data-xf-click="toggle" data-target="< :up:next">
						<span class="block-formSectionHeader-aligner">{{ phrase('personal_details') }}</span>
					</span>
				</h3>
				<div class="block-body block-body--collapsible">
					<xf:macro id="public:helper_user_dob_edit::dob_edit" arg-dobData="{$user.Profile}" />

					<hr class="formRowSep" />

					<xf:textboxrow name="profile[location]" value="{$user.Profile}" column="location_"
						label="{{ phrase('location') }}" />
					<xf:textboxrow name="profile[website]" value="{$user.Profile}" column="website_"
						label="{{ phrase('website') }}"
						dir="ltr" />
					<xf:macro id="public:custom_fields_macros::custom_fields_edit"
						arg-type="users" arg-group="personal" arg-set="{$user.Profile.custom_fields}" arg-editMode="admin" />
					<xf:textarearow name="profile[about]" value="{$user.Profile}" column="about_" autosize="true"
						label="{{ phrase('about') }}"
						hint="{{ phrase('you_may_use_bb_code') }}" />
				</div>

				<h3 class="block-formSectionHeader">
					<span class="collapseTrigger collapseTrigger--block" data-xf-click="toggle" data-target="< :up:next">
						<span class="block-formSectionHeader-aligner">{{ phrase('profile_info') }}</span>
					</span>
				</h3>
				<div class="block-body block-body--collapsible">
					<xf:textboxrow name="user[custom_title]" value="{$user}" column="custom_title_"
						maxlength="{{ max_length($user, 'custom_title') }}"
						label="{{ phrase('custom_title') }}" />
					<xf:textarearow name="profile[signature]" value="{$user.Profile}" column="signature_" autosize="true"
						label="{{ phrase('signature') }}"
						hint="{{ phrase('you_may_use_bb_code') }}" />

					<hr class="formRowSep" />

					<xf:numberboxrow name="user[message_count]" value="{$user}"
						label="{{ phrase('messages') }}" />
					<xf:numberboxrow name="user[reaction_score]" value="{$user.reaction_score}"
						label="{{ phrase('reaction_score') }}" />
					<xf:numberboxrow name="user[trophy_points]" value="{$user.trophy_points}"
						label="{{ phrase('trophy_points') }}" />
				</div>

				<h3 class="block-formSectionHeader">
					<span class="collapseTrigger collapseTrigger--block" data-xf-click="toggle" data-target="< :up:next">
						<span class="block-formSectionHeader-aligner">{{ phrase('additional_contact') }}</span>
					</span>
				</h3>
				<div class="block-body block-body--collapsible">
					<xf:macro id="public:custom_fields_macros::custom_fields_edit"
						arg-type="users" arg-group="contact" arg-set="{$user.Profile.custom_fields}" arg-editMode="admin" />
				</div>

				<h3 class="block-formSectionHeader">
					<span class="collapseTrigger collapseTrigger--block" data-xf-click="toggle" data-target="< :up:next">
						<span class="block-formSectionHeader-aligner">{{ phrase('preferences') }}</span>
					</span>
				</h3>
				<div class="block-body block-body--collapsible">
					<xf:selectrow name="user[style_id]" value="{$user}"
						label="{{ phrase('style') }}">

						<xf:option value="0">{{ phrase('(use_default_style)') }}</xf:option>
						<xf:foreach loop="$styleTree.getFlattened(0)" value="$treeEntry">
							<xf:option value="{$treeEntry.record.style_id}">{{ repeat('--', $treeEntry.depth) }} {$treeEntry.record.title}</xf:option>
						</xf:foreach>
					</xf:selectrow>

					<hr class="formRowSep" />

					<xf:selectrow name="user[language_id]" value="{$user}"
						label="{{ phrase('language') }}">

						<xf:foreach loop="$languageTree.getFlattened(0)" value="$treeEntry">
							<xf:option value="{$treeEntry.record.language_id}">{{ repeat('--', $treeEntry.depth) }}
								{$treeEntry.record.title}</xf:option>
						</xf:foreach>
					</xf:selectrow>

					<xf:selectrow name="user[timezone]" value="{$user}"
						label="{{ phrase('time_zone') }}">

						<xf:options source="$timeZones" />
					</xf:selectrow>

					<hr class="formRowSep" />

					<xf:checkboxrow>
						<xf:option name="option[content_show_signature]" selected="$user.Option.content_show_signature">
							{{ phrase('show_signatures_with_messages') }}</xf:option>
						<xf:option name="option[receive_admin_email]" selected="$user.Option.receive_admin_email">
							{{ phrase('receive_site_mailings_option') }}
						</xf:option>
						<xf:option name="enable_activity_summary_email" selected="$user.last_summary_email_date !== null">
							{{ phrase('receive_summary_activity_email') }}
						</xf:option>
						<xf:option name="option[email_on_conversation]" selected="$user.Option.email_on_conversation">
							{{ phrase('receive_email_when_new_direct_message_is_received') }}</xf:option>
					</xf:checkboxrow>

					<xf:selectrow name="option[creation_watch_state]" value="{$user.Option}"
						label="{{ phrase('watch_content_on_creation') }}">

						<xf:option value="watch_no_email">{{ phrase('yes') }}</xf:option>
						<xf:option value="watch_email">{{ phrase('yes_with_email') }}</xf:option>
						<xf:option value="">{{ phrase('no') }}</xf:option>
					</xf:selectrow>

					<xf:selectrow name="option[interaction_watch_state]" value="{$user.Option}"
						label="{{ phrase('watch_content_on_interaction') }}">

						<xf:option value="watch_no_email">{{ phrase('yes') }}</xf:option>
						<xf:option value="watch_email">{{ phrase('yes_with_email') }}</xf:option>
						<xf:option value="">{{ phrase('no') }}</xf:option>
					</xf:selectrow>

					<xf:macro id="public:custom_fields_macros::custom_fields_edit"
						arg-type="users"
						arg-group="preferences"
						arg-set="{$user.Profile.custom_fields}"
						arg-editMode="admin" />
				</div>

				<h3 class="block-formSectionHeader">
					<span class="collapseTrigger collapseTrigger--block" data-xf-click="toggle" data-target="< :up:next">
						<span class="block-formSectionHeader-aligner">{{ phrase('privacy') }}</span>
					</span>
				</h3>
				<div class="block-body block-body--collapsible">
					<xf:checkboxrow label="{{ phrase('general_privacy') }}">
						<xf:option name="user[visible]" selected="$user.visible">
							<xf:label>{{ phrase('show_online_status') }}</xf:label>
							<xf:dependent>
								<xf:checkbox>
									<xf:option name="user[activity_visible]" selected="$user.activity_visible">
										{{ phrase('show_current_activity') }}
									</xf:option>
								</xf:checkbox>
							</xf:dependent>
						</xf:option>
						<xf:option name="option[show_dob_date]" selected="$user.Option.show_dob_date">
							<xf:label>{{ phrase('show_day_and_month_of_birth') }}</xf:label>
							<xf:dependent>
								<xf:checkbox>
									<xf:option name="option[show_dob_year]" selected="$user.Option.show_dob_year">
										{{ phrase('show_year_of_birth') }}
									</xf:option>
								</xf:checkbox>
							</xf:dependent>
						</xf:option>
					</xf:checkboxrow>

					<hr class="formRowSep" />

					<!--[XF:privacy_select:allow_view_profile]-->
					<xf:macro id="privacy_select"
						arg-name="allow_view_profile"
						arg-label="{{ phrase('view_this_users_profile_page_details') }}"
						arg-user="{$user}" />

					<!--[XF:privacy_select:allow_post_profile]-->
					<xf:macro id="privacy_select"
						arg-name="allow_post_profile"
						arg-label="{{ phrase('post_messages_on_this_users_profile_page') }}"
						arg-user="{$user}"
						arg-hideEveryone="{{true}}" />

					<!--[XF:privacy_select:allow_receive_news_feed]-->
					<xf:macro id="privacy_select"
						arg-name="allow_receive_news_feed"
						arg-label="{{ phrase('receive_this_users_news_feed') }}"
						arg-user="{$user}" />

					<hr class="formRowSep" />

					<!--[XF:privacy_select:allow_send_personal_conversation]-->
					<xf:macro id="privacy_select"
						arg-name="allow_send_personal_conversation"
						arg-label="{{ phrase('send_direct_messages_to_this_user') }}"
						arg-user="{$user}"
						arg-hideEveryone="{{true}}" />

					<!--[XF:privacy_select:allow_view_identities]-->
					<xf:macro id="privacy_select"
						arg-name="allow_view_identities"
						arg-label="{{ phrase('view_this_users_identities') }}"
						arg-user="{$user}" />
				</div>

				<xf:submitrow icon="save" sticky="true" />
			</li>

			<xf:if is="$user.user_id">
				<li data-href="{{ link('users/extra', $user) }}" role="tabpanel" aria-labelledby="user-extras">
					<div class="block-body block-row">{{ phrase('loading...') }}</div>
				</li>
			</xf:if>

			<xf:if is="$user.user_id">
				<li data-href="{{ link('users/user-ips', $user) }}" role="tabpanel" aria-labelledby="user-ips">
					<div class="block-body block-row">{{ phrase('loading...') }}</div>
				</li>
			</xf:if>

			<xf:if is="$user.user_id">
				<li data-href="{{ link('users/change-log', $user) }}" role="tabpanel" aria-labelledby="user-changes">
					<div class="block-body block-row">{{ phrase('loading...') }}</div>
				</li>
			</xf:if>

			<xf:if is="$user.user_id">
				<li data-href="{{ link('permissions/users', $user, {'tabbed':1}) }}" role="tabpanel" aria-labelledby="user-permissions">
					<div class="block-body block-row">{{ phrase('loading...') }}</div>
				</li>
			</xf:if>
			<!--[XF:tab_panes:end]-->
		</ul>
	</xf:form>
</div>

<xf:macro id="privacy_select" arg-name="!" arg-label="!" arg-user="!" arg-hideEveryone="{{false}}">
	<xf:selectrow name="privacy[{$name}]" value="{$user.Privacy.{$name}}"
		label="{$label}">

		<xf:option value="none">{{ phrase('nobody') }}</xf:option>
		<xf:if is="!$hideEveryone">
			<xf:option value="everyone">{{ phrase('all_visitors') }}</xf:option>
		</xf:if>
		<xf:option value="members">{{ phrase('members_only') }}</xf:option>
		<xf:option value="followed">{{ phrase('people_x_follows', {'name': ($user.username ? $user.username : '[' . phrase('user') . ']')}) }}</xf:option>
	</xf:selectrow>
</xf:macro>]]></template>
  <template type="admin" title="user_email" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('email_users') }}</xf:title>
<xf:description>{{ phrase('email_users_description') }}</xf:description>

<xf:if is="$sent">
	<div class="blockMessage blockMessage--success blockMessage--iconic">
		{{ phrase('your_email_was_sent_to_x_users', {'sent': $sent|number}) }}
	</div>
</xf:if>

<xf:form action="{{ link('users/email/confirm') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:checkboxrow>
				<xf:option name="list_only" label="{{ phrase('only_generate_list_of_email_addresses') }}">
					<xf:dependent>
						<xf:checkbox><xf:option label="{{ phrase('as_downloadable_csv') }}" name="csv" /></xf:checkbox>
					</xf:dependent>
				</xf:option>
			</xf:checkboxrow>

			<xf:textboxrow name="from_name" value="{{ $xf.options.emailSenderName ? $xf.options.emailSenderName : $xf.options.boardTitle }}"
				label="{{ phrase('from_name') }}" />

			<xf:textboxrow name="from_email" value="{$xf.options.defaultEmailAddress}" type="email"
				label="{{ phrase('from_email') }}"/>

			<hr class="formRowSep" />

			<xf:textboxrow name="email_title"
				label="{{ phrase('email_title') }}" />

			<xf:radiorow name="email_format"
				label="{{ phrase('email_format') }}">

				<xf:option value="" selected="true"
					label="{{ phrase('plain_text') }}" />
				<xf:option value="html"
					label="HTML"
					hint="{{ phrase('note_that_email_clients_handle_html_in_widely_varying_ways') }}" />
			</xf:radiorow>

			<xf:codeeditorrow name="email_body"
				mode="html" data-line-wrapping="true"
				class="codeEditor--autoSize codeEditor--proportional"
				label="{{ phrase('email_body') }}"
				explain=" {{ phrase('following_placeholders_will_be_replaced_in_message_for_email') }} {{ phrase('you_may_also_use_phrase_title_which_will_be_replaced') }}" />

			<xf:checkboxrow>
				<xf:option name="email_wrapped" selected="true"
					label="{{ phrase('include_default_email_wrapper') }}"
					hint="{{ phrase('include_default_email_wrapper_explain') }}" />
				<xf:option name="email_unsub" selected="true"
					label="{{ phrase('automatically_include_unsubscribe_link') }}"
					hint="{{ phrase('automatically_include_unsubscribe_link_desc') }}" />
			</xf:checkboxrow>
		</div>

		<h2 class="block-formSectionHeader"><span class="block-formSectionHeader-aligner">{{ phrase('user_criteria') }}</span></h2>
		<div class="block-body">
			<xf:checkboxrow>
				<xf:option name="criteria[Option][receive_admin_email]" selected="true">
					{{ phrase('only_send_to_users_opting_to_receive_emails_from_admin') }}
				</xf:option>
			</xf:checkboxrow>

			<xf:include template="helper_user_search_criteria" />
		</div>

		<xf:submitrow submit="{{ phrase('proceed...') }}" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="user_email_confirm" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_sending_email') }}</xf:title>

<xf:if is="$tested">
	<div class="blockMessage blockMessage--success blockMessage--iconic">{{ phrase('test_email_sent_to_x', {'email': $xf.visitor.email|email_display}) }}</div>
</xf:if>

<xf:form action="{{ link('users/email/send') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('number_of_users_matching_criteria') }}">
				{$total|number}
				<span role="presentation" aria-hidden="true">&middot;</span>
				<a href="{{ link('users/list', null, {'criteria': $criteria}) }}">{{ phrase('view_full_list') }}</a>
			</xf:formrow>
			<xf:formrow label="{{ phrase('test') }}">
				<xf:button type="submit" name="test" value="1" class="button">{{ phrase('send_test') }}</xf:button>
			</xf:formrow>
		</div>
		<xf:submitrow submit="{{ phrase('send') }}" />
	</div>

	<xf:hiddenval name="json_criteria">{$criteria|json}</xf:hiddenval>

	<xf:hiddenval name="total">{$total}</xf:hiddenval>

	<xf:hiddenval name="from_name">{$email.from_name}</xf:hiddenval>
	<xf:hiddenval name="from_email">{$email.from_email}</xf:hiddenval>

	<xf:hiddenval name="email_title">{$email.email_title}</xf:hiddenval>
	<xf:hiddenval name="email_format">{$email.email_format}</xf:hiddenval>
	<xf:hiddenval name="email_body">{$email.email_body}</xf:hiddenval>
	<xf:hiddenval name="email_wrapped">{$email.email_wrapped}</xf:hiddenval>
	<xf:hiddenval name="email_unsub">{$email.email_unsub}</xf:hiddenval>
</xf:form>]]></template>
  <template type="admin" title="user_email_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('email_list') }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body block-row">
			<pre style="max-height: 400px; overflow: auto;"><xf:foreach loop="$users" value="$user" if="$user.email">{$user.email|email_display}	{$user.username}
</xf:foreach></pre>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="user_extra" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{$user.username}</xf:title>

<div class="block">
	<div class="block-container">
		<h3 class="block-minorHeader">{{ phrase('active_user_upgrades') }}</h3>
		<div class="block-body">
			<xf:if is="$upgrades is not empty">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('upgrade_title') }}</xf:cell>
						<xf:cell>{{ phrase('start_date') }}</xf:cell>
						<xf:cell>{{ phrase('end_date') }}</xf:cell>
						<xf:cell></xf:cell>
						<xf:cell></xf:cell>
					</xf:datarow>
					<xf:foreach loop="$upgrades" value="$upgrade">
						<xf:datarow rowclass="dataList-row--noHover">
							<xf:cell>{$upgrade.Upgrade.title}</xf:cell>
							<xf:cell><xf:date time="{$upgrade.start_date}" /></xf:cell>
							<xf:cell>{{ $upgrade.end_date ? date($upgrade.end_date) : phrase('permanent') }}</xf:cell>
							<xf:action overlay="true" href="{{ link('user-upgrades/edit-active', null, {'user_upgrade_record_id': $upgrade.user_upgrade_record_id}) }}">{{ phrase('edit') }}</xf:action>
							<xf:action overlay="true" href="{{ link('user-upgrades/downgrade', null, {'user_upgrade_record_id': $upgrade.user_upgrade_record_id}) }}">{{ phrase('downgrade') }}</xf:action>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			<xf:else />
				<div class="block-row">{{ phrase('none') }}</div>
			</xf:if>
		</div>

		<h3 class="block-minorHeader">{{ phrase('connected_accounts') }}</h3>
		<div class="block-body block-row">
			<xf:foreach loop="$connectedProviders" value="$provider" if="{$provider.isAssociated($user)}">
				<dl class="pairs pairs--columns pairs--fixedSmall">
					<dt>{$provider.title}</dt>
					<dd>{$provider.renderAssociated($user)|raw}</dd>
				</dl>
			<xf:else />
				{{ phrase('none') }}
			</xf:foreach>
		</div>
	</div>
</div>]]></template>
  <template type="admin" title="user_field_delete" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:include template="base_custom_field_delete" />]]></template>
  <template type="admin" title="user_field_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:include template="base_custom_field_edit">
	<xf:set var="$extraOptions">
		<xf:macro id="base_custom_field_macros::common_options"
			arg-field="{$field}"
			arg-supportsUserEditable="{{ true }}"
			arg-supportsEditableOnce="{{ true }}"
			arg-supportsModeratorEditable="{{ true }}" />

		<xf:checkboxrow>
			<xf:option name="show_registration" selected="$field.show_registration"
				label="{{ phrase('show_during_registration') }}"
				hint="{{ phrase('required_fields_will_always_be_shown_during_registration') }}" />
			<xf:option name="viewable_profile" selected="$field.viewable_profile"
				label="{{ phrase('viewable_on_profile_pages') }}"
				hint="{{ phrase('this_does_not_apply_to_fields_displayed_within_preferences_page') }}" />
			<xf:option name="viewable_message" selected="$field.viewable_message"
				label="{{ phrase('viewable_in_message_user_info') }}"
				hint="{{ phrase('dependent_upon_show_custom_fields_style_property') }}" />
		</xf:checkboxrow>
	</xf:set>
</xf:include>]]></template>
  <template type="admin" title="user_field_list" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('custom_user_fields') }}</xf:title>

<xf:include template="base_custom_field_list" />]]></template>
  <template type="admin" title="user_group_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$userGroup.isInsert()">
	<xf:title>{{ phrase('add_user_group') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_user_group:') }} {$userGroup.title}</xf:title>
</xf:if>

<xf:pageaction if="$userGroup.isUpdate()">
	<xf:button href="{{ link('user-groups/delete', $userGroup) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('user-groups/save', $userGroup) }}" ajax="true" class="block"
	data-xf-init="permission-form"
	data-permission-type="global">

	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="title" value="{$userGroup}"
				label="{{ phrase('title') }}" />

			<xf:numberboxrow name="display_style_priority" value="{$userGroup}"
				label="{{ phrase('display_styling_priority') }}"
				explain="{{ phrase('if_usermultiple_groups_user_title_from_highest_priority') }}" />

			<xf:radiorow name="user_title_override" value="{{ $userGroup.user_title ? 1 : 0 }}"
				label="{{ phrase('user_title_override') }}"
				explain="{{ phrase('you_may_use_html') }}">

				<xf:option value="0" label="{{ phrase('use_default_user_title_ladder') }}" />
				<xf:option value="1" label="{{ phrase('use_following_user_title:') }}">
					<xf:textbox name="user_title" value="{$userGroup.user_title}"
						maxlength="{{ max_length($userGroup, 'user_title') }}" size="50" />
				</xf:option>
			</xf:radiorow>

			<xf:codeeditorrow name="username_css" value="{$userGroup.username_css}"
				mode="css" data-line-wrapping="true"
				class="codeEditor--autoSize"
				label="{{ phrase('user_name_css') }}" />

			<xf:css src="public:app_user_banners.less" />
			<xf:textboxrow name="banner_text" value="{$userGroup}"
				label="{{ phrase('user_banner_text') }}"
				explain="{{ phrase('banner_displayed_under_name_of_members_of_this_group') }}" />

			<xf:formrow label="{{ phrase('user_banner_styling') }}">
				<xf:radio name="banner_css_class"
					value="{{ $userGroup.banner_css_class ? $userGroup.banner_css_class : 'userBanner userBanner--primary' }}"
					listclass="listColumns">

					<xf:foreach loop="$displayStyles" value="$class">
						<xf:option value="{$class}">
							<span title="{$class}" class="{$class}" data-xf-init="tooltip" style="display: inline">{{ phrase('banner') }}</span>
						</xf:option>
					</xf:foreach>

					<xf:option value="" selected="$userGroup.banner_css_class AND !in_array($userGroup.banner_css_class, $displayStyles)"
						label="{{ phrase('other_using_custom_css_class_name') }}">

						<xf:textbox name="banner_css_class_other"
							value="{{ ($userGroup.banner_css_class AND !in_array($userGroup.banner_css_class, $displayStyles)) ? $userGroup.banner_css_class : '' }}"
							maxlength="{{ max_length($userGroup, 'banner_css_class') }}" />
					</xf:option>
				</xf:radio>
			</xf:formrow>
		</div>

		<xf:js src="xf/permission.js" min="1" />
		<xf:css src="permission.less" />

		<xf:macro id="permission_macros::edit_groups"
			arg-interfaceGroups="{$permissionData.interfaceGroups}"
			arg-permissionsGrouped="{$permissionData.permissionsGrouped}"
			arg-values="{$permissionData.values}" />

		<xf:submitrow icon="save" sticky="true" />
	</div>

</xf:form>]]></template>
  <template type="admin" title="user_group_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('user_groups') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('user-groups/add') }}" icon="add">
		{{ phrase('add_user_group') }}
	</xf:button>
</xf:pageaction>

<xf:form action="{{ link('user-groups/toggle') }}" class="block" ajax="true">
	<div class="block-outer">
		<xf:macro id="filter_macros::quick_filter" arg-key="user-groups" arg-class="block-outer-opposite" />
	</div>
	<div class="block-container">
		<div class="block-body">
			<xf:datalist>
				<xf:foreach loop="$userGroups" value="$userGroup">
					<xf:datarow>
						<xf:main hash="{$userGroup.user_group_id}"
							href="{{ link('user-groups/edit', $userGroup) }}" label="{$userGroup.title}"
							hint="{$userGroup.user_title}" />
						<xf:delete href="{{ link('user-groups/delete', $userGroup) }}" />
					</xf:datarow>
				</xf:foreach>
			</xf:datalist>
		</div>
		<div class="block-footer">
			<span class="block-footer-counter">{{ display_totals(count($userGroups)) }}</span>
		</div>
	</div>
</xf:form>]]></template>
  <template type="admin" title="user_group_promotion_demote" version_id="2010770" version_string="2.1.7"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('user-group-promotions/demote', null, {'promotion_id': $promotion.promotion_id, 'user_id': $promotionLog.user_id}) }}"
	ajax="true" class="block">

	<div class="block-container">
		<xf:if is="$isDemotion">
			<div class="block-body">
				<xf:inforow rowtype="confirm">
					{{ phrase('please_confirm_want_remove_user_from_promotion:') }}
					<strong>{$user.username} - {$promotion.title}</strong>
					{{ phrase('this_user_not_receive_promotion_even_if_meets_requirements') }}
				</xf:inforow>
			</div>
			<xf:submitrow submit="{{ phrase('demote_user') }}" rowtype="simple" />
		<xf:else />
			<div class="block-body">
				<xf:inforow rowtype="confirm">
					{{ phrase('please_confirm_want_enable_promotion_for_user:') }}
					<strong>{$user.username} - {$promotion.title}</strong>
					{{ phrase('this_user_will_receive_promotion_when_meets_requirements') }}
				</xf:inforow>
			</div>
			<xf:submitrow submit="{{ phrase('enable_promotion_for_user') }}" rowtype="simple" />
		</xf:if>
	</div>

	<xf:redirect />
</xf:form>]]></template>
  <template type="admin" title="user_group_promotion_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$userGroupPromotion.isInsert()">
	<xf:title>{{ phrase('add_promotion') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_promotion:') }} {$userGroupPromotion.title}</xf:title>
</xf:if>

<xf:pageaction if="$userGroupPromotion.isUpdate()">
	<xf:button href="{{ link('user-group-promotions/delete', $userGroupPromotion) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('user-group-promotions/save', $userGroupPromotion) }}" ajax="true" class="block">
	<div class="block-container">
		<h2 class="block-tabHeader tabs hScroller" data-xf-init="tabs h-scroller" role="tablist">
			<span class="hScroller-scroll">
				<a class="tabs-tab is-active" role="tab" tabindex="0" aria-controls="promotion-options">{{ phrase('promotion_options') }}</a>
				<xf:macro id="helper_criteria::user_tabs"
					arg-userTabTitle="{{ phrase('apply_this_promotion_while') }}" />
			</span>
		</h2>

		<ul class="tabPanes block-body">
			<li class="is-active" role="tabpanel" id="promotion-options">
				<xf:textboxrow name="title" value="{$userGroupPromotion}"
					label="{{ phrase('title') }}" />

				<xf:checkboxrow>
					<xf:option name="active" selected="$userGroupPromotion.active">{{ phrase('promotion_is_active') }}</xf:option>
				</xf:checkboxrow>

				<hr class="formRowSep" />

				<xf:checkboxrow rowid="addUserGroups" name="extra_user_group_ids[]" value="{$userGroupPromotion.extra_user_group_ids}"
					listclass="listColumns"
					label="{{ phrase('add_user_to_user_groups') }}">

					<xf:hint>
						<xf:checkbox standalone="true">
							<xf:option check-all="#addUserGroups" label="{{ phrase('select_all') }}" />
						</xf:checkbox>
					</xf:hint>
					<xf:options source="$userGroups" />
				</xf:checkboxrow>
			</li>

			<xf:macro id="helper_criteria::user_panes"
				arg-criteria="{{ $userCriteria.getCriteriaForTemplate() }}"
				arg-data="{{ $userCriteria.getExtraTemplateData() }}" />
		</ul>

		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="user_group_promotion_history" version_id="2010770" version_string="2.1.7"><![CDATA[<xf:title>{{ phrase('promotion_history') }}</xf:title>

<xf:if is="$entries is not empty">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$entries" value="$entry">
						<xf:datarow
							label="{$entry.User.username}"
							hint="{$entry.Promotion.title}">

							<xf:explain>
								<xf:date time="$entry.promotion_date" />
								<xf:if is="$entry.promotion_state == 'manual'">
									- {{ phrase('manually_applied') }}
								<xf:elseif is="$entry.promotion_state == 'disabled'" />
									- {{ phrase('promotion_disabled') }}
								<xf:else />
									- {{ phrase('automatically_promoted') }}
								</xf:if>
							</xf:explain>

							<xf:action
								href="{{ link('user-group-promotions/demote', null, {'promotion_id': $entry.promotion_id, 'user_id': $entry.user_id}) }}"
								overlay="true">

								<xf:if is="$entry.promotion_state == 'disabled'">
									{{ phrase('enable_promotion') }}
								<xf:else />
									{{ phrase('disable_promotion') }}
								</xf:if>
							</xf:action>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
		</div>

		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$totalEntries}"
			link="user-group-promotions/history" params="{$linkParams}"
			wrapperclass="block-outer block-outer--after" />
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_promotion_history_meeting_criteria_found') }}</div>
</xf:if>]]></template>
  <template type="admin" title="user_group_promotion_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('user_group_promotions') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('user-group-promotions/manage') }}">{{ phrase('manage_promoted_users') }}</xf:button>
	<xf:button href="{{ link('cron/userGroupPromotions/run') }}" fa="fa-sync">{{ phrase('run_now') }}</xf:button>
	<xf:button href="{{ link('user-group-promotions/add') }}" icon="add">{{ phrase('add_promotion') }}</xf:button>
</xf:pageaction>

<xf:if is="$userGroupPromotions is not empty">
	<xf:form action="{{ link('user-group-promotions/toggle') }}" ajax="true" class="block">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="promotions" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$userGroupPromotions" value="$userGroupPromotion">
						<xf:datarow
							label="{$userGroupPromotion.title}"
							href="{{ link('user-group-promotions/edit', $userGroupPromotion) }}"
							delete="{{ link('user-group-promotions/delete', $userGroupPromotion) }}">

							<xf:toggle name="active[{$userGroupPromotion.promotion_id}]"
								selected="$userGroupPromotion.active" class="dataList-cell--separated" submit="true"
								tooltip="{{ phrase('enable_disable_x', {'title': $userGroupPromotion.title}) }}" />

						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($userGroupPromotions) }}</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_promotions_have_been_defined') }}</div>
</xf:if>]]></template>
  <template type="admin" title="user_group_promotion_manage" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('manage_promoted_users') }}</xf:title>

<xf:form action="{{ link('user-group-promotions/history') }}" class="block">
	<div class="block-container">
		<h2 class="block-header">{{ phrase('search_promotion_history') }}</h2>
		<div class="block-body">
			<xf:textboxrow hint="{{ phrase('you_may_leave_this_blank') }}" name="username" ac="single"
				label="{{ phrase('user_name') }}" />

			<xf:selectrow name="promotion_id"
				label="{{ phrase('promotion') }}">

				<xf:option value="0">{{ phrase('(any)') }}</xf:option>
				<xf:options source="$userGroupPromotions" />
			</xf:selectrow>
		</div>
		<xf:submitrow icon="search" />
	</div>
</xf:form>

<xf:form action="{{ link('user-group-promotions/manual') }}" class="block">
	<div class="block-container">
		<h2 class="block-header">{{ phrase('manually_promote_user') }}</h2>
		<div class="block-body">
			<xf:textboxrow name="username" ac="single"
				label="{{ phrase('user_name') }}" />

			<xf:selectrow name="promotion_id"
				label="{{ phrase('promotion') }}">

				<xf:option value="0">{{ phrase('(any)') }}</xf:option>
				<xf:options source="$userGroupPromotions" />
			</xf:selectrow>

			<xf:radiorow name="action"
				label="{{ phrase('action') }}">

				<xf:option value="promote" selected="true">{{ phrase('promote_this_user') }}</xf:option>
				<xf:option value="demote">{{ phrase('prevent_this_user_from_receiving_this_promotion_automatically') }}</xf:option>
			</xf:radiorow>
		</div>
		<xf:submitrow icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="user_ip_list" version_id="2000370" version_string="2.0.3"><![CDATA[<xf:title>{{ phrase('ip_addresses_logged_for_x', {'name': $user.username}) }}</xf:title>

<xf:if is="$ips is not empty">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('ip') }}</xf:cell>
						<xf:cell>{{ phrase('total') }}</xf:cell>
						<xf:cell>{{ phrase('earliest') }}</xf:cell>
						<xf:cell>{{ phrase('latest') }}</xf:cell>
						<xf:cell>&nbsp;</xf:cell>
						<xf:cell>&nbsp;</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$ips" value="$ip">
						<xf:datarow rowclass="dataList-row--noHover">
							<xf:cell href="{{ link_type('public', 'misc/ip-info', null, {'ip': $ip.ip|ip}) }}" target="_blank">{$ip.ip|ip}</xf:cell>
							<xf:cell>{$ip.total|number}</xf:cell>
							<xf:cell><xf:date time="{$ip.first_date}" /></xf:cell>
							<xf:cell><xf:date time="{$ip.last_date}" /></xf:cell>
							<xf:action href="{{ link('users/ip-users', null, {'ip': $ip.ip|ip}) }}" overlay="true">{{ phrase('more_users') }}</xf:action>
							<xf:popup label="&#8226;&#8226;&#8226;" class="dataList-cell--separated">
								<div class="menu" data-menu="menu" aria-hidden="true" data-menu-builder="dataList">
									<div class="menu-content">
										<h3 class="menu-header">{{ phrase('more_options') }}</h3>
										<a href="{{ link('banning/ips/add', null, {'ip': $ip.ip|ip}) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('ban') }}</a>
										<a href="{{ link('banning/discouraged-ips/add', null, {'ip': $ip.ip|ip}) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('discourage') }}</a>
										<div class="js-menuBuilderTarget u-showMediumBlock"></div>
									</div>
								</div>
							</xf:popup>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
		</div>
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_ip_logs_for_requested_user') }}</div>
</xf:if>]]></template>
  <template type="admin" title="user_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('users') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('users/list-export', null, {
		'export': 1,
		'criteria': $criteria,
		'order': $order,
		'direction': $direction
	}) }}" fa="fa-file-export" title="{{ phrase('export_user_list_desc') }}" data-xf-init="_tooltip">{{ phrase('export_user_list') }}</xf:button>
</xf:pageaction>

<xf:if is="$users is not empty">
	<xf:form action="{{ link('users/batch-update/confirm') }}" class="block">
		<xf:if is="!$showingAll">
			<div class="block-outer">
				<div class="block-outer-main">
					<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true">
						{{ phrase('sort_by:') }} {{ $sortOptions.{$order} ?: phrase('user_name') }}
					</xf:button>

					<div class="menu" data-menu="menu" aria-hidden="true">
						<div class="menu-content">
							<h3 class="menu-header">{{ phrase('sort_by...') }}</h3>
							<xf:foreach loop="$sortOptions" key="$sortKey" value="$sortName">
								<a href="{{ link('users/list', null, {'criteria': $criteria, 'order': $sortKey}) }}"
									class="menu-linkRow {{ $order == $sortKey ? 'is-selected' : '' }}">
									{$sortName}
								</a>
							</xf:foreach>
						</div>
					</div>
				</div>
				<xf:macro id="filter_macros::quick_filter" arg-key="users"
					arg-ajax="{{ link('users/list', null, {'criteria': $criteria, 'order': $order, 'direction': $direction}) }}"
					arg-class="block-outer-opposite" />
			</div>
		</xf:if>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:if is="$showingAll">
						<xf:datarow rowtype="header" rowclass="dataList-row--noHover">
							<xf:if is="$showingAll">
								<xf:cell colspan="4">
									<xf:checkbox standalone="true"><xf:option value="{$user.user_id}" check-all=".dataList >" label="{{ phrase('select_all') }}" /></xf:checkbox>
								</xf:cell>
							</xf:if>
						</xf:datarow>
					</xf:if>
					<xf:foreach loop="$users" value="$user">
						<xf:datarow rowclass="{{ ($user.user_state != 'valid' || $user.is_banned) ? 'dataList-row--deleted' : '' }}">
							<xf:if is="$showingAll">
								<xf:toggle name="user_ids[]" value="{$user.user_id}" selected="true" />
							</xf:if>
							<xf:cell class="dataList-cell--min dataList-cell--image dataList-cell--imageSmall"
								href="{{ link('users/edit', $user) }}">
								<xf:avatar user="$user" size="s" href="" />
							</xf:cell>
							<xf:main href="{{ link('users/edit', $user) }}">
								<xf:label><xf:username user="$user" rich="true" notooltip="true" href="" /></xf:label>
								<xf:hint>{$user.email|email_display}</xf:hint>
							</xf:main>
							<xf:delete href="{{ link('users/delete', $user) }}" />
						</xf:datarow>
					</xf:foreach>
					<xf:if is="$filter AND $total > $perPage">
						<xf:datarow rowclass="dataList-row--note dataList-row--noHover js-filterForceShow">
							<xf:cell colspan="3">{{ phrase('more_records_matching_filter_more_specific') }}
							</xf:cell>
						</xf:datarow>
					</xf:if>
				</xf:datalist>
			</div>
			<div class="block-footer block-footer--split">
				<span class="block-footer-counter">{{ display_totals($users, $total) }}</span>
				<xf:if is="$showAll">
					<span class="block-footer-controls"><a href="{{ link('users/list', null, {'criteria': $criteria, 'all': true}) }}">{{
						phrase('show_all_matches') }}</a></span>
				<xf:elseif is="$showingAll" />
					<span class="block-footer-select"><xf:checkbox standalone="true"><xf:option check-all=".dataList" label="{{ phrase('select_all') }}" /></xf:checkbox></span>
					<span class="block-footer-controls"><xf:button type="submit">{{ phrase('batch_update') }}</xf:button></span>
				</xf:if>
			</div>
		</div>

		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="users/list"
			params="{{ {'criteria': $criteria, 'order': $order, 'direction': $direction} }}"
			wrapperclass="js-filterHide block-outer block-outer--after" />
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_records_matched') }}</div>
</xf:if>]]></template>
  <template type="admin" title="user_manage_watched_threads" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('manage_watched_threads:') }} {$user.username}</xf:title>

<xf:form action="{{ link('users/manage-watched-threads', $user) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:radiorow name="action"
				label="{{ phrase('action') }}">

				<xf:option value="watch_no_email" checked="checked">{{ phrase('disable_email_notification') }}</xf:option>
				<xf:option value="">{{ phrase('stop_watching_threads') }}</xf:option>
			</xf:radiorow>
		</div>
		<xf:submitrow icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="user_merge" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('merge_users') }}</xf:title>

<xf:form action="{{ link('users/merge', $user) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow
				label="{{ phrase('source_user') }}"
				explain="{{ phrase('this_user_will_be_deleted') }}">
				{$user.username}
			</xf:formrow>

			<xf:textboxrow name="username" ac="single"
				label="{{ phrase('target_user') }}"
				explain="{{ phrase('x_will_be_merged_into_this_user_and_all_of_xs_content_moved', {'name': $user.username, 'name1': $user.username}) }}" />
		</div>
		<xf:submitrow submit="{{ phrase('merge') }}" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="user_message" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('message_users') }}</xf:title>
<xf:description>{{ phrase('message_users_description') }}</xf:description>

<xf:if is="$sent">
	<div class="blockMessage blockMessage--success blockMessage--iconic">
		{{ phrase('your_direct_message_was_sent_to_x_users', {'sent': $sent|number}) }}
	</div>
</xf:if>

<xf:form action="{{ link('users/message/confirm') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="from_user" value="{$xf.visitor.username}" ac="single"
				label="{{ phrase('from_user') }}">

				<xf:explain>
					<p>{{ phrase('enter_name_of_existing_user_direct_message_should_be_started_by') }}</p>
					<p><b>{{ phrase('note:') }}</b> {{ phrase('you_cannot_send_direct_message_to_yourself') }}</p>
				</xf:explain>
			</xf:textboxrow>

			<hr class="formRowSep" />

			<xf:textboxrow name="message_title" maxlength="100"
				label="{{ phrase('direct_message_title') }}"
				required="true" />

			<xf:textarearow name="message_body" rows="5" autosize="true"
				label="{{ phrase('direct_message_body') }}"
				required="true"
				hint="{{ phrase('you_may_use_bb_code') }}"
				explain="{{ phrase('following_placeholders_will_be_replaced_in_body_for_direct_message') }} {{ phrase('you_may_also_use_phrase_title_which_will_be_replaced') }}" />

			<hr class="formRowSep" />

			<xf:checkboxrow label="{{ phrase('direct_message_options') }}">
				<xf:option name="open_invite" value="1">{{ phrase('allow_anyone_in_direct_message_to_invite_others') }}</xf:option>
				<xf:option name="conversation_locked" value="1">{{ phrase('lock_direct_message_no_responses_will_be_allowed') }}</xf:option>
			</xf:checkboxrow>

			<xf:radiorow name="delete_type"
				label="{{ phrase('future_message_handling') }}">

				<xf:option selected="true"
					label="{{ phrase('do_not_leave_direct_message') }}"
					explain="{{ phrase('remain_in_inbox_and_notified_of_replies') }}" />
				<xf:option value="deleted"
					label="{{ phrase('leave_direct_message_and_accept_future_responses') }}"
					explain="{{ phrase('should_direct_message_receive_responses_restored_to_inbox') }}" />
				<xf:option value="deleted_ignored"
					label="{{ phrase('leave_direct_message_and_ignore_future_responses') }}"
					explain="{{ phrase('not_notified_of_responses_direct_message_remain_deleted') }}" />
			</xf:radiorow>
		</div>

		<h2 class="block-formSectionHeader"><span class="block-formSectionHeader-aligner">{{ phrase('user_criteria') }}</span></h2>
		<div class="block-body">
			<xf:include template="helper_user_search_criteria" />
		</div>

		<xf:submitrow submit="{{ phrase('proceed...') }}" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="user_message_confirm" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_sending_message') }}</xf:title>

<xf:form action="{{ link('users/message/send') }}" class="block" preview="{{ link('users/message/preview') }}">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('number_of_users_matching_criteria') }}">
				{$total|number}
				<span role="presentation" aria-hidden="true">&middot;</span>
				<a href="{{ link('users/list', null, {'criteria': $criteria}) }}">{{ phrase('view_full_list') }}</a>
			</xf:formrow>
			<xf:formrow label="{{ phrase('test') }}">
				<xf:button type="submit" name="preview" value="1" class="js-previewButton" icon="preview" />
			</xf:formrow>
		</div>
		<xf:submitrow submit="{{ phrase('send_message') }}" />
	</div>

	<xf:hiddenval name="json_criteria">{$criteria|json}</xf:hiddenval>

	<xf:hiddenval name="total">{$total}</xf:hiddenval>

	<xf:hiddenval name="from_user">{$user.username}</xf:hiddenval>

	<xf:hiddenval name="message_title">{$message.message_title}</xf:hiddenval>
	<xf:hiddenval name="message_body">{$message.message_body}</xf:hiddenval>

	<xf:hiddenval name="open_invite">{$message.open_invite}</xf:hiddenval>
	<xf:hiddenval name="conversation_locked">{$message.conversation_locked}</xf:hiddenval>

	<xf:hiddenval name="delete_type">{$message.delete_type}</xf:hiddenval>
</xf:form>]]></template>
  <template type="admin" title="user_message_preview" version_id="2000038" version_string="2.0.0 Beta 8"><![CDATA[<xf:title>{$title}</xf:title>

<div class="blockMessage">{{ bb_code($content, 'conversation_message', $xf.visitor) }}</div>]]></template>
  <template type="admin" title="user_remove_reactions" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:title>{{ phrase('remove_reactions') }}</xf:title>

<xf:form action="{{ link('users/remove-reactions', $user) }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('user') }}">{$user.username}</xf:formrow>
			<xf:formrow rowtype="input"
				label="{{ phrase('remove_reactions_within_last') }}">

				<div class="inputGroup">
					<xf:numberbox name="cutoff[amount]" value="1" min="0" />
					<span class="inputGroup-splitter"></span>
					<xf:select name="cutoff[unit]" value="days" class="input--inline">
						<xf:option value="hours">{{ phrase('hours') }}</xf:option>
						<xf:option value="days">{{ phrase('days') }}</xf:option>
						<xf:option value="weeks">{{ phrase('weeks') }}</xf:option>
						<xf:option value="months">{{ phrase('months') }}</xf:option>
					</xf:select>
				</div>
			</xf:formrow>
		</div>
		<xf:submitrow icon="delete" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="user_revert_message_edit" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('revert_message_edits') }}</xf:title>

<xf:form action="{{ link('users/revert-message-edit', $user) }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('user') }}">{$user.username}</xf:formrow>
			<xf:formrow rowtype="input"
				label="{{ phrase('revert_edits_within_last') }}"
				explain="{{ phrase('only_edits_within_last_x_days_will_be_reverted', {'count': $xf.options.editHistory.length}) }}">

				<div class="inputGroup">
					<xf:numberbox name="cutoff[amount]" value="1" min="0" />
					<span class="inputGroup-splitter"></span>
					<xf:select name="cutoff[unit]" value="days" class="input--inline">
						<xf:option value="hours">{{ phrase('hours') }}</xf:option>
						<xf:option value="days">{{ phrase('days') }}</xf:option>
						<xf:option value="weeks">{{ phrase('weeks') }}</xf:option>
						<xf:option value="months">{{ phrase('months') }}</xf:option>
					</xf:select>
				</div>
			</xf:formrow>
		</div>
		<xf:submitrow submit="{{ phrase('revert_edits') }}" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="user_search" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('search_for_users') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('users/add') }}" icon="add">{{ phrase('add_user') }}</xf:button>
</xf:pageaction>

<xf:if is="$lastUser">
	<div class="blockMessage blockMessage--highlight">
		<div class="contentRow">
			<span class="contentRow-figure">
				<xf:avatar user="$lastUser" size="s" />
			</span>
			<div class="contentRow-main">
				<h2 class="contentRow-title">{{ phrase('changes_saved') }}</h2>
				<a href="{{ link('users/edit', $lastUser) }}">{{ phrase('edit_x_again', {'name': $lastUser.username}) }}</a>
			</div>
		</div>
	</div>
</xf:if>

<div class="block">
	<div class="block-container">
		<h2 class="block-tabHeader tabs" data-xf-init="tabs" role="tablist">
			<a class="tabs-tab is-active" role="tab" tabindex="0" aria-controls="user-search">{{ phrase('standard_search') }}</a>
			<a class="tabs-tab" role="tab" tabindex="0" aria-controls="ip-search">{{ phrase('search_by_ip_address') }}</a>
		</h2>

		<ul class="tabPanes">
			<li class="is-active" role="tabpanel" id="user-search">
				<xf:form action="{{ link('users/list') }}">
					<div class="block-body">
						<xf:include template="helper_user_search_criteria" />

						<hr class="formRowSep" />

						<xf:formrow rowtype="input"
							label="{{ phrase('sort') }}">

							<div class="inputPair">
								<xf:select name="order">
									<xf:options source="{$sortOrders}" />
								</xf:select>
								<xf:select name="direction">
									<xf:option value="asc">{{ phrase('ascending') }}</xf:option>
									<xf:option value="desc">{{ phrase('descending') }}</xf:option>
								</xf:select>
							</div>
						</xf:formrow>
					</div>
					<xf:submitrow sticky="true" icon="search" />
				</xf:form>
			</li>
			<li role="tabpanel" id="ip-search">
				<xf:form action="{{ link('users/ip-users') }}">
					<div class="block-body">
						<xf:textboxrow name="ip"
							label="{{ phrase('ip_address') }}"
							explain="{{ phrase('ip_search_explain') }}" />
					</div>
					<xf:submitrow icon="search" />
				</xf:form>
			</li>
		</ul>
	</div>
</div>]]></template>
  <template type="admin" title="user_title_ladder_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('user_title_ladder') }}</xf:title>

<xf:form action="{{ link('user-title-ladder/update') }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:datalist data-xf-init="responsive-data-list">
				<colgroup>
					<col style="width: 1%" />
					<col />
					<col style="width: 130px" />
				</colgroup>
				<xf:datarow rowtype="header">
					<xf:cell>{{ phrase('delete') }}</xf:cell>
					<xf:cell>{{ phrase('title') }}</xf:cell>
					<xf:cell>{{ phrase('minimum_value') }}</xf:cell>
				</xf:datarow>
				<xf:foreach loop="$ladder" value="$title">
					<xf:set var="$maxLength" value="{{ max_length($title, 'title') }}" />
					<xf:datarow>
						<xf:toggle name="delete[]" value="{$title.minimum_level}" />
						<xf:cell>
							<xf:textbox name="update[{$title.minimum_level}][title]" value="{$title.title}" maxlength="{{ max_length($title, 'title') }}" />
						</xf:cell>
						<xf:cell>
							<xf:numberbox name="update[{$title.minimum_level}][minimum_level]"min="0"
								value="{$title.minimum_level}" />
						</xf:cell>
					</xf:datarow>
				</xf:foreach>
				<xf:datarow>
					<xf:cell data-hide-label="true">{{ phrase('new:') }}</xf:cell>
					<xf:cell>
						<xf:textbox name="title" maxlength="{$maxLength}" />
					</xf:cell>
					<xf:cell>
						<xf:numberbox name="minimum_level" min="0" value="0" />
					</xf:cell>
				</xf:datarow>
			</xf:datalist>
		</div>
		<div class="block-footer block-footer--split">
			<span class="block-footer-counter">{{ display_totals($ladder) }}</span>
			<span class="block-footer-select"><xf:checkbox standalone="true"><xf:option check-all="< .block-container" label="{{ phrase('select_all') }}" /></xf:checkbox></span>
			<span class="block-footer-controls"><xf:button type="submit">{{ phrase('update_user_titles') }}</xf:button></span>
		</div>
	</div>
</xf:form>

<xf:macro id="option_macros::option_form_block" arg-options="{$options}" />]]></template>
  <template type="admin" title="user_upgrade_active_downgrade" version_id="2000270" version_string="2.0.2"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('user-upgrades/downgrade', null, {'user_upgrade_record_id': $activeUpgrade.user_upgrade_record_id}) }}"
	ajax="true" data-force-flash-message="on" class="block">

	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_downgrade_following_user:') }}
				<strong>
					{$activeUpgrade.User.username}
					<span role="presentation" aria-hidden="true">&middot;</span>
					{$activeUpgrade.Upgrade.title}
				</strong>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('downgrade') }}" rowtype="simple" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="user_upgrade_active_edit" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('edit_active_user_upgrade') }}</xf:title>

<xf:form action="{{ link('user-upgrades/edit-active', null, {'user_upgrade_record_id': $activeUpgrade.user_upgrade_record_id}) }}"
	ajax="true" class="block">

	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('user_name') }}">{$activeUpgrade.User.username}</xf:formrow>

			<xf:formrow label="{{ phrase('upgrade_title') }}">{$activeUpgrade.Upgrade.title}</xf:formrow>

			<xf:radiorow name="end_type"
				label="{{ phrase('upgrade_ends') }}">

				<xf:option value="permanent" selected="!{$activeUpgrade.end_date}">{{ phrase('permanent') }}</xf:option>
				<xf:option value="date" selected="{$activeUpgrade.end_date}" label="{{ phrase('date:') }}">
					<xf:dateinput name="end_date" value="{{ $activeUpgrade.end_date ? date($activeUpgrade.end_date, 'picker') : date($xf.time, 'picker') }}" />
				</xf:option>
			</xf:radiorow>
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="user_upgrade_active_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('active_user_upgrades') }}{{ $userUpgrade ? ': ' . $userUpgrade.title : '' }}</xf:title>

<xf:form action="{{ link('user-upgrades/active', $userUpgrade) }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('filter_by_user') }}" rowtype="input">
				<xf:textbox name="username" class="input--inline" ac="single" />
				<xf:button type="submit">{{ phrase('filter') }}</xf:button>
			</xf:formrow>
		</div>
	</div>
</xf:form>

<xf:if is="$activeUpgrades is not empty">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell><a href="{{ link('user-upgrades/active', $userUpgrade, {'order': 'username', 'direction': ($linkParams.order == 'username' && $linkParams.direction == 'desc') ? 'asc' : 'desc'} + $linkParams) }}">{{ phrase('user') }}</a></xf:cell>
						<xf:cell>{{ phrase('upgrade_title') }}</xf:cell>
						<xf:cell>{{ phrase('payment_profile') }}</xf:cell>
						<xf:cell><a href="{{ link('user-upgrades/active', $userUpgrade, {'order': 'start_date', 'direction': ($linkParams.order == 'start_date' && $linkParams.direction == 'desc') ? 'asc' : 'desc'} + $linkParams) }}">{{ phrase('start_date') }}</a></xf:cell>
						<xf:cell><a href="{{ link('user-upgrades/active', $userUpgrade, {'order': 'end_date', 'direction': ($linkParams.order == 'end_date' && $linkParams.direction == 'desc') ? 'asc' : 'desc'} + $linkParams) }}">{{ phrase('end_date') }}</a></xf:cell>
						<xf:cell colspan="2" />
					</xf:datarow>
					<xf:foreach loop="$activeUpgrades" value="$activeUpgrade">
						<xf:datarow rowclass="dataList-row--noHover">
							<xf:cell>
								<xf:username user="{$activeUpgrade.User}" defaultname="{{ phrase('unknown_user') }}" href="{{ link('users/edit', $activeUpgrade.User) }}" />
							</xf:cell>
							<xf:cell>
								<a href="{{ link('user-upgrades/edit', $activeUpgrade.Upgrade) }}">{$activeUpgrade.Upgrade.title}</a>
							</xf:cell>
							<xf:cell>
								<xf:set var="$paymentProfile" value="{$activeUpgrade.PurchaseRequest.PaymentProfile}" />
								<xf:if is="$paymentProfile">
									<a href="{{ link('payment-profiles/edit', $paymentProfile) }}">{$paymentProfile.title}</a>
								<xf:else />
									{{ phrase('n_a') }}
								</xf:if>
							</xf:cell>
							<xf:cell><xf:date time="{$activeUpgrade.start_date}" /></xf:cell>
							<xf:cell>{{ $activeUpgrade.end_date ? date($activeUpgrade.end_date) : phrase('permanent') }}</xf:cell>
							<xf:action overlay="true" href="{{ link('user-upgrades/edit-active', null, {'user_upgrade_record_id': $activeUpgrade.user_upgrade_record_id}) }}">{{ phrase('edit') }}</xf:action>
							<xf:action overlay="true" href="{{ link('user-upgrades/downgrade', null, {'user_upgrade_record_id': $activeUpgrade.user_upgrade_record_id}) }}">{{ phrase('downgrade') }}</xf:action>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($activeUpgrades, $totalActive) }}</span>
			</div>
		</div>

		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$totalActive}"
			link="user-upgrades/active" data="{$userUpgrade}" params="{$linkParams}"
			wrapperclass="block-outer block-outer--after" />
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_results_found') }}</div>
</xf:if>]]></template>
  <template type="admin" title="user_upgrade_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$upgrade.isInsert()">
	<xf:title>{{ phrase('add_user_upgrade') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_user_upgrade:') }} {$upgrade.title}</xf:title>
</xf:if>

<xf:pageaction if="$upgrade.isUpdate()">
	<xf:button href="{{ link('user-upgrades/delete', $upgrade) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('user-upgrades/save', $upgrade) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="title" value="{$upgrade}"
				label="{{ phrase('title') }}" />

			<xf:textarearow name="description" value="{$upgrade}" autosize="true"
				label="{{ phrase('description') }}"
				hint="{{ phrase('you_may_use_html') }}" />

			<xf:macro id="display_order_macros::row" arg-value="{{ $upgrade.display_order ?: 1 }}" />

			<xf:formrow rowtype="input"
				label="{{ phrase('cost') }}">

				<div class="inputGroup">
					<xf:textbox name="cost_amount" value="{{ $upgrade.cost_amount ?: 5 }}" style="width: 120px" />
					<span class="inputGroup-splitter"></span>
					<xf:macro id="public:currency_macros::currency_list"
						arg-value="{{ $upgrade.cost_currency ?: 'USD' }}"
						arg-class="input--autoSize" />
				</div>

				<div class="formRow-explain">{{ phrase('cost_currency_explain') }}</div>
			</xf:formrow>

			<xf:radiorow name="length_type" label="{{ phrase('length') }}">
				<xf:option value="permanent" selected="$upgrade.length_unit == ''">{{ phrase('permanent') }}</xf:option>
				<xf:option value="timed" selected="$upgrade.length_unit != ''" label="{{ phrase('for_length:') }}">
					<xf:dependent>
						<div class="inputGroup">
							<xf:numberbox name="length_amount" value="{{ $upgrade.length_amount ?: 1 }}" min="1" />
							<span class="inputGroup-splitter"></span>
							<xf:select name="length_unit" value="{{ ($upgrade.length_unit == 'permanent' OR !$upgrade.length_amount) ? 'months' : $upgrade.length_unit }}" class="input--inline">
								<xf:option value="day">{{ phrase('days') }}</xf:option>
								<xf:option value="month">{{ phrase('months') }}</xf:option>
								<xf:option value="year">{{ phrase('years') }}</xf:option>
							</xf:select>
						</div>

					</xf:dependent>
					<xf:dependent>
						<xf:checkbox>
							<xf:option name="recurring" value="1" selected="$upgrade.recurring"
								label="{{ phrase('recurring_payments') }}"
								hint="{{ phrase('recurring_payments_explain') }}" />
						</xf:checkbox>
					</xf:dependent>
				</xf:option>
			</xf:radiorow>

			<xf:checkboxrow name="payment_profile_ids" value="{$upgrade.payment_profile_ids}"
				label="{{ phrase('payment_profile') }}">

				<xf:foreach loop="$profiles" key="$profileId" value="$profile">
					<xf:option value="{$profileId}" label="{{ $profile.Provider.title !== $profile.title ? $profile.Provider.title . ' - ' . $profile.title : $profile.Provider.title }}" />
				</xf:foreach>
			</xf:checkboxrow>

			<xf:checkboxrow name="extra_group_ids" value="{$upgrade.extra_group_ids}" listclass="listColumns"
				label="{{ phrase('additional_user_groups') }}"
				explain="{{ phrase('additional_user_groups_explain') }}">
				<xf:options source="$userGroups" />
			</xf:checkboxrow>

			<xf:if is="$upgrades is not empty">
				<xf:checkboxrow name="disabled_upgrade_ids" value="{$upgrade.disabled_upgrade_ids}" listclass="listColumns"
					label="{{ phrase('disabled_user_upgrades') }}"
					explain="{{ phrase('disabled_user_upgrades_explain') }}">
					<xf:options source="$upgrades" />
				</xf:checkboxrow>
			</xf:if>

			<xf:checkboxrow>
				<xf:option name="can_purchase" selected="$upgrade.can_purchase">{{ phrase('can_be_purchased') }}</xf:option>
			</xf:checkboxrow>
		</div>
		<xf:submitrow icon="save" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="user_upgrade_expired_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('expired_user_upgrades') }}{{ $userUpgrade ? ': ' . $userUpgrade.title : '' }}</xf:title>

<xf:form action="{{ link('user-upgrades/expired', $userUpgrade) }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('filter_by_user') }}" rowtype="input">
				<xf:textbox name="username" class="input--inline" ac="single" />
				<xf:button type="submit">{{ phrase('filter') }}</xf:button>
			</xf:formrow>
		</div>
	</div>
</xf:form>

<xf:if is="$expiredUpgrades is not empty">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell><a href="{{ link('user-upgrades/expired', $userUpgrade, {'order': 'username', 'direction': ($linkParams.order == 'username' && $linkParams.direction == 'desc') ? 'asc' : 'desc'} + $linkParams) }}">{{ phrase('user') }}</a></xf:cell>
						<xf:cell>{{ phrase('upgrade_title') }}</xf:cell>
						<xf:cell>{{ phrase('payment_profile') }}</xf:cell>
						<xf:cell><a href="{{ link('user-upgrades/expired', $userUpgrade, {'order': 'start_date', 'direction': ($linkParams.order == 'start_date' && $linkParams.direction == 'desc') ? 'asc' : 'desc'} + $linkParams) }}">{{ phrase('start_date') }}</a></xf:cell>
						<xf:cell><a href="{{ link('user-upgrades/expired', $userUpgrade, {'order': 'end_date', 'direction': ($linkParams.order == 'end_date' && $linkParams.direction == 'desc') ? 'asc' : 'desc'} + $linkParams) }}">{{ phrase('end_date') }}</a></xf:cell>
					</xf:datarow>
					<xf:foreach loop="$expiredUpgrades" value="$expiredUpgrade">
						<xf:datarow rowclass="dataList-row--noHover">
							<xf:cell>
								<xf:username user="{$expiredUpgrade.User}" defaultname="{{ phrase('unknown_user') }}" href="{{ link('users/edit', $expiredUpgrade.User) }}" />
							</xf:cell>
							<xf:cell>
								<a href="{{ link('user-upgrades/edit', $expiredUpgrade.Upgrade) }}">{$expiredUpgrade.Upgrade.title}</a>
							</xf:cell>
							<xf:cell>
								<xf:set var="$paymentProfile" value="{$expiredUpgrade.PurchaseRequest.PaymentProfile}" />
								<xf:if is="$paymentProfile">
									<a href="{{ link('payment-profiles/edit', $paymentProfile) }}">{$paymentProfile.title}</a>
								<xf:else />
									{{ phrase('n_a') }}
								</xf:if>
							</xf:cell>
							<xf:cell><xf:date time="{$expiredUpgrade.start_date}" /></xf:cell>
							<xf:cell>{{ $expiredUpgrade.end_date ? date($expiredUpgrade.end_date) : phrase('permanent') }}</xf:cell>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($expiredUpgrades, $totalExpired) }}</span>
			</div>
		</div>

		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$totalExpired}"
			link="user-upgrades/expired" data="{$userUpgrade}" params="{$linkParams}"
			wrapperclass="block-outer block-outer--after" />
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_results_found') }}</div>
</xf:if>]]></template>
  <template type="admin" title="user_upgrade_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('user_upgrades') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('user-upgrades/add') }}" icon="add">{{ phrase('add_user_upgrade') }}</xf:button>
</xf:pageaction>

<xf:if is="!$xf.livePayments">
	<div class="blockMessage blockMessage--important blockMessage--iconic">
		{{ phrase('live_payments_have_been_disabled') }}
	</div>
</xf:if>

<xf:if is="$upgrades is not empty">
	<xf:form action="{{ link('user-upgrades/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter"
				arg-key="user-upgrades"
				arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$upgrades" value="$upgrade">
						<xf:datarow
								label="{$upgrade.title}"
								hint="{$upgrade.cost_phrase}"
								href="{{ link('user-upgrades/edit', $upgrade) }}"
								delete="{{ link('user-upgrades/delete', $upgrade) }}">

							<xf:toggle name="can_purchase[{$upgrade.user_upgrade_id}]" selected="$upgrade.can_purchase"
								class="dataList-cell--separated" submit="true"
								tooltip="{{ phrase('enable_disable_x', {'title': $upgrade.title}) }}"/>

							<xf:popup class="dataList-cell--action">
								<div class="menu" data-menu="menu" aria-hidden="true">
									<div class="menu-content">
										<h3 class="menu-header">{{ phrase('actions') }}</h3>
										<a href="{{ link('user-upgrades/active', $upgrade) }}" class="menu-linkRow">{{ phrase('view_users') }}</a>
										<a href="{{ link('user-upgrades/expired', $upgrade) }}" class="menu-linkRow">{{ phrase('view_expired_upgrades') }}</a>
										<a href="{{ link('user-upgrades/manual', $upgrade) }}" class="menu-linkRow">{{ phrase('manually_upgrade_user') }}</a>
									</div>
								</div>
							</xf:popup>

						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($upgrades) }}</span>
			</div>
		</div>
	</xf:form>

	<div class="block">
		<div class="block-container">
			<h2 class="block-header"><a href="{{ link('user-upgrades/active') }}">{{ phrase('active_user_upgrades') }}</a></h2>
			<xf:if is="$activeUpgrades is not empty">
				<div class="block-body">
					<xf:macro id="upgrade_list" arg-upgrades="{$activeUpgrades}" arg-active="1" />
				</div>
				<div class="block-footer block-footer--split">
					<span class="block-footer-counter">{{ display_totals($activeUpgrades, $totalActiveUpgrades) }}</span>
					<span class="block-footer-controls"><xf:button href="{{ link('user-upgrades/active') }}">{{ phrase('view_more...') }}</xf:button></span>
				</div>
			<xf:else />
				<div class="block-body block-row">{{ phrase('no_results_found') }}</div>
			</xf:if>
		</div>
	</div>

	<div class="block">
		<div class="block-container">
			<h2 class="block-header"><a href="{{ link('user-upgrades/expired') }}">{{ phrase('expired_user_upgrades') }}</a></h2>
			<xf:if is="$expiredUpgrades is not empty">
				<div class="block-body">
					<xf:macro id="upgrade_list" arg-upgrades="{$expiredUpgrades}" arg-active="0" />
				</div>
				<div class="block-footer block-footer--split">
					<span class="block-footer-counter">{{ display_totals($expiredUpgrades, $totalExpiredUpgrades) }}</span>
					<span class="block-footer-controls"><xf:button href="{{ link('user-upgrades/expired') }}">{{ phrase('view_more...') }}</xf:button></span>
				</div>
			<xf:else />
				<div class="block-body block-row">{{ phrase('no_results_found') }}</div>
			</xf:if>
		</div>
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>

<xf:macro id="upgrade_list"
	arg-upgrades="!"
	arg-viewMoreUrl=""
	arg-active="1">

	<xf:datalist data-xf-init="responsive-data-list">
		<xf:datarow rowtype="header">
			<xf:cell>{{ phrase('user') }}</xf:cell>
			<xf:cell>{{ phrase('upgrade_title') }}</xf:cell>
			<xf:cell>{{ phrase('payment_profile') }}</xf:cell>
			<xf:cell>{{ phrase('start_date') }}</xf:cell>
			<xf:cell colspan="{{ $active ? 3 : 1 }}">{{ phrase('end_date') }}</xf:cell>
		</xf:datarow>
		<xf:foreach loop="$upgrades" value="$upgrade">
			<xf:datarow rowclass="dataList-row--noHover">
				<xf:cell>
					<xf:username user="{$upgrade.User}" defaultname="{{ phrase('unknown_user') }}" href="{{ link('users/edit', $upgrade.User) }}" />
				</xf:cell>
				<xf:cell>
					<a href="{{ link('user-upgrades/edit', $upgrade.Upgrade) }}">{$upgrade.Upgrade.title}</a>
				</xf:cell>
				<xf:cell>
					<xf:set var="$paymentProfile" value="{$upgrade.PurchaseRequest.PaymentProfile}" />
					<xf:if is="$paymentProfile">
						<a href="{{ link('payment-profiles/edit', $paymentProfile) }}">{$paymentProfile.title}</a>
					<xf:else />
						{{ phrase('n_a') }}
					</xf:if>
				</xf:cell>
				<xf:cell><xf:date time="{$upgrade.start_date}" /></xf:cell>
				<xf:cell>{{ $upgrade.end_date ? date($upgrade.end_date) : phrase('permanent') }}</xf:cell>
				<xf:if is="$active">
					<xf:action overlay="true" href="{{ link('user-upgrades/edit-active', null, {'user_upgrade_record_id': $upgrade.user_upgrade_record_id}) }}">{{ phrase('edit') }}</xf:action>
					<xf:action overlay="true" href="{{ link('user-upgrades/downgrade', null, {'user_upgrade_record_id': $upgrade.user_upgrade_record_id}) }}">{{ phrase('downgrade') }}</xf:action>
				</xf:if>
			</xf:datarow>
		</xf:foreach>
	</xf:datalist>
</xf:macro>]]></template>
  <template type="admin" title="user_upgrade_manual" version_id="2000270" version_string="2.0.2"><![CDATA[<xf:title>{{ phrase('manually_upgrade_user') }}</xf:title>

<xf:form action="{{ link('user-upgrades/manual', $upgrade) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="username" ac="single"
				label="{{ phrase('user_name') }}" />

			<xf:formrow label="{{ phrase('upgrade_to_apply') }}">{$upgrade.title}</xf:formrow>

			<xf:comment><xf:dateinputrow name="end_date" value="{{ !$endDate ?: date($endDate, 'picker') }}"
				label="{{ phrase('upgrade_ends') }}" /></xf:comment>

			<xf:radiorow name="end_type"
				label="{{ phrase('upgrade_ends') }}">

				<xf:option value="permanent" selected="!{$endDate}">{{ phrase('permanent') }}</xf:option>
				<xf:option value="date" selected="{$endDate}" label="{{ phrase('date:') }}">
					<xf:dateinput name="end_date" value="{{ $endDate ? date($endDate, 'picker') : date($xf.time, 'picker') }}" />
				</xf:option>
			</xf:radiorow>
		</div>
		<xf:submitrow submit="{{ phrase('upgrade') }}" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="warning_action_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$action.isInsert()">
	<xf:title>{{ phrase('add_warning_action') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_warning_action:') }} {{ phrase('points:') }} {$action.points}</xf:title>
</xf:if>

<xf:pageaction if="$action.isUpdate()">
	<xf:button href="{{ link('warnings/actions/delete', $action) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('warnings/actions/save', $action) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:numberboxrow name="points" value="{$action}"
				label="{{ phrase('points_threshold') }}"
				explain="{{ phrase('warning_action_applied_crossing_threshold') }}" />

			<xf:radiorow name="action" value="{$action}"
				label="{{ phrase('action_to_take') }}">

				<xf:option value="ban"
					label="{{ phrase('ban') }}" />
				<xf:option value="discourage"
					label="{{ phrase('discourage') }}" />
				<xf:option value="groups"
					label="{{ phrase('add_to_selected_groups') }}">

					<xf:checkbox name="extra_user_group_ids" value="{$action.extra_user_group_ids}">
						<xf:options source="$userGroups" />
					</xf:checkbox>
				</xf:option>
			</xf:radiorow>

			<xf:radiorow name="action_length_type_base" value="{$action}"
				label="{{ phrase('for_time_period') }}">

				<xf:option value="points">{{ phrase('while_at_or_above_points_threshold') }}</xf:option>
				<xf:option value="permanent">{{ phrase('permanent') }}</xf:option>
				<xf:option value="temporary" selected="$action.action_length_type != 'permanent' AND $action.action_length_type != 'points'" label="{{ phrase('temporary') }}">
					<xf:dependent>
						<div class="inputGroup">
							<xf:numberbox name="action_length" value="{{ $action.action_length ?: 1 }}" min="1" />
							<span class="inputGroup-splitter"></span>
							<xf:select name="action_length_type" value="{{ ($action.action_length_type == 'permanent' OR $action.action_length_type == 'points') ? 'months' : $action.action_length_type }}" class="input--inline">
								<xf:option value="days">{{ phrase('days') }}</xf:option>
								<xf:option value="weeks">{{ phrase('weeks') }}</xf:option>
								<xf:option value="months">{{ phrase('months') }}</xf:option>
								<xf:option value="years">{{ phrase('years') }}</xf:option>
							</xf:select>
						</div>
					</xf:dependent>
				</xf:option>
			</xf:radiorow>
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="warning_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$warning.isInsert()">
	<xf:title>{{ phrase('add_warning') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_warning:') }} {$warning.title}</xf:title>
</xf:if>

<xf:pageaction if="$warning.isUpdate()">
	<xf:button href="{{ link('warnings/delete', $warning) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('warnings/save', $warning) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="title" value="{$warning}"
				label="{{ phrase('title') }}" />

			<xf:numberboxrow name="points_default" value="{$warning}"
				label="{{ phrase('warning_points') }}" />

			<xf:radiorow name="expiry_type_base"
				label="{{ phrase('points_expiry') }}">

				<xf:option value="never" selected="$warning.expiry_type == 'never'">{{ phrase('never') }}</xf:option>
				<xf:option value="other" selected="$warning.expiry_type != 'never'" label="{{ phrase('after_time:') }}">
					<xf:dependent>
						<div class="inputGroup">
							<xf:numberbox name="expiry_default" value="{{ $warning.expiry_default ? $warning.expiry_default : 1 }}" min="0" />
							<span class="inputGroup-splitter"></span>
							<xf:select name="expiry_type" value="{{ $warning.expiry_type == 'never' ? 'months' : $warning.expiry_type }}" class="input--inline">
								<xf:option value="days">{{ phrase('days') }}</xf:option>
								<xf:option value="weeks">{{ phrase('weeks') }}</xf:option>
								<xf:option value="months">{{ phrase('months') }}</xf:option>
								<xf:option value="years">{{ phrase('years') }}</xf:option>
							</xf:select>
						</div>

					</xf:dependent>
				</xf:option>
			</xf:radiorow>

			<xf:checkboxrow>
				<xf:option name="is_editable" selected="$warning.is_editable">{{ phrase('points_and_expiry_time_editable_when_giving_warning') }}</xf:option>
			</xf:checkboxrow>

			<xf:checkboxrow name="extra_user_group_ids" value="{$warning.extra_user_group_ids}"
				label="{{ phrase('extra_user_groups') }}"
				explain="{{ phrase('user_receiving_warning_can_be_added_to_groups_until_expiry') }}">

				<xf:options source="$userGroups" />
			</xf:checkboxrow>
		</div>

		<h3 class="block-formSectionHeader"><span class="block-formSectionHeader-aligner">{{ phrase('direct_message_settings') }}</span></h3>
		<div class="block-body">
			<xf:textboxrow name="conversation_title" value="{$warning}"
				label="{{ phrase('default_title') }}" />

			<xf:textarearow name="conversation_text" value="{$warning}"
				autosize="true"
				label="{{ phrase('default_text') }}"
				explain="{{ phrase('you_may_use_placeholders_to_dynamically_insert_warning') }}" />
		</div>

		<xf:submitrow icon="save" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="warning_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('warnings') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('warnings/add') }}" icon="add">{{ phrase('add_warning') }}</xf:button>
	<xf:button href="{{ link('warnings/actions/add') }}" icon="add">{{ phrase('add_warning_action') }}</xf:button>
</xf:pageaction>

<div class="block">
	<div class="block-outer">
		<xf:macro id="filter_macros::quick_filter" arg-key="warnings" arg-class="block-outer-opposite" />
	</div>
	<div class="block-container">
		<div class="block-body">
			<xf:datalist>
				<xf:foreach loop="$warnings" value="$warning">
					<xf:datarow
						label="{$warning.title}"
						href="{{ link('warnings/edit', $warning) }}"
						delete="{{ link('warnings/delete', $warning) }}">
						<xf:explain>
							<ul class="listInline listInline--bullet listInline--selfInline">
								<li>{{ phrase('warning_points:') }} {$warning.points_default}</li>
								<li>{{ phrase('expires:') }}
									<xf:if is="$warning.expiry_default == 'never'">
										{{ phrase('never') }}
									<xf:else />
										{{ duration($warning.expiry_default ? $warning.expiry_default : 1, $warning.expiry_type) }}
									</xf:if></li>
							</ul>
						</xf:explain>
					</xf:datarow>
				</xf:foreach>
			</xf:datalist>
		</div>
		<div class="block-footer">
			<span class="block-footer-counter">{{ display_totals($warnings) }}</span>
		</div>
	</div>
</div>

<xf:if is="$actions is not empty">
	<div class="block">
		<div class="block-container">
			<h2 class="block-header">{{ phrase('warning_actions') }}</h2>
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$actions" value="$action">
						<xf:datarow>
							<xf:cell href="{{ link('warnings/actions/edit', $action) }}">
								<div class="dataList-mainRow">
									{{ phrase('points:') }} {$action.points}
									<div class="dataList-hint" dir="auto">
										<ul class="listInline listInline--bullet listInline--selfInline">
											<xf:if is="$action.action == 'ban'">
												<li>{{ phrase('ban') }}</li>
											<xf:elseif is="$action.action == 'discourage'" />
												<li>{{ phrase('discourage') }}</li>
											<xf:elseif is="$action.action == 'groups'" />
												<li>{{ phrase('add_to_selected_groups') }}</li>
											<xf:else />
												<li>{{ phrase('unknown_action') }}</li>
											</xf:if>

											<xf:if is="$action.action_length_type == 'permanent'">
												<li>{{ phrase('permanent') }}</li>
											<xf:elseif is="$action.action_length_type == 'points'" />
												<li>{{ phrase('while_at_or_above_points_threshold') }}</li>
											<xf:else />
												<li>{{ phrase('temporary') }}</li>
											</xf:if>
										</ul>
									</div>
								</div>
							</xf:cell>
							<xf:delete href="{{ link('warnings/actions/delete', $action) }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<!--<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($actions) }}</span>
			</div>-->
		</div>
	</div>
</xf:if>]]></template>
  <template type="admin" title="webhook_criteria_thread" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:checkboxrow>
	<xf:option name="criteria[{$contentType}][nodes][rule]" value="node_id" selected="{$criteria.nodes}"
		label="{{ phrase('forum') }}">
		<xf:html>
			<ul class="inputList">
				<li><xf:radio name="criteria[{$contentType}][nodes][data][search_type]"
					value="{{ $criteria.nodes.data.search_type ?: 'include' }}"
					listclass="inputChoices--inline">
					<xf:option value="include">{{ phrase('include_selected') }}</xf:option>
					<xf:option value="exclude">{{ phrase('exclude_selected') }}</xf:option>
				</xf:radio></li>

				<li><xf:select name="criteria[{$contentType}][nodes][data][node_ids]"
					value="{{ $criteria.nodes.data.node_ids|numeric_keys_only }}"
					multiple="true" size="8">
					<xf:option value="0" label="{{ phrase('(any)') }}" />
					<xf:foreach loop="$forums" value="$forum">
						<xf:option value="{$forum.value}" disabled="{$forum.disabled}">{$forum.label}</xf:option>
					</xf:foreach>
				</xf:select></li>
			</ul>
		</xf:html>
	</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="webhook_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$webhook.isInsert()">
	<xf:title>{{ phrase('add_webhook') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_webhook:') }} {$webhook.title}</xf:title>
</xf:if>

<xf:pageaction if="$webhook.isUpdate()">
	<xf:button href="{{ link('webhooks/delete', $webhook) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('webhooks/save', $webhook) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="title" value="{$webhook}" label="{{ phrase('title') }}" />

			<xf:textarearow name="description" value="{$webhook}" autosize="true"
				label="{{ phrase('description') }}"
				explain="{{ phrase('webhook_description_explain') }}" />

			<xf:textboxrow name="url" value="{$webhook}" label="{{ phrase('target_url') }}" />

			<xf:textboxrow name="secret" value="{$webhook}" label="{{ phrase('secret') }}" explain="{{ phrase('if_specified_this_value_will_be_included_in_xf_webhook_secret_request') }}" />

			<xf:foreach loop="$contentTypeHandlers" key="$contentType" value="$handler">
				<h3 class="block-formSectionHeader">
					<span class="collapseTrigger collapseTrigger--block {{ {$webhook.events.{$contentType}} ? 'is-active' : '' }}" data-xf-click="toggle" data-target="< :up:next">
						<span class="block-formSectionHeader-aligner">{$handler.getTitle()}</span>
					</span>
					<span class="block-desc">
						{{ phrase('x_events', {'count': count($handler.getEvents())}) }}
					</span>
				</h3>
				<div class="block-body block-body--collapsible {{ {$webhook.events.{$contentType}} ? 'is-active' : '' }}">
					<xf:radiorow name="send_mode[{$contentType}]" label="{{ phrase('events') }}">
						<xf:option value="none" label="{{ phrase('dont_send_for_any_events') }}" selected="{{ !{$webhook.events.{$contentType}} }} "/>
						<xf:option value="all" label="{{ phrase('send_all_events') }}" selected="{{ {$webhook.events.{$contentType}} === '*' }}"/>
						<xf:if is="{{ count($handler.getEvents()) }}">
							<xf:option value="specific" data-hide="true" data-xf-init="disabler" data-container=".js-webhookEvents-{$contentType}"
								label="{{ phrase('send_only_specific_events') }}" selected="{{ is_array($webhook.events.{$contentType}) }}">
								<xf:dependent>
									<div class="js-webhookEvents-{$contentType}">
										<xf:checkbox name="events[{$contentType}][]" listclass="listColumns" value="{$webhook.events.{$contentType}}">
											<xf:foreach loop="$handler.getEvents()" value="$event">
												<xf:option label="{$handler.getEventName($event)}" hint="{$handler.getEventHint($event)}" value="{$event}" />
											</xf:foreach>
										</xf:checkbox>
									</div>
								</xf:dependent>
							</xf:option>
						</xf:if>
					</xf:radiorow>

					<hr class="formRowSep" />

					<div class="webhookCriteria-{$contentType}">
						{$handler.renderCriteria($webhook)|raw}
					</div>
				</div>
			</xf:foreach>

			<hr class="block-separator" />

			<xf:selectrow name="content_type" value="{$webhook}" label="{{ phrase('content_type') }}">
				<xf:option value="json">{{ phrase('application_json') }}</xf:option>
				<xf:option value="form_params">{{ phrase('x_www_form_urlencoded') }}</xf:option>
			</xf:selectrow>

			<xf:checkboxrow>
				<xf:option name="ssl_verify" selected="$webhook.ssl_verify"
					label="{{ phrase('enable_ssl_verification') }}"
					hint="{{ phrase('we_do_not_recommend_disabling_this_as_it_is_insecure') }}" />
			</xf:checkboxrow>

			<hr class="formRowSep" />

			<xf:checkboxrow>
				<xf:option name="active" selected="$webhook.active"
					label="{{ phrase('webhook_is_active') }}"
					hint="{{ phrase('use_this_to_disable_webhook') }}" />
			</xf:checkboxrow>

			<xf:submitrow icon="save" />
		</div>
	</div>
</xf:form>]]></template>
  <template type="admin" title="webhook_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('webhooks') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('webhooks/add') }}" icon="add">{{ phrase('add_webhook') }}</xf:button>
</xf:pageaction>

<xf:if is="$webhooks is not empty">
	<xf:form action="{{ link('webhooks/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro template="filter_macros" name="quick_filter" arg-key="webhooks" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$webhooks" value="$webhook">
						<xf:datarow
							label="{$webhook.title}"
							hint="{$webhook.getFormattedEvents()}"
							explain="{$webhook.description}"
							href="{{ link('webhooks/edit', $webhook) }}"
							delete="{{ link('webhooks/delete', $webhook) }}">

							<xf:toggle name="active[{$webhook.webhook_id}]" selected="$webhook.active"
								class="dataList-cell--separated" submit="true"
								tooltip="{{ phrase('enable_disable_x', {'title': $webhook.title}) }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($webhooks) }}</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="widget_def_options_birthdays" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<hr class="formRowSep" />

<xf:numberboxrow name="options[limit]" value="{$options.limit}" min="0"
	label="{{ phrase('maximum_entries') }}"
	explain="{{ phrase('birthdays_limit_explain') }}" />]]></template>
  <template type="admin" title="widget_def_options_featured_content" version_id="2030070" version_string="2.3.0"><![CDATA[<hr class="formRowSep" />

<xf:checkboxrow>
	<xf:option name="options[contextual]" selected="{$options.contextual}"
		label="{{ phrase('display_contextual_content') }}"
		hint="{{ phrase('if_selected_widget_will_display_content_which_pertains_to') }}">

		<xf:dependent>
			<xf:checkbox>
				<xf:option name="options[contextual_hidden]" selected="{$options.contextual_hidden}"
					label="{{ phrase('hide_widget_when_there_is_no_available_context') }}"
					hint="{{ phrase('if_selected_widget_will_be_hidden_when_there_is_no_available_context') }}" />
			</xf:checkbox>
		</xf:dependent>
	</xf:option>
</xf:checkboxrow>

<xf:numberboxrow name="options[limit]" value="{$options.limit}"
	label="{{ phrase('maximum_entries') }}"
	min="1" />

<xf:radiorow name="options[style]" value="{$options.style}"
	label="{{ phrase('display_style') }}">

	<xf:option value="simple"
		label="{{ phrase('simple') }}"
		hint="{{ phrase('widget_display_simple_explain') }}" />
	<xf:option value="full"
		label="{{ phrase('standard') }}"
		hint="{{ phrase('full_size_view_displaying_as_standard_content_list') }}" />
	<xf:option value="carousel"
		label="{{ phrase('carousel') }}"
		hint="{{ phrase('carousel_view_displaying_content_in_slider') }}" />
</xf:radiorow>

<xf:numberboxrow name="options[snippet_length]" value="{$options.snippet_length}"
	label="{{ phrase('snippet_length') }}"
	explain="{{ phrase('snippet_length_explain') }}"
	min="0" max="500" />

<xf:selectrow name="options[content_type]" value="{$options.content_type}"
	label="{{ phrase('content_type') }}">

	<xf:option value="">{{ phrase('(any)') }}</xf:option>

	<xf:foreach loop="$contentTypes" value="$contentType">
		<xf:option value="{$contentType}">
			{{ $xf.app.getContentTypePhrase($contentType) }}
		</xf:option>
	</xf:foreach>
</xf:selectrow>]]></template>
  <template type="admin" title="widget_def_options_html" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<hr class="formRowSep" />

<xf:codeeditorrow name="options[template]" value="{$template.template}" class="codeEditor--short" mode="html"
	label="{{ phrase('template') }}"
	explain="{{ phrase('you_may_use_xenforo_template_syntax_here') }}" />

<xf:checkboxrow>
	<xf:option name="options[advanced_mode]" value="1" selected="{$options.advanced_mode}"
		label="{{ phrase('advanced_mode') }}"
		hint="{{ phrase('if_enabled_html_for_your_page_will_not_be_contained_within_block') }}" />
</xf:checkboxrow>

<xf:if is="$options.template_title">
	<xf:hiddenval name="options[template_title]">{$options.template_title}</xf:hiddenval>
</xf:if>]]></template>
  <template type="admin" title="widget_def_options_member_stat" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<hr class="formRowSep" />

<xf:numberboxrow name="options[limit]" value="{$options.limit}" min="1"
	label="{{ phrase('maximum_entries') }}" />

<xf:selectrow name="options[member_stat_key]" value="{$options.member_stat_key}"
	label="{{ phrase('member_stat_to_display') }}">
	<xf:options source="{$memberStats}" />
</xf:selectrow>]]></template>
  <template type="admin" title="widget_def_options_members_online" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<hr class="formRowSep" />

<xf:numberboxrow name="options[limit]" value="{$options}"
	label="{{ phrase('maximum_usernames') }}"
	explain="{{ phrase('maximum_usernames_explain') }}" />

<xf:checkboxrow>
	<xf:option name="options[followedOnline]" selected="$options.followedOnline"
		label="{{ phrase('enable_people_you_follow_row') }}" />

	<xf:option name="options[staffOnline]" selected="$options.staffOnline"
		label="{{ phrase('enable_staff_online_block') }}">
		<xf:checkbox>
			<xf:option name="options[staffQuery]" selected="$options.staffQuery"
				label="{{ phrase('run_dedicated_staff_query_when_necessary') }}"
				hint="{{ phrase('run_dedicated_staff_query_explain') }}" />
		</xf:checkbox>
	</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="widget_def_options_new_posts" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<hr class="formRowSep" />

<xf:numberboxrow name="options[limit]" value="{$options}" min="1"
	label="{{ phrase('maximum_entries') }}" />

<xf:radiorow name="options[style]" value="{{ $options.style ?: 'simple' }}"
	label="{{ phrase('display_style') }}">

	<xf:option value="simple"
		label="{{ phrase('simple') }}"
		hint="{{ phrase('widget_display_simple_explain') }}" />
	<xf:option value="full"
		label="{{ phrase('standard') }}"
		hint="{{ phrase('new_posts_display_style_full_explain') }}" />
</xf:radiorow>

<xf:radiorow name="options[filter]" value="{{ $options.filter ?: 'latest' }}"
	label="{{ phrase('filter') }}">

	<xf:option value="latest"
		label="{{ phrase('new_posts_latest') }}"
		hint="{{ phrase('new_posts_filter_latest_explain') }}" />
	<xf:option value="unread"
		label="{{ phrase('new_posts_unread') }}"
		hint="{{ phrase('new_posts_filter_unread_explain') }}" />
	<xf:option value="watched"
		label="{{ phrase('new_posts_watched') }}"
		hint="{{ phrase('new_posts_filter_watched_explain') }}" />
</xf:radiorow>

<xf:selectrow name="options[node_ids][]" value="{{ $options.node_ids ?: '' }}" multiple="multiple" size="7"
	label="{{ phrase('forum_limit') }}"
	explain="{{ phrase('only_include_threads_in_selected_forums') }}">

	<xf:option value="">{{ phrase('all_forums') }}</xf:option>
	<xf:foreach loop="$nodeTree.getFlattened(0)" value="$treeEntry">
		<xf:option value="{$treeEntry.record.node_id}" disabled="{{ $treeEntry.record.node_type_id != 'Forum' }}">
			{{ repeat('&nbsp;&nbsp;', $treeEntry.depth)|raw }} {$treeEntry.record.title}
		</xf:option>
	</xf:foreach>
</xf:selectrow>]]></template>
  <template type="admin" title="widget_def_options_new_profile_posts" version_id="2020032" version_string="2.2.0 Beta 2"><![CDATA[<hr class="formRowSep" />

<xf:numberboxrow name="options[limit]" value="{$options.limit}" min="1"
	label="{{ phrase('maximum_entries') }}" />

<xf:radiorow name="options[style]" value="{{ $options.style ?: 'simple' }}"
	label="{{ phrase('display_style') }}">

	<xf:option value="simple"
		label="{{ phrase('simple') }}"
		hint="{{ phrase('widget_display_simple_explain') }}" />
	<xf:option value="full"
		label="{{ phrase('standard') }}"
		hint="{{ phrase('new_profile_posts_display_style_full_explain') }}" />
</xf:radiorow>

<xf:radiorow name="options[filter]" value="{{ $options.filter ?: 'latest' }}"
	label="{{ phrase('filter') }}">

	<xf:option value="latest"
		label="{{ phrase('new_profile_posts_latest') }}"
		hint="{{ phrase('new_profile_posts_filter_latest_explain') }}" />
	<xf:option value="followed"
		label="{{ phrase('new_profile_posts_followed') }}"
		hint="{{ phrase('new_profile_posts_filter_followed_explain') }}" />
</xf:radiorow>]]></template>
  <template type="admin" title="widget_def_options_new_threads" version_id="2020032" version_string="2.2.0 Beta 2"><![CDATA[<hr class="formRowSep" />

<xf:numberboxrow name="options[limit]" value="{$options.limit}" min="1"
	label="{{ phrase('maximum_entries') }}" />

<xf:radiorow name="options[style]" value="{{ $options.style ?: 'simple' }}"
	label="{{ phrase('display_style') }}">

	<xf:option value="simple"
		label="{{ phrase('simple') }}"
		hint="{{ phrase('widget_display_simple_explain') }}" />
	<xf:option value="full"
		label="{{ phrase('standard') }}"
		hint="{{ phrase('new_threads_display_style_full_explain') }}" />
	<xf:option value="expanded"
		label="{{ phrase('expanded') }}"
		hint="{{ phrase('new_threads_display_style_expanded_explain') }}">

		<xf:checkbox>
			<xf:option name="options[show_expanded_title]" selected="$options.show_expanded_title">
				{{ phrase('display_widget_title_above_list_of_threads') }}
			</xf:option>
		</xf:checkbox>
	</xf:option>
</xf:radiorow>

<xf:selectrow name="options[node_ids][]" value="{{ $options.node_ids ?: '' }}" multiple="multiple" size="7"
	label="{{ phrase('forum_limit') }}"
	explain="{{ phrase('only_include_threads_in_selected_forums') }}">

	<xf:option value="">{{ phrase('all_forums') }}</xf:option>
	<xf:foreach loop="$nodeTree.getFlattened(0)" value="$treeEntry">
		<xf:option value="{$treeEntry.record.node_id}" disabled="{{ $treeEntry.record.node_type_id != 'Forum' }}">
			{{ repeat('&nbsp;&nbsp;', $treeEntry.depth)|raw }} {$treeEntry.record.title}
		</xf:option>
	</xf:foreach>
</xf:selectrow>

<xf:selectrow name="options[date_limit_days]" value="{$options.date_limit_days}"
	label="{{ phrase('date_limit') }}"
	explain="{{ phrase('date_limit_explain') }}">

	<xf:option value="0">{{ phrase('none') }}</xf:option>
	<xf:option value="7">{{ phrase('x_days', {'days': '7'}) }}</xf:option>
	<xf:option value="14">{{ phrase('x_days', {'days': '14'}) }}</xf:option>
	<xf:option value="30">{{ phrase('x_days', {'days': '30'}) }}</xf:option>
	<xf:option value="60">{{ phrase('x_months', {'months': '2'}) }}</xf:option>
	<xf:option value="90">{{ phrase('x_months', {'months': '3'}) }}</xf:option>
	<xf:option value="182">{{ phrase('x_months', {'months': '6'}) }}</xf:option>
	<xf:option value="365">{{ phrase('1_year') }}</xf:option>
</xf:selectrow>]]></template>
  <template type="admin" title="widget_def_options_newest_members" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<hr class="formRowSep" />

<xf:numberboxrow name="options[limit]" value="{$options.limit}" min="1"
	label="{{ phrase('maximum_entries') }}" />]]></template>
  <template type="admin" title="widget_def_options_php_callback" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<hr class="formRowSep" />

<xf:macro id="helper_callback_fields::callback_row"
	arg-label="{{ phrase('php_callback') }}"
	arg-explain="{{ phrase('widget_def_options_php_callback_explain') }}"
	arg-className="options[callback_class]"
	arg-classValue="{$options.callback_class}"
	arg-methodName="options[callback_method]"
	arg-methodValue="{$options.callback_method}" />]]></template>
  <template type="admin" title="widget_def_options_poll_base" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:if is="!$options.poll_id">

	<xf:textboxrow name="options[content_url]" type="url"
		label="{{ phrase('poll_content_url') }}"
		explain="{{ phrase('poll_content_url_explain') }}" />

<xf:elseif is="$poll" />

	<xf:formrow label="{{ phrase('poll_for_content') }}">
		<a href="{$contentLink}" target="_blank">{$contentTitle}</a>
	</xf:formrow>

	<xf:hiddenval name="options[poll_id]">{$poll.poll_id}</xf:hiddenval>

	<xf:checkboxrow explain="{{ phrase('poll_change_content_url_explain') }}">
		<xf:option name="options[change_url]"
			label="{{ phrase('poll_change_content_url:') }}">

			<xf:dependent>
				<xf:textbox name="options[content_url]" type="url" />
			</xf:dependent>
		</xf:option>
	</xf:checkboxrow>

<xf:else />

	<xf:formrow>
		<div class="blockMessage blockMessage--error blockMessage--iconic">{{ phrase('poll_for_this_content_cannot_be_found') }}</div>
	</xf:formrow>

	<xf:textboxrow name="options[content_url]" type="url"
		label="{{ phrase('poll_content_url') }}"
		explain="{{ phrase('poll_content_url_explain') }}" />

</xf:if>]]></template>
  <template type="admin" title="widget_def_options_search_forum" version_id="2020032" version_string="2.2.0 Beta 2"><![CDATA[<hr class="formRowSep" />

<xf:if is="$nodeTree.getFlattened(0) is not empty">
	<xf:selectrow name="options[node_id]" value="{$options.node_id}"
		label="{{ phrase('search_forum') }}"
		explain="{{ phrase('threads_will_be_displayed_from_selected_search_forum') }}">

		<xf:option value="0" label="{{ phrase('(none)') }}" />

		<xf:foreach loop="$nodeTree.getFlattened(0)" value="$treeEntry">
			<xf:option value="{$treeEntry.record.node_id}"
				disabled="{{ $treeEntry.record.node_type_id != 'SearchForum' }}"
				label="{{ repeat('&nbsp;&nbsp;', $treeEntry.depth)|raw }} {$treeEntry.record.title}" />
		</xf:foreach>
	</xf:selectrow>
<xf:else />
	<xf:formrow label="{{ phrase('search_forum') }}" rowtype="button">
		<div class="block-rowMessage block-rowMessage--important">
			{{ phrase('no_search_forum_nodes_have_been_added_yet_add_one', {'add_link': link('search-forums/add')}) }}
		</div>
	</xf:formrow>
</xf:if>

<xf:numberboxrow name="options[limit]" value="{$options.limit}" min="1"
	label="{{ phrase('maximum_entries') }}" />

<xf:radiorow name="options[style]" value="{{ $options.style ?: 'simple' }}"
	label="{{ phrase('display_style') }}">

	<xf:option value="simple"
		label="{{ phrase('simple') }}"
		hint="{{ phrase('widget_display_simple_explain') }}" />
	<xf:option value="full"
		label="{{ phrase('standard') }}"
		hint="{{ phrase('new_threads_display_style_full_explain') }}" />
	<xf:option value="expanded"
		label="{{ phrase('expanded') }}"
		hint="{{ phrase('new_threads_display_style_expanded_explain') }}">

		<xf:checkbox>
			<xf:option name="options[show_expanded_title]" selected="$options.show_expanded_title">
				{{ phrase('display_widget_title_above_list_of_threads') }}
			</xf:option>
		</xf:checkbox>
	</xf:option>
</xf:radiorow>]]></template>
  <template type="admin" title="widget_def_options_share_page" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<hr class="formRowSep" />

<xf:checkboxrow>
	<xf:option name="options[iconic]" selected="$options.iconic">{{ phrase('display_icons_only') }}</xf:option>
</xf:checkboxrow>]]></template>
  <template type="admin" title="widget_def_options_thread_poll" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<hr class="formRowSep" />

<xf:include template="widget_def_options_poll_base">
	<xf:set var="$contentLink">{{ link_type('public', 'threads', $content) }}</xf:set>
	<xf:set var="$contentTitle">{$content.title}</xf:set>
</xf:include>]]></template>
  <template type="admin" title="widget_def_options_thread_statistics" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[]]></template>
  <template type="admin" title="widget_def_options_trending_content" version_id="2030070" version_string="2.3.0"><![CDATA[<hr class="formRowSep" />

<xf:checkboxrow>
	<xf:option name="options[contextual]" selected="{$options.contextual}"
		label="{{ phrase('display_contextual_content') }}"
		hint="{{ phrase('if_selected_widget_will_display_content_which_pertains_to') }}">

		<xf:dependent>
			<xf:checkbox>
				<xf:option name="options[contextual_hidden]" selected="{$options.contextual_hidden}"
					label="{{ phrase('hide_widget_when_there_is_no_available_context') }}"
					hint="{{ phrase('if_selected_widget_will_be_hidden_when_there_is_no_available_context') }}" />
			</xf:checkbox>
		</xf:dependent>
	</xf:option>
</xf:checkboxrow>

<xf:radiorow name="options[order]" value="{$options.order}"
	label="{{ phrase('order_by') }}"
	explain="{{ phrase('trending_order_explain') }}">

	<xf:foreach loop="$orders" value="$order">
		<xf:option value="{$order}">{{ phrase_dynamic('trending_result_order.' . $order) }}</xf:option>
	</xf:foreach>
</xf:radiorow>

<xf:numberboxrow name="options[duration]" value="{$options.duration}"
	label="{{ phrase('duration') }}"
	explain="{{ phrase('trending_duration_explain', {'activityLogLength': $xf.options.activityLogLength}) }}"
	min="1" max="365" units="{{ phrase('units_days') }}" />

<xf:numberboxrow name="options[limit]" value="{$options.limit}"
	label="{{ phrase('maximum_entries') }}"
	min="1" max="100" />

<xf:radiorow name="options[style]" value="{$options.style}"
	label="{{ phrase('display_style') }}">

	<xf:option value="simple"
		label="{{ phrase('simple') }}"
		hint="{{ phrase('widget_display_simple_explain') }}" />
	<xf:option value="full"
		label="{{ phrase('standard') }}"
		hint="{{ phrase('full_size_view_displaying_as_standard_content_list') }}" />
	<xf:option value="carousel"
		label="{{ phrase('carousel') }}"
		hint="{{ phrase('carousel_view_displaying_content_in_slider') }}" />
</xf:radiorow>

<xf:numberboxrow name="options[snippet_length]" value="{$options.snippet_length}"
	label="{{ phrase('snippet_length') }}"
	explain="{{ phrase('snippet_length_explain') }}"
	min="0" max="500" />

<xf:selectrow name="options[content_type]" value="{$options.content_type}"
	label="{{ phrase('content_type') }}">

	<xf:option value="">{{ phrase('(any)') }}</xf:option>

	<xf:foreach loop="$contentTypes" value="$contentType">
		<xf:option value="{$contentType}">
			{{ $xf.app.getContentTypePhrase($contentType) }}
		</xf:option>
	</xf:foreach>
</xf:selectrow>]]></template>
  <template type="admin" title="widget_definition_chooser" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('choose_widget_definition') }}</xf:title>

<xf:form action="{{ link('widgets/add') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:selectrow name="definition_id"
				label="{{ phrase('widget_definition') }}">

				<xf:option />
				<xf:options source="{$widgetDefinitions}" />
			</xf:selectrow>
		</div>
		<xf:submitrow submit="{{ phrase('add_widget') }}" icon="add" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="widget_definition_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$widgetDefinition.isInsert()">
	<xf:title>{{ phrase('add_widget_definition') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_widget_definition:') }} {$widgetDefinition.title}</xf:title>
</xf:if>

<xf:pageaction if="$widgetDefinition.isUpdate()">
	<xf:button href="{{ link('widgets/definitions/delete', $widgetDefinition) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('widgets/definitions/save', $widgetDefinition) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="definition_id" value="{$widgetDefinition}"
				label="{{ phrase('definition_id') }}"
				dir="ltr" />

			<xf:textboxrow name="title" value="{$widgetDefinition}"
				label="{{ phrase('title') }}" />

			<xf:textarearow name="description" value="{$widgetDefinition}" autosize="true"
				label="{{ phrase('description') }}" />

			<xf:textboxrow name="definition_class" value="{$widgetDefinition}"
				label="{{ phrase('definition_class') }}"
				explain="{{ phrase('definition_class_explain') }}"
				dir="ltr" />

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$widgetDefinition.addon_id}" />
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="widget_definition_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('widget_definitions') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('widgets/definitions/add') }}" icon="add">{{ phrase('add_widget_definition') }}</xf:button>
</xf:pageaction>

<xf:if is="$widgetDefinitions is not empty">
	<div class="block">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="widget-definitions" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$widgetDefinitions" value="$widgetDefinition">
						<xf:datarow
							label="{$widgetDefinition.title}"
							hint="{$widgetDefinition.definition_class}"
							explain="{$widgetDefinition.description}"
							href="{{ link('widgets/definitions/edit', $widgetDefinition) }}"
							delete="{{ link('widgets/definitions/delete', $widgetDefinition) }}">

							<xf:action href="{{ link('widgets/add', null, {'definition_id': $widgetDefinition.definition_id}) }}">
								{{ phrase('add_widget') }}
							</xf:action>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($widgetDefinitions) }}</span>
			</div>
		</div>
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="widget_delete" version_id="2010033" version_string="2.1.0 Beta 3"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('widgets/delete', $widget, {'position_id': $positionId}) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<xf:if is="$positionId">
					{{ phrase('please_confirm_that_you_want_to_delete_following_widget_from_position_x', {'positionId': $positionId}) }}
				<xf:else />
					{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				</xf:if>
				<strong><a href="{{ link('widgets/edit', $widget) }}">{$widget.title}</a></strong>
			</xf:inforow>
		</div>
		<xf:if is="count($widget.positions) == 1">
			<div class="block-body">
				<xf:checkboxrow rowtype="fullWidth noLabel">
					<xf:option name="delete">
						<xf:label>{{ phrase('this_is_last_position_for_this_widget_permanently_delete') }}</xf:label>
					</xf:option>
				</xf:checkboxrow>
			</div>
		<xf:elseif is="!$positionId AND count($widget.positions)" />
			<div class="block-row">
				<div class="blockMessage blockMessage--close blockMessage--warning blockMessage--iconic blockMessage--iconic">
					{{ phrase('this_widget_is_currently_used_in_x_positions', {'positions': count($widget.positions)}) }}
				</div>
			</div>
		</xf:if>
		<xf:submitrow rowtype="simple" icon="delete" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="widget_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$widget.isInsert()">
	<xf:title>{{ phrase('add_widget') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_widget:') }} {$widget.title}</xf:title>
</xf:if>

<xf:pageaction if="$widget.isUpdate()">
	<xf:button href="{{ link('widgets/delete', $widget) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('widgets/save', $widget) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">

			<xf:formrow
				label="{{ phrase('widget_definition') }}"
				explain="{$widgetDefinition.description}">
				{$widgetDefinition.title}
				<xf:hiddenval name="definition_id">{$widgetDefinition.definition_id}</xf:hiddenval>
			</xf:formrow>

			<hr class="formRowSep" />

			<xf:textboxrow name="widget_key" value="{$widget}"
				label="{{ phrase('widget_key') }}"
				hint="{{ phrase('required') }}"
				explain="{{ phrase('widget_key_explain') }}"
				dir="ltr" />

			<xf:textboxrow name="title" value="{$widget}"
				label="{{ phrase('title') }}"
				hint="{{ phrase('optional') }}"
				explain="{{ phrase('widget_title_explain') }}" />

			<xf:checkboxrow label="{{ phrase('display_in_positions') }}" listclass="listColumns">
				<xf:foreach loop="$widgetPositions" value="$position">
					<xf:option selected="{$widget.positions.{$position.position_id}} !== null" data-hide="true"
						label="{$position.title}">

						<xf:numberbox name="positions[{$position.position_id}]" value="{$widget.positions.{$position.position_id}|default(1)}" min="0" />
					</xf:option>
				</xf:foreach>

				<xf:explain>{{ phrase('widget_no_position_explain')|raw }}</xf:explain>
			</xf:checkboxrow>

			<xf:textboxrow name="display_condition" value="{$widget}" code="true"
				label="{{ phrase('display_condition') }}"
				explain="{{ phrase('this_should_be_entered_as_template_style_expression') }}" />

			{$widget.renderOptions()|raw}
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="widget_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('widgets') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('widgets/add') }}" icon="add" overlay="true">{{ phrase('add_widget') }}</xf:button>
</xf:pageaction>

<xf:if is="$groupedWidgets is not empty">
	<div class="block">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="widgets" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$positions" key="$positionId" value="$position">
						<xf:if is="{$groupedWidgets.{$positionId}} is not empty">
							<tbody class="dataList-rowGroup">
								<xf:if is="$positionId == ''">
									<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover"
										label="{{ phrase('(no_position)') }}"
										explain="{{ phrase('widget_no_position_explain')|raw }}"
										colspan="2" />
								<xf:else />
									<xf:datarow rowtype="subsection" rowclass="dataList-row--noHover"
										label="{$position.title}"
										explain="{$position.description|raw}"
										colspan="2" />
								</xf:if>
								<xf:foreach loop="{$groupedWidgets.{$positionId}}" value="$widget">
									<xf:datarow
										label="{$widget.title}"
										hint="{$widget.widget_key}"
										href="{{ link('widgets/edit', $widget) }}">
										<xf:delete href="{{ link('widgets/delete', $widget, $positionId ? {'position_id': $positionId} : {}) }}"
											tooltip="{{ $positionId ? phrase('delete_from_this_position') : phrase('delete') }}" />
									</xf:datarow>
								</xf:foreach>
							</tbody>
						</xf:if>
					</xf:foreach>
				</xf:datalist>
				<div class="block-footer">
					<span class="block-footer-counter">{{ display_totals($totalWidgets) }}</span>
				</div>
			</div>
		</div>
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="widget_position_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$widgetPosition.isInsert()">
	<xf:title>{{ phrase('add_widget_position') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('edit_widget_position:') }} {$widgetPosition.title}</xf:title>
</xf:if>

<xf:pageaction if="$widgetPosition.isUpdate()">
	<xf:button href="{{ link('widgets/positions/delete', $widgetPosition) }}" icon="delete" overlay="true" />
</xf:pageaction>

<xf:form action="{{ link('widgets/positions/save', $widgetPosition) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="position_id" value="{$widgetPosition}"
				label="{{ phrase('position_id') }}"
				dir="ltr" />

			<xf:textboxrow name="title" value="{$widgetPosition}"
				label="{{ phrase('title') }}" />

			<xf:codeeditorrow name="description" value="{$widgetPosition}"
				mode="html" data-line-wrapping="true"
				class="codeEditor--autoSize codeEditor--proportional"
				label="{{ phrase('description') }}"
				hint="{{ phrase('you_may_use_html') }}" />

			<xf:checkboxrow>
				<xf:option name="active" value="1" selected="$widgetPosition.active">{{ phrase('widget_position_is_active') }}</xf:option>
			</xf:checkboxrow>

			<xf:macro id="addon_macros::addon_edit" arg-addOnId="{$widgetPosition.addon_id}" />
		</div>
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="admin" title="widget_position_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('widget_positions') }}</xf:title>

<xf:pageaction>
	<xf:button href="{{ link('widgets/positions/add') }}" icon="add">{{ phrase('add_widget_position') }}</xf:button>
</xf:pageaction>

<xf:if is="$widgetPositions is not empty">
	<xf:form action="{{ link('widgets/positions/toggle') }}" class="block" ajax="true">
		<div class="block-outer">
			<xf:macro id="filter_macros::quick_filter" arg-key="widget-positions" arg-class="block-outer-opposite" />
		</div>
		<div class="block-container">
			<div class="block-body">
				<xf:datalist>
					<xf:foreach loop="$widgetPositions" value="$widgetPosition">
						<xf:datarow
							label="{$widgetPosition.title}"
							explain="{$widgetPosition.description|raw}"
							href="{{ link('widgets/positions/edit', $widgetPosition) }}"
							delete="{{ link('widgets/positions/delete', $widgetPosition) }}">

							<xf:toggle name="active[{$widgetPosition.position_id}]" selected="$widgetPosition.active"
								class="dataList-cell--separated" submit="true"
								tooltip="{{ phrase('enable_disable_x', {'title': $widgetPosition.position_id}) }}" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<span class="block-footer-counter">{{ display_totals($widgetPositions) }}</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="admin" title="xml_import" version_id="2000631" version_string="2.0.6 Beta 1"><![CDATA[<xf:title>{{ phrase('import_from_xml') }}</xf:title>

<xf:form action="{{ link($urlPrefix . '/import') }}" upload="true" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:uploadrow name="upload" accept=".xml"
				label="{{ phrase('import_from_uploaded_xml_file') }}" />
		</div>
		<xf:submitrow icon="import" />
	</div>
</xf:form>]]></template>
  <template type="email" title="ACTIVITY_SUMMARY_CONTAINER" version_id="2020032" version_string="2.2.0 Beta 2"><![CDATA[<!DOCTYPE html>
<html lang="{$xf.language.language_code}" dir="{$xf.language.text_direction}">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<base href="{$xf.options.boardUrl}/">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="format-detection" content="telephone=no">
	<title>{$subject}</title>
</head>
<body dir="{$xf.language.text_direction}" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" class="p-activitySummary">

<table id="bodyTable" border="0" width="100%" height="100%" cellpadding="0" cellspacing="0">
<tr>
	<td align="center" valign="top" id="bodyTableContainer">
		<table border="0" width="100%" cellpadding="0" cellspacing="0" class="summaryHeaderContainer" dir="{$xf.language.text_direction}">
			<tr>
				<td class="summaryHeaderBar" align="center" valign="top">
					<xf:if is="property('emailPublicLogoUrl')">
						<a href="{{ link('canonical:index') }}"><img src="{{ base_url(property('emailPublicLogoUrl'), true) }}" alt="{$xf.options.boardTitle}" /></a>
					<xf:elseif is="property('publicLogoUrl')" />
						<a href="{{ link('canonical:index') }}"><img src="{{ base_url(property('publicLogoUrl'), true) }}" alt="{$xf.options.boardTitle}" width="{{ property('publicLogoWidth') ?: '' }}" height="{{ property('publicLogoHeight') ?: '' }}" class="{{ property('publicLogoUrl')|to_lower|substr(-4) == '.svg' ? 'logo-svg' : '' }}" /></a>
					<xf:else />
						<a href="{{ link('canonical:index') }}">{$xf.options.boardTitle}</a>
					</xf:if>
				</td>
			</tr>
		</table>

		<div class="summaryContentWrapper">
			{$html|raw}
		</div>

	</td>
</tr>
<tr>
	<td class="footer" align="center" valign="top">
		<div>{{ phrase('visit_board_html', {'board_url': link('canonical:index'), 'board_title': $xf.options.boardTitle}) }}</div>

		<xf:if contentcheck="true">
			<div class="footerExtra"><xf:contentcheck>{{ phrase('email_footer_html') }}</xf:contentcheck></div>
		</xf:if>
	</td>
</tr>
</table>

</body>
</html>]]></template>
  <template type="email" title="MAIL_CONTAINER" version_id="2020032" version_string="2.2.0 Beta 2"><![CDATA[<!DOCTYPE html>
<html lang="{$xf.language.language_code}" dir="{$xf.language.text_direction}">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<base href="{$xf.options.boardUrl}/">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="format-detection" content="telephone=no">
	<title>{$subject}</title>
</head>
<body dir="{$xf.language.text_direction}" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

<table id="bodyTable" border="0" width="100%" height="100%" cellpadding="0" cellspacing="0">
<tr>
	<td align="center" valign="top" id="bodyTableContainer">
		<table border="0" width="600" cellpadding="0" cellspacing="0" class="container" style="table-layout: fixed;" dir="{$xf.language.text_direction}">
		<tr>
			<td class="header" align="center" valign="top">
				<a href="{{ link('canonical:index') }}">{$xf.options.boardTitle}</a>
			</td>
		</tr>
		<tr>
			<td class="content" align="{{ $xf.isRtl ? 'right' : 'left' }}" valign="top">

{$html|raw}

			</td>
		</tr>
		<tr>
			<td class="footer" align="center" valign="top">
				<div>{{ phrase('visit_board_html', {'board_url': link('canonical:index'), 'board_title': $xf.options.boardTitle}) }}</div>

				<xf:if contentcheck="true">
					<div class="footerExtra"><xf:contentcheck>{{ phrase('email_footer_html') }}</xf:contentcheck></div>
				</xf:if>
			</td>
		</tr>
		</table>
	</td>
</tr>
</table>

</body>
</html>

<mail:text>
{$text}

-----------------------------

{{ phrase('visit_board_text', {'board_title': $xf.options.boardTitle, 'board_url': link('canonical:index')}) }}

{{ phrase('email_footer_text') }}
</mail:text>]]></template>
  <template type="email" title="activity_summary" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:page option="template">ACTIVITY_SUMMARY_CONTAINER</xf:page>

<mail:subject>{$xf.options.boardTitle} - {{ phrase('see_what_you_have_missed') }}</mail:subject>

<xf:if is="$displayValues">
	<xf:macro id="activity_summary_macros::outer_header"
		arg-title="{{ phrase('summary_of_what_you_missed_recently') }}" />

	<xf:set var="$content">
		<table border="0" width="100%" cellpadding="0" cellspacing="0" class="statsContainer">
			<tr>
				<td class="statsGroup" align="center">
					<xf:foreach loop="$displayValues" value="$value" if="$value.value != 0">
						<div class="stat">
							<table border="0" width="100%" cellpadding="0" cellspacing="0">
								<tr>
									<td class="stat-label" align="center">{$value.label}</td>
								</tr>
								<tr>
									<td class="stat-value" align="center">{$value.value|number_short}</td>
								</tr>
							</table>
						</div>
					</xf:foreach>
				</td>
			</tr>
		</table>
	</xf:set>

	<xf:macro id="activity_summary_macros::block"
		arg-content="{$content}" />
</xf:if>

<xf:foreach loop="$renderedSections" value="$section">
	{$section|raw}
</xf:foreach>

<table border="0" width="100%" cellpadding="0" cellspacing="0" class="container container--outer">
	<tr>
		<td align="center" valign="top">
			<p class="minorText">{{ phrase('activity_summary_email_unsubscribe', {'disable_this_link': link('canonical:email-stop/activity-summary', $xf.toUser), 'disable_all_link': link('canonical:email-stop/all', $xf.toUser)}) }}</p>
		</td>
	</tr>
</table>]]></template>
  <template type="email" title="activity_summary_latest_posts" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$posts is not empty">
	<xf:macro id="activity_summary_macros::outer_header"
		arg-title="{$title}" />

	<xf:foreach loop="$posts" value="$post">
		<xf:set var="$attribution">
			{{ $post.User ? $post.User.username : $post.username }} &middot; {{ phrase('thread:') }} <a href="{{ link('canonical:threads/post', $post.Thread, {'post_id': $post.post_id} ) }}">{$post.Thread.title}</a> &middot; {{ date_time($post.post_date) }}
		</xf:set>
		<xf:set var="$footer">
			{{ phrase('forum:') }} <a href="{{ link('canonical:forums', $post.Thread.Forum) }}">{$post.Thread.Forum.title}</a>
		</xf:set>
		<xf:set var="$footerOpposite">
			<a href="{{ link('canonical:threads/post', $post.Thread, {'post_id': $post.post_id}) }}" class="button button--link">{{ phrase('read_more') }}</a>
		</xf:set>

		<xf:macro id="activity_summary_macros::block"
			arg-attribution="{$attribution}"
			arg-content="{{ bb_code_type_snippet('emailHtml', $post.message, 'post', $post, 300) }}"
			arg-footer="{$footer}"
			arg-footerOpposite="{$footerOpposite}" />
	</xf:foreach>
</xf:if>]]></template>
  <template type="email" title="activity_summary_latest_threads" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$threads is not empty">
	<xf:macro id="activity_summary_macros::outer_header"
		arg-title="{$title}" />

	<xf:foreach loop="$threads" value="$thread">
		<xf:set var="$header">
			<a href="{{ link('canonical:threads', $thread) }}">{$thread.title}</a>
		</xf:set>
		<xf:set var="$attribution">
			{$thread.username} &middot; {{ date_time($thread.post_date) }} &middot; {{ phrase('replies:') }} {$thread.reply_count|number_short}
		</xf:set>
		<xf:set var="$footer">
			{{ phrase('forum:') }} <a href="{{ link('canonical:forums', $thread.Forum) }}">{$thread.Forum.title}</a>
		</xf:set>
		<xf:set var="$footerOpposite">
			<a href="{{ link('canonical:threads', $thread) }}" class="button button--link">{{ phrase('read_more') }}</a>
		</xf:set>

		<xf:macro id="activity_summary_macros::block"
			arg-header="{$header}"
			arg-attribution="{$attribution}"
			arg-content="{{ bb_code_type_snippet('emailHtml', $thread.FirstPost.message, 'post', $thread.FirstPost, 300) }}"
			arg-footer="{$footer}"
			arg-footerOpposite="{$footerOpposite}" />
	</xf:foreach>
</xf:if>]]></template>
  <template type="email" title="activity_summary_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="outer_header"
	arg-title="!">
	<table border="0" width="100%" cellpadding="0" cellspacing="0" class="summaryOuterHeader">
		<tr>
			<td class="summaryOuterHeader-content" valign="top">
				{$title}
			</td>
		</tr>
	</table>
</xf:macro>

<xf:macro id="block"
	arg-header=""
	arg-attribution=""
	arg-content="!"
	arg-footer=""
	arg-footerOpposite="">
	<table border="0" width="100%" cellpadding="0" cellspacing="0" class="summaryBlock">
		<xf:if is="$header">
			<tr>
				<td class="summaryBlock-header" valign="top">
					{$header}
				</td>
			</tr>
		</xf:if>
		<tr>
			<td align="center" valign="top">
				<div>
					<table border="0" width="100%" cellpadding="0" cellspacing="0" style="table-layout: fixed">
						<xf:if is="$attribution">
							<tr>
								<td class="content content--attribution">
									{$attribution}
								</td>
							</tr>
						</xf:if>
						<tr>
							<td class="content">
								{$content|raw}
							</td>
						</tr>
						<xf:if is="$footer OR $footerOpposite">
							<tr>
								<td class="content content--footer">
									<table cellpadding="0" cellspacing="0" border="0" width="100%" class="content-inner">
										<tr>
											<td>{$footer}</td>
											<td class="u-opposite" align="{{ $xf.isRtl ? 'right' : 'left' }}">{$footerOpposite}</td>
										</tr>
									</table>
								</td>
							</tr>
						</xf:if>
					</table>
				</div>
			</td>
	</table>
</xf:macro>]]></template>
  <template type="email" title="api_key_change" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<mail:subject>
	{{ phrase('api_key_change_subject', {'board': $xf.options.boardTitle}) }}
</mail:subject>

{{ phrase('api_key_change_body_html', {
	'username': $user.username,
	'changer': $changer.username,
	'key': $apiKey.title,
	'link': link_type('admin', 'canonical:api-keys')
}) }}]]></template>
  <template type="email" title="approval_item_create" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<mail:subject>{{ phrase('content_awaiting_approval:') }} {$title}</mail:subject>

<xf:extension name="body">
	{{ phrase('approval_item_create_body_html', {
		'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>'
	}) }}
</xf:extension>

<xf:extension name="header">
	<h2>
		<a href="{$link}">{$title}</a>
	</h2>
</xf:extension>

<xf:extension name="content"></xf:extension>

<xf:extension name="footer">
	<table cellpadding="10" cellspacing="0" border="0" width="100%" class="linkBar">
		<tr>
			<td>
				<a href="{$link}" class="button">{{ phrase('view_content') }}</a>
			</td>
			<td align="{{ $xf.isRtl ? 'left' : 'right' }}">
				<a href="{{ link('canonical:approval-queue') }}" class="buttonFake">{{ phrase('view_approval_queue') }}</a>
			</td>
		</tr>
	</table>
</xf:extension>]]></template>
  <template type="email" title="approval_item_post" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:extends template="approval_item_create" />

<xf:extension name="content">
	<div class="message">{{ bb_code_type('emailHtml', $content.message, 'post', $content) }}</div>

	<p>{{ phrase('by_user_x', {'name': username_link_email($content.User, $content.username) }) }}</p>
</xf:extension>]]></template>
  <template type="email" title="approval_item_profile_post" version_id="2030170" version_string="2.3.1"><![CDATA[<xf:extends template="approval_item_create" />

<xf:extension name="content">
	<div class="message">{{ bb_code_type('emailHtml', $content.message, 'profile_post', $content) }}</div>

	<p>
		{{ phrase('posted_on_profile_x', {
			'profilePostLink': link('canonical:profile-posts', $content),
			'user': $content.ProfileUser.username
		}) }}
	</p>
</xf:extension>]]></template>
  <template type="email" title="approval_item_profile_post_comment" version_id="2030170" version_string="2.3.1"><![CDATA[<xf:extends template="approval_item_create" />

<xf:extension name="content">
	<div class="message">{{ bb_code_type('emailHtml', $content.message, 'profile_post_comment', $content) }}</div>

	<p>
		{{ phrase('posted_on_profile_post_by_x', {
			'commentLink': link('canonical:profile-posts/comments', $content),
			'user': $content.ProfilePost.username})
		}}
	</p>
</xf:extension>]]></template>
  <template type="email" title="approval_item_thread" version_id="2030170" version_string="2.3.1"><![CDATA[<xf:extends template="approval_item_create" />

<xf:extension name="header">
	<h2>
		{{ phrase('thread_x_posted_in_forum_y', {
			'threadLink': link('canonical:threads', $content),
			'threadTitle': $content.title,
			'forumLink': link('canonical:forums', $content.Forum),
			'forumTitle': $content.Forum.title
		}) }}
	</h2>
</xf:extension>

<xf:extension name="content">
	<div class="message">{{ bb_code_type('emailHtml', $content.FirstPost.message, 'post', $content.FirstPost) }}</div>

	<p>{{ phrase('by_user_x', {'name': username_link_email($content.User, $content.username) }) }}</p>
</xf:extension>]]></template>
  <template type="email" title="bb_code_tag_attach" version_id="2020032" version_string="2.2.0 Beta 2"><![CDATA[<xf:if is="!$attachment"><xf:trim>
	<a href="{{ link('canonical:attachments', {'attachment_id': $id}) }}" target="_blank">{{ phrase('view_attachment_x', {'name': $id}) }}</a>
</xf:trim><xf:elseif is="($attachment.is_video OR $attachment.is_audio) AND $full AND $canView" /><xf:trim>
	<div class="mediaPlaceholder">{{ phrase('embedded_media') }}</div>
</xf:trim><xf:elseif is="!$attachment.has_thumbnail" /><xf:trim>
	<a href="{{ link('canonical:attachments', $attachment, {'hash': $attachment.temp_hash}) }}" target="_blank">{{ phrase('view_attachment_x', {'name': $attachment.filename}) }}</a>
</xf:trim><xf:else /><xf:trim>
	<a href="{{ link('canonical:attachments', $attachment, {'hash': $attachment.temp_hash}) }}"
		target="_blank"><img src="{$attachment.thumbnail_url_full}"
		class="bbImage"
		style="{$styleAttr}"
		alt="{$alt}"
		title="{$alt}"
		width="{$attachment.thumbnail_width}" height="{$attachment.thumbnail_height}" /></a>
</xf:trim></xf:if>]]></template>
  <template type="email" title="bb_code_tag_code" version_id="2000170" version_string="2.0.1"><![CDATA[<pre class="code" dir="ltr">{$content}</pre>]]></template>
  <template type="email" title="bb_code_tag_img" version_id="2020032" version_string="2.2.0 Beta 2"><![CDATA[<img src="{$imageUrl}" class="bbImage" alt="{$alt|for_attr}" title="{$alt|for_attr}" style="{$styleAttr}" />
]]></template>
  <template type="email" title="bb_code_tag_ispoiler" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<span class="inlineSpoilerPlaceholder">{{ phrase('spoiler_content_hidden') }}</span>]]></template>
  <template type="email" title="bb_code_tag_media" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<div class="mediaPlaceholder">{{ phrase('embedded_media') }}</div>]]></template>
  <template type="email" title="bb_code_tag_quote" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<div class="quote">
	<xf:if is="$name"><div class="quote-name">{{ phrase('x_said:', {'name': $name}) }}</div></xf:if>
	{$content}
</div>]]></template>
  <template type="email" title="bb_code_tag_spoiler" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<div class="spoilerPlaceholder">
	<xf:if is="$title">{$title} -</xf:if>
	{{ phrase('spoiler_content_hidden') }}
</div>]]></template>
  <template type="email" title="contact_email" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<mail:subject>
{{ phrase('contact_email_subject', {
	'subject': $subject,
	'board_title': $xf.options.boardTitle
}) }}
</mail:subject>

{{ phrase('contact_email_body_html', {
	'user': '<a href="mailto:' . $email . '">' . $name . ' &lt;' . {$email} . '&gt;</a>',
	'ip': $ip,
	'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>'
}) }}

<h2>{$subject}</h2>

<div class="message">{$message|nl2br}</div>]]></template>
  <template type="email" title="conversation_create" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<mail:subject>
	{{ phrase('direct_message_insert_email_subject', {
		'username': $sender.username,
		'title': $conversation.title
	}) }}
</mail:subject>

{{ phrase('direct_message_insert_email_html', {
	'receiver': $receiver.username,
	'sender': $sender.username,
	'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>'}
) }}

<h2><a href="{{ link('canonical:direct-messages/unread', $conversation) }}">{$conversation.title}</a></h2>

<xf:if is="$xf.options.emailConversationIncludeMessage">
	<div class="message">{{ bb_code_type('emailHtml', $message.message, 'conversation_message', $message) }}</div>
</xf:if>

<table cellpadding="10" cellspacing="0" border="0" width="100%" class="linkBar">
<tr>
	<td>
		<a href="{{ link('canonical:direct-messages/unread', $conversation) }}" class="button">{{ phrase('view_this_direct_message') }}</a>
	</td>
	<td align="{{ $xf.isRtl ? 'left' : 'right' }}">
		<a href="{{ link('canonical:direct-messages') }}" class="buttonFake">{{ phrase('view_all_your_direct_messages') }}</a>
	</td>
</tr>
</table>

<xf:macro id="conversation_macros::footer" arg-conversation="{$conversation}" />]]></template>
  <template type="email" title="conversation_invite" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<mail:subject>
	{{ phrase('direct_message_join_email_subject', {
		'username': $sender.username,
		'title': $conversation.title
	}) }}
</mail:subject>

{{ phrase('direct_message_join_email_html', {
	'receiver': $receiver.username,
	'sender': $sender.username,
	'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>'
}) }}

<h2><a href="{{ link('canonical:direct-messages/unread', $conversation) }}">{$conversation.title}</a></h2>

<xf:if is="$xf.options.emailConversationIncludeMessage">
	<div class="message">{{ bb_code_type('emailHtml', $message.message, 'conversation_message', $message) }}</div>
</xf:if>

<table cellpadding="10" cellspacing="0" border="0" width="100%" class="linkBar">
<tr>
	<td>
		<a href="{{ link('canonical:direct-messages', $conversation) }}" class="button">{{ phrase('view_this_direct_message') }}</a>
	</td>
	<td align="{{ $xf.isRtl ? 'left' : 'right' }}">
		<a href="{{ link('canonical:direct-message') }}" class="buttonFake">{{ phrase('view_all_your_direct_messages') }}</a>
	</td>
</tr>
</table>

<xf:macro id="conversation_macros::footer" arg-conversation="{$conversation}" />]]></template>
  <template type="email" title="conversation_macros" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:macro id="footer" arg-conversation="!">
	{{ phrase('direct_message_email_html_footer', {
		'disable_link': link('canonical:email-stop/conversation', $xf.toUser),
		'disable_all_link': link('canonical:email-stop/all', $xf.toUser)
	}) }}
</xf:macro>]]></template>
  <template type="email" title="conversation_reply" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<mail:subject>
	{{ phrase('direct_message_reply_email_subject', {
		'username': $sender.username,
		'title': $conversation.title
	}) }}
</mail:subject>

{{ phrase('direct_message_reply_email_html', {
	'receiver': $receiver.username,
	'sender': '<a href="' . link('canonical:members', $sender) . '">' . $sender.username . '</a>',
	'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>'
}) }}

<h2><a href="{{ link('canonical:direct-messages/unread', $conversation) }}">{$conversation.title}</a></h2>

<xf:if is="$xf.options.emailConversationIncludeMessage">
	<div class="message">{{ bb_code_type('emailHtml', $message.message, 'conversation_message', $message) }}</div>
</xf:if>

<table cellpadding="10" cellspacing="0" border="0" width="100%" class="linkBar">
<tr>
	<td>
		<a href="{{ link('canonical:direct-messages/unread', $conversation) }}" class="button">{{ phrase('view_this_direct_message') }}</a>
	</td>
	<td align="{{ $xf.isRtl ? 'left' : 'right' }}">
		<a href="{{ link('canonical:direct-messages') }}" class="buttonFake">{{ phrase('view_all_your_direct_messages') }}</a>
	</td>
</tr>
</table>

<xf:macro id="conversation_macros::footer" arg-conversation="{$conversation}" />]]></template>
  <template type="email" title="core.less" version_id="2020470" version_string="2.2.4"><![CDATA[// NOTE: THIS DOES NOT HAVE ACCESS TO public:setup.less automatically!
// THE LESS HERE SHOULD BE KEPT AS SIMPLE AS POSSIBLE

body
{
	margin: 0;
	padding: 0;
	word-wrap: break-word;
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;

	background-color: @xf-emailBg;
	font-size: @xf-fontSizeNormal;
	font-family: @xf-emailFont;
	line-height: @xf-lineHeightDefault;
	color: @xf-emailTextColor;
}

table
{
	border-spacing: 0;
	mso-table-lspace: 0pt;
	mso-table-rspace: 0pt;
}

table,
td
{
	border-collapse: collapse;
}

a
{
	color: @xf-emailLinkColor;
	text-decoration: none;
}

.bbImage
{
	height: auto;
	max-width: 100%;
}

#bodyTable
{
	height: 100% !important;
	width: 100% !important;
	margin: 0;
	padding: 0;
	background-color: @xf-emailBg;
}

#bodyTableContainer
{
	background-color: @xf-emailBg;
}

.container
{
	width: 100%;
	max-width: 600px;
}

.header
{
	color: @xf-emailHeaderColor;
	padding: @xf-paddingMedium @xf-paddingLarge;
	border-top-left-radius: @xf-borderRadiusMedium;
	border-top-right-radius: @xf-borderRadiusMedium;
	font-family: @xf-emailFont;
	font-size: @xf-fontSizeLargest;
	line-height: @xf-lineHeightDefault;
}

.header a
{
	color: @xf-emailHeaderColor;
}

.content
{
	background-color: @xf-emailContentBg;
	border-radius: @xf-borderRadiusSmall;
	color: @xf-emailTextColor;
	padding: @xf-paddingLarge;
}

.content,
.content-inner
{
	font-size: @xf-fontSizeNormal;
	font-family: @xf-emailFont;
	line-height: @xf-lineHeightDefault;
}

.content .bbImage
{
	max-width: 100%;
}

.content > p:first-child
{
	margin-top: 0;
}

.content > p:last-child
{
	margin-bottom: 0;
}

.footer
{
	padding: @xf-paddingMedium @xf-paddingLarge;
	text-align: center;
	color: @xf-emailTextColorMuted;
	font-size: @xf-fontSizeSmall;
	font-family: @xf-emailFont;
	line-height: @xf-lineHeightDefault;
}

.footer a
{
	color: @xf-emailTextColorMuted;
	text-decoration: underline;
}

.footerExtra
{
	margin-top: 1em;
}

h2
{
	font-size: @xf-fontSizeLargest;
	font-weight: normal;
	margin: @xf-paddingLarge 0;
	padding: 0;
}

hr
{
	border: 0;
	border-bottom: @xf-borderSize solid @xf-emailBorderColor;
}

div.message
{
	border-left: @xf-borderSizeFeature solid @xf-borderColorFeature;
	margin: @xf-paddingLarge 0;
	padding: @xf-paddingLarge;
}

div.quote
{
	border-left: @xf-borderSizeFeature solid @xf-borderColorAttention;
	border-top: @xf-borderSize solid @xf-emailBorderColor;
	border-bottom: @xf-borderSize solid @xf-emailBorderColor;
	border-right: @xf-borderSize solid @xf-emailBorderColor;
	background: @xf-emailContentAltBg;
	margin: @xf-paddingLarge 0;
	padding: @xf-paddingLarge;
}

.quote-name
{
	color: @xf-textColorAttention;
	font-size: @xf-fontSizeSmall;
	margin-bottom: @xf-paddingMedium;
}

pre.code
{
	margin: @xf-paddingLarge 0;
	padding: @xf-paddingLarge;
	border-left: @xf-borderSizeFeature solid @xf-borderColorAttention;
	border-top: @xf-borderSize solid @xf-emailBorderColor;
	border-bottom: @xf-borderSize solid @xf-emailBorderColor;
	border-right: @xf-borderSize solid @xf-emailBorderColor;
	background: @xf-emailContentAltBg;
	max-width: 600px;
	overflow: auto;
}

.textLink
{
	color: @xf-emailTextColor;
	text-decoration: none;
}

.linkBar
{
	padding: @xf-paddingMedium;
	background-color: @xf-emailContentAltBg;
	border-top: @xf-borderSize solid @xf-emailBorderColor;
}

.button
{
	display: inline-block;
	padding: 5px 10px;
	background-color: @xf-buttonBg;
	border: none;
	border-radius: @xf-borderRadiusMedium;
	font-size: @xf-fontSizeSmall;
	color: @xf-buttonTextColor;
	text-decoration: none;
	white-space: nowrap;

	&.button--link
	{
		color: @xf-emailLinkColor;
		background-color: @xf-emailContentBg;
		border: @xf-borderSize solid @xf-emailBorderColor;
	}
}

.buttonFake
{
	display: inline-block;
	padding: 5px 10px;
	font-size: @xf-fontSizeSmall;
}

.minorText,
.unsubscribeLink
{
	font-size: @xf-fontSizeSmall;
	color: @xf-emailTextColorMuted;
}

.minorText a,
.unsubscribeLink a
{
	color: @xf-emailTextColorMuted;
	text-decoration: underline;
}

.unsubscribeLink
{
	margin-top: 1em;
	text-align: center;
}

.mediaPlaceholder,
.spoilerPlaceholder
{
	border-radius: @xf-borderRadiusSmall;
	margin: @xf-paddingMedium 0;
	padding: @xf-paddingMedium;
	font-size: @xf-fontSizeLargest;
	line-height: 3;
	text-align: center;
	border: @xf-borderSize solid @xf-emailBorderColor;
	background-color: @xf-emailContentAltBg;
}

.inlineSpoilerPlaceholder
{
	font-size: @xf-fontSizeSmall;
	background-color: @xf-contentAltBg;
	border: @xf-borderSize solid @xf-borderColorLight;
	border-radius: @xf-borderRadiusSmall;
	padding: 1px @xf-paddingSmall;
}

.u-opposite { text-align: right; }

// ################################ ACTIVITY SUMMARY ###############################

.p-activitySummary #bodyTableContainer
{
	padding: 0;
}

.summaryContentWrapper
{
	padding: 0 @xf-paddingLarge;
	max-width: 1200px;
}

.summaryHeaderBar
{
	color: @xf-chromeTextColor;
	background: @xf-chromeBg;
	font-family: @xf-emailFont;
	font-size: @xf-fontSizeLargest;
	line-height: @xf-lineHeightDefault;
	padding: @xf-paddingMedium @xf-paddingLarge;

	a
	{
		color:@xf-chromeTextColor;
	}

	img
	{
		max-height: 200px;
		vertical-align: bottom;

		&.logo-svg
		{
			max-width: 200px;
		}
	}
}

.summaryOuterHeader
{
	width: 100%;
	table-layout: fixed;
	margin: @xf-paddingLargest 0;
}

.summaryOuterHeader-content
{
	font-size: @xf-fontSizeLarger;
	font-weight: @xf-fontWeightNormal;
	color: @xf-emailTextColorMuted;
}

.summaryBlock
{
	color: @xf-emailTextColor;
	background-color: @xf-emailContentBg;
	border: @xf-borderSize solid @xf-emailBorderColor;
	border-radius: @xf-borderRadiusSmall;
	border-collapse: separate;

	width: 100%;
	table-layout: fixed;
	margin: @xf-paddingLargest 0;
}

.summaryBlock-header
{
	font-size: @xf-fontSizeLarger;
	color: @xf-majorHeadingTextColor;
	background: @xf-majorHeadingBg;
	border-bottom: @xf-borderSize solid @xf-borderColorLight;
	border-top-left-radius: @xf-borderRadiusSmall;
	border-top-right-radius: @xf-borderRadiusSmall;
	padding: @xf-blockPaddingV @xf-blockPaddingH;

	a
	{
		color: @xf-majorHeadingTextColor;
	}
}

.statsGroup
{
	display: flex;
	flex-flow: row wrap;
	font-size: @xf-fontSizeLarge;
}

.stat
{
	flex: auto;
	vertical-align: top;
	margin-right: @xf-paddingMedium;
	margin-bottom: @xf-paddingMedium;
}

.stat-label
{
	font-size: @xf-fontSizeSmall;
	color: @xf-emailTextColorMuted;
}

.p-activitySummary .content.content--attribution,
.p-activitySummary .content.content--footer,
.p-activitySummary .content.content--footer table
{
	font-size: @xf-fontSizeSmall;
	color: @xf-emailTextColorMuted;

	a:not(.button)
	{
		color: inherit;
		text-decoration: underline;
	}
}]]></template>
  <template type="email" title="email_changed" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<mail:subject>
	{{ phrase('email_changed_subject', {'board': $xf.options.boardTitle}) }}
</mail:subject>

{{ phrase('email_changed_body_html', {
	'username': $user.username,
	'new': $newEmail,
	'ip': $ip,
	'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>'})
}}]]></template>
  <template type="email" title="file_check_warning" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<mail:subject>
	{{ phrase('file_healthcheck_warnings_on_x', {'board_title': $xf.options.boardTitle}) }}
</mail:subject>

<p>{{ phrase('automatic_file_health_check_was_started_on_x_at_y_problems', {'board_title': $xf.options.boardTitle, 'check_date': date_time($fileCheck.check_date)}) }}</p>

<xf:if is="$fileCheck.total_missing && $fileCheck.total_inconsistent">
	<p>{{ phrase('after_checking_x_files_we_found_y_missing_z_inconsistent', {'checked': $fileCheck.total_checked|number, 'missing': $fileCheck.total_missing|number, 'inconsistent': $fileCheck.total_inconsistent|number}) }}</p>
<xf:elseif is="$fileCheck.total_missing" />
	<p>{{ phrase('after_checking_x_files_we_found_y_missing', {'checked': $fileCheck.total_checked|number, 'missing': $fileCheck.total_missing|number}) }}</p>
<xf:elseif is="$fileCheck.total_inconsistent" />
	<p>{{ phrase('after_checking_x_files_we_found_y_inconsistent', {'checked': $fileCheck.total_checked|number, 'inconsistent': $fileCheck.total_inconsistent|number}) }}</p>
</xf:if>

<table cellpadding="10" cellspacing="0" border="0" width="100%" class="linkBar">
	<tr>
		<td>
			<a href="{{ link_type('admin', 'canonical:tools/file-check/results', $fileCheck) }}" class="button">{{ phrase('please_review_files') }}</a>
		</td>
	</tr>
</table>]]></template>
  <template type="email" title="password_changed" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<mail:subject>
	{{ phrase('password_changed_subject', {'board': $xf.options.boardTitle}) }}
</mail:subject>

{{ phrase('password_changed_body_html', {
	'username': $user.username,
	'ip': $ip,
	'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>'
}) }}]]></template>
  <template type="email" title="payment_received_receipt_user_upgrade" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<mail:subject>{{ phrase('receipt_for_your_account_upgrade_at_x', {'board_title': $xf.options.boardTitle}) }}</mail:subject>

<p>{{ phrase('thank_you_for_purchasing_account_upgrade_at_x', {'board_url': link('canonical:index'), 'board_title': $xf.options.boardTitle}) }}</p>

<table border="0" width="100%" cellpadding="0" cellspacing="0">
<tr>
	<td><b>{{ phrase('purchased_item') }}</b></td>
	<td align="right"><b>{{ phrase('price') }}</b></td>
</tr>
<tr>
	<td><a href="{{ link('canonical:account/upgrades') }}">{$purchasable.title}</a></td>
	<td align="right">{{ $purchasable.purchasable.getCostPhraseForPurchaseRequest($purchaseRequest) }}</td>
</tr>
</table>

<p><a href="{{ link('canonical:account/upgrades') }}" class="button">{{ phrase('manage_your_account_upgrades') }}</a></p>

<xf:if is="$xf.toUser.canUseContactForm()">
	<p>{{ phrase('thank_you_for_your_purchase_questions_contact_us', {'contacturl': link('canonical:misc/contact') }) }}</p>
<xf:else />
	<p>{{ phrase('thank_you_for_your_purchase') }}</p>
</xf:if>]]></template>
  <template type="email" title="payment_update_confirmation_user_upgrade" version_id="2030031" version_string="2.3.0 Beta 1"><![CDATA[<mail:subject>{{ phrase('payment_updated_for_your_account_upgrade_at_x', {'board_title': $xf.options.boardTitle}) }}</mail:subject>

<p>{{ phrase('thank_you_for_updating_payment_for_account_upgrade_at_x', {'board_url': $xf.options.boardUrl, 'board_title': $xf.options.boardTitle}) }}</p>

<p><a href="{{ link('canonical:account/upgrades') }}" class="button">{{ phrase('manage_your_account_upgrades') }}</a></p>

<xf:if is="$xf.toUser.canUseContactForm()">
	<p>{{ phrase('thank_you_for_your_purchase_questions_contact_us', {'contacturl': link('canonical:misc/contact') }) }}</p>
<xf:else />
	<p>{{ phrase('thank_you_for_your_purchase') }}</p>
</xf:if>]]></template>
  <template type="email" title="prepared_email" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<mail:subject>{$title}</mail:subject>

{$htmlBody|raw}

<mail:text>{$textBody}</mail:text>

<xf:if is="$raw">
	<xf:page option="template"></xf:page>
</xf:if>]]></template>
  <template type="email" title="report_create" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<mail:subject>{{ phrase('reported_content:') }} {$report.title}</mail:subject>

{{ phrase('report_create_body_html', {
	'user': $reporter.username,
	'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>'
}) }}

<h2><a href="{{ link('canonical:reports', $report) }}">{{ $report.getTitle() }}</a></h2>

<div class="message">{{ bb_code_type('emailHtml', $message, 'report', $report) }}</div>

<p>{{ phrase('the_following_reason_was_given') }}</p>
<div class="message">{{ bb_code_type('emailHtml', $comment->message, 'report_comment', $report) }}</div>

<table cellpadding="10" cellspacing="0" border="0" width="100%" class="linkBar">
	<tr>
		<td>
			<a href="{{ link('canonical:reports', $report) }}" class="button">{{ phrase('view_this_report') }}</a>
		</td>
		<td align="{{ $xf.isRtl ? 'left' : 'right' }}">
			<a href="{{ link('canonical:reports') }}" class="buttonFake">{{ phrase('view_all_reports') }}</a>
		</td>
	</tr>
</table>]]></template>
  <template type="email" title="thread_forum_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="go_thread_bar" arg-thread="!" arg-watchType="!">
	<table cellpadding="10" cellspacing="0" border="0" width="100%" class="linkBar">
	<tr>
		<td>
			<a href="{{ link('canonical:threads/unread', $thread, {'new': 1}) }}" class="button">{{ phrase('view_this_thread') }}</a>
		</td>
		<td align="{{ $xf.isRtl ? 'left' : 'right' }}">
			<xf:if is="$watchType == 'threads'">
				<a href="{{ link('canonical:watched/threads') }}" class="buttonFake">{{ phrase('watched_threads') }}</a>
			<xf:elseif is="$watchType == 'forums'" />
				<a href="{{ link('canonical:watched/forums') }}" class="buttonFake">{{ phrase('watched_forums') }}</a>
			</xf:if>
		</td>
	</tr>
	</table>
</xf:macro>

<xf:macro id="watched_forum_footer" arg-thread="!" arg-forum="!">
	{{ phrase('watched_forum_email_html_footer', {
		'thread': '<a href="' . link('canonical:threads', $thread) . '">' .  $thread.title . '</a>',
		'node_title': $forum.title,
		'board': $xf.options.boardTitle,
		'disable_this_link': link('canonical:email-stop/content', $xf.toUser, {'t': 'forum', 'id': $forum.node_id}),
		'disable_all_link': link('canonical:email-stop/all', $xf.toUser)
	}) }}
</xf:macro>

<xf:macro id="watched_thread_footer" arg-thread="!">
	{{ phrase('watched_thread_email_html_footer', {
		'thread': '<a href="' . link('canonical:threads', $thread) . '">' . $thread.title . '</a>',
		'board': $xf.options.boardTitle,
		'disable_this_link': link('canonical:email-stop/content', $xf.toUser, {'t': 'thread', 'id': $thread.thread_id}),
		'disable_all_link': link('canonical:email-stop/all', $xf.toUser)
	}) }}
</xf:macro>]]></template>
  <template type="email" title="two_step_login_backup" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<mail:subject>{{ phrase('two_step_backup_subject', {'board': $xf.options.boardTitle}) }}</mail:subject>

{{ phrase('two_step_backup_body_html', {
	'username': $user.username,
	'ip': $ip,
	'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>'
}) }}]]></template>
  <template type="email" title="two_step_login_email" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<mail:subject>{{ phrase('two_step_email_subject', {'board': $xf.options.boardTitle}) }}</mail:subject>

{{ phrase('two_step_email_body_html1', {
	'username': $user.username,
	'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>'
}) }}

<h2>{$code}</h2>

{{ phrase('two_step_email_body_html2', {'ip': $ip}) }}]]></template>
  <template type="email" title="user_account_approved" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<mail:subject>
	{{ phrase('user_account_approved_subject', {'board_title': $xf.options.boardTitle}) }}
</mail:subject>

{{ phrase('user_account_approved_body_html', {
	'username': $user.username,
	'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>'
}) }}

<h2>{{ phrase('visit_board_html', {'board_url': link('canonical:index'), 'board_title': $xf.options.boardTitle}) }}</h2>]]></template>
  <template type="email" title="user_account_rejected" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<mail:subject>
	{{ phrase('user_account_rejected_subject', {'board_title': $xf.options.boardTitle}) }}
</mail:subject>

{{ phrase('user_account_rejected_body_html', {
	'username': $user.username,
	'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>'
}) }}

<xf:if is="$reason">
	<p>{{ phrase('the_following_reason_was_given') }} {$reason}</p>
</xf:if>
]]></template>
  <template type="email" title="user_email_confirmation" version_id="2021670" version_string="2.2.16"><![CDATA[<mail:subject>
	{{ phrase('user_email_confirmation_subject', {
		'boardTitle': $xf.options.boardTitle
	}) }}
</mail:subject>

{{ phrase('user_email_confirmation_body_html', {
	'username': $user.username,
	'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>'
}) }}

<p><a href="{{ link('canonical:account-confirmation/email', $user, {'c': $confirmation.confirmation_key}) }}" class="button">{{ phrase('confirm_your_email') }}</a></p>

{{ phrase('user_email_confirmation_plain_link_html', {
	'link': link('canonical:account-confirmation/email', $user, {'c': $confirmation.confirmation_key})
}) }}]]></template>
  <template type="email" title="user_email_unsubscribed" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<mail:subject>
	{{ phrase('user_email_unsubscribed_subject', {'board': $xf.options.boardTitle}) }}
</mail:subject>

{{ phrase('user_email_unsubscribed_body_html', {
	'username': $user.username,
	'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>',
	'preferences': link('canonical:account/preferences')
}) }}

<xf:if is="$action === 'all_except_dm'">
	{{ phrase('user_email_unsubscribed_all_except_dm_body_html', {
		'unsub_all': link('canonical:email-stop/all', $user)
	}) }}
</xf:if>]]></template>
  <template type="email" title="user_lost_password_reset" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<mail:subject>
	{{ phrase('user_lost_password_reset_subject', {'boardTitle': $xf.options.boardTitle}) }}
</mail:subject>

{{ phrase('user_lost_password_reset_body_html', {
	'username': $user.username,
	'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>'
}) }}

<p><a href="{{ link('canonical:index') }}" class="button">{{ phrase('log_in') }}</a></p>]]></template>
  <template type="email" title="user_password_confirmation" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<mail:subject>
	{{ phrase('user_lost_password_subject', {'boardTitle': $xf.options.boardTitle}) }}
</mail:subject>

{{ phrase('user_lost_password_body_html', {
	'username': $user.username,
	'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>'
}) }}

<p><a href="{{ link('canonical:lost-password/confirm', $user, {'c': $confirmation.confirmation_key}) }}" class="button">{{ phrase('reset_password') }}</a></p>

<xf:if is="$isAdminReset">
	<p>{{ phrase('this_password_reset_was_requested_by_admin_of_x_on_your_behalf', {'board_title': $xf.options.boardTitle}) }}</p>
<xf:else />
	<p>{{ phrase('ignore_email_if_not_requested') }}</p>
</xf:if>]]></template>
  <template type="email" title="user_security_lock_reset_confirmation" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<mail:subject>
	{{ phrase('user_security_lock_reset_subject', {'board_title': $xf.options.boardTitle}) }}
</mail:subject>

{{ phrase('user_security_lock_reset_body', {'name': $user.username, 'board_title': $xf.options.boardTitle}) }}

<p><a href="{{ link('canonical:security-lock/reset', $user, {'c': $confirmation.confirmation_key}) }}" class="button">{{ phrase('reset_password') }}</a></p>]]></template>
  <template type="email" title="watched_forum_reply" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<mail:subject>
	{{ phrase('new_message_in_watched_forum_x', {
		'title': prefix('thread', $thread, 'escaped') . $thread.title
	}) }}
</mail:subject>

{{ phrase('watched_forum_message_email_html', {
	'receiver': $receiver.username,
	'replier': username_link_email($post.User, $post.username),
	'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>'
}) }}

<h2><a href="{{ link('canonical:posts', $post) }}">{{ prefix('thread', $thread, 'escaped') }}{$thread.title}</a></h2>

<xf:if is="$xf.options.emailWatchedThreadIncludeMessage">
	<div class="message">{{ bb_code_type('emailHtml', $post.message, 'post', $post) }}</div>
</xf:if>

<xf:macro id="thread_forum_macros::go_thread_bar" arg-thread="{$thread}" arg-watchType="forums" />

<xf:macro id="thread_forum_macros::watched_forum_footer" arg-thread="{$thread}" arg-forum="{$forum}" />]]></template>
  <template type="email" title="watched_forum_thread" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<mail:subject>
	{{ phrase('new_thread_in_watched_forum_x', {
		'title': prefix('thread', $thread, 'escaped') . $thread.title
	}) }}
</mail:subject>

{{ phrase('watched_forum_thread_email_html', {
	'receiver': $receiver.username,
	'replier': username_link_email($post.User, $post.username),
	'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>'
}) }}

<h2><a href="{{ link('canonical:posts', $post) }}">{{ prefix('thread', $thread, 'escaped') }}{$thread.title}</a></h2>

<xf:if is="$xf.options.emailWatchedThreadIncludeMessage">
	<div class="message">{{ bb_code_type('emailHtml', $post.message, 'post', $post) }}</div>
</xf:if>

<xf:macro id="thread_forum_macros::go_thread_bar" arg-thread="{$thread}" arg-watchType="forums" />

<xf:macro id="thread_forum_macros::watched_forum_footer" arg-thread="{$thread}" arg-forum="{$forum}" />]]></template>
  <template type="email" title="watched_thread_reply" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<mail:subject>
	{{ phrase('reply_to_watched_thread_x', {
		'title': prefix('thread', $thread, 'escaped') . $thread.title
	}) }}
</mail:subject>

{{ phrase('watched_thread_reply_email_html', {
	'receiver': $receiver.username,
	'replier': username_link_email($post.User, $post.username),
	'board': '<a href="' . link('canonical:index') . '">' . $xf.options.boardTitle . '</a>'
}) }}

<h2><a href="{{ link('canonical:posts', $post) }}">{{ prefix('thread', $thread, 'escaped') }}{$thread.title}</a></h2>

<xf:if is="$xf.options.emailWatchedThreadIncludeMessage">
	<div class="message">{{ bb_code_type('emailHtml', $post.message, 'post', $post) }}</div>
</xf:if>

<xf:macro id="thread_forum_macros::go_thread_bar" arg-thread="{$thread}" arg-watchType="threads" />

<xf:macro id="thread_forum_macros::watched_thread_footer" arg-thread="{$thread}" />]]></template>
  <template type="public" title="EMBED_CONTAINER" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<!DOCTYPE html>
<html id="XF" lang="{$xf.language.language_code}" dir="{$xf.language.text_direction}"
	data-app="public"
	{{ ($xf.style.isVariationsEnabled() && $xf.visitor.style_variation) ? 'data-variation="' . $xf.visitor.style_variation . '"' : '' }}
	{{ ($xf.style.isVariationsEnabled() && $xf.visitor.style_variation) ? 'data-color-scheme="' . property_variation('styleType', $xf.visitor.style_variation) . '"' : '' }}
	data-template="{$template}"
	class="has-no-js p-embed-container {{ $template ? 'template-' . $template : '' }}">
<head>
	<meta charset="utf-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
	<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">

	<base target="_blank">

	<title>{{ $embeddedContent ? $embeddedContent.getContentTitle() : phrase('error') }}</title>

	<xf:macro name="public:helper_js_global::head" arg-app="public" />
</head>
<body>
{$content|raw}
<xf:macro name="public:helper_js_global::body" arg-app="public" />
</body>
</html>]]></template>
  <template type="public" title="OAUTH_CONTAINER" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<!DOCTYPE html>
<html id="XF" lang="{$xf.language.language_code}" dir="{$xf.language.text_direction}"
	data-app="public"
	{{ ($xf.style.isVariationsEnabled() && $xf.visitor.style_variation) ? 'data-variation="' . $xf.visitor.style_variation . '"' : '' }}
{{ ($xf.style.isVariationsEnabled() && $xf.visitor.style_variation) ? 'data-color-scheme="' . property_variation('styleType', $xf.visitor.style_variation) . '"' : '' }}
data-template="{$template}"
data-cookie-prefix="{$xf.cookie.prefix}"
class="{{ $template ? 'template-' . $template : '' }}">

<head>
	<meta charset="utf-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
	<meta name="viewport" content="width=device-width, initial-scale=1">

	<title>{{ phrase('authorize_access_to_your_account') }} | {$xf.options.boardTitle}</title>

	<xf:if is="$xf.style.isVariationsEnabled()">
		<xf:if is="$xf.visitor.style_variation">
			<meta name="theme-color" content="{{ parse_less_color(property_variation('metaThemeColor', $xf.visitor.style_variation)) }}" />
			<xf:else />
			<xf:if is="$xf.style.hasAlternateStyleTypeVariation()">
				<meta name="theme-color" media="(prefers-color-scheme: {{ $xf.style.getDefaultStyleType() }})" content="{{ parse_less_color(property_variation('metaThemeColor', 'default')) }}" />
				<meta name="theme-color" media="(prefers-color-scheme: {{ $xf.style.getAlternateStyleType() }})" content="{{ parse_less_color(property_variation('metaThemeColor', $xf.style.getAlternateStyleTypeVariation())) }}" />
				<xf:else />
				<meta name="theme-color" content="{{ parse_less_color(property_variation('metaThemeColor', 'default')) }}" />
			</xf:if>
		</xf:if>
		<xf:else />
		<meta name="theme-color" content="{{ parse_less_color(property_variation('metaThemeColor', 'default')) }}" />
	</xf:if>

	<xf:foreach loop="$head" value="$headTag">
		{$headTag}
	</xf:foreach>

	<xf:macro id="helper_js_global::head" arg-app="public" />
</head>

<body data-template="{$template}">
<div>
	<h1><xf:h1 fallback="{$xf.options.boardTitle}" /></h1>

	<div>
		{$content|raw}
	</div>
</div>

</body>
</html>]]></template>
  <template type="public" title="OFFLINE_CONTAINER" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<!DOCTYPE html>
<html id="XF" lang="{$xf.language.language_code}" dir="{$xf.language.text_direction}"
	data-app="public"
	{{ ($xf.style.isVariationsEnabled() && $xf.visitor.style_variation) ? 'data-variation="' . $xf.visitor.style_variation . '"' : '' }}
	{{ ($xf.style.isVariationsEnabled() && $xf.visitor.style_variation) ? 'data-color-scheme="' . property_variation('styleType', $xf.visitor.style_variation) . '"' : '' }}
	data-template="{$template}"
	data-container-key="{$containerKey}"
	data-content-key="{$contentKey}"
	data-logged-in="{{ $xf.visitor.user_id ? 'true' : 'false' }}"
	data-cookie-prefix="{$xf.cookie.prefix}"
	class="{{ $template ? 'template-' . $template : '' }}">

	<head>
		<meta charset="utf-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">

		<title><xf:title formatter="%s | %s" fallback="{$xf.options.boardTitle}" page="{$pageNumber}" /></title>
		<xf:set var="$description"><xf:description /></xf:set>

		<xf:if is="$xf.style.isVariationsEnabled()">
			<xf:if is="$xf.visitor.style_variation">
				<meta name="theme-color" content="{{ parse_less_color(property_variation('metaThemeColor', $xf.visitor.style_variation)) }}" />
			<xf:else />
				<xf:if is="$xf.style.hasAlternateStyleTypeVariation()">
					<meta name="theme-color" media="(prefers-color-scheme: {{ $xf.style.getDefaultStyleType() }})" content="{{ parse_less_color(property_variation('metaThemeColor', 'default')) }}" />
					<meta name="theme-color" media="(prefers-color-scheme: {{ $xf.style.getAlternateStyleType() }})" content="{{ parse_less_color(property_variation('metaThemeColor', $xf.style.getAlternateStyleTypeVariation())) }}" />
				<xf:else />
					<meta name="theme-color" content="{{ parse_less_color(property_variation('metaThemeColor', 'default')) }}" />
				</xf:if>
			</xf:if>
		<xf:else />
			<meta name="theme-color" content="{{ parse_less_color(property_variation('metaThemeColor', 'default')) }}" />
		</xf:if>

		<xf:foreach loop="$head" value="$headTag">
			{$headTag}
		</xf:foreach>

		<xf:if is="$css">
			<style>
				{$css|raw}
			</style>
		</xf:if>
	</head>

	<body data-template="{$template}">
		<h1 class="p-offline-header"><xf:h1 fallback="{$xf.options.boardTitle}" /></h1>

		{$content|raw}
	</body>
</html>]]></template>
  <template type="public" title="PAGE_CONTAINER" version_id="2030170" version_string="2.3.1"><![CDATA[<!DOCTYPE html>
<html id="XF" lang="{$xf.language.language_code}" dir="{$xf.language.text_direction}"
	data-xf="{$xf.versionVisible}"
	data-app="public"
	{{ ($xf.style.isVariationsEnabled() && $xf.visitor.style_variation) ? 'data-variation="' . $xf.visitor.style_variation . '"' : '' }}
	{{ ($xf.style.isVariationsEnabled() && $xf.visitor.style_variation) ? 'data-color-scheme="' . property_variation('styleType', $xf.visitor.style_variation) . '"' : '' }}
	data-template="{$template}"
	data-container-key="{$containerKey}"
	data-content-key="{$contentKey}"
	data-logged-in="{{ $xf.visitor.user_id ? 'true' : 'false' }}"
	data-cookie-prefix="{$xf.cookie.prefix}"
	data-csrf="{{ csrf_token()|escape('js') }}"
	class="has-no-js {{ $template ? 'template-' . $template : '' }}"
	{{ $xf.runJobs ? ' data-run-jobs=""' : '' }}>
<head>
	<xf:set var="$siteName" value="{$xf.options.boardTitle}" />
	<xf:set var="$h1"><xf:h1 fallback="{$siteName}" /></xf:set>
	<xf:set var="$description"><xf:description /></xf:set>

	<meta charset="utf-8" />
	<title><xf:title formatter="%s | %s" fallback="{$xf.options.boardTitle}" page="{$pageNumber}" /></title>
	<link rel="manifest" href="{{ base_url('webmanifest.php') }}">

	<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
	<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">

	<xf:if is="$xf.style.isVariationsEnabled()">
		<xf:if is="$xf.visitor.style_variation">
			<meta name="theme-color" content="{{ parse_less_color(property_variation('metaThemeColor', $xf.visitor.style_variation)) }}" />
		<xf:else />
			<xf:if is="$xf.style.hasAlternateStyleTypeVariation()">
				<meta name="theme-color" media="(prefers-color-scheme: {{ $xf.style.getDefaultStyleType() }})" content="{{ parse_less_color(property_variation('metaThemeColor', 'default')) }}" />
				<meta name="theme-color" media="(prefers-color-scheme: {{ $xf.style.getAlternateStyleType() }})" content="{{ parse_less_color(property_variation('metaThemeColor', $xf.style.getAlternateStyleTypeVariation())) }}" />
			<xf:else />
				<meta name="theme-color" content="{{ parse_less_color(property_variation('metaThemeColor', 'default')) }}" />
			</xf:if>
		</xf:if>
	<xf:else />
		<meta name="theme-color" content="{{ parse_less_color(property_variation('metaThemeColor', 'default')) }}" />
	</xf:if>

	<meta name="apple-mobile-web-app-title" content="{{ $xf.options.boardShortTitle ?: $xf.options.boardTitle }}">
	<xf:if is="property('publicIconUrl')">
		<link rel="apple-touch-icon" href="{{ base_url(property('publicIconUrl', true)) }}">
		<xf:elseif is="property('publicMetadataLogoUrl')" />
		<link rel="apple-touch-icon" href="{{ base_url(property('publicMetadataLogoUrl')) }}" />
	</xf:if>

	<xf:foreach loop="$head" value="$headTag">
		{$headTag}
	</xf:foreach>

	<xf:if is="!$head.meta_site_name && $siteName is not empty">
		<xf:macro id="metadata_macros::site_name" arg-siteName="{$siteName}" arg-output="{{ true }}" />
	</xf:if>
	<xf:if is="!$head.meta_type">
		<xf:macro id="metadata_macros::type" arg-type="website" arg-output="{{ true }}" />
	</xf:if>
	<xf:if is="!$head.meta_title">
		<xf:macro id="metadata_macros::title" arg-title="{{ page_title() ?: $siteName }}" arg-output="{{ true }}" />
	</xf:if>
	<xf:if is="!$head.meta_description && $description is not empty && $pageDescriptionMeta">
		<xf:macro id="metadata_macros::description" arg-description="{$description}" arg-output="{{ true }}" />
	</xf:if>
	<xf:if is="!$head.meta_share_url">
		<xf:macro id="metadata_macros::share_url" arg-shareUrl="{$xf.fullUri}" arg-output="{{ true }}" />
	</xf:if>
	<xf:if is="!$head.meta_image_url && property('publicMetadataLogoUrl')">
		<xf:macro id="metadata_macros::image_url"
			arg-imageUrl="{{ base_url(property('publicMetadataLogoUrl'), true) }}"
			arg-output="{{ true }}" />
	</xf:if>

	<xf:macro id="helper_js_global::head" arg-app="public" />

	<xf:if is="property('publicFaviconUrl')">
		<link rel="icon" type="image/png" href="{{ base_url(property('publicFaviconUrl'), true) }}" sizes="32x32" />
	</xf:if>

	<xf:include template="google_analytics" />
</head>
<body data-template="{$template}">

<div class="p-pageWrapper" id="top">

	<xf:if contentcheck="true">
		<div class="p-staffBar">
			<div class="p-staffBar-inner hScroller" data-xf-init="h-scroller">
				<div class="hScroller-scroll">
					<xf:contentcheck>
						<xf:if is="$xf.visitor.is_moderator && $xf.session.unapprovedCounts.total">
							<a href="{{ link('approval-queue') }}" class="p-staffBar-link badgeContainer badgeContainer--highlighted" data-badge="{$xf.session.unapprovedCounts.total|number}">
								{{ phrase('approval_queue') }}
							</a>
						</xf:if>

						<xf:if is="$xf.visitor.is_moderator && !$xf.options.reportIntoForumId && $xf.session.reportCounts.total">
							<a href="{{ link('reports') }}"
								class="p-staffBar-link badgeContainer badgeContainer--visible {{ ($xf.session.reportCounts.total && ($xf.session.reportCounts.lastBuilt > $xf.session.reportLastRead) OR $xf.session.reportCounts.assigned) ? ' badgeContainer--highlighted' : '' }}"
								data-badge="{{ $xf.session.reportCounts.assigned ? $xf.session.reportCounts.assigned|number . ' / ' . $xf.session.reportCounts.total|number : $xf.session.reportCounts.total|number }}"
								title="{{ $xf.session.reportCounts.lastBuilt ? phrase('last_report_update:')|for_attr . ' ' . date_time($xf.session.reportCounts.lastBuilt) : '' }}">
								{{ phrase('reports') }}
							</a>
						</xf:if>

						<xf:if contentcheck="true">
							<a class="p-staffBar-link menuTrigger" data-xf-click="menu" data-xf-key="alt+m" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{{ phrase('moderator') }}</a>
							<div class="menu" data-menu="menu" aria-hidden="true">
								<div class="menu-content">
									<h4 class="menu-header">{{ phrase('moderator_tools') }}</h4>
									<xf:contentcheck>
										<!--[XF:mod_tools_menu:top]-->
										<xf:if is="$xf.visitor.is_moderator">
											<a href="{{ link('approval-queue') }}" class="menu-linkRow">{{ phrase('approval_queue') }}</a>
										</xf:if>
										<xf:if is="$xf.visitor.is_moderator && !$xf.options.reportIntoForumId">
											<a href="{{ link('reports') }}" class="menu-linkRow" title="{{ $xf.session.reportCounts.lastBuilt ? phrase('last_report_update:')|for_attr . ' ' . date_time($xf.session.reportCounts.lastBuilt) : '' }}">{{ phrase('reports') }}</a>
										</xf:if>
										<!--[XF:mod_tools_menu:bottom]-->
									</xf:contentcheck>
								</div>
							</div>
						</xf:if>

						<xf:if is="$xf.visitor.is_admin">
							<a href="{{ base_url('admin.php') }}" class="p-staffBar-link" target="_blank">{{ phrase('admin') }}</a>
						</xf:if>
					</xf:contentcheck>
				</div>
			</div>
		</div>
	</xf:if>

	<header class="p-header" id="header">
		<div class="p-header-inner">
			<div class="p-header-content">
				<div class="p-header-logo p-header-logo--image">
					<a href="{{ ($xf.options.logoLink && $xf.homePageUrl) ? $xf.homePageUrl : link('index') }}">
						<xf:macro id="style_variation_macros::picture"
							arg-property="publicLogoUrl"
							arg-propertyRetina="publicLogoUrl2x"
							arg-width="{{ property('publicLogoWidth') }}"
							arg-height="{{ property('publicLogoHeight') }}"
							arg-alt="{$xf.options.boardTitle}" />
					</a>
				</div>

				<xf:ad position="container_header" />
			</div>
		</div>
	</header>

	<xf:set var="$navHtml">
		<nav class="p-nav">
			<div class="p-nav-inner">
				<xf:button class="button--plain p-nav-menuTrigger" data-xf-click="off-canvas" data-menu=".js-headerOffCanvasMenu" tabindex="0"
					aria-label="{{ phrase('menu')|for_attr }}">
					<i aria-hidden="true"></i>
				</xf:button>

				<div class="p-nav-smallLogo">
					<a href="{{ ($xf.options.logoLink && $xf.homePageUrl) ? $xf.homePageUrl : link('index') }}">
						<xf:macro id="style_variation_macros::picture"
							arg-property="publicLogoUrl"
							arg-property2x="publicLogoUrl2x"
							arg-width="{{ property('publicLogoWidth') }}"
							arg-height="{{ property('publicLogoHeight') }}"
							arg-alt="{$xf.options.boardTitle}" />
					</a>
				</div>

				<div class="p-nav-scroller hScroller" data-xf-init="h-scroller" data-auto-scroll=".p-navEl.is-selected">
					<div class="hScroller-scroll">
						<ul class="p-nav-list js-offCanvasNavSource">
							<xf:foreach loop="$navTree" key="$navSection" value="$navEntry" i="$i" if="{{ $navSection != $xf.app.defaultNavigationId }}">
								<li>
									<xf:macro name="nav_entry"
										arg-navId="{$navSection}"
										arg-nav="{$navEntry}"
										arg-selected="{{ $navSection == $pageSection }}"
										arg-shortcut="{$i}" />
								</li>
							</xf:foreach>
						</ul>
					</div>
				</div>

				<div class="p-nav-opposite">
					<div class="p-navgroup p-account {{ $xf.visitor.user_id ? 'p-navgroup--member' : 'p-navgroup--guest' }}">
						<xf:if is="$xf.visitor.user_id">
							<xf:if is="$xf.visitor.user_state == 'rejected' OR $xf.visitor.user_state == 'disabled'">
								<a href="{{ link('account') }}"
									class="p-navgroup-link p-navgroup-link--iconic p-navgroup-link--user">
									<xf:avatar user="$xf.visitor" size="xxs" href="" title="" />
									<span class="p-navgroup-linkText">{$xf.visitor.username}</span>
								</a>

								<a href="{{ link('logout', null, {'t': csrf_token()}) }}" class="p-navgroup-link">
									<span class="p-navgroup-linkText">{{ phrase('log_out') }}</span>
								</a>
							<xf:else />
								<a href="{{ link('account') }}"
									class="p-navgroup-link p-navgroup-link--iconic p-navgroup-link--user"
									data-xf-click="menu"
									data-xf-key="{{ phrase('shortcut.visitor_menu')|for_attr }}"
									data-menu-pos-ref="< .p-navgroup"
									title="{$xf.visitor.username}"
									aria-expanded="false"
									aria-haspopup="true">
									<xf:avatar user="$xf.visitor" size="xxs" href="" title="" />
									<span class="p-navgroup-linkText">{$xf.visitor.username}</span>
								</a>
								<div class="menu menu--structural menu--wide menu--account" data-menu="menu" aria-hidden="true"
									data-href="{{ link('account/visitor-menu') }}"
									data-load-target=".js-visitorMenuBody">
									<div class="menu-content js-visitorMenuBody">
										<div class="menu-row">
											{{ phrase('loading...') }}
										</div>
									</div>
								</div>

								<a href="{{ link('direct-messages') }}"
									class="p-navgroup-link p-navgroup-link--iconic p-navgroup-link--conversations js-badge--conversations badgeContainer{{ $xf.visitor.conversations_unread ? ' badgeContainer--highlighted' : '' }}"
									data-badge="{$xf.visitor.conversations_unread|number}"
									data-xf-click="menu"
									data-xf-key="{{ phrase('shortcut.conversations_menu')|for_attr }}"
									data-menu-pos-ref="< .p-navgroup"
									title="{{ phrase('direct_messages')|for_attr }}"
									aria-label="{{ phrase('direct_messages')|for_attr }}"
									aria-expanded="false"
									aria-haspopup="true">
									<i aria-hidden="true"></i>
									<span class="p-navgroup-linkText">{{ phrase('nav_inbox') }}</span>
								</a>
								<div class="menu menu--structural menu--medium" data-menu="menu" aria-hidden="true"
									data-href="{{ link('direct-messages/popup') }}"
									data-nocache="true"
									data-load-target=".js-convMenuBody">
									<div class="menu-content">
										<h3 class="menu-header">{{ phrase('direct_messages') }}</h3>
										<div class="js-convMenuBody">
											<div class="menu-row">{{ phrase('loading...') }}</div>
										</div>
										<div class="menu-footer menu-footer--split">
											<div class="menu-footer-main">
												<ul class="listInline listInline--bullet">
													<li><a href="{{ link('direct-messages') }}">{{ phrase('show_all') }}</a></li>
													<xf:if is="$xf.visitor.canStartConversation()">
														<li><a href="{{ link('direct-messages/add') }}">{{ phrase('send_direct_message') }}</a></li>
													</xf:if>
												</ul>
											</div>
										</div>
									</div>
								</div>

								<a href="{{ link('account/alerts') }}"
									class="p-navgroup-link p-navgroup-link--iconic p-navgroup-link--alerts js-badge--alerts badgeContainer{{ $xf.visitor.alerts_unviewed ? ' badgeContainer--highlighted' : '' }}"
									data-badge="{$xf.visitor.alerts_unviewed|number}"
									data-xf-click="menu"
									data-xf-key="{{ phrase('shortcut.alerts_menu')|for_attr }}"
									data-menu-pos-ref="< .p-navgroup"
									title="{{ phrase('alerts')|for_attr }}"
									aria-label="{{ phrase('alerts')|for_attr }}"
									aria-expanded="false"
									aria-haspopup="true">
									<i aria-hidden="true"></i>
									<span class="p-navgroup-linkText">{{ phrase('nav_alerts') }}</span>
								</a>
								<div class="menu menu--structural menu--medium" data-menu="menu" aria-hidden="true"
									data-href="{{ link('account/alerts-popup') }}"
									data-nocache="true"
									data-load-target=".js-alertsMenuBody">
									<div class="menu-content">
										<h3 class="menu-header">{{ phrase('alerts') }}</h3>
										<div class="js-alertsMenuBody">
											<div class="menu-row">{{ phrase('loading...') }}</div>
										</div>
										<div class="menu-footer menu-footer--split">
											<div class="menu-footer-main">
												<ul class="listInline listInline--bullet">
													<li><a href="{{ link('account/alerts') }}">{{ phrase('show_all') }}</a></li>
													<li><a href="{{ link('account/alerts/mark-read') }}" class="js-alertsMarkRead">{{ phrase('mark_read') }}</a></li>
													<li><a href="{{ link('account/preferences') }}">{{ phrase('preferences') }}</a></li>
												</ul>
											</div>
										</div>
									</div>
								</div>
							</xf:if>
						<xf:else />
							<a href="{{ link('login') }}" class="p-navgroup-link p-navgroup-link--textual p-navgroup-link--logIn"
								data-xf-click="overlay" data-follow-redirects="on">
								<span class="p-navgroup-linkText">{{ phrase('log_in') }}</span>
							</a>
							<xf:if is="$xf.options.registrationSetup.enabled">
								<a href="{{ link('register') }}" class="p-navgroup-link p-navgroup-link--textual p-navgroup-link--register"
									data-xf-click="overlay" data-follow-redirects="on">
									<span class="p-navgroup-linkText">{{ phrase('register') }}</span>
								</a>
							</xf:if>
						</xf:if>
					</div>

					<div class="p-navgroup p-discovery{{ !$xf.visitor.canSearch() ? ' p-discovery--noSearch' : '' }}">
						<a href="{{ link('whats-new') }}"
							class="p-navgroup-link p-navgroup-link--iconic p-navgroup-link--whatsnew"
							aria-label="{{ phrase('whats_new')|for_attr }}"
							title="{{ phrase('whats_new')|for_attr }}">
							<i aria-hidden="true"></i>
							<span class="p-navgroup-linkText">{{ phrase('whats_new') }}</span>
						</a>

						<xf:if is="$xf.visitor.canSearch()">
							<a href="{{ link('search') }}"
								class="p-navgroup-link p-navgroup-link--iconic p-navgroup-link--search"
								data-xf-click="menu"
								data-xf-key="{{ phrase('shortcut.search_menu')|for_attr }}"
								aria-label="{{ phrase('search')|for_attr }}"
								aria-expanded="false"
								aria-haspopup="true"
								title="{{ phrase('search')|for_attr }}">
								<i aria-hidden="true"></i>
								<span class="p-navgroup-linkText">{{ phrase('search') }}</span>
							</a>
							<div class="menu menu--structural menu--wide" data-menu="menu" aria-hidden="true">
								<form action="{{ link('search/search') }}" method="post"
									class="menu-content"
									data-xf-init="quick-search">

									<h3 class="menu-header">{{ phrase('search') }}</h3>
									<!--[XF:search_menu:above_input]-->
									<div class="menu-row">
										<xf:if is="$searchConstraints">
											<div class="inputGroup inputGroup--joined">
												<xf:textbox name="keywords"
													data-xf-init="{{ $xf.searchAutoComplete ? 'search-auto-complete' : '' }}"
													data-acurl="{{ link('search/auto-complete') }}"
													placeholder="{{ phrase('search...') }}"
													aria-label="{{ phrase('search') }}"
													data-menu-autofocus="true" />
												<xf:select name="constraints"
													class="js-quickSearch-constraint"
													aria-label="{{ phrase('search_within') }}">

													<xf:option value="">{{ phrase('everywhere') }}</xf:option>
													<xf:foreach loop="$searchConstraints" key="$constraintName" value="$constraint">
														<xf:option value="{$constraint|json}">{$constraintName}</xf:option>
													</xf:foreach>
												</xf:select>
											</div>
										<xf:else />
											<xf:textbox name="keywords"
												data-xf-init="{{ $xf.searchAutoComplete ? 'search-auto-complete' : '' }}"
												data-acurl="{{ link('search/auto-complete') }}"
												placeholder="{{ phrase('search...') }}"
												aria-label="{{ phrase('search') }}"
												data-menu-autofocus="true" />
										</xf:if>
									</div>

									<!--[XF:search_menu:above_title_only]-->
									<div class="menu-row">
										<xf:checkbox standalone="true">
											<xf:option name="c[title_only]">
												<xf:label>
													{{ phrase('search_titles_only') }}

													<xf:if is="$xf.options.enableTagging">
													<span tabindex="0" role="button"
														data-xf-init="tooltip" data-trigger="hover focus click" title="{{ phrase('tags_will_also_be_searched')|for_attr }}">

														<xf:fa icon="far fa-question-circle" class="u-muted u-smaller"
															title="{{ phrase('note')|for_attr }}" />
													</span>
													</xf:if>
												</xf:label>
											</xf:option>
										</xf:checkbox>
									</div>
									<!--[XF:search_menu:above_member]-->
									<div class="menu-row">
										<div class="inputGroup">
											<span class="inputGroup-text" id="ctrl_search_menu_by_member">{{ phrase('by:') }}</span>
											<input type="text" class="input" name="c[users]" data-xf-init="auto-complete" placeholder="{{ phrase('member')|for_attr }}" aria-labelledby="ctrl_search_menu_by_member" />
										</div>
									</div>
									<div class="menu-footer">
									<span class="menu-footer-controls">
										<xf:button type="submit" class="button--primary" icon="search" />
										<xf:button type="submit" name="from_search_menu">{{ phrase('advanced_search...') }}</xf:button>
									</span>
									</div>

									<xf:csrf />
								</form>
							</div>
						</xf:if>
					</div>
				</div>
			</div>
		</nav>
	</xf:set>
	<xf:set var="$subNavHtml">
		<xf:if is="$selectedNavChildren is not empty">
			<div class="p-sectionLinks">
				<div class="p-sectionLinks-inner hScroller" data-xf-init="h-scroller">
					<div class="hScroller-scroll">
						<ul class="p-sectionLinks-list">
							<xf:foreach loop="$selectedNavChildren" key="$navId" value="$navEntry" i="$i">
								<li>
									<xf:macro id="nav_entry" arg-navId="{$navId}" arg-nav="{$navEntry}" arg-shortcut="alt+{$i}" />
								</li>
							</xf:foreach>
						</ul>
					</div>
				</div>
			</div>
			<xf:elseif is="{$selectedNavEntry}" />
			<div class="p-sectionLinks p-sectionLinks--empty"></div>
		</xf:if>
	</xf:set>

	<xf:if is="property('publicNavSticky') == 'primary'">
		<div class="p-navSticky p-navSticky--primary" data-xf-init="sticky-header">
			{$navHtml|raw}
		</div>
		{$subNavHtml|raw}
		<xf:elseif is="property('publicNavSticky') == 'all'" />
		<div class="p-navSticky p-navSticky--all" data-xf-init="sticky-header">
			{$navHtml|raw}
			{$subNavHtml|raw}
		</div>
		<xf:else />
		{$navHtml|raw}
		{$subNavHtml|raw}
	</xf:if>

	<div class="offCanvasMenu offCanvasMenu--nav js-headerOffCanvasMenu" data-menu="menu" aria-hidden="true" data-ocm-builder="navigation">
		<div class="offCanvasMenu-backdrop" data-menu-close="true"></div>
		<div class="offCanvasMenu-content">
			<div class="offCanvasMenu-header">
				{{ phrase('menu') }}
				<a class="offCanvasMenu-closer" data-menu-close="true" role="button" tabindex="0" aria-label="{{ phrase('close')|for_attr }}"></a>
			</div>
			<xf:if is="$xf.visitor.user_id">
				<div class="p-offCanvasAccountLink">
					<div class="offCanvasMenu-linkHolder">
						<a href="{{ link('account') }}" class="offCanvasMenu-link">
							<xf:avatar user="$xf.visitor" size="xxs" href="" />
							{$xf.visitor.username}
						</a>
					</div>
					<hr class="offCanvasMenu-separator" />
				</div>
				<xf:else />
				<div class="p-offCanvasRegisterLink">
					<div class="offCanvasMenu-linkHolder">
						<a href="{{ link('login') }}" class="offCanvasMenu-link" data-xf-click="overlay" data-menu-close="true">
							{{ phrase('log_in') }}
						</a>
					</div>
					<hr class="offCanvasMenu-separator" />
					<xf:if is="$xf.options.registrationSetup.enabled">
						<div class="offCanvasMenu-linkHolder">
							<a href="{{ link('register') }}" class="offCanvasMenu-link" data-xf-click="overlay" data-menu-close="true">
								{{ phrase('register') }}
							</a>
						</div>
						<hr class="offCanvasMenu-separator" />
					</xf:if>
				</div>
			</xf:if>
			<div class="js-offCanvasNavTarget"></div>
			<div class="offCanvasMenu-installBanner js-installPromptContainer" style="display: none;" data-xf-init="install-prompt">
				<div class="offCanvasMenu-installBanner-header">{{ phrase('install_app') }}</div>
				<xf:button class="js-installPromptButton">{{ phrase('install') }}</xf:button>
				<template class="js-installTemplateIOS">
					<div class="js-installTemplateContent">
						<div class="overlay-title">{{ phrase('how_to_install_app_on_ios') }}</div>
						<div class="block-body">
							<div class="block-row">
								<p>
									{{ phrase('follow_along_with_video_below_to_see_how_to_install_our_site_as_web_app') }}
								</p>
								<p style="text-align: center">
									<video src="{{ base_url(property('publicPwaInstallVideoUrl')) }}"
										width="280" height="480" autoplay loop muted playsinline></video>
								</p>
								<p>
									<small><strong>{{ phrase('note:') }}</strong> {{ phrase('this_feature_currently_may_not_be_available_in_some_browsers') }}</small>
								</p>
							</div>
						</div>
					</div>
				</template>
			</div>
		</div>
	</div>

	<div class="p-body">
		<div class="p-body-inner">
			<!--XF:EXTRA_OUTPUT-->

			<xf:if is="$notices.block">
				<xf:macro id="notice_macros::notice_list" arg-type="block" arg-notices="{$notices.block}" />
			</xf:if>

			<xf:if is="$notices.scrolling">
				<xf:macro id="notice_macros::notice_list" arg-type="scrolling" arg-notices="{$notices.scrolling}" />
			</xf:if>

			<xf:ad position="container_breadcrumb_top_above" />
			<xf:macro id="breadcrumbs"
				arg-breadcrumbs="{$breadcrumbs}"
				arg-navTree="{$navTree}"
				arg-selectedNavEntry="{$selectedNavEntry}" />
			<xf:ad position="container_breadcrumb_top_below" />

			<xf:macro id="browser_warning_macros::javascript"/>
			<xf:macro id="browser_warning_macros::browser"/>

			<xf:if is="$headerHtml is not empty">
				<div class="p-body-header">
					{$headerHtml|raw}
				</div>
				<xf:elseif contentcheck="true" />
				<div class="p-body-header">
					<xf:contentcheck>
						<xf:if contentcheck="true">
							<div class="p-title {{ $noH1 ? 'p-title--noH1' : '' }}">
								<xf:contentcheck>
									<xf:if is="!$noH1">
										<h1 class="p-title-value">{$h1}</h1>
									</xf:if>
									<xf:if contentcheck="true">
										<div class="p-title-pageAction"><xf:contentcheck><xf:pageaction /></xf:contentcheck></div>
									</xf:if>
								</xf:contentcheck>
							</div>
						</xf:if>

						<xf:if is="$description is not empty">
							<div class="p-description">{$description}</div>
						</xf:if>
					</xf:contentcheck>
				</div>
			</xf:if>

			<div class="p-body-main {{ $sidebar ? 'p-body-main--withSidebar' : '' }} {{ $sideNav ? 'p-body-main--withSideNav' : '' }}">
				<xf:if is="$sideNav">
					<div class="p-body-sideNavCol"></div>
				</xf:if>
				<div class="p-body-contentCol"></div>
				<xf:if is="$sidebar">
					<div class="p-body-sidebarCol"></div>
				</xf:if>

				<xf:if is="$sideNav">
					<div class="p-body-sideNav">
						<div class="p-body-sideNavTrigger">
							<xf:button class="button--link" data-xf-click="off-canvas" data-menu="#js-SideNavOcm">
								{{ $sideNavTitle ?: phrase('navigation') }}
							</xf:button>
						</div>
						<div class="p-body-sideNavInner" data-ocm-class="offCanvasMenu offCanvasMenu--blocks" id="js-SideNavOcm" data-ocm-builder="sideNav">
							<div data-ocm-class="offCanvasMenu-backdrop" data-menu-close="true"></div>
							<div data-ocm-class="offCanvasMenu-content">
								<div class="p-body-sideNavContent">
									<xf:ad position="container_sidenav_above" />
									<xf:foreach loop="$sideNav" value="$sideNavHtml">
										{$sideNavHtml}
									</xf:foreach>
									<xf:ad position="container_sidenav_below" />
								</div>
							</div>
						</div>
					</div>
				</xf:if>

				<div class="p-body-content">
					<xf:ad position="container_content_above" />
					<div class="p-body-pageContent">{$content|raw}</div>
					<xf:ad position="container_content_below" />
				</div>

				<xf:if is="$sidebar">
					<div class="p-body-sidebar">
						<xf:ad position="container_sidebar_above" />
						<xf:foreach loop="$sidebar" value="$sidebarHtml">
							{$sidebarHtml}
						</xf:foreach>
						<xf:ad position="container_sidebar_below" />
					</div>
				</xf:if>
			</div>

			<xf:ad position="container_breadcrumb_bottom_above" />
			<xf:macro id="breadcrumbs"
				arg-breadcrumbs="{$breadcrumbs}"
				arg-navTree="{$navTree}"
				arg-selectedNavEntry="{$selectedNavEntry}"
				arg-variant="bottom" />
			<xf:ad position="container_breadcrumb_bottom_below" />
		</div>
	</div>

	<footer class="p-footer" id="footer">
		<div class="p-footer-inner">

			<div class="p-footer-row">
				<xf:if contentcheck="true">
					<div class="p-footer-row-main">
						<ul class="p-footer-linkList">
							<xf:contentcheck>
								<xf:if is="$xf.cookieConsent.getMode() == 'advanced'">
									<li><a href="{{ link('misc/cookies') }}" rel="nofollow"
										data-xf-init="tooltip" title="{{ phrase('cookie_consent')|for_attr }}"
										data-xf-click="cookie-consent-toggle">
										<xf:fa icon="fa-cookie" /> {{ phrase('cookie_consent_label') }}
									</a></li>
								</xf:if>
								<xf:if contentcheck="true">
									<li>
										<xf:contentcheck>
											<xf:if is="$xf.visitor.canChangeStyle()">
												<a href="{{ link('misc/style') }}" data-xf-click="overlay"
													data-xf-init="tooltip" title="{{ phrase('style_chooser')|for_attr }}" rel="nofollow">
													<xf:fa icon="fa-paint-brush" /> {$xf.style.title}
												</a>
											</xf:if>
											<xf:if is="$xf.visitor.canChangeStyleVariation($xf.style)">
												<a href="{{ link('misc/style-variation') }}" rel="nofollow"
													class="js-styleVariationsLink"
													data-xf-init="tooltip" title="{{ phrase('style_variation') }}"
													data-xf-click="menu" data-z-index-ref=".u-bottomFixer" role="button" aria-expanded="false" aria-haspopup="true">

													<xf:fa icon="{{ $xf.style.getVariationIcon($xf.visitor.style_variation) }}" title="{{ phrase('style_variation') }}" />
												</a>

												<div class="menu" data-menu="menu" aria-hidden="true">
													<div class="menu-content js-styleVariationsMenu">
														<xf:macro name="style_variation_macros::variation_menu"
															arg-style="{$xf.style}"
															arg-live="{{ true }}" />
													</div>
												</div>
											</xf:if>
										</xf:contentcheck>
									</li>
								</xf:if>
								<xf:if is="$xf.visitor.canChangeLanguage()">
									<li><a href="{{ link('misc/language') }}" data-xf-click="overlay"
										data-xf-init="tooltip" title="{{ phrase('language_chooser')|for_attr }}" rel="nofollow">
										<xf:fa icon="fa-globe" /> {$xf.language.title}</a></li>
								</xf:if>
							</xf:contentcheck>
						</ul>
					</div>
				</xf:if>
				<div class="p-footer-row-opposite">
					<ul class="p-footer-linkList">
						<xf:if is="$xf.visitor.canUseContactForm()">
							<xf:if is="$xf.contactUrl">
								<li><a href="{$xf.contactUrl}" data-xf-click="{{ ($xf.options.contactUrl.overlay OR $xf.options.contactUrl.type == 'default') ? 'overlay' : '' }}">{{ phrase('contact_us') }}</a></li>
							</xf:if>
						</xf:if>

						<xf:if is="$xf.tosUrl">
							<li><a href="{$xf.tosUrl}">{{ phrase('terms_and_rules') }}</a></li>
						</xf:if>

						<xf:if is="$xf.privacyPolicyUrl">
							<li><a href="{$xf.privacyPolicyUrl}">{{ phrase('privacy_policy') }}</a></li>
						</xf:if>

						<xf:if is="$xf.helpPageCount">
							<li><a href="{{ link('help') }}">{{ phrase('help') }}</a></li>
						</xf:if>

						<xf:if is="$xf.homePageUrl">
							<li><a href="{$xf.homePageUrl}">{{ phrase('home') }}</a></li>
						</xf:if>

						<li><a href="{{ link('forums/index.rss', '-') }}" target="_blank" class="p-footer-rssLink" title="{{ phrase('rss')|for_attr }}"><span aria-hidden="true"><xf:fa icon="fa-rss" /><span class="u-srOnly">{{ phrase('rss') }}</span></span></a></li>
					</ul>
				</div>
			</div>

			<xf:if contentcheck="true">
				<div class="p-footer-copyright">
					<xf:contentcheck>
						<xf:copyright />
						{{ phrase('extra_copyright') }}
					</xf:contentcheck>
				</div>
			</xf:if>

			<xf:if contentcheck="true">
				<div class="p-footer-debug">
					<xf:contentcheck>
						<xf:macro id="debug_macros::debug"
							arg-controller="{$controller}"
							arg-action="{$actionMethod}"
							arg-template="{$template}" />
					</xf:contentcheck>
				</div>
			</xf:if>
		</div>
	</footer>
</div> <!-- closing p-pageWrapper -->

<div class="u-bottomFixer js-bottomFixTarget">
	<xf:if is="$notices.floating">
		<xf:macro id="notice_macros::notice_list" arg-type="floating" arg-notices="{$notices.floating}" />
	</xf:if>
	<xf:if is="$notices.bottom_fixer">
		<xf:macro id="notice_macros::notice_list" arg-type="bottom_fixer" arg-notices="{$notices.bottom_fixer}" />
	</xf:if>
</div>

<div class="u-navButtons js-navButtons">
	<xf:button href="javascript:" class="button--scroll"><xf:fa icon="fa-arrow-left" /><span class="u-srOnly">{{ phrase('back') }}</span></xf:button>
</div>

<xf:if is="property('scrollJumpButtons')">
	<div class="u-scrollButtons js-scrollButtons" data-trigger-type="{{ property('scrollJumpButtons') }}">
		<xf:button href="#top" class="button--scroll" data-xf-click="scroll-to"><xf:fa icon="fa-arrow-up" /><span class="u-srOnly">{{ phrase('top') }}</span></xf:button>
		<xf:if is="property('scrollJumpButtons') != 'up'">
			<xf:button href="#footer" class="button--scroll" data-xf-click="scroll-to"><xf:fa icon="fa-arrow-down" /><span class="u-srOnly">{{ phrase('bottom') }}</span></xf:button>
		</xf:if>
	</div>
</xf:if>

<xf:macro id="helper_js_global::body" arg-app="public" arg-jsState="{$jsState}" />

<xf:if is="count($xf.reactionsActive) > 1 AND $xf.visitor.user_id">
	<script type="text/template" id="xfReactTooltipTemplate">
		<div class="tooltip-content-inner">
			<div class="reactTooltip">
				<xf:foreach loop="$xf.reactionsActive" key="$reactionId" value="$reaction">
					<xf:reaction id="{$reactionId}" tooltip="true" />
				</xf:foreach>
			</div>
		</div>
	</script>
</xf:if>

{$ldJsonHtml|raw}

</body>
</html>

<xf:macro id="nav_entry" arg-navId="!" arg-nav="!" arg-selected="{{ false }}" arg-shortcut="">
	<div class="p-navEl {{ $selected ? 'is-selected' : '' }}" {{ $nav.children ? 'data-has-children="true"' : '' }}>
	<xf:if is="$nav.href">

		<xf:macro id="nav_link"
			arg-navId="{$navId}"
			arg-nav="{$nav}"
			arg-class="p-navEl-link {{ $nav.children ? 'p-navEl-link--splitMenu' : '' }}"
			arg-shortcut="{{ $nav.children ? false : $shortcut }}" />

		<xf:if is="$nav.children"><a data-xf-key="{$shortcut}"
			data-xf-click="menu"
			data-menu-pos-ref="< .p-navEl"
			class="p-navEl-splitTrigger"
			role="button"
			tabindex="0"
			aria-label="{{ phrase('toggle_expanded')|for_attr }}"
			aria-expanded="false"
			aria-haspopup="true"></a></xf:if>

		<xf:elseif is="$nav.children" />

			<xf:if is="$selected">
				<xf:macro id="nav_link"
					arg-navId="{$navId}"
					arg-nav="{$nav}"
					arg-class="p-navEl-link" />
			<xf:else />
				<a data-xf-key="{$shortcut}"
					data-xf-click="menu"
					data-menu-pos-ref="< .p-navEl"
					class="p-navEl-linkHolder"
					role="button"
					tabindex="0"
					aria-expanded="false"
					aria-haspopup="true">
					<xf:macro id="nav_link"
						arg-navId="{$navId}"
						arg-nav="{$nav}"
						arg-class="p-navEl-link p-navEl-link--menuTrigger" />
				</a>
			</xf:if>

		<xf:else />

		<xf:macro id="nav_link"
			arg-navId="{$navId}"
			arg-nav="{$nav}"
			arg-class="p-navEl-link"
			arg-shortcut="{$shortcut}" />

	</xf:if>
	<xf:if is="$nav.children">
		<div class="menu menu--structural" data-menu="menu" aria-hidden="true">
			<div class="menu-content">
				<xf:foreach loop="$nav.children" key="$childNavId" value="$child">
					<xf:macro id="nav_menu_entry"
						arg-navId="{$childNavId}"
						arg-nav="{$child}" />
				</xf:foreach>
			</div>
		</div>
	</xf:if>
	</div>
</xf:macro>

<xf:macro id="nav_link" arg-navId="!" arg-nav="!" arg-class="" arg-titleHtml="" arg-shortcut="{{ false }}">
	<xf:set var="$tag" value="{{ $nav.href ? 'a' : 'span' }}" />
	<{$tag} {{ $nav.href ? 'href="' . $nav.href . '"' : '' }}
	class="{{ trim($class) }} {$nav.attributes.class}"
	{{ attributes($nav.attributes, ['class']) }}
	{{ $shortcut !== false ? 'data-xf-key="' . $shortcut . '"' : '' }}
	data-nav-id="{$navId}"><xf:if is="$nav.icon"><xf:fa icon="{$nav.icon}" /> </xf:if>{{ $titleHtml ? $titleHtml|raw : $nav.title }}<xf:if is="$nav.counter"> <span class="badge badge--highlighted">{$nav.counter|number}</span></xf:if></{$tag}>
</xf:macro>

<xf:macro id="nav_menu_entry" arg-navId="!" arg-nav="!" arg-depth="0">
	<xf:macro id="nav_link"
		arg-navId="{$navId}"
		arg-nav="{$nav}"
		arg-class="menu-linkRow u-indentDepth{$depth} js-offCanvasCopy" />
	<xf:if is="$nav.children">
		<xf:foreach loop="$nav.children" key="$childNavId" value="$child">
			<xf:macro id="nav_menu_entry"
				arg-navId="{$childNavId}"
				arg-nav="{$child}"
				arg-depth="{{ $depth + 1 }}" />
		</xf:foreach>
		<xf:if is="$depth == 0">
			<hr class="menu-separator" />
		</xf:if>
	</xf:if>
</xf:macro>

<xf:macro id="breadcrumbs" arg-breadcrumbs="!" arg-navTree="!" arg-selectedNavEntry="{{ null }}" arg-variant="">
	<xf:if contentcheck="true">
		<ul class="p-breadcrumbs {{ $variant ? 'p-breadcrumbs--' . $variant : '' }}"
			itemscope itemtype="https://schema.org/BreadcrumbList">
			<xf:contentcheck>
				<xf:set var="$position" value="{{ 0 }}" />

				<xf:set var="$rootBreadcrumb" value="{$navTree.{$xf.options.rootBreadcrumb}}" />
				<xf:set var="$rootBreadcrumbHref" value="{{ $rootBreadcrumb.href|substr(-1) == '/'
					? $rootBreadcrumb.href
					: $rootBreadcrumb.href . '/'
				}}" />

				<xf:if is="$rootBreadcrumb AND $rootBreadcrumbHref != $xf.uri AND $rootBreadcrumbHref != $xf.fullUri">
					<xf:set var="$position" value="{{ $position + 1 }}" />
					<xf:macro id="crumb"
						arg-position="{$position}"
						arg-href="{$rootBreadcrumb.href}"
						arg-value="{$rootBreadcrumb.title}" />
				</xf:if>

				<xf:if is="$selectedNavEntry AND $selectedNavEntry.href AND $selectedNavEntry.href != $xf.uri AND $selectedNavEntry.href != $xf.fullUri AND $selectedNavEntry.href != $rootBreadcrumbHref">
					<xf:set var="$position" value="{{ $position + 1 }}" />
					<xf:macro id="crumb"
						arg-position="{$position}"
						arg-href="{$selectedNavEntry.href}"
						arg-value="{$selectedNavEntry.title}" />
				</xf:if>
				<xf:foreach loop="$breadcrumbs" value="$breadcrumb" if="$breadcrumb.href != $xf.uri AND $breadcrumb.href != $xf.fullUri">
					<xf:set var="$position" value="{{ $position + 1 }}" />
					<xf:macro id="crumb"
						arg-position="{$position}"
						arg-href="{$breadcrumb.href}"
						arg-value="{$breadcrumb.value}" />
				</xf:foreach>
			</xf:contentcheck>
		</ul>
	</xf:if>
</xf:macro>

<xf:macro id="crumb" arg-href="!" arg-value="!" arg-position="{{ 0 }}">
	<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
		<a href="{$href}" itemprop="item">
			<span itemprop="name">{$value}</span>
		</a>
		<xf:if is="$position"><meta itemprop="position" content="{$position}" /></xf:if>
	</li>
</xf:macro>]]></template>
  <template type="public" title="_help_page_bb_codes" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:css src="help_bb_codes.less" />

<div class="block">
	<div class="block-container">
		<ul class="listPlain block-body">

			<xf:macro id="row_output"
				arg-title="{{ phrase('bb_code_help_b_i_u_s_title')|preEscaped }}"
				arg-desc="{{ phrase('bb_code_help_b_i_u_s_desc')|preEscaped }}"
				arg-example="{{ phrase('bb_code_help_b_i_u_s_example')|preEscaped }}"
				arg-anchor="basic" />

			<xf:macro id="row_output"
				arg-title="{{ phrase('bb_code_help_color_font_size_title')|preEscaped }}"
				arg-desc="{{ phrase('bb_code_help_color_font_size_desc')|preEscaped }}"
				arg-example="{{ phrase('bb_code_help_color_font_size_example')|preEscaped }}"
				arg-anchor="style" />

			<xf:macro id="row_output"
				arg-title="{{ phrase('bb_code_help_url_email_title')|preEscaped }}"
				arg-desc="{{ phrase('bb_code_help_url_email_desc')|preEscaped }}"
				arg-example="{{ phrase('bb_code_help_url_email_example')|preEscaped }}"
				arg-anchor="email-url" />

			<xf:macro id="row_output"
				arg-title="{{ phrase('bb_code_help_url_email_advanced_title')|preEscaped }}"
				arg-desc="{{ phrase('bb_code_help_url_email_advanced_desc')|preEscaped }}"
				arg-example="{{ phrase('bb_code_help_url_email_advanced_example')|preEscaped }}"
				arg-anchor="email-url-advanced" />

			<xf:macro id="row_output"
				arg-title="{{ phrase('bb_code_help_user_title')|preEscaped }}"
				arg-desc="{{ phrase('bb_code_help_user_desc')|preEscaped }}"
				arg-example="{{
					phrase('bb_code_help_user_example', {
						'id': $xf.visitor.user_id ? $xf.visitor.user_id : '1',
						'name': phrase('user_name')
					})|preEscaped
				}}"
				arg-anchor="user-mention" />

			<xf:macro id="row_output"
				arg-title="{{ phrase('bb_code_help_img_title')|preEscaped }}"
				arg-desc="{{ phrase('bb_code_help_img_desc')|preEscaped }}"
				arg-example="{{ phrase('bb_code_help_img_example', {
				    'url': base_url(property('publicMetadataLogoUrl') ?: property('publicLogoUrl'), true)
				})|preEscaped }}"
				arg-anchor="image" />

			<li class="bbCodeHelpItem block-row block-row--separated">
				<span class="u-anchorTarget" id="media"></span>
				<h3 class="block-textHeader">{{ phrase('bb_code_help_media_title') }}</h3>
				<div>
					{{ phrase('bb_code_help_media_desc') }}<br />
					{{ phrase('approved_sites:') }} {{ media_sites() }}
				</div>
				<div class="bbCodeDemoBlock">
					<dl class="bbCodeDemoBlock-item">
						<dt>{{ phrase('example:') }}</dt>
						<dd>[MEDIA=youtube]kQ0Eo1UccEE[/MEDIA]</dd>
					</dl>
					<dl class="bbCodeDemoBlock-item">
						<dt>{{ phrase('output:') }}</dt>
						<dd><i>{{ phrase('embedded_youtube_player_would_appear_here') }}</i></dd>
					</dl>
				</div>
			</li>

			<xf:macro id="row_output"
				arg-title="{{ phrase('bb_code_help_list_title')|preEscaped }}"
				arg-desc="{{ phrase('bb_code_help_list_desc')|preEscaped }}"
				arg-example="{{ phrase('bb_code_help_list_example')|preEscaped }}"
				arg-anchor="list" />

			<xf:macro id="row_output"
				arg-title="{{ phrase('bb_code_help_align_title')|preEscaped }}"
				arg-desc="{{ phrase('bb_code_help_align_desc')|preEscaped }}"
				arg-example="{{ phrase('bb_code_help_align_example')|preEscaped }}"
				arg-anchor="align" />

			<xf:macro id="row_output"
				arg-title="{{ phrase('bb_code_help_quote_title')|preEscaped }}"
				arg-desc="{{ phrase('bb_code_help_quote_desc')|preEscaped }}"
				arg-example="{{ phrase('bb_code_help_quote_example')|preEscaped }}"
				arg-anchor="quote" />

			<xf:macro id="row_output"
				arg-title="{{ phrase('bb_code_help_spoiler_title')|preEscaped }}"
				arg-desc="{{ phrase('bb_code_help_spoiler_desc')|preEscaped }}"
				arg-example="{{ phrase('bb_code_help_spoiler_example')|preEscaped }}"
				arg-anchor="spoiler" />

			<xf:macro id="row_output"
				arg-title="{{ phrase('bb_code_help_ispoiler_title')|preEscaped }}"
				arg-desc="{{ phrase('bb_code_help_ispoiler_desc')|preEscaped }}"
				arg-example="{{ phrase('bb_code_help_ispoiler_example')|preEscaped }}"
				arg-anchor="ispoiler" />

			<xf:macro id="row_output"
				arg-title="{{ phrase('bb_code_help_code_title')|preEscaped }}"
				arg-desc="{{ phrase('bb_code_help_code_desc')|preEscaped }}"
				arg-example="{{ phrase('bb_code_help_code_example')|preEscaped }}"
				arg-anchor="code" />

			<xf:macro id="row_output"
				arg-title="{{ phrase('bb_code_help_icode_title')|preEscaped }}"
				arg-desc="{{ phrase('bb_code_help_icode_desc')|preEscaped }}"
				arg-example="{{ phrase('bb_code_help_icode_example')|preEscaped }}"
				arg-anchor="icode" />

			<xf:macro id="row_output"
				arg-title="{{ phrase('bb_code_help_indent_title')|preEscaped }}"
				arg-desc="{{ phrase('bb_code_help_indent_desc')|preEscaped }}"
				arg-example="{{ phrase('bb_code_help_indent_example')|preEscaped }}"
				arg-anchor="indent" />

			<xf:macro id="row_output"
				arg-title="{{ phrase('bb_code_help_table_title')|preEscaped }}"
				arg-desc="{{ phrase('bb_code_help_table_desc')|preEscaped }}"
				arg-example="{{ phrase('bb_code_help_table_example')|preEscaped }}"
				arg-anchor="table" />

			<xf:macro id="row_output"
				arg-title="{{ phrase('bb_code_help_heading_title')|preEscaped }}"
				arg-desc="{{ phrase('bb_code_help_heading_desc')|preEscaped }}"
				arg-example="{{ phrase('bb_code_help_heading_example')|preEscaped }}"
				arg-anchor="heading" />

			<xf:macro id="row_output"
				arg-title="{{ phrase('bb_code_help_plain_title')|preEscaped }}"
				arg-desc="{{ phrase('bb_code_help_plain_desc')|preEscaped }}"
				arg-example="{{ phrase('bb_code_help_plain_example')|preEscaped }}"
				arg-anchor="plain" />

			<li class="bbCodeHelpItem block-row block-row--separated">
				<span class="u-anchorTarget" id="attach"></span>
				<h3 class="block-textHeader">{{ phrase('bb_code_help_attach_title') }}</h3>
				<div>{{ phrase('bb_code_help_attach_desc') }}</div>
				<div class="bbCodeDemoBlock">
					<dl class="bbCodeDemoBlock-item">
						<dt>{{ phrase('example:') }}</dt>
						<dd>
							{{ phrase('thumbnail:') }} [ATTACH]123[/ATTACH]<br />
							{{ phrase('full_size:') }} [ATTACH=full]123[/ATTACH]
						</dd>
					</dl>
					<dl class="bbCodeDemoBlock-item">
						<dt>{{ phrase('output:') }}</dt>
						<dd><i>{{ phrase('contents_of_attachments_would_appear_here') }}</i></dd>
					</dl>
				</div>
			</li>

			<xf:foreach loop="$bbCodes" value="$bbCode" if="$bbCode.example is not empty">
				<li class="bbCodeHelpItem block-row block-row--separated">
					<span class="u-anchorTarget" id="{$bbCode.bb_code_id}"></span>
					<h3 class="block-textHeader">
						<xf:if is="$bbCode.has_option == 'no' OR $bbCode.has_option == 'optional'">[{$bbCode.bb_code_id|to_upper}]</xf:if>
						<xf:if is="$bbCode.has_option == 'optional'"><span role="presentation" aria-hidden="true">&middot;</span></xf:if>
						<xf:if is="$bbCode.has_option == 'yes' OR $bbCode.has_option == 'optional'">[{$bbCode.bb_code_id|to_upper}=<span class="block-textHeader-highlight">option</span>]</xf:if>
						- {$bbCode.title}
					</h3>
					<xf:if contentcheck="true">
						<div><xf:contentcheck>{$bbCode.description}</xf:contentcheck></div>
					</xf:if>
					<div class="bbCodeDemoBlock">
						<dl class="bbCodeDemoBlock-item">
							<dt>{{ phrase('example:') }}</dt>
							<dd>{{ $bbCode.example|nl2br }}</dd>
						</dl>
						<dl class="bbCodeDemoBlock-item">
							<dt>{{ phrase('output:') }}</dt>
							<dd>{{ $bbCode.output is not empty ? $bbCode.output : bb_code($bbCode.example, 'help', null) }}</dd>
						</dl>
					</div>
				</li>
			</xf:foreach>

		</ul>
	</div>
</div>

<xf:macro id="row_output" arg-title="!" arg-desc="!" arg-example="!" arg-anchor="!">
	<li class="bbCodeHelpItem block-row block-row--separated">
		<span class="u-anchorTarget" id="{$anchor}"></span>
		<h3 class="block-textHeader">{$title}</h3>
		<div>{$desc}</div>
		<xf:macro id="example_output" arg-bbCode="{$example}" />
	</li>
</xf:macro>

<xf:macro id="example_output" arg-bbCode="!">
	<div class="bbCodeDemoBlock">
		<dl class="bbCodeDemoBlock-item">
			<dt>{{ phrase('example:') }}</dt>
			<dd>{{ $bbCode|nl2br }}</dd>
		</dl>
		<dl class="bbCodeDemoBlock-item">
			<dt>{{ phrase('output:') }}</dt>
			<dd>{{ bb_code($bbCode, 'help', null) }}</dd>
		</dl>
	</div>
</xf:macro>]]></template>
  <template type="public" title="_help_page_cookies" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[{{ phrase('help_cookies_description', {'cookiePrefix': $xf.cookie.prefix}) }}

<h3 class="textHeading">{{ phrase('standard_cookies_we_set') }}</h3>

<xf:datalist data-xf-init="responsive-data-list">
	<xf:datarow rowtype="header">
		<xf:cell class="dataList-cell--min">{{ phrase('name') }}</xf:cell>
		<xf:cell>{{ phrase('purpose') }}</xf:cell>
	</xf:datarow>

	<xf:datarow rowclass="dataList-row--subSection dataList-row--noHover">
		<xf:cell colspan="2">{{ $xf.cookieConsent.getGroupLabel('_required') }}</xf:cell>
	</xf:datarow>

	<xf:datarow rowclass="dataList-row--noHover">
		<xf:cell colspan="2">{{ $xf.cookieConsent.getGroupDescription('_required') }}</xf:cell>
	</xf:datarow>

	<xf:foreach loop="array_keys($xf.cookieConsent.getCookiesInGroup('_required'))" value="$name">
		<xf:datarow rowclass="dataList-row--noHover">
			<xf:cell class="dataList-cell--min dataList-cell--alt">{{ $xf.cookieConsent.getCookieLabel($name) }}</xf:cell>
			<xf:cell>{{ $xf.cookieConsent.getCookieDescription($name) }}</xf:cell>
		</xf:datarow>
	</xf:foreach>

	<xf:foreach loop="$xf.cookieConsent.getGroups(false, false)" value="$group">
		<xf:datarow rowclass="dataList-row--subSection dataList-row--noHover">
			<xf:cell colspan="2">{{ $xf.cookieConsent.getGroupLabel($group) }}</xf:cell>
		</xf:datarow>

		<xf:datarow rowclass="dataList-row--noHover">
			<xf:cell colspan="2">{{ $xf.cookieConsent.getGroupDescription($group) }}</xf:cell>
		</xf:datarow>

		<xf:foreach loop="array_keys($xf.cookieConsent.getCookiesInGroup($group))" value="$name">
				<xf:datarow rowclass="dataList-row--noHover">
					<xf:cell class="dataList-cell--min dataList-cell--alt">{{ $xf.cookieConsent.getCookieLabel($name) }}</xf:cell>
					<xf:cell>{{ $xf.cookieConsent.getCookieDescription($name) }}</xf:cell>
				</xf:datarow>
		</xf:foreach>
	</xf:foreach>

	<xf:datarow rowclass="dataList-row--subSection dataList-row--noHover">
		<xf:cell colspan="2">{{ $xf.cookieConsent.getGroupLabel('_third_party') }}</xf:cell>
	</xf:datarow>

	<xf:datarow rowclass="dataList-row--noHover">
		<xf:cell colspan="2">{{ $xf.cookieConsent.getGroupDescription('_third_party') }}</xf:cell>
	</xf:datarow>

	<xf:foreach loop="$xf.cookieConsent.getThirdParties()" value="$name">
		<xf:datarow rowclass="dataList-row--noHover">
			<xf:cell class="dataList-cell--min dataList-cell--alt">{{ $xf.cookieConsent.getThirdPartyLabel($name) }}</xf:cell>
			<xf:cell>{{ $xf.cookieConsent.getThirdPartyDescription($name) }}</xf:cell>
		</xf:datarow>
	</xf:foreach>
</xf:datalist>]]></template>
  <template type="public" title="_help_page_privacy_policy" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[{{ phrase('privacy_policy_text', {'board_title': $xf.options.boardTitle, 'contactUrl': $xf.contactUrl, 'cookieHelp': link('help/cookies')}) }}

<!--[XF:captcha_after_policy_text]-->

<xf:if is="$captcha && $xf.options.includeCaptchaPrivacyPolicy">
	<xf:if contentcheck="true">
		<h2>{{ phrase('captcha_privacy_policy') }}</h2>
		<xf:contentcheck>{$captcha.getPrivacyPolicy()}</xf:contentcheck>
	</xf:if>
</xf:if>

<!--[XF:captcha_after_captcha]-->]]></template>
  <template type="public" title="_help_page_smilies" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:css src="help_page_smilies.less" />

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:datalist data-xf-init="responsive-data-list">
				<xf:datarow rowtype="header">
					<xf:cell class="dataList-cell--min">{{ phrase('image') }}</xf:cell>
					<xf:cell>{{ phrase('title') }}</xf:cell>
					<xf:cell>{{ phrase('text') }}</xf:cell>
				</xf:datarow>
				<xf:foreach loop="$smilieCategories" key="$smilieCategoryId" value="$smilieCategory">
					<xf:if is="$smilieCategoryId">
						<xf:datarow rowclass="dataList-row--subSection dataList-row--noHover">
							<xf:cell colspan="3">{$smilieCategory.title}</xf:cell>
						</xf:datarow>
					</xf:if>
					<xf:foreach loop="$smilieCategory.smilies" value="$smilie">
						<xf:datarow rowclass="dataList-row--noHover">
							<xf:cell class="dataList-cell--min dataList-cell--alt">
								{{ smilie($smilie.smilie_text_options.0) }}
							</xf:cell>
							<xf:main label="{$smilie.title}" />
							<xf:cell>
								<span>
								<xf:foreach loop="$smilie.smilie_text_options" value="$smilieText">
									<span class="smilieText">{$smilieText}</span>
								</xf:foreach>
								</span>
							</xf:cell>
						</xf:datarow>
					</xf:foreach>
				</xf:foreach>
			</xf:datalist>
		</div>
		<div class="block-footer">
			{{ phrase('smilies_provided_free_by_emojione') }}
		</div>
	</div>
</div>]]></template>
  <template type="public" title="_help_page_terms" version_id="2000632" version_string="2.0.6 Beta 2"><![CDATA[{{ phrase('terms_rules_text', {'age': $xf.options.registrationSetup.minimumAge ?: 13, 'contactUrl': $xf.contactUrl}) }}]]></template>
  <template type="public" title="_help_page_trophies" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:if is="$trophies is not empty">
	<div class="block">
		<div class="block-container">
			<ol class="block-body">
				<xf:foreach loop="$trophies" value="$trophy">
					<li class="block-row block-row--separated">
						<div class="contentRow">
							<span class="contentRow-figure contentRow-figure--text contentRow-figure--fixedSmall">{$trophy.trophy_points}</span>
							<div class="contentRow-main">
								<h2 class="contentRow-header">{$trophy.title}</h2>
								<div class="contentRow-minor">{$trophy.description|raw}</div>
							</div>
						</div>
					</li>
				</xf:foreach>
			</ol>
		</div>
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="public" title="_media_site_embed_oembed" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:js src="xf/embed.js" min="1" />

<div class="bbOembed bbMediaJustifier"
	  data-media-site-id="{$provider}"
	  data-media-key="{$id}"
	  data-xf-init="oembed"
	  data-provider="{$provider}"
	  data-id="{$id}">
	<a href="{$url}" rel="external" target="_blank"><xf:fa icon="fab fa-{$provider} fa-{$provider}-square" />
		{$url}</a>
</div>]]></template>
  <template type="public" title="_media_site_legacy_embed" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<div class="bbMediaJustifier" data-media-site-id="{$siteId}" data-media-key="{$id}">
	<div class="block-rowMessage block-rowMessage--alt">
		<span class="u-dimmed u-smaller">{{ phrase('embedded_media_from_this_media_site_is_no_longer_available') }}</span>
	</div>
</div>]]></template>
  <template type="public" title="accept_privacy_policy" version_id="2000632" version_string="2.0.6 Beta 2"><![CDATA[<xf:title>{{ phrase('privacy_policy') }}</xf:title>

<div class="blockMessage blockMessage--iconic blockMessage--important">
	{{ phrase('please_read_and_accept_our_privacy_policy_before_continuing') }} {{ phrase('last_updated:') }} <xf:date time="$xf.options.privacyPolicyLastUpdate" />.
</div>

<xf:form action="{{ link('misc/accept-privacy-policy') }}" ajax="true" class="block" data-force-flash-message="on">
	<div class="block-container">
		<div class="block-body">
			<xf:checkboxrow label="">
				<xf:option name="accept" required="required">{{ phrase('i_have_read_and_accept_your_privacy_policy', {'privacyPolicyUrl': $xf.privacyPolicyUrl}) }}</xf:option>
			</xf:checkboxrow>
		</div>
		<xf:submitrow icon="confirm" submit="{{ phrase('accept') }}" />
	</div>
</xf:form>

<xf:if is="$privacyPolicyOption.type == 'default'">
	<xf:if is="$page.advanced_mode">
		{$templateHtml|raw}
	<xf:else />
		<div class="block">
			<div class="block-container">
				<div class="block-body block-row">
					{$templateHtml|raw}
				</div>
			</div>
		</div>
	</xf:if>
</xf:if>]]></template>
  <template type="public" title="accept_terms" version_id="2000632" version_string="2.0.6 Beta 2"><![CDATA[<xf:title>{{ phrase('terms_and_rules') }}</xf:title>

<div class="blockMessage blockMessage--iconic blockMessage--important">
	{{ phrase('please_read_and_accept_our_terms_and_rules_before_continuing') }} {{ phrase('last_updated:') }} <xf:date time="$xf.options.termsLastUpdate" />.
</div>

<xf:form action="{{ link('misc/accept-terms') }}" ajax="true" class="block" data-force-flash-message="on">
	<div class="block-container">
		<div class="block-body">
			<xf:checkboxrow label="">
				<xf:option name="accept" required="required">{{ phrase('i_have_read_and_accept_your_terms_and_rules', {'tosUrl': $xf.tosUrl}) }}</xf:option>
			</xf:checkboxrow>
		</div>
		<xf:submitrow icon="confirm" submit="{{ phrase('accept') }}" />
	</div>
</xf:form>

<xf:if is="$termsOption.type == 'default'">
	<xf:if is="$page.advanced_mode">
		{$templateHtml|raw}
	<xf:else />
		<div class="block">
			<div class="block-container">
				<div class="block-body block-row">
					{$templateHtml|raw}
				</div>
			</div>
		</div>
	</xf:if>
</xf:if>]]></template>
  <template type="public" title="account_alert_toggle" version_id="2020270" version_string="2.2.2"><![CDATA[<xf:if is="!$newUnreadStatus">
	<xf:title>{{ phrase('mark_alert_read') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('mark_alert_unread') }}</xf:title>
</xf:if>

<xf:wrap template="account_wrapper" />

<xf:form action="{{ link('account/alert-toggle', null, {'alert_id': $alert.alert_id}) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<xf:if is="!$newUnreadStatus">
					{{ phrase('please_confirm_that_you_want_to_mark_this_alert_read') }}
				<xf:else />
					{{ phrase('please_confirm_that_you_want_to_mark_this_alert_unread') }}
				</xf:if>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ !$newUnreadStatus ? phrase('mark_read') : phrase('mark_unread') }}" rowtype="simple" />
	</div>

	<xf:redirect url="{$redirect}" />
	<xf:hiddenval name="unread">{{ $newUnreadStatus ? 1 : 0 }}</xf:hiddenval>
</xf:form>]]></template>
  <template type="public" title="account_alerts" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('alerts') }}</xf:title>

<xf:wrap template="account_wrapper" />

<div class="block">
	<div class="block-outer"><xf:trim>
		<div class="block-outer-opposite">
			<div class="buttonGroup">
				<xf:button href="{{ link('account/alerts/mark-read') }}"
					class="button--link" overlay="true">
					{{ phrase('mark_read') }}
				</xf:button>
			</div>
		</div>
	</xf:trim></div>

	<div class="block-container">
		<div class="block-body">
			<xf:if is="$alerts is not empty">
				<ol class="listPlain" data-xf-init="alerts-list">
				<xf:foreach loop="$alerts" value="$alert">
					<li data-alert-id="{$alert.alert_id}"
						class="alert js-alert block-row block-row--separated {{ $alert.isUnreadInUi() ? 'is-unread' : '' }}">
						<xf:macro id="alert_macros::row" arg-alert="{$alert}" />
					</li>
				</xf:foreach>
				</ol>
			<xf:elseif is="$page <= 1" />
				<div class="block-row">{{ phrase('you_do_not_have_any_recent_alerts') }}</div>
			<xf:else />
				<div class="block-row">{{ phrase('no_alerts_can_be_shown') }}</div>
			</xf:if>
		</div>
	</div>

	<xf:pagenav link="account/alerts" page="{$page}" perpage="{$perPage}" total="{$totalAlerts}"
		wrapperclass="block-outer block-outer--after" />
</div>]]></template>
  <template type="public" title="account_alerts_mark_read" version_id="2020270" version_string="2.2.2"><![CDATA[<xf:title>{{ phrase('mark_all_alerts_read') }}</xf:title>

<xf:wrap template="account_wrapper" />

<xf:form action="{{ link('account/alerts/mark-read') }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_mark_all_alerts_read') }}
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('mark_read') }}" rowtype="simple" />
	</div>

	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="public" title="account_alerts_popup" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$alerts is not empty">
	<div class="menu-scroller">
		<ol class="listPlain" data-xf-init="alerts-list">
			<xf:foreach loop="$alerts" value="$alert">
				<li class="alert js-alert menu-row menu-row--separated menu-row--clickable {{ $alert.isUnreadInUi() ? 'is-unread' : '' }}" data-alert-id="{$alert.alert_id}">
					<div class="fauxBlockLink">
						<xf:macro id="alert_macros::row" arg-alert="{$alert}" />
					</div>
				</li>
			</xf:foreach>
		</ol>
	</div>
<xf:else />
	<div class="menu-row">{{ phrase('you_have_no_new_alerts') }}</div>
</xf:if>]]></template>
  <template type="public" title="account_applications" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('applications') }}</xf:title>

<xf:wrap template="account_wrapper" />

<div class="block">
	<div class="block-container">
		<div class="block-body">

			<xf:if is="$clients is not empty">
				<div class="block-row block-row--separated">
					{{ phrase('these_applications_that_you_have_authorized_to_access_your_account') }}
				</div>

				<xf:foreach loop="$clients" value="$client">
					<li class="block-row block-row--separated">
						<div class="contentRow">
							<div class="contentRow-figure contentRow-figure--fixedSmall">
								<xf:if is="$client.image_url">
									<img src="{{ base_url($client.image_url) }}" alt="{$client.title}" />
								<xf:else />
									<xf:fa icon="fa-cog fa-3x u-muted" />
								</xf:if>
							</div>
							<div class="contentRow-main">
								<div class="contentRow-extra">
									<xf:button href="{{ link('account/applications/revoke', $client) }}" class="button--link" overlay="true">{{ phrase('revoke') }}</xf:button>
								</div>

								<h3 class="contentRow-header">
									<a href="{{ link('account/applications', $client) }}">{$client.title}</a>
								</h3>

								<div class="contentRow-snippet">{$client.description}</div>
							</div>
						</div>
					</li>
				</xf:foreach>
			<xf:else />
				<div class="block-row block-row--separated">
					{{ phrase('you_have_not_authorized_any_applications_to_access_your_account') }}
				</div>
			</xf:if>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="account_applications_revoke" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('revoke_application') }}</xf:title>

<xf:form action="{{ link('account/applications/revoke', $client) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_revoke_this_application') }}
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('revoke_access') }}" rowtype="simple" />
	</div>
</xf:form>]]></template>
  <template type="public" title="account_applications_view" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('connected_application:') }} {{ $client.title }}</xf:title>

<xf:wrap template="account_wrapper" />

<xf:pageaction>
	<xf:button href="{{ link('account/applications/revoke', $client) }}" class="button--link" overlay="true">{{ phrase('revoke') }}</xf:button>
</xf:pageaction>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<h3 class="block-header">
				{$client.title}
			</h3>
		</div>

		<h3 class="block-textHeader">{{ phrase('permissions') }}</h3>
		<div class="block-body" dir="ltr">
			<ul>
				<xf:foreach loop="$scopes" value="$scope">
					<li>{{ $scope.getDescription() }}</li>
				</xf:foreach>
			</ul>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="account_avatar" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:title>{{ phrase('avatar') }}</xf:title>

<xf:css src="account_avatar.less" />
<xf:js src="xf/crop_box.js, xf/avatar.js" min="1" />

<xf:wrap template="account_wrapper" />

<xf:form action="{{ link('account/avatar') }}" upload="true" ajax="true" class="block" data-xf-init="avatar-upload">
	<div class="block-container">
		<ul class="block-body">
			<li class="block-row block-row--separated avatarControl">
				<div class="avatarControl-preview">
					<div class="avatarCropper" style="width: {$maxSize}px; height: {$maxSize}px;">
						<xf:avatar user="$xf.visitor" size="o"
							href=""
							style="{$maxDimension}: {$maxSize}px; left: -{$x}px; top: -{$y}px;"
							data-x="{$x}" data-y="{$y}" data-size="{$maxSize}"
							class="js-avatar js-avatarCropper"
							innerclass="js-croppedAvatar"
							forcetype="custom"
							data-xf-init="avatar-cropper" />
						<xf:hiddenval name="avatar_crop_x" class="js-avatarX">{$x}</xf:hiddenval>
						<xf:hiddenval name="avatar_crop_y" class="js-avatarY">{$y}</xf:hiddenval>
					</div>
				</div>
				<div class="avatarControl-inputs">
					<xf:radio name="use_custom" id="useCustom">
						<xf:option value="1" selected="!{$xf.visitor.gravatar}"
							label="{{ phrase('use_custom_avatar') }}"
							hint="{{ phrase('drag_this_image_to_crop_it_then_click_update_avatar_to_confirm') }}">
							<xf:dependent>
								<label>{{ phrase('upload_new_custom_avatar:') }}</label>
								<xf:upload name="upload" class="js-uploadAvatar" accept=".gif,.jpeg,.jpg,.jpe,.png,.webp" />
								<dfn class="inputChoices-explain">
									{{ phrase('it_is_recommended_that_you_use_image_that_is_at_least_x_pixels', {
									'width': 400,
									'height': 400
									}) }}
								</dfn>
							</xf:dependent>
						</xf:option>
					</xf:radio>
				</div>
			</li>
			<xf:if is="$xf.options.gravatarEnable">
				<li class="block-row block-row--separated avatarControl">
					<div class="avatarControl-preview">
						<span class="avatar avatar--m">
							<img src="{{ gravatar_url($xf.visitor, 'm') }}" class="js-gravatarPreview" />
						</span>
					</div>
					<div class="avatarControl-inputs">
						<xf:radio name="use_custom">
							<xf:option value="0" selected="{$xf.visitor.gravatar}"
								label="{{ phrase('use_gravatar') }}">
								<xf:dependent>
									<div class="inputGroup">
										<xf:textbox name="gravatar" value="{{ $xf.visitor.gravatar ?: $xf.visitor.email }}"
											type="email" autocomplete="email"
											maxlength="{{ max_length($xf.visitor, 'gravatar') }}"
											class="js-gravatar" />
										<div class="inputGroup-text u-jsOnly">
											<xf:button type="submit" name="test_gravatar" value="1">
												{{ phrase('test') }}
											</xf:button>
										</div>
									</div>
									<dfn class="inputChoices-explain">
										{{ phrase('enter_email_address_of_gravatar_you_want_to_use') }}
										<div><a href="https://gravatar.com" rel="nofollow" target="_blank">{{ phrase('whats_gravatar') }}</a></div>
									</dfn>
								</xf:dependent>
							</xf:option>
						</xf:radio>
					</div>
				</li>
			</xf:if>
		</ul>
		<xf:submitrow submit="{{ phrase('okay') }}" rowtype="simple" class="js-overlayClose">
			<xf:html>
				<xf:button type="submit" name="delete_avatar" value="1" class="js-deleteAvatar" icon="delete" />
			</xf:html>
		</xf:submitrow>
	</div>
</xf:form>]]></template>
  <template type="public" title="account_avatar.less" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[.avatarControl
{
}

.avatarControl-preview
{
	display: block;
	float: left;
	position: relative;

	img
	{
		display: inline-block;
		position: relative;
	}
}

.avatarControl-inputs
{
	margin-left: 110px;
}

.avatarCropper
{
	display: inline-block;
	vertical-align: bottom;
	direction: ltr;

	label
	{
		display: block;
		overflow: hidden;
		position: relative;

		img
		{
			cursor: move;
		}
	}

	.avatar--o
	{
		.m-avatarSize(@avatar-m);
	}
}

@media (max-width: @xf-responsiveNarrow)
{
	.avatarControl-preview
	{
		display: block;
		float: none;
		text-align: center;
	}

	.avatarControl-inputs
	{
		display: block;
		margin-left: 0;
	}
}

// classes from the cropping JS
.cropFrame
{
	overflow: hidden;
	position: relative;
}

.cropImage
{
	position: absolute;
	top: 0;
	left: 0;
	cursor: move;
	max-width: none;
}

.cropControls
{
	display: none;
}]]></template>
  <template type="public" title="account_banner" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('profile_banner') }}</xf:title>

<xf:css src="account_banner.less" />
<xf:js src="xf/profile_banner.js" />

<xf:wrap template="account_wrapper" />

<xf:form action="{{ link('account/banner') }}" upload="true" ajax="true" class="block" data-xf-init="banner-upload">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="noPadding" rowclass="profileBannerContainer {{ $xf.visitor.Profile.banner_date ? 'profileBannerContainer--withBanner' : '' }}">
				<xf:profilebanner user="$xf.visitor" size="l" data-xf-init="banner-positioner" class="js-banner">
					<xf:hiddenval name="banner_position_y" class="js-bannerPosY">{$xf.visitor.Profile.banner_position_y}</xf:hiddenval>
				</xf:profilebanner>
				<div class="profileBannerContainer-explain">
					{{ phrase('you_can_drag_image_to_change_focal_point_of_banner_explain') }}
				</div>
			</xf:inforow>
			<xf:uploadrow label="{{ phrase('upload_new_profile_banner') }}" name="upload" class="js-uploadBanner" accept=".gif,.jpeg,.jpg,.jpe,.png,.webp" />
		</div>
		<xf:submitrow submit="{{ phrase('okay') }}" rowtype="simple" class="js-overlayClose">
			<xf:html>
				<xf:button type="submit" name="delete_banner" value="1" class="js-deleteBanner is-hidden" icon="delete" />
			</xf:html>
		</xf:submitrow>
	</div>
</xf:form>]]></template>
  <template type="public" title="account_banner.less" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[.profileBannerContainer
{
	display: none;

	+ .formRow
	{
		border-width: 0;
	}

	&.profileBannerContainer--withBanner
	{
		display: block;

		+ .formRow
		{
			border-width: 1px;
		}

		.profileBannerContainer-explain
		{
			margin: @xf-paddingMedium;
			font-style: normal;
			.xf-formExplain();
			.m-textColoredLinks();
		}
	}

	.memberProfileBanner
	{
		height: 200px;
	}
}]]></template>
  <template type="public" title="account_bookmarks" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('bookmarks') }}</xf:title>

<xf:wrap template="account_wrapper" />

<div class="block">
	<div class="block-container">
		<div class="block-filterBar">
			<div class="filterBar">
				<xf:if contentcheck="true">
					<ul class="filterBar-filters">
						<xf:contentcheck>
							<xf:if is="$label">
								<li><a href="{{ link('account/bookmarks') }}"
									class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
									<span class="filterBar-filterToggle-label">{{ phrase('label:') }}</span>
									{$label}</a></li>
							</xf:if>
						</xf:contentcheck>
					</ul>
				</xf:if>

				<a class="filterBar-menuTrigger" data-xf-click="menu" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{{ phrase('filters') }}</a>
				<div class="menu menu--wide" data-menu="menu" aria-hidden="true">
					<div class="menu-content">
						<h4 class="menu-header">{{ phrase('filter_by_label:') }}</h4>
						<xf:form action="{{ link('account/bookmarks') }}">
							<div class="menu-row menu-row--separated">
								<xf:macro id="bookmark_macros::filter"
									arg-name="label"
									arg-label="{$label}"
									arg-allLabels="{$allLabels}"
									arg-placeholder="" />
							</div>
							<div class="menu-footer">
								<span class="menu-footer-controls">
									<xf:button type="submit" class="button--primary">{{ phrase('filter') }}</xf:button>
								</span>
							</div>
						</xf:form>
					</div>
				</div>
			</div>
		</div>
		<div class="block-body">
			<xf:if is="$bookmarks is not empty">
				<ol class="listPlain">
					<xf:foreach loop="$bookmarks" value="$bookmark">
						<li class="block-row block-row--separated">
							<xf:macro id="bookmark_macros::row" arg-bookmark="{$bookmark}" arg-content="{$bookmark.Content}" />
						</li>
					</xf:foreach>
				</ol>
			<xf:else />
				<xf:if is="$label">
					<div class="block-row">{{ phrase('no_items_matched_your_filter') }}</div>
				<xf:else />
					<div class="block-row">{{ phrase('you_have_not_added_any_bookmarks_yet') }}</div>
				</xf:if>
			</xf:if>
		</div>
	</div>

	<xf:pagenav link="account/bookmarks" params="{{ {'label': $label, 'difference': $paginationDifference} }}" page="{$page}" perpage="{$perPage}" total="{$totalBookmarks}"
		wrapperclass="block-outer block-outer--after" />
</div>]]></template>
  <template type="public" title="account_bookmarks_popup" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<div class="menu-row menu-row--alt menu-row--close">
	<div data-xf-init="bookmark-label-filter" data-target=".js-bookmarksMenuBody" data-show-all-link-target=".js-bookmarkShowAllLink">
		<xf:macro id="bookmark_macros::filter"
			arg-label="{$label}"
			arg-allLabels="{$allLabels}" />
	</div>
</div>
<div class="menu-scroller">
	<ol class="listPlain">
		<xf:if is="$bookmarks is not empty">
			<xf:foreach loop="$bookmarks" value="$bookmark">
				<li class="menu-row menu-row--close menu-row--separated">
					<xf:macro id="bookmark_macros::row"
						arg-bookmark="{$bookmark}"
						arg-content="{$bookmark.Content}" />
				</li>
			</xf:foreach>
			<xf:else />
			<xf:if is="$label">
				<li class="menu-row">{{ phrase('no_items_matched_your_filter') }}</li>
			<xf:else />
				<li class="menu-row">{{ phrase('you_have_not_added_any_bookmarks_yet') }}</li>
			</xf:if>
		</xf:if>
	</ol>
</div>]]></template>
  <template type="public" title="account_confirm_resend" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('resend_account_confirmation') }}</xf:title>

<xf:form action="{$confirmUrl}" class="block" ajax="true" data-redirect="off" data-reset-complete="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('sure_you_want_to_resend_account_confirmation_email', {'email': $user.email|email_display}) }}
			</xf:inforow>

			<xf:if is="$needsCaptcha">
				<xf:captcharow label="{{ phrase('verification') }}" force="true" context="xf_account_confirm_resend" />
			</xf:if>
		</div>
		<xf:submitrow submit="{{ phrase('resend_email') }}" rowtype="simple" />
	</div>
</xf:form>]]></template>
  <template type="public" title="account_connected" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('connected_accounts') }}</xf:title>

<xf:wrap template="account_wrapper" />

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow>{{ phrase('connected_accounts_allow_you_to_log_in_to_this_site_more_easily') }}</xf:inforow>
			<xf:foreach loop="$providers" value="$provider">
				<xf:if is="{$provider.isAssociated($xf.visitor)}">
					<xf:macro id="connected_account_macros::disassociate" arg-provider="{$provider}" arg-hasPassword="{$hasPassword}" />
				<xf:else />
					<xf:macro id="connected_account_macros::associate" arg-provider="{$provider}" />
				</xf:if>
			<xf:else />
				<div class="block-row">{{ phrase('there_currently_no_usable_external_account_providers') }}</div>
			</xf:foreach>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="account_connected_associate" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('continue_with_x', {'provider': $provider.title}) }}</xf:title>

<xf:wrap template="account_wrapper">
	<xf:set var="$pageSelected" value="connected_account" />
</xf:wrap>

<xf:form action="{{ link('register/connected-accounts/associate', $provider) }}" ajax="true" class="block">

	<div class="block-container">
		<div class="block-body">
			<xf:if is="$passwordEmailed">
				<xf:inforow>
					<div class="blockMessage blockMessage--important blockMessage--iconic">{{ phrase('to_confirm_your_identity_we_have_sent_email_to_x', {'email': $user.email|email_display}) }}</div>
				</xf:inforow>
			</xf:if>

			<xf:formrow label="{{ phrase('associate_with') }}">
				{$xf.visitor.username}
			</xf:formrow>

			<xf:passwordboxrow name="password"
				label="{{ phrase('password') }}"
				explain="{{ phrase('password_of_x_account_wish_to_associate_with', {'board_title': $xf.options.boardTitle}) }}" />
		</div>
		<xf:submitrow submit="{{ phrase('associate') }}" />
	</div>
	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="public" title="account_details" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('account_details') }}</xf:title>

<xf:wrap template="account_wrapper" />

<xf:if is="!$xf.visitor.canEditProfile()">
	<div class="blockMessage blockMessage--important">{{ phrase('your_full_account_details_not_currently_editable') }}</div>
</xf:if>

<xf:if is="$pendingUsernameChange">
	<div class="blockMessage blockMessage--important">
		{{ phrase('pending_username_change_message', {'username': $pendingUsernameChange.new_username}) }}
	</div>
</xf:if>

<xf:form action="{{ link('account/account-details') }}" ajax="true" class="block" data-force-flash-message="true">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow rowtype="{{ $xf.visitor.canChangeUsername() ? 'button' : '' }}"
				label="{{ phrase('user_name') }}">

				{$xf.visitor.username}
				<xf:if is="$xf.visitor.canChangeUsername()">
					<xf:button href="{{ link('account/username') }}" class="button--link" overlay="true">{{ phrase('change') }}</xf:button>
				</xf:if>

				<xf:if contentcheck="true">
					<div class="formRow-explain">
						<xf:contentcheck>
							<xf:if is="$xf.visitor.username_date">
								{{ phrase('your_username_was_last_changed_on_x', {'date': date_time($xf.visitor.username_date)}) }}
							</xf:if>
							<xf:if is="$xf.visitor.next_allowed_username_change">
								{{ phrase('you_may_next_change_your_username_on_or_after_x', {'date': date($xf.visitor.next_allowed_username_change)}) }}
							</xf:if>
						</xf:contentcheck>
					</div>
				</xf:if>
			</xf:formrow>

			<xf:formrow rowtype="{{ $canChangeEmail ? 'button' : '' }}"
				label="{{ phrase('email') }}">

				<xf:if is="$xf.visitor.email">
					{$xf.visitor.email|email_display}
				<xf:else />
					<i>{{ phrase('none') }}</i>
				</xf:if>
				<xf:if is="$canChangeEmail">
					<xf:button href="{{ link('account/email') }}" class="button--link" overlay="true">{{ phrase('change') }}</xf:button>
				</xf:if>
			</xf:formrow>

			<xf:macro id="helper_account::email_options_row" arg-showExplain="{{ true }}" />

			<xf:if is="$xf.visitor.canUploadAvatar()">
				<xf:formrow
					label="{{ phrase('avatar') }}"
					explain="{{ phrase('click_image_to_change_your_avatar') }}">

					<xf:avatar user="{$xf.visitor}" size="m" href="{{ link('account/avatar') }}" data-xf-click="overlay" />
				</xf:formrow>
			</xf:if>

			<xf:if is="$xf.visitor.canUploadProfileBanner()">
				<xf:formrow
					label="{{ phrase('profile_banner') }}">

					<xf:profilebanner user="$xf.visitor" size="l" class="memberProfileBanner--small" href="{{ link('account/banner') }}" overlay="true" hideempty="true" />
					<xf:button href="{{ link('account/banner') }}" data-xf-click="overlay" class="button--link">{{ phrase('edit_profile_banner') }}</xf:button>
				</xf:formrow>
			</xf:if>

			<xf:if is="$xf.visitor.canEditProfile()">
				<xf:if is="{{ $xf.visitor.hasPermission('general', 'editCustomTitle') }}">
					<xf:textboxrow name="user[custom_title]" value="{$xf.visitor}" column="custom_title_"
						label="{{ phrase('custom_title') }}"
						explain="{{ phrase('if_specified_replace_title_that_displays_under_name_in_posts') }}" />
				</xf:if>

				<hr class="formRowSep" />

				<xf:if is="{{ $xf.visitor.Profile.dob_day && $xf.visitor.Profile.dob_month && $xf.visitor.Profile.dob_year }}">
					<xf:formrow
						label="{{ phrase('date_of_birth') }}"
						explain="{{ phrase('once_your_birthday_has_been_entered_it_cannot_be_changed') }}">

						<xf:set var="$birthday" value="{{ $xf.visitor.Profile.getBirthday(true) }}" />
						{{ date($birthday.timeStamp, $birthday.format) }}
					</xf:formrow>
				<xf:else />
					<xf:macro id="helper_user_dob_edit::dob_edit" arg-dobData="{$xf.visitor.Profile}" />
				</xf:if>

				<xf:macro id="helper_account::dob_privacy_row" />

				<hr class="formRowSep" />

				<xf:textboxrow name="profile[location]" value="{$xf.visitor.Profile}" column="location_"
					hint="{{ $xf.options.registrationSetup.requireLocation ? phrase('required') : '' }}"
					label="{{ phrase('location') }}" />
				<xf:textboxrow name="profile[website]" value="{$xf.visitor.Profile}" column="website_"
					maxlength="{{ max_length($xf.visitor.Profile, 'website') }}"
					label="{{ phrase('website') }}" />

				<xf:macro id="custom_fields_macros::custom_fields_edit" arg-type="users" arg-group="personal" arg-set="{$xf.visitor.Profile.custom_fields}" />

				<hr class="formRowSep" />

				<xf:editorrow name="about" value="{$xf.visitor.Profile}" column="about_"
					previewable="0"
					label="{{ phrase('about_you') }}"/>
			</xf:if>
		</div>
		<xf:if is="$xf.visitor.canEditProfile()">
			<xf:if contentcheck="true">
				<h2 class="block-formSectionHeader"><span class="block-formSectionHeader-aligner">{{ phrase('identities') }}</span></h2>
				<div class="block-body">
					<xf:contentcheck>
						<xf:macro id="custom_fields_macros::custom_fields_edit" arg-type="users" arg-group="contact" arg-set="{$xf.visitor.Profile.custom_fields}" />
					</xf:contentcheck>
				</div>
			</xf:if>
			<xf:submitrow icon="save" sticky="true" />
		</xf:if>
	</div>
</xf:form>]]></template>
  <template type="public" title="account_email" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('change_email') }}</xf:title>

<xf:wrap template="account_wrapper" />

<xf:form action="{{ link('account/email') }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$hasPassword">

				<xf:textboxrow name="email" value="{$xf.visitor}" dir="ltr" autofocus="autofocus"
					label="{{ phrase('email') }}"
					explain="{{ phrase('if_you_change_your_email_you_may_need_to_reconfirm_your_account') }}" />

				<xf:passwordboxrow name="password"
					label="{{ phrase('current_password') }}" />

			<xf:else />

				<xf:formrow
					label="{{ phrase('email') }}"
					explain="{{ phrase('your_email_cannot_be_changed_while_your_account_does_not_have_password') }}">

					{$xf.visitor.email|email_display}
				</xf:formrow>

			</xf:if>
		</div>

		<xf:submitrow icon="save" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="public" title="account_following" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('following') }}</xf:title>

<xf:wrap template="account_wrapper" />

<div class="block">
	<div class="block-container">
		<ol class="block-body">
			<xf:foreach loop="$following" value="$user">
				<li class="block-row block-row--separated">
					<xf:set var="$switchLink">
						<xf:if is="$xf.visitor.canFollowUser($user)">
							<xf:button href="{{ link('members/follow', $user) }}"
								class="button--link"
								data-xf-click="switch"
								data-sk-follow="{{ phrase('follow') }}"
								data-sk-unfollow="{{ phrase('unfollow') }}">
								{{ $xf.visitor.isFollowing($user) ? phrase('unfollow') : phrase('follow') }}
							</xf:button>
						</xf:if>
					</xf:set>
					<xf:macro id="member_list_macros::item"
						arg-user="{$user}"
						arg-extraData="{$switchLink}" />
				</li>
			<xf:else />
				<div class="block-row">{{ phrase('you_not_currently_following_any_members') }}</div>
			</xf:foreach>
		</ol>
	</div>
</div>]]></template>
  <template type="public" title="account_ignored" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('ignoring') }}</xf:title>

<xf:wrap template="account_wrapper" />

<div class="block">
	<div class="block-container">
		<ol class="block-body">
			<xf:foreach loop="$ignoring" value="$user">
				<li class="block-row block-row--separated">
					<xf:set var="$switchLink">
						<xf:if is="$xf.visitor.isIgnoring($user) OR $xf.visitor.canIgnoreUser($user)">
							<xf:button href="{{ link('members/ignore', $user) }}"
								class="button--link"
								data-xf-click="switch"
								data-sk-ignore="{{ phrase('ignore') }}"
								data-sk-unignore="{{ phrase('unignore') }}">
								{{ $xf.visitor.isIgnoring($user) ? phrase('unignore') : phrase('ignore') }}
							</xf:button>
						</xf:if>
					</xf:set>
					<xf:macro id="member_list_macros::item"
						arg-user="{$user}"
						arg-extraData="{$switchLink}" />
				</li>
			<xf:else />
				<div class="block-row">{{ phrase('you_not_currently_ignoring_any_members') }}</div>
			</xf:foreach>
		</ol>
	</div>
</div>]]></template>
  <template type="public" title="account_passkey_add" version_id="2030033" version_string="2.3.0 Beta 3"><![CDATA[<xf:title>{{ phrase('add_passkey') }}</xf:title>

<xf:js src="xf/webauthn.js" min="1" />

<xf:form action="{{ link('account/passkey/add') }}" ajax="true" class="block"
	data-xf-init="webauthn"
	data-existing-credentials="{$existingCredentials|json}"
	data-rp-name="{$xf.options.boardTitle}"
	data-user-id="{$xf.visitor.secret_key}"
	data-user-name="{$xf.visitor.email}"
	data-user-display-name="{$xf.visitor.username}"
	data-verifying="{{ phrase('verifying...') }}">

	<div class="block-container">
		<div class="block-body">
			<xf:inforow>
				{{ phrase('if_you_have_not_been_prompted_automatically_to_create_passkey_for_this') }}
			</xf:inforow>
			<xf:formrow label="{{ phrase('register_this_passkey') }}">
				<xf:button class="button--link js-webauthnStart">{{ phrase('add') }}</xf:button>
			</xf:formrow>

			<xf:textboxrow name="passkey_name" label="{{ phrase('name_this_passkey') }}" hint="{{ phrase('optional') }}" />
		</div>
		
		<xf:hiddenval name="webauthn_payload" />
		<xf:hiddenval name="webauthn_challenge" value="{{ $newPasskey ? $newPasskey.getChallenge() : '' }}" />

		<xf:submitrow icon="save" />
	</div>
</xf:form>]]></template>
  <template type="public" title="account_passkey_edit" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:title>{{ phrase('edit_passkey') }}</xf:title>

<xf:form action="{{ link('account/passkeys/edit', $passkey) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="name" value="{$passkey.name}" label="{{ phrase('name') }}" required="true" />
		</div>

		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="public" title="account_preferences" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:title>{{ phrase('preferences') }}</xf:title>

<xf:wrap template="account_wrapper" />

<xf:form action="{{ link('account/preferences') }}" ajax="true" class="block" data-force-flash-message="true">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$xf.visitor.canChangeStyle()">

				<xf:selectrow name="user[style_id]" value="{$xf.visitor}"
					label="{{ phrase('style') }}"
					data-xf-init="style-variation-input">

					<xf:option value="0">{{ phrase('use_default_style:') }} {$defaultStyle.title}</xf:option>
					<xf:foreach loop="$styles" value="$style">
						<xf:option value="{$style.style_id}">{$style.title}{{ !$style.user_selectable ? ' *' : '' }}</xf:option>
					</xf:foreach>
				</xf:selectrow>
			<xf:else />
				<xf:hiddenval name="user[style_id]">{$xf.visitor.style_id}</xf:hiddenval>
			</xf:if>

			<div class="js-variationContainer">
				<xf:macro name="style_variation_macros::variation_input"
					arg-style="{$xf.style}" />
			</div>

			<xf:if is="$xf.visitor.canChangeLanguage()">
				<xf:selectrow name="user[language_id]" value="{$xf.visitor}"
					label="{{ phrase('language') }}">

					<xf:foreach loop="$languages" value="$language">
						<xf:option value="{$language.language_id}">{$language.title}{{ !$language.user_selectable ? ' *' : '' }}</xf:option>
					</xf:foreach>
				</xf:selectrow>
			<xf:else />
				<xf:hiddenval name="user[language_id]">{{ $xf.visitor.language_id ?: $xf.options.defaultLanguageId }}</xf:hiddenval>
			</xf:if>

			<xf:selectrow name="user[timezone]" value="{$xf.visitor}"
				label="{{ phrase('time_zone') }}">

				<xf:options source="$timeZones" />
			</xf:selectrow>

			<xf:macro id="helper_account::email_options_row" arg-showConversationOption="{{ true }}" />

			<xf:checkboxrow label="{{ phrase('content_options') }}">
				<xf:option value="watch_no_email" name="option[creation_watch_state]" checked="{{ $xf.visitor.Option.creation_watch_state ? true : false  }}"
					label="{{ phrase('automatically_watch_content_you_create...') }}">
					<xf:checkbox>
						<xf:option value="watch_email" name="option[creation_watch_state]" checked="{{ $xf.visitor.Option.creation_watch_state == 'watch_email' }}"
							label="{{ phrase('and_receive_email_notifications') }}" />
					</xf:checkbox>
				</xf:option>
				<xf:option value="watch_no_email" name="option[interaction_watch_state]" checked="{{ $xf.visitor.Option.interaction_watch_state ? true : false  }}"
					label="{{ phrase('automatically_watch_content_you_interact_with...') }}">
					<xf:checkbox>
						<xf:option value="watch_email" name="option[interaction_watch_state]" checked="{{ $xf.visitor.Option.interaction_watch_state == 'watch_email' }}"
							label="{{ phrase('and_receive_email_notifications') }}" />
					</xf:checkbox>
				</xf:option>
				<xf:option name="option[content_show_signature]" checked="{$xf.visitor.Option.content_show_signature}"
					label="{{ phrase('show_peoples_signatures_with_their_messages') }}" />
			</xf:checkboxrow>

			<xf:macro id="helper_account::activity_privacy_row" />

			<xf:if is="$xf.visitor.is_moderator">
				<xf:checkboxrow label="{{ phrase('moderator_options') }}">
					<xf:option name="moderator[notify_report]" checked="{$xf.visitor.Moderator.notify_report}"
						label="{{ phrase('receive_email_when_content_is_reported') }}" />
					<xf:option name="moderator[notify_approval]" checked="{$xf.visitor.Moderator.notify_approval}"
						label="{{ phrase('receive_email_when_content_is_pending_approval') }}" />
				</xf:checkboxrow>
			</xf:if>

			<xf:macro id="custom_fields_macros::custom_fields_edit" arg-type="users" arg-group="preferences" arg-set="{$xf.visitor.Profile.custom_fields}" />
			
			<xf:if is="$xf.options.enableNotices && (count($xf.session.dismissedNotices) > 0)">
				<hr class="formRowSep" />

				<xf:checkboxrow>
					<xf:option name="restore_notices"
						label="{{ phrase('restore_dismissed_notices') }}"
						hint="{{ phrase('restore_dismissed_notices_hint') }}" />
				</xf:checkboxrow>
			</xf:if>

			<xf:if is="$xf.visitor.canUsePushNotifications()">
				<xf:formrow label="{{ phrase('push_notifications') }}" rowtype="button" explain="{{ phrase('enable_push_explain') }}">
					<xf:button class="is-disabled" data-xf-init="push-toggle">
						{{ phrase('push_checking_device_capabilities...') }}
					</xf:button>
				</xf:formrow>

				<xf:checkboxrow label="">
					<xf:option name="option[push_on_conversation]" checked="{$xf.visitor.Option.push_on_conversation}"
						label="{{ phrase('receive_push_notification_when_new_direct_message_is_received') }}" />
				</xf:checkboxrow>

				<xf:js>
					XF.extendObject(true, XF.config, {
						skipPushNotificationSubscription: true,
						skipPushNotificationCta: true
					});

					XF.extendObject(XF.phrases, {
						push_enable_label: "{{ phrase('push_enable_label')|escape('js') }}",
						push_disable_label: "{{ phrase('push_disable_label')|escape('js') }}",
						push_not_supported_label: "{{ phrase('push_not_supported_label')|escape('js') }}",
						push_blocked_label: "{{ phrase('push_blocked_label')|escape('js') }}"
					});
				</xf:js>
			<xf:else />
				<xf:hiddenval name="option[push_on_conversation]">{$xf.visitor.Option.push_on_conversation}</xf:hiddenval>
			</xf:if>
		</div>

		<xf:if is="$alertOptOuts is not empty">
			<xf:css src="notification_opt_out.less" />
			<h2 class="block-formSectionHeader"><span class="block-formSectionHeader-aligner">{{ phrase('receive_notification_when_someone...') }}</span></h2>
			<div class="block-body">
				<xf:set var="$canPush" value="{{ $xf.visitor.canUsePushNotifications() }}" />
				<xf:foreach loop="$alertOptOuts" key="$contentType" value="$options">
					<xf:foreach loop="$options" key="$action" value="$label">
						<xf:formrow label="{$label}" data-content-type="{$contentType}" data-action="{$action}">
							<ul class="notificationChoices">
								<li class="notificationChoices-choice notificationChoices-choice--alert">
									<xf:checkbox standalone="true">
										<xf:option name="alert[{$contentType}_{$action}]"
											data-xf-init="{{ $canPush ? 'disabler' : '' }}" data-container="< .notificationChoices | .notificationChoices-choice--push"
											checked="{{ $xf.visitor.Option.doesReceiveAlert($contentType, $action) }}"
											label="{{ phrase('alert') }}" />
									</xf:checkbox>
								</li>
								<xf:if is="$canPush">
									<li class="notificationChoices-choice notificationChoices-choice--push">
										<xf:checkbox standalone="true">
											<xf:option name="push[{$contentType}_{$action}]"
												checked="{{ $xf.visitor.Option.doesReceivePush($contentType, $action) }}"
												label="{{ phrase('push') }}" />
										</xf:checkbox>
										<xf:hiddenval name="push_shown[{$contentType}_{$action}]">1</xf:hiddenval>
									</li>
								</xf:if>
							</ul>
						</xf:formrow>
					</xf:foreach>
					<hr class="formRowSep" />
				</xf:foreach>

			</div>
		</xf:if>

		<xf:submitrow icon="save" sticky="true" />
	</div>
</xf:form>
]]></template>
  <template type="public" title="account_privacy" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('privacy') }}</xf:title>

<xf:wrap template="account_wrapper" />

<xf:form action="{{ link('account/privacy') }}" ajax="true" class="block" data-force-flash-message="true">
	<div class="block-container">
		<div class="block-body">
			<xf:macro id="helper_account::activity_privacy_row" />
			<xf:macro id="helper_account::dob_privacy_row" />
			<xf:macro id="helper_account::email_options_row" arg-showExplain="{{ true }}" />

			<xf:formrow rowtype="inputLabelPair"
				label="{{ phrase('allow_users_to') }}">

				<xf:macro id="privacy_option"
					arg-user="{$xf.visitor}"
					arg-name="allow_view_profile"
					arg-label="{{ phrase('view_your_details_on_your_profile_page') }}" />

				<xf:if is="$xf.visitor.canViewProfilePosts()">
					<xf:macro id="privacy_option"
						arg-user="{$xf.visitor}"
						arg-name="allow_post_profile"
						arg-label="{{ phrase('post_messages_on_your_profile_page') }}"
						arg-hideEveryone="{{true}}" />
				</xf:if>

				<xf:if is="$xf.options.enableNewsFeed">
					<xf:macro id="privacy_option"
						arg-user="{$xf.visitor}"
						arg-name="allow_receive_news_feed"
						arg-label="{{ phrase('receive_your_news_feed') }}" />
				</xf:if>

				<xf:macro id="privacy_option"
					arg-user="{$xf.visitor}"
					arg-name="allow_send_personal_conversation"
					arg-label="{{ phrase('send_direct_message_to_you') }}"
					arg-hideEveryone="{{true}}" />

				<xf:macro id="privacy_option"
					arg-user="{$xf.visitor}"
					arg-name="allow_view_identities"
					arg-label="{{ phrase('view_your_identities') }}" />
			</xf:formrow>
		</div>
		<xf:submitrow icon="save" sticky="true" />
	</div>
</xf:form>

<xf:macro id="privacy_option" arg-user="!" arg-name="!" arg-label="!" arg-hideEveryone="{{ false }}" arg-hideFollowed="{{ false }}">
	<xf:set var="$controlId" value="{{ unique_id() }}" />
	<dl class="inputLabelPair">
		<dt><label for="{$controlId}">{$label}</label></dt>
		<dd>
			<xf:select id="{$controlId}" name="privacy[{$name}]" value="{$user.Privacy.{$name}}">
				<xf:if is="!$hideEveryone">
					<xf:option value="everyone">{{ phrase('all_visitors') }}</xf:option>
				</xf:if>
				<xf:option value="members">{{ phrase('members_only') }}</xf:option>
				<xf:if is="!$hideFollowed">
					<xf:option value="followed">{{ phrase('people_you_follow') }}</xf:option>
				</xf:if>
				<xf:option value="none">{{ phrase('nobody') }}</xf:option>
			</xf:select>
		</dd>
	</dl>
</xf:macro>]]></template>
  <template type="public" title="account_reactions" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('reactions_received') }}</xf:title>

<xf:wrap template="account_wrapper" />

<xf:if is="count($reactions) > 0 || $page > 1 || $hasNext">
	<xf:if is="!$listOnly">
		<div class="block">
			<div class="block-container">
				<h3 class="tabs hScroller block-minorTabHeader" data-xf-init="tabs h-scroller"
					data-panes="< .block-container | .js-reactionTabPanes" data-state="replace" role="tablist">
					<span class="hScroller-scroll">
						<xf:foreach loop="$tabSummary" key="$reactionId" value="$total">
							<a class="tabs-tab tabs-tab--reaction{$reactionId}{{ $reactionId == $activeReactionId ? ' is-active' : '' }}" role="tab" id="{{ $reactionId ? 'reaction-' . $reactionId : '' }}">
								<xf:if is="$reactionId">
									<xf:reaction id="{$reactionId}" small="true" showtitle="true" appendtitle="{$total|number|parens}" />
								<xf:else />
									<bdi>{{ phrase('all') }}</bdi> {$total|number|parens}
								</xf:if>
							</a>
						</xf:foreach>
					</span>
				</h3>
				<ul class="tabPanes js-reactionTabPanes">
					<xf:foreach loop="$tabSummary" key="$reactionId" value="$total">
						<xf:if is="$reactionId == $activeReactionId">
							<li class="{{ $reactionId == $activeReactionId ? 'is-active' : '' }}" role="tabpanel" id="reaction-{$reactionId}">
								<xf:macro id="reactions_list"
									arg-reactions="{$reactions}"
									arg-hasNext="{$hasNext}"
									arg-page="{$page}"
									arg-reactionId="{$reactionId|default(0)}" />
							</li>
						<xf:else />
							<li data-href="{{ link('account/reactions', null, {'reaction_id': $reactionId, 'list_only': 1}) }}" class="{{ $reactionId == $activeReactionId ? 'is-active' : '' }}" role="tabpanel" id="reaction-{$reactionId}">
								<div class="blockMessage">{{ phrase('loading...') }}</div>
							</li>
						</xf:if>
					</xf:foreach>
				</ul>
			</div>
		</div>
	<xf:else />
		<xf:macro id="reactions_list"
			arg-reactions="{$reactions}"
			arg-hasNext="{$hasNext}"
			arg-page="{$page}"
			arg-reactionId="{$activeReactionId|default(0)}" />
	</xf:if>
<xf:else />
	<div class="blockMessage">{{ phrase('unfortunately_none_of_your_content_has_received_any_reactions_yet') }}</div>
</xf:if>

<xf:macro id="reactions_list"
	arg-reactions="!"
	arg-hasNext="!"
	arg-page="!"
	arg-reactionId="0">
	<ul class="block-body js-reactionList-{$reactionId}">
		<xf:foreach loop="$reactions" value="$reaction">
			<li class="block-row block-row--separated">
				<div class="contentRow">
					<span class="contentRow-figure">
						<xf:avatar user="$reaction.ReactionUser" size="s" />
					</span>
					<div class="contentRow-main">
						{$reaction.render()|raw}
					</div>
				</div>
			</li>
		<xf:else />
			<div class="block-row">{{ phrase('there_are_no_visible_reactions_on_this_page') }}</div>
		</xf:foreach>
		<xf:if is="$hasNext">
			<li class="block-footer">
				<span class="block-footer-controls"><xf:button href="{{ link('account/reactions', null, {'reaction_id': $reactionId, 'page': $page + 1}) }}"
					data-xf-click="inserter"
					data-replace=".js-reactionList-{$reactionId}"
					data-scroll-target="< .overlay">
						{{ phrase('more...') }}
				</xf:button></span>
			</li>
		</xf:if>
	</ul>
</xf:macro>]]></template>
  <template type="public" title="account_request_password" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('request_password') }}</xf:title>

<xf:form action="{{ link('account/request-password') }}" class="block" ajax="true">

	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('your_account_does_not_currently_have_password_confirm_generate', {'email': $xf.visitor.email|email_display}) }}
			</xf:inforow>
		</div>

		<xf:submitrow submit="{{ phrase('request_password') }}" rowtype="simple" />
	</div>

</xf:form>]]></template>
  <template type="public" title="account_security" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:title>{{ phrase('password_and_security') }}</xf:title>

<xf:wrap template="account_wrapper" />

<xf:if is="$tfaEnabled && $deprecatedProviders">
	<div class="blockMessage blockMessage--error blockMessage--iconic">
		{{ phrase('following_two_step_verification_providers_are_deprecated_x', {'deprecatedProviders': $deprecatedProviders|join(', ')}) }}
	</div>
</xf:if>

<xf:if is="$isSecurityLocked">
	<div class="blockMessage blockMessage--important">
		{{ phrase('we_require_you_to_change_your_password') }}
	</div>
</xf:if>

<xf:macro id="passkeys_macros::your_passkeys" arg-passkeys="{$passkeys}" />

<xf:form action="{{ link('account/security') }}" ajax="true" class="block" data-force-flash-message="true">
	<div class="block-container">
		<div class="block-body">

			<xf:if is="!$isSecurityLocked && $tfaEnabled">
				<xf:formrow rowtype="button"
					label="{{ phrase('two_step_verification') }}">

					<xf:if is="$xf.visitor.Option.use_tfa">
						{{ phrase('enabled_providers_x', {'providers': $enabledTfaProviders|join(', ')}) }}
					<xf:else />
						{{ phrase('disabled') }}
					</xf:if>
					<xf:button href="{{ link('account/two-step') }}" class="button--link">{{ phrase('change') }}</xf:button>
				</xf:formrow>

				<hr class="formRowSep" />
			</xf:if>

			<xf:if is="$hasPassword">
				<xf:passwordboxrow name="old_password" autocomplete="current-password" autofocus="autofocus"
					label="{{ phrase('your_existing_password') }}"
					explain="{{ phrase('you_must_verify_existing_password_before_changing') }}" />

				<xf:passwordboxrow name="password" autocomplete="new-password" checkstrength="true"
					label="{{ phrase('new_password') }}" />

				<xf:passwordboxrow name="password_confirm" autocomplete="new-password"
					label="{{ phrase('confirm_new_password') }}" />
			<xf:else />
				<xf:formrow label="{{ phrase('password') }}">
					{{ phrase('your_account_does_not_currently_have_password') }} <a href="{{ link('account/request-password') }}" data-xf-click="overlay">{{ phrase('request_password_be_emailed_to_you') }}</a>
				</xf:formrow>
			</xf:if>
		</div>
		<xf:if is="$hasPassword">
			<xf:submitrow icon="save" />
		</xf:if>
	</div>

	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="public" title="account_signature" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('edit_signature') }}</xf:title>

<xf:wrap template="account_wrapper" />

<xf:form action="{{ link('account/signature') }}" ajax="true" class="block" data-redirect="off">
	<div class="block-container">
		<div class="block-body">
			<xf:editorrow name="signature" value="{$xf.visitor.Profile}" column="signature_"
				rowtype="fullWidth noLabel"
				removebuttons="{$disabledButtons}"
				label="{{ phrase('signature') }}" />
		</div>
		<xf:submitrow icon="save" rowtype="simple" />
	</div>
</xf:form>]]></template>
  <template type="public" title="account_stop_following" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('stop_following_x', {'name': $followed.username}) }}</xf:title>

<xf:form action="{{ link('account/stop-following', null, { 'user_id': $followed.user_id }) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_stop_following_x', {'name': $followed.username}) }}
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('stop_following') }}" rowtype="simple" />
	</div>
</xf:form>]]></template>
  <template type="public" title="account_stop_ignoring" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('stop_ignoring_x', {'name': $ignored.username}) }}</xf:title>

<xf:form action="{{ link('account/stop-ignoring', null, { 'user_id': $ignored.user_id }) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_stop_ignoring_x', {'name': $ignored.username}) }}
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('stop_ignoring') }}" rowtype="simple" />
	</div>
</xf:form>]]></template>
  <template type="public" title="account_two_step" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:title>{{ phrase('two_step_verification') }}</xf:title>

<xf:wrap template="account_wrapper" />

<xf:if is="$deprecatedProviders">
	<div class="blockMessage blockMessage--error blockMessage--iconic">
		{{ phrase('following_two_step_verification_providers_are_deprecated_x', {'deprecatedProviders': $deprecatedProviders|join(', ')}) }}
	</div>
</xf:if>

<xf:if is="$backupAdded">
	<div class="blockMessage blockMessage--important blockMessage--iconic">
		{{ phrase('verification_backup_codes_automatically_generated') }}
		<a href="{{ link('account/two-step/manage', {'provider_id': 'backup'}) }}">{{ phrase('view_your_backup_codes') }}</a>
		<a href="{{ link('account/two-step/backup-codes') }}" data-xf-click="overlay" data-overlay-config="{{ {'backdropClose': false, 'escapeClose': false}|json }}" data-load-auto-click="true" style="display: none"></a>
	</div>
</xf:if>

<xf:description>{{ phrase('two_step_verification_desc') }}</xf:description>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:foreach loop="$providers" value="$provider" if="$provider.isEnabled() OR $provider.canEnable()">
				<div class="block-row block-row--separated">
					<div class="contentRow">
						<div class="contentRow-main contentRow-main--close">
							<div class="contentRow-extra">
								<xf:if is="$provider.canEnable()">
									<xf:form action="{{ link('account/two-step/enable', $provider) }}">
										<xf:button type="submit">{{ phrase('enable') }}</xf:button>
									</xf:form>
								</xf:if>
								<xf:if is="$provider.canDisable()">
									<xf:button href="{{ link('account/two-step/disable', $provider) }}" overlay="true">
										{{ phrase('disable') }}
									</xf:button>
								</xf:if>
								<xf:if is="$provider.canManage()">
									<xf:button href="{{ link('account/two-step/manage', $provider) }}">
										{{ phrase('manage') }}
									</xf:button>
								</xf:if>
							</div>
							<h2 class="contentRow-title">{$provider.title}</h2>
							<div class="contentRow-minor">{$provider.description}</div>
						</div>
					</div>
				</div>
			</xf:foreach>
		</div>
		<xf:if is="$xf.visitor.Option.use_tfa">
			<div class="block-footer">
				<span class="block-footer-controls"><xf:button href="{{ link('account/two-step/disable') }}" overlay="true">
					{{ phrase('disable_two_step_verification') }}
				</xf:button></span>
			</div>
		</xf:if>
	</div>
</div>

<xf:if is="$currentTrustRecord OR $hasOtherTrusted">
	<div class="block">
		<div class="block-container">
			<h2 class="block-header">{{ phrase('trusted_devices') }}</h2>
			<div class="block-body">
				<xf:if is="$currentTrustRecord">
					<div class="block-row block-row--separated">
						{{ phrase('device_trusted_until_x_disable_desc', {'until': date($currentTrustRecord.trusted_until)}) }}

						<xf:form action="{{ link('account/two-step/trusted-disable') }}">
							<xf:button type="submit">{{ phrase('stop_trusting_this_device') }}</xf:button>
						</xf:form>
					</div>
				</xf:if>
				<xf:if is="$hasOtherTrusted">
					<div class="block-row block-row--separated">
						{{ phrase('other_devices_trusted_disable_desc') }}
						<xf:if is="$currentTrustRecord">{{ phrase('this_device_will_remain_trusted') }}</xf:if>

						<xf:form action="{{ link('account/two-step/trusted-disable') }}">
							<xf:button type="submit">{{ phrase('stop_trusting_other_devices') }}</xf:button>
							<xf:hiddenval name="others">1</xf:hiddenval>
						</xf:form>
					</div>
				</xf:if>
			</div>
		</div>
	</div>
</xf:if>]]></template>
  <template type="public" title="account_two_step_authy_config" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('two_step_verification_setup:') }} {$provider.title}</xf:title>

<xf:wrap template="account_wrapper" />

<xf:form action="{{ link('account/two-step/enable', $provider) }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$xf.visitor.email">
				<xf:formrow label="{{ phrase('email') }}" explain="{{ phrase('create_authy_id_current_email_explain') }}">
					{$xf.visitor.email|email_display}
				</xf:formrow>
			<xf:else />
				<xf:textboxrow label="{{ phrase('email') }}" name="email" explain="{{ phrase('create_authy_id_email_explain') }}" />
			</xf:if>

			<xf:telboxrow label="{{ phrase('cell_mobile_phone_number') }}"
				name="user_number" dialcodename="dial_code"
				intlnumbername="intl_numb" />
		</div>
		<xf:submitrow icon="save" />
	</div>

	<xf:hiddenval name="setup" value="1" />
</xf:form>]]></template>
  <template type="public" title="account_two_step_backup_codes" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('two_step_verification_backup_codes') }}</xf:title>

<xf:wrap template="account_wrapper" />

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<div class="block-row block-row--separated">
				{{ phrase('two_step_verification_backup_codes_have_automatically_been_generated') }}
			</div>
			<div class="block-row block-row--separated">
				<ul class="listColumns listColumns--spaced listPlain">
				<xf:foreach loop="$codes" value="$code">
					<li><div>{$code}</div></li>
				</xf:foreach>
				</ul>
			</div>
		</div>
		<div class="block-footer">
			<span class="block-footer-controls">
				<xf:button class="button--primary js-overlayClose">{{ phrase('i_have_saved_backup_codes') }}</xf:button>
			</span>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="account_two_step_backup_manage" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('two_step_verification_setup:') }} {$provider.title}</xf:title>

<xf:wrap template="account_wrapper" />

<xf:form action="{{ link('account/two-step/manage', $provider) }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow
				label="{{ phrase('tfa.backup') }}"
				explain="{{ phrase('backup_codes_used_once_secure_location') }}">

				<ul class="listColumns listColumns--spaced listPlain">
				<xf:foreach loop="$usedCodes" value="$code">
					<li><div style="text-decoration: line-through">{$code}</div></li>
				</xf:foreach>
				<xf:foreach loop="$availableCodes" value="$code">
					<li><div>{$code}</div></li>
				</xf:foreach>
				</ul>
			</xf:formrow>

			<xf:checkboxrow>
				<xf:option name="regen" value="1"
					label="{{ phrase('generate_new_backup_codes') }}"
					hint="{{ phrase('this_will_generate_new_backup_codes') }}" />
			</xf:checkboxrow>
		</div>
		<xf:submitrow submit="{{ phrase('confirm_regeneration') }}" />
	</div>
</xf:form>]]></template>
  <template type="public" title="account_two_step_disable" version_id="2000036" version_string="2.0.0 Beta 6"><![CDATA[<xf:if is="$provider">
	<xf:title>{{ phrase('disable_two_step_verification:') }} {$provider.title}</xf:title>
<xf:else />
	<xf:title>{{ phrase('disable_two_step_verification') }}</xf:title>
</xf:if>

<xf:wrap template="account_wrapper" />

<xf:form action="{{ link('account/two-step/disable', $provider) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<xf:if is="$provider">
					{{ phrase('you_sure_you_want_disable_two_step_x', {'title': $provider.title}) }}
				<xf:else />
					{{ phrase('you_sure_you_want_disable_two_step') }}
				</xf:if>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('confirm') }}" rowtype="simple" icon="disable" />
	</div>
</xf:form>]]></template>
  <template type="public" title="account_two_step_enable" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('two_step_verification_setup:') }} {$provider.title}</xf:title>

<xf:wrap template="account_wrapper" />

<xf:form action="{{ link('account/two-step/enable', $provider) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			{{ $provider.render('setup', $xf.visitor, $providerData, $triggerData)|raw }}
		</div>
		<xf:submitrow submit="{{ phrase('confirm') }}" />
	</div>
	<xf:hiddenval name="step">confirm</xf:hiddenval>
</xf:form>]]></template>
  <template type="public" title="account_two_step_totp_manage" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('two_step_verification_setup:') }} {$provider.title}</xf:title>

<xf:wrap template="account_wrapper" />

<xf:form action="{{ link('account/two-step/manage', $provider) }}" class="block" ajax="{{ $newProviderData ? 'true' : '' }}">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$newProviderData">
				{{ $provider.render('setup', $xf.visitor, $newProviderData, $newTriggerData)|raw }}

				<xf:hiddenval name="confirm">1</xf:hiddenval>
			<xf:else />
				<xf:checkboxrow>
					<xf:option name="regen" value="1"
						label="{{ phrase('regenerate_secret_for_new_device') }}"
						hint="{{ phrase('totp_this_will_regenerate_secret') }}" />
				</xf:checkboxrow>
			</xf:if>
		</div>
		<xf:submitrow submit="{{ phrase('confirm') }}" />
	</div>
</xf:form>]]></template>
  <template type="public" title="account_upgrade_purchase" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('thanks_for_your_purchase') }}</xf:title>

<xf:wrap template="account_wrapper" />

<div class="blockMessage">{{ phrase('thank_you_for_purchasing_this_upgrade') }}</div>]]></template>
  <template type="public" title="account_upgrade_updated" version_id="2030031" version_string="2.3.0 Beta 1"><![CDATA[<xf:title>{{ phrase('changed_payment_confirmation') }}</xf:title>

<xf:wrap template="account_wrapper" />

<div class="blockMessage">{{ phrase('account_upgrade_payment_change') }}</div>]]></template>
  <template type="public" title="account_upgrades" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:title>{{ phrase('account_upgrades') }}</xf:title>

<xf:wrap template="account_wrapper" />

<xf:js src="xf/payment.js" min="1" />

<xf:if contentcheck="true">
	<xf:contentcheck>

		<xf:if is="$available is not empty">
			<div class="block">
				<div class="block-container">
					<h2 class="block-header">{{ phrase('available_upgrades') }}</h2>

					<div class="block-body">
					<xf:foreach loop="$available" value="$upgrade">
						<xf:formrow rowtype="button"
							label="{$upgrade.title}"
							hint="{$upgrade.cost_phrase}"
							explain="{$upgrade.description|raw}">

							<xf:form action="{{ link('purchase', $upgrade, {'user_upgrade_id': $upgrade.user_upgrade_id}) }}" ajax="true" data-xf-init="payment-provider-container">
								<div class="inputGroup">
									<xf:if is="{{ count($upgrade.payment_profile_ids) > 1 }}">
										<xf:select name="payment_profile_id">
											<xf:option>{{ phrase('(choose_payment_method)') }}</xf:option>
											<xf:foreach loop="$upgrade.payment_profile_ids" value="$profileId">
												<xf:if is="{$profiles.{$profileId}}">
													<xf:option value="{$profileId}">{{ $profiles.{$profileId}.display_title ?: $profiles.{$profileId}.title }}</xf:option>
												</xf:if>
											</xf:foreach>
										</xf:select>

										<span class="inputGroup-splitter"></span>

										<xf:button type="submit" icon="purchase" />
									<xf:else />
										<xf:button type="submit" icon="purchase" />

										<xf:hiddenval name="payment_profile_id">{$upgrade.payment_profile_ids|first}</xf:hiddenval>
									</xf:if>
								</div>
								<div class="js-paymentProviderReply-user_upgrade{$upgrade.user_upgrade_id}"></div>
							</xf:form>

						</xf:formrow>
					</xf:foreach>
					</div>
				</div>
			</div>
		</xf:if>

		<xf:if is="$purchased is not empty">
			<div class="block">
				<div class="block-container">
					<h2 class="block-header">{{ phrase('purchased_upgrades') }}</h2>

					<ul class="block-body listPlain">
					<xf:foreach loop="$purchased" value="$upgrade">
						<li>
							<div>
								<xf:set var="$active" value="{$upgrade.Active.{$xf.visitor.user_id}}" />
								<xf:formrow
									label="{$upgrade.title}"
									hint="{$upgrade.cost_phrase}"
									explain="{$upgrade.description|raw}">

									<xf:if is="$active.end_date">
										{{ phrase('expires:') }} <xf:date time="{$active.end_date}" />
									<xf:else />
										{{ phrase('expires_never') }}
									</xf:if>

									<xf:if contentcheck="true">
										<div style="margin-top: 5px;">
											<xf:contentcheck>
												<xf:if is="$upgrade.length_unit && $upgrade.recurring && $active.PurchaseRequest">
													<xf:set var="$provider" value="{$active.PurchaseRequest.PaymentProfile.Provider}" />
													{{ $provider.renderChangePayment($active)|raw }}
													{{ $provider.renderCancellation($active)|raw }}
												</xf:if>
											</xf:contentcheck>
										</div>
									</xf:if>
								</xf:formrow>
							</div>
						</li>
					</xf:foreach>
					</ul>
				</div>
			</div>
		</xf:if>
	</xf:contentcheck>
<xf:else />
	<div class="blockMessage">{{ phrase('there_currently_no_purchasable_user_upgrades') }}</div>
</xf:if>
]]></template>
  <template type="public" title="account_username" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:title>{{ phrase('change_username') }}</xf:title>

<xf:wrap template="account_wrapper" />

<xf:form action="{{ link('account/username') }}" ajax="true" class="block" data-force-flash-message="on">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$xf.visitor.getNextAllowedUsernameChange($xf.time)">
				<xf:inforow>
					<div class="blockMessage blockMessage--important">
						{{ phrase('next_allowed_username_change_message', {'date': date($xf.visitor.getNextAllowedUsernameChange($xf.time))}) }}
					</div>
				</xf:inforow>
			</xf:if>
			<xf:textboxrow name="username" value="{$xf.visitor}" autofocus="autofocus" autocomplete="off"
				maxlength="{{ max_length($xf.visitor, 'username') }}"
				label="{{ phrase('user_name') }}"
				validation-url="{{ link('misc/validate-username') }}" />
			<xf:textarearow name="change_reason" autosize="true"
				maxlength="{{ max_length('XF:UsernameChange', 'change_reason') }}"
				label="{{ phrase('change_reason') }}"
				hint="{{ $xf.options.usernameChangeRequireReason ? phrase('required') : '' }}"
				required="{{ $xf.options.usernameChangeRequireReason ? 'required' : null }}"
				explain="{{ phrase('username_change_reason_explain') }}" />
		</div>

		<xf:submitrow icon="save" sticky="true" />
	</div>

	<xf:redirect />
</xf:form>]]></template>
  <template type="public" title="account_visitor_menu" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if contentcheck="true">
	<h4 class="menu-tabHeader tabs" data-xf-init="tabs" role="tablist">
		<span class="hScroller" data-xf-init="h-scroller">
			<span class="hScroller-scroll">
				<a href="{{ link('account') }}" class="tabs-tab is-active" role="tab" tabindex="0" aria-controls="{{ unique_id('accountMenu') }}">{{ phrase('your_account') }}</a>
			<xf:contentcheck>
				<xf:if is="$xf.visitor.canViewBookmarks()">
					<a href="{{ link('account/bookmarks') }}" class="tabs-tab" role="tab" tabindex="0" aria-controls="{{ unique_id('accountMenuBookmarks') }}">{{ phrase('bookmarks') }}</a>
				</xf:if>
				<!--[XF:account_tabs:bottom]-->
			</xf:contentcheck>
			</span>
		</span>
	</h4>
	<xf:set var="$hasTabs" value="{{ true }}" />
</xf:if>

<xf:set var="$accountHtml">
	<div class="menu-row menu-row--alt">
		<xf:macro id="visitor_panel_row" />
	</div>

	<xf:macro id="visitor_panel_row">
		<div class="contentRow">
			<div class="contentRow-figure">
				<span class="avatarWrapper">
					<xf:avatar user="{$xf.visitor}" size="m" href="" notooltip="true" />
					<xf:if is="$xf.visitor.canUploadAvatar()">
						<a class="avatarWrapper-update" href="{{ link('account/avatar') }}" data-xf-click="overlay"><span>{{ phrase('edit') }}</span></a>
					</xf:if>
				</span>
			</div>
			<div class="contentRow-main">
				<h3 class="contentRow-header"><xf:username user="$xf.visitor" rich="true" notooltip="true" /></h3>
				<div class="contentRow-lesser">
					<xf:usertitle user="$xf.visitor" />
				</div>

				<div class="contentRow-minor">
					<!--[XF:stats_pairs:above_messages]-->
					<dl class="pairs pairs--justified fauxBlockLink">
						<dt>{{ phrase('messages') }}</dt>
						<dd>
							<a href="{{ link('search/member', null, {'user_id': $xf.visitor.user_id}) }}" class="fauxBlockLink-linkRow u-concealed">
								{$xf.visitor.message_count|number}
							</a>
						</dd>
					</dl>
					<!--[XF:stats_pairs:above_reactions]-->
					<dl class="pairs pairs--justified fauxBlockLink">
						<dt>{{ phrase('reaction_score') }}</dt>
						<dd>
							<a href="{{ link('account/reactions') }}" class="fauxBlockLink-linkRow u-concealed">
								{$xf.visitor.reaction_score|number}
							</a>
						</dd>
					</dl>
					<!--[XF:stats_pairs:above_points]-->
					<xf:if is="$xf.options.enableTrophies">
						<dl class="pairs pairs--justified fauxBlockLink">
							<dt>{{ phrase('trophy_points') }}</dt>
							<dd>
								<a href="{{ link('members/trophies', $xf.visitor) }}" data-xf-click="overlay" class="fauxBlockLink-linkRow u-concealed">
									{$xf.visitor.trophy_points|number}
								</a>
							</dd>
						</dl>
					</xf:if>
				</div>
			</div>
		</div>
	</xf:macro>

	<!--[XF:menu_separator:below_visitor_panel]-->
	<hr class="menu-separator menu-separator--hard" />

	<ul class="listPlain listColumns listColumns--narrow listColumns--together">
		<!--[XF:content_links:top]-->
		<xf:if is="$xf.options.enableNewsFeed">
			<li><a href="{{ link('whats-new/news-feed') }}" class="menu-linkRow">{{ phrase('news_feed') }}</a></li>
		</xf:if>
		<xf:if is="$xf.visitor.canSearch()">
			<li><a href="{{ link('search/member', null, {'user_id': $xf.visitor.user_id}) }}" class="menu-linkRow">{{ phrase('your_content') }}</a></li>
		</xf:if>
		<li><a href="{{ link('account/reactions') }}" class="menu-linkRow">{{ phrase('reactions_received') }}</a></li>
		<!--[XF:content_links:bottom]-->
	</ul>

	<!--[XF:menu_separator:below_content_links]-->
	<hr class="menu-separator" />

	<ul class="listPlain listColumns listColumns--narrow listColumns--together">
		<!--[XF:account_links:top]-->
		<li><a href="{{ link('account/account-details') }}" class="menu-linkRow">{{ phrase('account_details') }}</a></li>
		<li><a href="{{ link('account/security') }}" class="menu-linkRow">{{ phrase('password_and_security') }}</a></li>
		<li><a href="{{ link('account/privacy') }}" class="menu-linkRow">{{ phrase('privacy') }}</a></li>
		<li><a href="{{ link('account/preferences') }}" class="menu-linkRow">{{ phrase('preferences') }}</a></li>
		<xf:if is="$xf.visitor.canEditSignature()">
			<li><a href="{{ link('account/signature') }}" class="menu-linkRow">{{ phrase('signature') }}</a></li>
		</xf:if>
		<xf:if is="$xf.app.userUpgradeCount">
			<li><a href="{{ link('account/upgrades') }}" class="menu-linkRow">{{ phrase('account_upgrades') }}</a></li>
		</xf:if>
		<xf:if is="$xf.app.connectedAccountCount">
			<li><a href="{{ link('account/connected-accounts') }}" class="menu-linkRow">{{ phrase('connected_accounts') }}</a></li>
		</xf:if>
		<li><a href="{{ link('account/following') }}" class="menu-linkRow">{{ phrase('following') }}</a></li>
		<li><a href="{{ link('account/ignored') }}" class="menu-linkRow">{{ phrase('ignoring') }}</a></li>
		<!--[XF:account_links:bottom]-->
	</ul>

	<!--[XF:menu_separator:below_account_links]-->
	<hr class="menu-separator" />

	<a href="{{ link('logout', null, {'t': csrf_token()}) }}" class="menu-linkRow">{{ phrase('log_out') }}</a>

	<xf:if is="$xf.visitor.canPostOnProfile()">
		<xf:form action="{{ link('members/post', $xf.visitor) }}" ajax="true"
			data-redirect="off"
			data-reset-complete="true"
			data-no-auto-focus="true"
			class="menu-footer">

			<span class="u-srOnly" id="ctrl_message">{{ phrase('update_your_status:') }}</span>
			<xf:textarea name="message" rows="1" autosize="true"
				maxlength="{$xf.options.profilePostMaxLength}"
				placeholder="{{ phrase('update_your_status...') }}"
				data-xf-init="focus-trigger user-mentioner emoji-completer" data-display="< :next" aria-labelledby="ctrl_message" />
			<div class="u-hidden u-hidden--transition u-inputSpacer">
				<xf:button type="submit" class="button--primary" icon="reply">{{ phrase('post_verb') }}</xf:button>
			</div>
		</xf:form>
	</xf:if>
</xf:set>

<xf:if is="$hasTabs">
	<ul class="tabPanes">
		<li class="is-active" role="tabpanel" id="{{ unique_id('accountMenu') }}">
			{$accountHtml|raw}
		</li>
		<xf:if is="$xf.visitor.canViewBookmarks()">
			<li role="tabpanel" id="{{ unique_id('accountMenuBookmarks') }}"
				data-href="{{ link('account/bookmarks-popup') }}"
				data-load-target=".js-bookmarksMenuBody">
				<div class="js-bookmarksMenuBody">
					<div class="menu-row">{{ phrase('loading...') }}</div>
				</div>
				<div class="menu-footer menu-footer--close">
					<a href="{{ link('account/bookmarks') }}" class="js-bookmarkShowAllLink">{{ phrase('show_all...') }}</a>
				</div>
			</li>
		</xf:if>
		<!--[XF:account_tab_panes:bottom]-->
	</ul>
<xf:else />
	{$accountHtml|raw}
</xf:if>]]></template>
  <template type="public" title="account_wrapper" version_id="2030055" version_string="2.3.0 Release Candidate 5"><![CDATA[<xf:sidenav>
	<div class="block">
		<div class="block-container">
			<h3 class="block-header">{{ phrase('your_account') }}</h3>
			<div class="block-body">
				<!--[XF:profile_links:top]-->
				<a class="blockLink" href="{{ link('members', $xf.visitor) }}">{{ phrase('your_profile') }}</a>
				<a class="blockLink {{ $pageSelected == 'alerts' ? 'is-selected' : '' }}" href="{{ link('account/alerts') }}">
					{{ phrase('alerts') }}
				</a>
				<a class="blockLink {{ $pageSelected == 'reactions' ? 'is-selected' : '' }}" href="{{ link('account/reactions') }}">
					{{ phrase('reactions_received') }}
				</a>
				<xf:if is="$xf.visitor.canViewBookmarks()">
					<a class="blockLink {{ $pageSelected == 'bookmarks' ? 'is-selected' : '' }}" href="{{ link('account/bookmarks') }}">
						{{ phrase('bookmarks') }}
					</a>
				</xf:if>
				<!--[XF:profile_links:bottom]-->
			</div>

			<h3 class="block-minorHeader">{{ phrase('settings') }}</h3>
			<div class="block-body">
				<!--[XF:settings_links:top]-->
				<a class="blockLink {{ $pageSelected == 'account_details' ? 'is-selected' : '' }}" href="{{ link('account/account-details') }}">
					{{ phrase('account_details') }}
				</a>
				<a class="blockLink {{ $pageSelected == 'security' ? 'is-selected' : '' }}" href="{{ link('account/security') }}">
					{{ phrase('password_and_security') }}
				</a>
				<a class="blockLink {{ $pageSelected == 'privacy' ? 'is-selected' : '' }}" href="{{ link('account/privacy') }}">
					{{ phrase('privacy') }}
				</a>
				<a class="blockLink {{ $pageSelected == 'preferences' ? 'is-selected' : '' }}" href="{{ link('account/preferences') }}">
					{{ phrase('preferences') }}
				</a>
				<xf:if is="$xf.visitor.canEditSignature()">
					<a class="blockLink {{ $pageSelected == 'signature' ? 'is-selected' : '' }}" href="{{ link('account/signature') }}">
						{{ phrase('signature') }}
					</a>
				</xf:if>
				<xf:if is="$xf.app.userUpgradeCount">
					<a class="blockLink {{ $pageSelected == 'upgrades' ? 'is-selected' : '' }}" href="{{ link('account/upgrades') }}">
						{{ phrase('account_upgrades') }}
					</a>
				</xf:if>
				<xf:if is="$xf.app.connectedAccountCount">
					<a class="blockLink {{ $pageSelected == 'connected_account' ? 'is-selected' : '' }}" href="{{ link('account/connected-accounts') }}">
						{{ phrase('connected_accounts') }}
					</a>
				</xf:if>
				<xf:if is="$xf.app.oAuthClientCount">
					<a class="blockLink {{ $pageSelected == 'applications' ? 'is-selected': '' }}" href="{{ link('account/applications') }}">
						{{ phrase('applications') }}
					</a>
				</xf:if>
				<a class="blockLink {{ $pageSelected == 'following' ? 'is-selected' : '' }}" href="{{ link('account/following') }}">
					{{ phrase('following') }}
				</a>
				<a class="blockLink {{ $pageSelected == 'ignored' ? 'is-selected' : '' }}" href="{{ link('account/ignored') }}">
					{{ phrase('ignoring') }}
				</a>
				<!--[XF:settings_links:bottom]-->
			</div>
		</div>
	</div>

	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<a href="{{ link('logout', null, {'t': csrf_token()}) }}" class="blockLink">{{ phrase('log_out') }}</a>
			</div>
		</div>
	</div>
</xf:sidenav>
<xf:page option="sideNavTitle">{{ phrase('your_account') }}</xf:page>

<xf:breadcrumb href="{{ link('account') }}">{{ phrase('your_account') }}</xf:breadcrumb>

{$innerContent|raw}]]></template>
  <template type="public" title="alert" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<div class="contentRow">
	<div class="contentRow-figure">
		<xf:avatar user="$alert.User" size="xxs" defaultname="{$alert.username}" />
	</div>
	<div class="contentRow-main contentRow-main--close">
		{$alert.render()|raw}
		<div class="contentRow-minor contentRow-minor--smaller">
			<xf:date time="$alert.event_date" />
		</div>
	</div>
</div>]]></template>
  <template type="public" title="alert_conversation_message_reaction" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[{{ phrase('x_reacted_to_your_reply_in_the_direct_message_y', {
	'name': username_link($user, false, {'defaultname': $alert.username}),
	'reaction': alert_reaction($extra.reaction_id)|preescaped,
	'title': '<a href="' . link('direct-messages/replies', $content) . '" class="fauxBlockLink-blockLink">' . $content.Conversation.title . '</a>'
}) }}]]></template>
  <template type="public" title="alert_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="row" arg-alert="!">
	<div class="contentRow">
		<div class="contentRow-figure">
			<xf:avatar user="$alert.User" size="xxs" defaultname="{$alert.username}" />
		</div>
		<div class="contentRow-main contentRow-main--close">
			{$alert.render()|raw}
			<div class="contentRow-minor contentRow-minor--smaller">
				<xf:date time="$alert.event_date" />
				<span class="u-pullRight">
					<a href="{{ link('account/alert-toggle', null, {'alert_id': $alert.alert_id}) }}"
						data-xf-init="tooltip" data-content="{{ $alert.isUnreadInUi() ? phrase('mark_read')|for_attr : phrase('mark_unread')|for_attr }}"
						data-read="{{ phrase('mark_read')|for_attr }}" data-unread="{{ phrase('mark_unread')|for_attr }}"
						class="js-alertToggle alertToggler"><xf:trim>
						<i class="alertToggler-icon"></i>
					</xf:trim></a>
				</span>
			</div>
		</div>
	</div>
</xf:macro>]]></template>
  <template type="public" title="alert_post_forumwatch_insert" version_id="2011170" version_string="2.1.11"><![CDATA[<xf:include template="alert_post_insert" />]]></template>
  <template type="public" title="alert_post_insert" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:if is="$content.isFirstPost()">
	{{ phrase('x_started_thread_y_may_be_more', {
		'name': username_link($user, false, {'defaultname': $alert.username}),
		'title': '<a href="' . link('threads', $content.Thread) . '" class="fauxBlockLink-blockLink">' . prefix('thread', $content.Thread) . $content.Thread.title . '</a>'
	}) }}
<xf:else />
	{{ phrase('x_replied_to_thread_y_may_be_more', {
		'name': username_link($user, false, {'defaultname': $alert.username}),
		'title': '<a href="' . link('posts', $content) . '" class="fauxBlockLink-blockLink">' . prefix('thread', $content.Thread) . $content.Thread.title . '</a>'
	}) }}
</xf:if>]]></template>
  <template type="public" title="alert_post_mention" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('x_mentioned_you_in_post_in_thread_y', {
	'name': username_link($user, false, {'defaultname': $alert.username}),
	'title': '<a href="' . link('posts', $content) . '" class="fauxBlockLink-blockLink">' . prefix('thread', $content.Thread) . $content.Thread.title . '</a>'
}) }}]]></template>
  <template type="public" title="alert_post_pre_reg" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:if is="$extra.welcome">
	{{ phrase('welcome_to_boardtitle', {'boardTitle': $xf.options.boardTitle}) }}
</xf:if>
<xf:if is="$content.isFirstPost()">
	{{ phrase('your_thread_x_was_created', {
		'title': '<a href="' . link('threads', $content.Thread) . '" class="fauxBlockLink-blockLink">' . prefix('thread', $content.Thread) . $content.Thread.title . '</a>'
	}) }}
<xf:else />
	{{ phrase('your_reply_to_thread_x_was_submitted', {
		'title': '<a href="' . link('posts', $content) . '" class="fauxBlockLink-blockLink">' . prefix('thread', $content.Thread) . $content.Thread.title . '</a>'
	}) }}
</xf:if>]]></template>
  <template type="public" title="alert_post_question_solution" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[{{ phrase('x_marked_your_answer_to_question_y_as_a_solution', {
	'name': username_link($user, false, { 'defaultname': $alert.username }),
	'title': '<a href="' . link('posts', $content) . '" class="fauxBlockLink-blockLink">' . prefix('thread', $content.Thread) . $content.Thread.title . '</a>'
}) }}]]></template>
  <template type="public" title="alert_post_quote" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('x_quoted_your_post_in_thread_y', {
	'name': username_link($user, false, {'defaultname': $alert.username}),
	'title': '<a href="' . link('posts', $content) . '" class="fauxBlockLink-blockLink">' . prefix('thread', $content.Thread) . $content.Thread.title . '</a>'
}) }}]]></template>
  <template type="public" title="alert_post_reaction" version_id="2010770" version_string="2.1.7"><![CDATA[{{ phrase('x_reacted_to_your_post_in_the_thread_y', {
	'name': username_link($user, false, {'defaultname': $alert.username}),
	'reaction': alert_reaction($extra.reaction_id)|preescaped,
	'posterParams': 'href="' . link('posts', $content) . '" class="fauxBlockLink-blockLink"',
	'title': prefix('thread', $content.Thread) . $content.Thread.title
}) }}]]></template>
  <template type="public" title="alert_profile_post_comment_mention" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('x_mentioned_you_comment_on_ys_profile', {
	'name': username_link($user, false, {'defaultname': $alert.username}),
	'post_attributes': 'href="' . link('profile-posts/comments', $content) . '" class="fauxBlockLink-blockLink"',
	'profile': $content.ProfilePost.ProfileUser.username
}) }}]]></template>
  <template type="public" title="alert_profile_post_comment_other_commenter" version_id="2010053" version_string="2.1.0 Release Candidate 3"><![CDATA[<xf:if is="$content.ProfilePost.ProfileUser.user_id == $content.ProfilePost.user_id">
	{{ phrase('x_also_commented_on_ys_status', {
		'name': username_link($user, false, {'defaultname': $alert.username}),
		'poster_params': 'href="' . link('profile-posts/comments', $content) . '" class="fauxBlockLink-blockLink"',
		'poster': $content.ProfilePost.username
	}) }}
<xf:else />
	{{ phrase('x_also_commented_on_ys_profile_post', {
		'name': username_link($user, false, {'defaultname': $alert.username}),
		'poster_params': 'href="' . link('profile-posts/comments', $content) . '" class="fauxBlockLink-blockLink"',
		'poster': $content.ProfilePost.username
	}) }}
</xf:if>]]></template>
  <template type="public" title="alert_profile_post_comment_reaction" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:if is="$xf.visitor.user_id == $content.ProfilePost.user_id">
	{{ phrase('x_reacted_to_your_comment_on_your_profile_post', {
		'name': username_link($user, false, {'defaultname': $alert.username}),
		'post_attributes': 'href="' . link('profile-posts/comments', $content) . '" class="fauxBlockLink-blockLink"',
		'reaction': alert_reaction($extra.reaction_id)|preescaped
	}) }}
<xf:else />
	{{ phrase('x_reacted_to_your_comment_on_ys_profile_post', {
		'name': username_link($user, false, {'defaultname': $alert.username}),
		'post_attributes': 'href="' . link('profile-posts/comments', $content) . '" class="fauxBlockLink-blockLink"',
		'reaction': alert_reaction($extra.reaction_id)|preescaped,
		'poster': $content.ProfilePost.username
	}) }}
</xf:if>]]></template>
  <template type="public" title="alert_profile_post_comment_your_post" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('x_commented_on_your_post_on_ys_profile', {
	'name': username_link($user, false, {'defaultname': $alert.username}),
	'post_params': 'href="' . link('profile-posts/comments', $content) . '" class="fauxBlockLink-blockLink"',
	'profile': $content.ProfilePost.ProfileUser.username
}) }}]]></template>
  <template type="public" title="alert_profile_post_comment_your_profile" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:if is="$xf.visitor.user_id == $content.ProfilePost.user_id">
	{{ phrase('x_commented_on_your_status', {
		'name': username_link($user, false, {'defaultname': $alert.username}),
		'status_attributes': 'href="' . link('profile-posts/comments', $content) . '" class="fauxBlockLink-blockLink"'
	}) }}
<xf:else />
	{{ phrase('x_commented_on_ys_post_on_your_profile', {
		'name': username_link($user, false, {'defaultname': $alert.username}),
		'post_attributes': 'href="' . link('profile-posts/comments', $content) . '" class="fauxBlockLink-blockLink"',
		'poster': $content.ProfilePost.username
	}) }}
</xf:if>]]></template>
  <template type="public" title="alert_profile_post_insert" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('alert_profile_post_insert', {
		'username': username_link($user, false, {'defaultname': $alert.username}),
		'profilePageLinkAttributes': 'href="' . link('profile-posts', $content) . '" class="fauxBlockLink-blockLink"'
	})
}}]]></template>
  <template type="public" title="alert_profile_post_mention" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('x_mentioned_you_message_on_ys_profile', {
	'name': username_link($user, false, {'defaultname': $alert.username}),
	'post_attributes': 'href="' . link('profile-posts', $content) . '" class="fauxBlockLink-blockLink"',
	'profile': $content.ProfileUser.username
}) }}]]></template>
  <template type="public" title="alert_profile_post_reaction" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:if is="$xf.visitor.user_id == $content.ProfileUser.user_id">
	{{ phrase('x_reacted_to_your_status', {
		'name': username_link($user, false, {'defaultname': $alert.username}),
		'reaction': alert_reaction($extra.reaction_id)|preescaped,
		'status_attributes': 'href="' . link('profile-posts', $content) . '" class="fauxBlockLink-blockLink"'
	}) }}
<xf:else />
	{{ phrase('x_reacted_to_your_post_on_ys_profile', {
		'name': username_link($user, false, {'defaultname': $alert.username}),
		'post_attributes': 'href="' . link('profile-posts', $content) . '" class="fauxBlockLink-blockLink"',
		'reaction': alert_reaction($extra.reaction_id)|preescaped,
		'profile': $content.ProfileUser.username
	}) }}
</xf:if>]]></template>
  <template type="public" title="alert_report_mention" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('x_mentioned_you_in_comment_in_report_y', {
	'name': username_link($user, false, {'defaultname': $alert.username}),
	'title': '<a href="' . link('reports', $content) . '#report-comment-' . $alert.extra_data.comment.report_comment_id . '" class="fauxBlockLink-blockLink">' . $content.title . '</a>'
}) }}]]></template>
  <template type="public" title="alert_thread_reply_ban" version_id="2020670" version_string="2.2.6"><![CDATA[<xf:if is="$extra.expiry">
	{{ phrase('you_unable_reply_to_thread_x_until_expiry_y', {'title': '<a href="' . link('threads', $content) . '" class="fauxBlockLink-blockLink">' . prefix('thread', $content) . $content.title . '</a>', 'expiry': date($extra.expiry)}) }}
<xf:else />
	{{ phrase('you_are_no_longer_able_to_reply_thread_x', {'title': '<a href="' . link('threads', $content) . '" class="fauxBlockLink-blockLink">' . prefix('thread', $content) . $content.title . '</a>'}) }}
</xf:if>
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>]]></template>
  <template type="public" title="alert_trophy_award" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('you_have_been_awarded_a_trophy_x', {'trophy': '<a href="' . link('members/trophies', $xf.visitor) . '" class="fauxBlockLink-blockLink" data-xf-click="overlay">' . $content.title . '</a>'}) }}]]></template>
  <template type="public" title="alert_user_following" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('alert_user_following', {'username': username_link($user, false, {'defaultname': $alert.username})}) }}
<xf:if is="$user"><a href="{{ link('members', $user) }}" class="fauxBlockLink-blockLink"></a></xf:if>]]></template>
  <template type="public" title="alert_user_from_admin" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{$extra.alert_text|raw}]]></template>
  <template type="public" title="alert_user_post_copy" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('your_post_in_thread_x_was_copied_to_y', {
	'title': $extra.title,
	'target': '<a href="' . base_url($extra.targetLink) . '" class="fauxBlockLink-blockLink">' . prefix('thread', $extra.prefix_id) . $extra.targetTitle . '</a>'
}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>]]></template>
  <template type="public" title="alert_user_post_delete" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('your_post_in_thread_x_was_deleted', {
	'title': '<a href="' . base_url($extra.threadLink) . '" class="fauxBlockLink-blockLink">' . prefix('thread', $extra.prefix_id) . $extra.title . '</a>'
}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>]]></template>
  <template type="public" title="alert_user_post_edit" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('your_post_in_thread_x_was_edited', {'title': '<a href="' . base_url($extra.link) . '" class="fauxBlockLink-blockLink">' . prefix('thread', $extra.prefix_id) . $extra.title . '</a>'}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>]]></template>
  <template type="public" title="alert_user_post_merge" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('your_posts_in_thread_x_were_merged_together', {
	'source': '<a href="' . base_url($extra.threadLink) . '" class="fauxBlockLink-blockLink">' . prefix('thread', $extra.prefix_id) . $extra.title . '</a>'
}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>]]></template>
  <template type="public" title="alert_user_post_move" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$extra.wasVisible && $extra.isVisible">
	{{ phrase('your_post_in_thread_x_was_moved_to_y', {
		'title': $extra.sourceTitle,
		'target': '<a href="' . base_url($extra.targetLink) . '" class="fauxBlockLink-blockLink">' . prefix('thread', $extra.prefix_id) . $extra.title . '</a>'
	}) }}
<xf:elseif is="$extra.wasVisible" />
	{{ phrase('your_post_in_thread_x_was_moved_to_another_thread', {
		'title': $extra.sourceTitle
	}) }}
<xf:elseif is="$extra.isVisible" />
	{{ phrase('your_post_in_another_thread_was_moved_to_y', {
		'target': '<a href="' . base_url($extra.targetLink) . '" class="fauxBlockLink-blockLink">' . prefix('thread', $extra.prefix_id) . $extra.title . '</a>'
	}) }}
</xf:if>

<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>]]></template>
  <template type="public" title="alert_user_pre_reg_failed" version_id="2020470" version_string="2.2.4"><![CDATA[<xf:if is="$extra.welcome">
	{{ phrase('welcome_to_boardtitle', {'boardTitle': $xf.options.boardTitle}) }}
</xf:if>
{{ phrase('pre_reg_content_could_not_be_automatically_submitted') }}]]></template>
  <template type="public" title="alert_user_profile_post_comment_delete" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('your_comment_on_xs_profile_post_was_deleted', {'user': '<a href="' . base_url($extra.profilePostLink) . '" class="fauxBlockLink-blockLink">' . $extra.postUser . '</a>'}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>]]></template>
  <template type="public" title="alert_user_profile_post_comment_edit" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('your_comment_on_xs_profile_post_was_edited', {'user': '<a href="' . base_url($extra.link) . '" class="fauxBlockLink-blockLink">' . $extra.postUser . '</a>'}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>]]></template>
  <template type="public" title="alert_user_profile_post_delete" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:if is="$extra.profileUserId == $xf.visitor.user_id">
	{{ phrase('your_status_update_was_deleted') }}
<xf:else />
	{{ phrase('your_profile_post_for_x_was_deleted', {'user': '<a href="' . base_url($extra.profileLink) . '" class="fauxBlockLink-blockLink">' . $extra.profileUser . '</a>'}) }}
</xf:if>
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>]]></template>
  <template type="public" title="alert_user_profile_post_edit" version_id="2000053" version_string="2.0.0 Release Candidate 3"><![CDATA[<xf:if is="$extra.profileUserId == $xf.visitor.user_id">
	{{ phrase('your_status_update_was_edited', {'link': base_url($extra.link)}) }}
<xf:else />
	{{ phrase('your_profile_post_on_xs_profile_was_edited', {'user': '<a href="' . base_url($extra.link) . '" class="fauxBlockLink-blockLink">' . $extra.profileUser . '</a>'}) }}
</xf:if>
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>]]></template>
  <template type="public" title="alert_user_report_rejected" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$extra.comment">
	{{ phrase('unfortunately_report_made_recently_rejected_comment_x', {'comment': $extra.comment, 'title': '<a href="' . $extra.link . '" class="fauxBlockLink-blockLink">' . $extra.title . '</a>'}) }}
<xf:else />
	{{ phrase('unfortunately_report_made_recently_rejected', {'title': '<a href="' . $extra.link . '" class="fauxBlockLink-blockLink">' . $extra.title . '</a>'}) }}
</xf:if>]]></template>
  <template type="public" title="alert_user_report_resolved" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$extra.comment">
	{{ phrase('report_that_you_made_recently_has_been_resolved_comment_x', {'comment': $extra.comment, 'title': '<a href="' . $extra.link . '" class="fauxBlockLink-blockLink">' . $extra.title . '</a>'}) }}
<xf:else />
	{{ phrase('report_that_you_made_recently_has_been_resolved', {'title': '<a href="' . $extra.link . '" class="fauxBlockLink-blockLink">' . $extra.title . '</a>'}) }}
</xf:if>]]></template>
  <template type="public" title="alert_user_thread_delete" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('your_thread_x_was_deleted', {
	'title': prefix('thread', $extra.prefix_id) . $extra.title
}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>]]></template>
  <template type="public" title="alert_user_thread_merge" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('your_thread_x_was_merged_into_y', {
	'title': $extra.title,
	'target': '<a href="' . base_url($extra.targetLink) . '" class="fauxBlockLink-blockLink">' . prefix('thread', $extra.prefix_id) . $extra.targetTitle . '</a>'
}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>]]></template>
  <template type="public" title="alert_user_thread_move" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('your_thread_x_was_moved_to_different_forum', {
	'title': '<a href="' . base_url($extra.link) . '" class="fauxBlockLink-blockLink">' . prefix('thread', $extra.prefix_id) . $extra.title . '</a>'
}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>]]></template>
  <template type="public" title="alert_user_upgrade_end" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('one_account_upgrades_expired_renew_now', {'link': link('account/upgrades')}) }}]]></template>
  <template type="public" title="alert_user_username_change_approved" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[{{ phrase('your_username_change_from_x_to_y_has_been_approved', {'oldUsername': $extra.oldUsername, 'newUsername': $extra.newUsername}) }}]]></template>
  <template type="public" title="alert_user_username_change_rejected" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[{{ phrase('your_username_change_to_x_has_been_rejected', {'rejectedUsername': $extra.rejectedUsername}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>]]></template>
  <template type="public" title="app.less" version_id="2030031" version_string="2.3.0 Beta 1"><![CDATA[@_nav-elTransitionSpeed: @xf-animationSpeed;
@_navAccount-hPadding: @xf-paddingLarge;

.u-anchorTarget
{
	.m-stickyHeaderConfig(@xf-publicNavSticky);
	height: (@_stickyHeader-height + @_stickyHeader-offset);
	margin-top: ((@_stickyHeader-height + @_stickyHeader-offset) * -1);
}

.u-pageCentered
{
	.m-pageWidth();
	.m-pageInset();
}

@supports (scroll-padding-top: 10px)
{
	html:not(.has-browser-safari)
	{
		.m-stickyHeaderConfig(@xf-publicNavSticky);
		scroll-padding-top: (@_stickyHeader-height + @_stickyHeader-offset);
	}

	html:not(.has-browser-safari) .u-anchorTarget
	{
		height: 0;
		margin-top: 0;
	}
}

.p-pageWrapper
{
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	.xf-pageBackground();
}

// RESPONSIVE HEADER

.p-offCanvasAccountLink
{
	display: none;
}

@media (max-width: 359px)
{
	.p-offCanvasAccountLink, .p-offCanvasRegisterLink
	{
		display: block;
	}
}

{{ include('app_staffbar.less') }}
{{ include('app_header.less') }}
{{ include('app_stickynav.less') }}
{{ include('app_nav.less') }}
{{ include('app_sectionlinks.less') }}
{{ include('app_body.less') }}
{{ include('app_breadcrumbs.less') }}
{{ include('app_title.less') }}
{{ include('app_footer.less') }}
{{ include('app_inlinemod.less') }}
{{ include('app_ignored.less') }}
{{ include('app_username_styles.less') }}
{{ include('app_user_banners.less') }}
{{ include('app_alerts.less') }}
{{ include('app_content_vote.less') }}]]></template>
  <template type="public" title="app_alerts.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[.alert
{
	&.is-unread
	{
		.xf-contentHighlightBase();
	}
}

.alertToggler
{
	text-decoration: none !important;
	padding: @xf-paddingMedium;
	margin-right: (@xf-paddingMedium * -1);

	.alert &
	{
		opacity: 0;
	}

	.alert:hover &,
	.has-touchevents &
	{
		opacity: 1;
	}
}

.alertToggler-icon
{
	& when (@xf-fontAwesomeWeight >= @faWeight-solid)
	{
		.m-faIcon(@fa-var-regular-circle, .75em);
	}
	& when (@xf-fontAwesomeWeight < @faWeight-solid)
	{
		.m-faIcon(@fa-var-circle, .75em);
	}

	.is-unread &
	{
		.m-faIcon(@fa-var-solid-circle, .75em);
	}
}]]></template>
  <template type="public" title="app_body.less" version_id="2030170" version_string="2.3.1"><![CDATA[// ######################################### MAIN BODY #################################

html.has-os-ios.has-displaymodestandalone
{
	// prevent overscroll entirely on iOS in display-mode: standalone
	overscroll-behavior-y: none !important;

	.iosRefresh-ptr
	{
		background-color: @xf-publicHeader--background-color;
	}

	.iosRefresh-text,
	.iosRefresh-icon .fa--xf
	{
		color: @xf-chromeTextColor;
	}
}

.p-body
{
	display: flex;
	align-items: stretch;
	flex-grow: 1;
	min-height: 1px; // IE11 workaround - related to #139187
}

.p-body-inner
{
	display: flex;
	flex-direction: column;
	width: 100%;

	.m-pageWidth();
	.m-pageInset();
	.m-clearFix();

	padding-top: (@xf-elementSpacer / 2);
	padding-bottom: @xf-elementSpacer;
}

.p-body-header
{
	margin-bottom: (@xf-elementSpacer / 2);
}

.p-body-main
{
	display: table;
	table-layout: fixed;
	width: 100%;
	margin-bottom: auto;
	min-height: 1px; // IE11 workaround - related to #139187
}

.p-body-content
{
	display: table-cell;
	vertical-align: top;

	.p-body-main--withSideNav &
	{
		padding-left: @xf-sidebarSpacer;
	}

	.p-body-main--withSidebar &
	{
		padding-right: @xf-sidebarSpacer;
	}

	.p-body-main--withSidebar &,
	.p-body-main--withSideNav &
	{
		// don't let the ad overflow the sidebar area -- this can happen due to how the Adsense JS works
		ins.adsbygoogle
		{
			// -10px gives a little buffer or helps account for no scrollbar being considered
			max-width: calc(~'100vw - 10px - @{xf-pageEdgeSpacer} - @{xf-pageEdgeSpacer} - @{xf-sidebarWidth} - @{xf-sidebarSpacer}');

			@media (min-width: @xf-pageWidthMax)
			{
				// window wider than the max width, so limit to the display area without the sidebar
				max-width: calc(~'@{xf-pageWidthMax} - @{xf-pageEdgeSpacer} - @{xf-pageEdgeSpacer} - @{xf-sidebarWidth} - @{xf-sidebarSpacer}');
			}

			@media (max-width: @xf-responsiveWide)
			{
				// sidebar/sidenav have been moved/hidden
				max-width: 100vw;
			}
		}
	}
}

.p-body-pageContent
{
	> .tabs--standalone:first-child
	{
		margin-bottom: @xf-elementSpacer / 2;
	}
}

.p-body-sideNav
{
	display: table-cell;
	vertical-align: top;
	width: @xf-sidebarWidth;
}

.p-body-sideNavTrigger
{
	display: none;
}

.p-body-sidebar
{
	display: table-cell;
	vertical-align: top;
	width: @xf-sidebarWidth;

	.contentRow-figure .avatar--m
	{
		// make these avatars a bit smaller in the sidebar so the content has more space
		.m-avatarSize((@avatar-m * 2 / 3));
	}
}

.p-body-sideNavCol,
.p-body-contentCol,
.p-body-sidebarCol
{
	display: table-column;
}

.p-body-sideNavCol,
.p-body-sidebarCol
{
	width: @xf-sidebarWidth;
}

.p-body-content,
.p-body-pageContent,
.p-body-sideNav,
.p-body-sideNavContent,
.p-body-sidebar
{
	> :first-child
	{
		margin-top: 0;
	}

	> :last-child
	{
		margin-bottom: 0;
	}
}

@media (max-width: @xf-responsiveWide)
{
	.p-body-sideNavCol,
	.p-body-contentCol,
	.p-body-sidebarCol
	{
		display: none;
		width: auto;
	}

	.p-body-main,
	.p-body-content
	{
		display: block;
	}

	.p-body-sideNav
	{
		display: block;
		width: auto;
	}

	.p-body-sideNavTrigger
	{
		margin-bottom: (@xf-elementSpacer / 2);
		text-align: center;

		.button:before
		{
			.m-faBase();
			font-size: 120%;
			vertical-align: middle;
			display: inline-block;
			margin: -4px 6px -4px 0;
			.m-faContent(@fa-var-bars); //, .88em
		}

		.has-js &
		{
			display: block;
		}
	}

	.has-js .p-body-sideNavInner:not(.offCanvasMenu)
	{
		display: none;

		.m-transitionFadeDown();
	}

	.has-no-js .p-body-sideNavInner
	{
		margin-bottom: @xf-elementSpacer;
	}

	.p-body-sidebar
	{
		display: flex;
		flex-wrap: wrap;
		align-items: stretch;
		margin: (@xf-elementSpacer) (-((@xf-pageEdgeSpacer) / 2)) (-(@xf-elementSpacer));
		width: auto;

		> *
		{
			margin: 0 (@xf-pageEdgeSpacer / 2) @xf-elementSpacer;
			min-width: @xf-sidebarWidth;
			flex: 1 1 @xf-sidebarWidth;

			&:last-child
			{
				margin-bottom: @xf-elementSpacer;
			}
		}

		// add an invisible block to ensure that the last row has the correct widths
		&:after
		{
			display: block;
			content: '';
			height: 0;
			margin: 0 (@xf-pageEdgeSpacer / 2);
			min-width: @xf-sidebarWidth;
			flex: 1 1 @xf-sidebarWidth;
		}

		.block-container
		{
			display: flex;
			flex-direction: column;
			height: 100%;

			.block-footer
			{
				margin-top: auto;
			}
		}
	}

	.p-body-main--withSideNav,
	.p-body-main--withSidebar
	{
		.p-body-content { padding: 0; }
	}
}

@media (max-width: @xf-responsiveEdgeSpacerRemoval)
{
	.p-body-sideNavContent
	{
		// this is likely to contain blocks that overflow the container so account for that
		margin: 0 (@xf-pageEdgeSpacer * -1);
		padding: 0 @xf-pageEdgeSpacer;

		.offCanvasMenu &
		{
			margin: 0;
			padding: 0;
		}
	}

	.p-body-sidebar
	{
		display: block;
		margin-left: 0;
		margin-right: 0;

		> *
		{
			margin-left: 0;
			margin-right: 0;
			min-width: 0;
		}
	}
}]]></template>
  <template type="public" title="app_breadcrumbs.less" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[.p-breadcrumbs
{
	.m-listPlain();
	.m-clearFix();

	margin-bottom: 5px;
	line-height: 1.5;

	&.p-breadcrumbs--bottom
	{
		margin-top: @xf-elementSpacer;
		margin-bottom: 0;
	}

	> li
	{
		float: left;
		font-size: @xf-fontSizeSmall;

		a
		{
			display: inline-block;
			vertical-align: bottom;
			max-width: 300px;
			.m-overflowEllipsis();
		}

		&:after,
		&:before
		{
			.m-faBase();
			font-size: 90%;
			color: @xf-textColorMuted;
		}

		&:after
		{
			.m-faContent(@fa-var-angle-right, false ltr); //, .5em
			.m-faContent(@fa-var-angle-left, false, rtl); //, .5em
		}

		&:last-child
		{
			a
			{
				font-weight: @xf-fontWeightHeavy;
			}
		}
	}
}

@media (max-width: @xf-responsiveMedium)
{
	.p-breadcrumbs > li a
	{
		max-width: 200px;
	}
}

@media (max-width: @xf-responsiveNarrow)
{
	.p-breadcrumbs
	{
		> li
		{
			display: none;
			font-size: @xf-fontSizeSmallest;

			&:last-child
			{
				display: block;
			}

			a
			{
				max-width: 90vw;
			}

			&:after
			{
				display: none;
			}

			&:before
			{
				.m-faContent(@fa-var-chevron-left, false, ltr);
				.m-faContent(@fa-var-chevron-right, false, rtl);
				margin-right: .5em;
			}
		}
	}
}]]></template>
  <template type="public" title="app_content_vote.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[@_contentVote-controlsWidth: 1.41em;
@_contentVote-padding: @xf-paddingMedium;

.contentVote
{
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: @_contentVote-controlsWidth;
	color: @xf-textColorMuted;
	font-size: @xf-fontSizeLargest;
}

.contentVote-vote
{
	color: inherit;
	text-decoration: none;
	line-height: 1;
	padding: @_contentVote-padding;
	.m-transition();

	&:hover
	{
		color: inherit;
		text-decoration: none;
	}

	&:before
	{
		.m-faBase();
	}

	&.is-disabled
	{
		opacity: 0.2;
		cursor: not-allowed;
	}

	.contentVote.is-voted &:not(.is-voted)
	{
		opacity: 0.5;
	}

	&.is-voted
	{
		.m-transform(scale(1.75));
	}

	&.contentVote-vote--up
	{
		&.is-voted
		{
			color: @xf-textColorAttention;
		}

		.m-faBefore(@fa-var-angle-up);
	}

	&.contentVote-vote--down
	{
		&.is-voted
		{
			color: @xf-textColorAttention;
		}

		.m-faBefore(@fa-var-angle-down);
	}
}

.contentVote-score
{
	direction: ltr;

	.message &:first-child
	{
		// if there's no upvote support, we want to maintain consistent padding
		padding-top: @_contentVote-padding;
	}

	.contentVote.is-voted &
	{
		color: @xf-textColorAttention;
	}
}

.contentVote-description
{
	font-size: @xf-fontSizeLarge;
}

.contentVote.contentVote--small
{
	font-size: @xf-fontSizeNormal;

	.contentVote-description
	{
		font-size: @xf-fontSizeSmaller;
	}
}

.contentVote.contentVote--placeholder
{
	.contentVote-score
	{
		line-height: 1;
	}
}

@media (max-width: @xf-messageSingleColumnWidth)
{
	.message
	{
		.contentVote
		{
			flex-direction: row;
			justify-content: center;
		}

		.contentVote-score
		{
			min-width: @_contentVote-controlsWidth;
			text-align: center;
			padding: 0 @_contentVote-padding;

			&:first-child
			{
				// override padding added here
				padding-top: 0;
			}
		}
	}

}]]></template>
  <template type="public" title="app_footer.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[.p-footer
{
	.xf-publicFooter();

	a
	{
		.xf-publicFooterLink();
	}
}

.p-footer-inner
{
	.m-pageWidth();
	.m-pageInset();

	padding-top: @xf-paddingMedium;
	padding-bottom: @xf-paddingLarge;
}

.p-footer-row
{
	.m-clearFix();

	margin-bottom: (@xf-paddingLarge * -1);
}

.p-footer-row-main
{
	float: left;
	margin-bottom: @xf-paddingLarge;
}

.p-footer-row-opposite
{
	float: right;
	margin-bottom: @xf-paddingLarge;
}

.p-footer-linkList
{
	.m-listPlain();
	.m-clearFix();

	> li
	{
		float: left;
		margin-right: .5em;

		&:last-child
		{
			margin-right: 0;
		}

		a
		{
			padding: 2px 4px;
			border-radius: @xf-borderRadiusSmall;

			&:hover
			{
				text-decoration: none;
				background-color: fade(@xf-publicFooterLink--color, 10%);
			}
		}
	}
}

.p-footer-rssLink
{
	> span
	{
		position: relative;
		top: -1px;

		display: inline-block;
		width: 1.44em;
		height: 1.44em;
		line-height: 1.44em;
		text-align: center;
		font-size: .8em;
		background-color: #FFA500;
		border-radius: 2px;
	}

	.fa-rss
	{
		color: white;
	}
}

.p-footer-copyright
{
	margin-top: @xf-elementSpacer;
	text-align: center;
	font-size: @xf-fontSizeSmallest;
}

.p-footer-debug
{
	margin-top: @xf-paddingLarge;
	text-align: right;
	font-size: @xf-fontSizeSmallest;

	.pairs > dt { color: inherit; }
}

@media (max-width: @xf-responsiveMedium)
{
	.p-footer-row-main,
	.p-footer-row-opposite
	{
		float: none;
	}

	.p-footer-copyright
	{
		text-align: left;
		padding: 0 4px; // aligns with other links
	}
}]]></template>
  <template type="public" title="app_header.less" version_id="2020034" version_string="2.2.0 Beta 4"><![CDATA[// MAIN HEADER ROW

.p-header
{
	.xf-publicHeader();

	a
	{
		color: inherit;
	}
}

.p-header-inner
{
	.m-pageWidth();
	.m-pageInset();
}

.p-header-content
{
	padding: @xf-paddingMedium 0;

	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	max-width: 100%;
}

.p-header-logo
{
	vertical-align: middle;
	margin-right: auto;

	a
	{
		color: inherit;
		text-decoration: none;
	}

	&.p-header-logo--text
	{
		font-size: @xf-fontSizeLargest;
	}

	&.p-header-logo--image
	{
		img
		{
			vertical-align: bottom;
			max-width: 100%;
			
			// Note: this is XF template syntax, not LESS
			{{ !property('publicLogoHeight') ? 'max-height: 200px;' : ''}}

			&[src$="/xenforo-logo.svg"]
			{
				height: 36px;
			}
		}
	}
}

@media (max-width: @xf-publicNavCollapseWidth)
{
	.has-js .p-header
	{
		display: none;
	}
}

@media (max-width: @xf-responsiveNarrow)
{
	.p-header-logo
	{
		max-width: 100px;

		&.p-header-logo--text
		{
			font-size: @xf-fontSizeLarge;
			font-weight: @xf-fontWeightNormal;
			.m-overflowEllipsis();
		}
	}
}
]]></template>
  <template type="public" title="app_ignored.less" version_id="2000033" version_string="2.0.0 Beta 3"><![CDATA[// ################## IGNORED USERS / CONTENT ##########################

.is-ignored
{
	display: none !important;
}

.showIgnoredLink
{
	&.is-hidden
	{
		display: none !important;
	}
}

.block-outer .showIgnoredLink,
.showIgnoredLink.showIgnoredLink--subtle
{
	font-size: @xf-fontSizeSmall;
	color: @xf-textColorMuted;

	&:hover
	{
		color: @xf-textColorDimmed;
	}
}]]></template>
  <template type="public" title="app_inlinemod.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[// #################################### INLINE MOD BUTTON ################

.inlineModButton
{
	display: inline-block;
	position: relative;

	i:before
	{
		display: inline-block;
		.m-faBase();
		.m-faContent(@fa-var-check-square, 1em); //, .88em
		vertical-align: baseline;
		font-size: 1.2em;
		margin: -.2em 0;
		line-height: 1;
	}

	&.inlineModButton--noIcon i
	{
		display: none;
	}

	&.is-mod-active
	{
		color: @xf-textColorAttention;

		.inlineModButton-count
		{
			display: inline;
		}
	}

	&:not(.inlineModButton--withLabel)
	{
		.inlineModButton-label
		{
			.m-visuallyHidden();
		}
	}
}

.inlineModButton-count
{
	display: none;
	position: absolute;
	top: -3px;
	left: -6px;
	.xf-contentAccentBase();
	border: @xf-borderSize solid @xf-borderColorAccentContent;
	border-radius: @xf-borderRadiusSmall;
	padding: 1px 2px;
	font-size: 9px;
	line-height: 1;

	.inlineModButton--noIcon &
	{
		position: static;
		font-size: 80%;
		padding-top: 0;
		padding-bottom: 0;
	}
}

// #################################### INLINE MOD BAR ################

.inlineModBar
{
	.xf-inlineModBar();
	.m-transitionFadeDown();
	.m-clearFix();

	.input,
	.button
	{
		padding-top: @xf-paddingSmall;
		padding-bottom: @xf-paddingSmall;
	}

	&.is-active:first-of-type
	{
		.m-dropShadow(0, 0, 8px, 3px, 0.3);
	}
}

.inlineModBar-inner
{
	.m-pageWidth();
	.m-pageInset();

	display: flex;
	align-items: center;
}

.inlineModBar-controls
{
	.m-listPlain();
	margin-right: auto;

	display: flex;
	align-items: center;
	flex-wrap: wrap;
	min-height: 35px;
	max-width: 100%;

	> li
	{
		float: left;
		display: inline-block;
		margin-right: 1em;

		&:last-child
		{
			margin-right: 0;
		}
	}
}

.inlineModBar-close
{
	float: right;
	margin-left: 1em;
	order: 2;
}

.inlineModBar-title
{
	font-weight: @xf-fontWeightHeavy;
}

.button.inlineModBar-goButton
{
	font-size: @xf-fontSizeNormal;
	line-height: @xf-lineHeightDefault;
	min-width: 0;
}

.inlineModBarCover
{
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: -1;
	cursor: pointer;
}]]></template>
  <template type="public" title="app_nav.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[// navEl / Navigation Elements for header navigation

.p-navEl
{
	.m-clearFix();
}

.p-navEl-linkHolder
{
	float: left;
}

.p-navEl-link
{
	float: left;
	.m-transition(opacity, background; @_nav-elTransitionSpeed);

	&.p-navEl-link--menuTrigger
	{
		cursor: pointer;

		&:after
		{
			.m-menuGadget(); // .58em
			opacity: .5;
			.m-transition(opacity; @_nav-elTransitionSpeed);
		}

		&:hover:after
		{
			opacity: 1;
		}
	}
}

.p-navEl-splitTrigger
{
	float: left;
	opacity: .5;
	cursor: pointer;
	text-decoration: none;
	.m-transition(all; @_nav-elTransitionSpeed);

	&:after
	{
		.m-menuGadget(); // .58em
		line-height: 1;
	}

	&:hover
	{
		opacity: 1;
		text-decoration: none;
	}
}

// HEADER NAV ROW

.p-nav
{
	.xf-publicNav();

	a
	{
		color: inherit;
	}

	.p-navSticky.is-sticky &
	{
		.p-nav-list .p-navEl.is-selected,
		.p-account
		{
			border-radius: 0;
		}
	}
}

.p-nav-inner
{
	.m-pageWidth();
	.m-pageInset(0px);
	.m-clearFix();
	display: flex;
	align-items: flex-end;
}



.p-nav .p-nav-menuTrigger
{
	display: none;
	vertical-align: middle;
	align-self: center;
	margin-left: max(0px, (@xf-pageEdgeSpacer - 6px));
	margin-right: 5px;
	padding: @xf-publicNavPaddingV 8px;
	color: inherit;

	&:hover
	{
		text-decoration: none;
	}

	i:after
	{
		.m-faBase();
		font-size: @xf-fontSizeLargest;
		.m-faContent(@fa-var-bars); //, .88em
		vertical-align: bottom;
	}

	.p-nav-menuText
	{
		display: none;
	}
}

.p-nav-smallLogo
{
	display: none;
	max-width: 100px;
	align-self: center;

	img
	{
		display: block;
		max-height: @header-navHeight;

		&:not([src$=".svg"])
		{
			width: auto;
		}
	}
}

.p-nav-scroller
{
	margin-right: auto;
	max-width: 100%;

	.hScroller-scroll:not(.is-calculated)
	{
		// IE11 seems to want to flash a vertical scrollbar without this here
		overflow: hidden;
	}

	.hScroller-action
	{
		.m-hScrollerActionColorVariation(
			xf-default(@xf-publicNav--background-color, transparent),
			xf-default(@xf-publicNav--color, ~""),
			xf-intensify(@xf-publicNav--color, 10%)
		);
	}
}

.p-nav-list
{
	.m-listPlain();
	.m-clearFix();

	font-size: 0;

	// this applies padding that will be contained within the scroller.
	// it needs font-size 0 to not create extra space though
	&:before,
	&:after
	{
		display: inline-block;
		width: @xf-pageEdgeSpacer;
		content: '';
	}

	> li
	{
		display: inline-block;
		vertical-align: bottom;
		font-size: @xf-fontSizeNormal;

		&:first-child
		{
			margin-left: 0;
		}
	}

	.m-navElHPadding(@xf-publicNavPaddingH);

	.p-navEl
	{
		.xf-publicNavTab();
		.m-transition(all; @_nav-elTransitionSpeed);

		&.is-selected
		{
			.xf-publicNavSelected();

			.p-navEl-link
			{
				padding-right: @xf-publicNavPaddingH; // since the split trigger is hidden

				&:hover
				{
					background: none;
					text-decoration: none;
				}
			}

			.p-navEl-splitTrigger
			{
				display: none;
			}
		}

		&:not(.is-selected):not(.is-menuOpen)
		{
			&:hover,
			.p-navEl-link:hover,
			.p-navEl-splitTrigger:hover
			{
				.xf-publicNavTabHover();
			}
		}

		&.is-menuOpen
		{
			.xf-publicNavTabMenuOpen();

			border-top-left-radius: xf-default(@xf-publicNavSelected--border-top-left-radius, 0);
			border-top-right-radius: xf-default(@xf-publicNavSelected--border-top-right-radius, 0);

			.m-dropShadow(0, 5px, 10px, 0, .35);

			a
			{
				text-decoration: none;
				opacity: 1;
			}
		}
	}

	.p-navEl-link,
	.p-navEl-splitTrigger
	{
		padding-top: @xf-publicNavPaddingV;
		padding-bottom: @xf-publicNavPaddingV;
	}
}

.p-navSticky--primary.is-sticky
{
	.p-nav-list
	{
		.p-navEl-link.p-navEl-link--splitMenu
		{
			padding-right: (@xf-publicNavPaddingH / 4);
		}

		.p-navEl.is-selected .p-navEl-splitTrigger
		{
			display: inline;
			position: relative;

			&:before
			{
				content: '';
				position: absolute;
				left: 0;
				top: 5px;
				bottom: 5px;
				width: 0;
				border-left: @xf-borderSize solid fade(xf-default(@xf-publicNavSelected--color, transparent), 35%);
			}
		}
	}
}

@media (max-width: @xf-publicNavCollapseWidth)
{
	.has-js
	{
		.p-nav-inner
		{
			min-height: 45px;
		}

		.p-nav .p-nav-menuTrigger
		{
			display: inline-block;
		}

		.p-nav-smallLogo
		{
			display: inline-block;
		}

		.p-nav-scroller
		{
			display: none;
		}
	}
}

// ACCOUNT/VISITOR/SEARCH SECTION

.p-nav-opposite
{
	margin-left: auto;
	margin-right: @xf-pageEdgeSpacer;
	text-align: right;
	flex-shrink: 0;
}

.p-navgroup
{
	float: left;
	.m-clearFix();
	background: @xf-publicHeaderAdjustColor;
	border-top-left-radius: @xf-borderRadiusMedium;
	border-top-right-radius: @xf-borderRadiusMedium;

	&.p-discovery
	{
		margin-left: .5em;

		&.p-discovery--noSearch
		{
			margin-left: 0;
		}
	}
}

.p-navgroup-link
{
	float: left;
	padding: @xf-publicNavPaddingV @_navAccount-hPadding;
	border-left: 1px solid @xf-publicHeaderAdjustColor;

	&:first-of-type
	{
		border-top-left-radius: @xf-borderRadiusMedium;
		border-left: none;
	}

	&:last-of-type
	{
		border-top-right-radius: @xf-borderRadiusMedium;
	}

	&:hover
	{
		text-decoration: none;
		background: xf-intensify(@xf-publicHeaderAdjustColor, 5%);
	}

	&.p-navgroup-link--user
	{
		.m-overflowEllipsis();
		max-width: 150px;

		.avatar
		{
			.m-avatarSize((@xf-fontSizeNormal * @xf-lineHeightDefault));
		}
	}

	&.badgeContainer
	{
		opacity: .6;
		position: relative;

		&:after
		{
			position: absolute;
			left: (@_navAccount-hPadding - 6px);
			top: (@xf-publicNavPaddingV - 2px);
			padding: 1px 3px;
			margin: 0;
			font-size: 10px;
			line-height: 11px;
		}

		&:hover,
		&.badgeContainer--highlighted
		{
			opacity: 1;
		}
	}

	&.is-menuOpen
	{
		.xf-publicNavTabMenuOpen();
		.m-dropShadow(0, 5px, 10px, 0, .35);
		opacity: 1;
	}

	&.p-navgroup-link--iconic
	{
		i:after
		{
			.m-faBase();
			display: inline-block;
			min-width: 1.2em;
			text-align: center;
		}
	}

	&.p-navgroup-link--conversations i:after
	{
		.m-faContent(@fa-var-envelope, 1em);
	}

	&.p-navgroup-link--alerts i:after
	{
		.m-faContent(@fa-var-bell); //, .88em
	}

	&.p-navgroup-link--bookmarks i:after
	{
		.m-faContent(@fa-var-bookmark); //, .75em
	}

	&.p-navgroup-link--whatsnew i:after
	{
		.m-faContent(@fa-var-bolt); //, .63em
	}

	&.p-navgroup-link--search i:after
	{
		.m-faContent(@fa-var-search); //, 1em
	}
}

.p-navgroup-link--whatsnew
{
	display: none;

	.p-navgroup-link:first-of-type& + .p-navgroup-link
	{
		border-top-left-radius: @xf-borderRadiusMedium;
		border-left: none;
	}
}

@media (max-width: @xf-responsiveWide)
{
	.p-navgroup-link
	{
		&.p-navgroup-link--iconic .p-navgroup-linkText,
		&.p-navgroup-link--textual i
		{
			display: none;
		}

		&.p-navgroup-link--textual
		{
			.m-overflowEllipsis();
			max-width: 110px;
		}

		&.p-navgroup-link--iconic i:after
		{
			text-align: center;
		}
	}
}

@media (max-width: @xf-publicNavCollapseWidth)
{
	.p-navgroup-link--whatsnew
	{
		display: block;
	}

	.has-js
	{
		.p-nav-opposite
		{
			align-self: center;
			margin-right: max(0px, (@xf-pageEdgeSpacer - 6px));

			.p-navgroup
			{
				background: none;
				margin-left: 0;
			}

			.p-navgroup-link
			{
				border: none;
				border-radius: @xf-borderRadiusMedium;

				&.is-menuOpen
				{
					.m-borderBottomRadius(0);
				}

				&.badgeContainer
				{
					opacity: 1;
				}
			}
		}
	}
}

@media (max-width: 359px)
{
	.p-navgroup-link&.p-navgroup-link--user
	{
		display: none;
	}
}

@media (max-width: 374px)
{
	.p-navgroup-link.p-navgroup-link--register
	{
		display: none;
	}
}]]></template>
  <template type="public" title="app_prepend.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[.m-pageWidth(@min-width: @xf-pageEdgeSpacer)
{
	max-width: @xf-pageWidthMax;
	padding: 0 @xf-pageEdgeSpacer;
	margin: 0 auto;
}

.m-pageInset(@defaultPadding: @xf-pageEdgeSpacer)
{
	padding-left: @defaultPadding;
	padding-right: @defaultPadding;

	// iPhone X/Xr/Xs support
	@supports(padding: max(0px))
	{
		&
		{
			padding-left: ~"max(@{defaultPadding}, env(safe-area-inset-left))";
			padding-right: ~"max(@{defaultPadding}, env(safe-area-inset-right))";
		}
	}
}

.m-navElHPadding(@padding)
{
	.p-navEl-link
	{
		padding: 0 @padding;

		&.p-navEl-link--splitMenu
		{
			padding-right: (@padding / 8);
		}

		&.p-navEl-link--menuTrigger
		{
			padding-right: (@padding / 3); // equal to splitTrigger padding-right

			&:after
			{
				padding-left: (@padding / 4 + @padding / 3); // equal to splitMenu padding-right + splitTrigger padding-left
			}
		}
	}

	.p-navEl-splitTrigger
	{
		padding: 0 (@padding / 3);
	}
}]]></template>
  <template type="public" title="app_sectionlinks.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[// SUB SECTION LINKS

.p-sectionLinks
{
	.xf-publicSubNav();

	.hScroller-action
	{
		.m-hScrollerActionColorVariation(
			xf-default(@xf-publicSubNav--background-color, transparent),
			xf-default(@xf-publicSubNav--color, ~""),
			xf-default(@xf-publicSubNavElHover--color, ~"")
		);
	}

	&.p-sectionLinks--empty
	{
		height: 10px;
	}
}

.p-sectionLinks-inner
{
	.m-clearFix();
	.m-pageWidth();

	@defaultPadding:  max(0px, (@xf-pageEdgeSpacer - @xf-publicSubNavPaddingH));
	.m-pageInset(@defaultPadding);
}

.p-sectionLinks-list
{
	.m-listPlain();

	font-size: 0;

	a
	{
		color: inherit;
	}

	> li
	{
		display: inline-block;
	}

	.m-navElHPadding(@xf-publicSubNavPaddingH);

	.p-navEl
	{
		font-size: @xf-publicSubNav--font-size;

		&:hover
		{
			.xf-publicSubNavElHover();

			a
			{
				text-decoration: @xf-publicSubNavElHover--text-decoration;
			}
		}

		&.is-menuOpen
		{
			.xf-publicSubNavElMenuOpen();
			.m-borderBottomRadius(0);
			.m-dropShadow(0, 5px, 10px, 0, .35);
		}
	}

	.p-navEl-link,
	.p-navEl-splitTrigger
	{
		padding-top: @xf-publicSubNavPaddingV;
		padding-bottom: @xf-publicSubNavPaddingV;
	}
}

@media (max-width: @xf-publicNavCollapseWidth)
{
	.has-js .p-sectionLinks
	{
		display: none;
	}
}]]></template>
  <template type="public" title="app_staffbar.less" version_id="2010131" version_string="2.1.1 Beta 1"><![CDATA[// ######################################### STAFF BAR #################################

.p-staffBar
{
	.xf-publicStaffBar();

	a { color: inherit;	}

	.hScroller-action
	{
		.m-hScrollerActionColorVariation(
			xf-default(@xf-publicStaffBar--background-color, transparent),
			xf-default(@xf-publicStaffBar--color, ~""),
			xf-intensify(@xf-publicStaffBar--color, 10%)
		);
	}
}

.p-staffBar-inner
{
	.m-pageWidth();
	.m-pageInset();
	.m-clearFix();

	padding-top: 4px;
	padding-bottom: 4px;
}

.p-staffBar-link
{
	display: inline-block;
	vertical-align: top;
	color: inherit;
	padding: 4px @xf-paddingMedium;
	margin-right: .35em;

	&:last-child
	{
		margin-right: 0;
	}

	&:hover
	{
		text-decoration: none;
		background: xf-diminish(@xf-publicStaffBar--background-color, 6%);
		border-radius: @xf-borderRadiusSmall;
	}
}]]></template>
  <template type="public" title="app_stickynav.less" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[// STICKY NAV SETUP

.p-navSticky
{
	z-index: @zIndex-1;

	&.is-sticky
	{
		z-index: @zIndex-4;
		.m-dropShadow(0, 0, 8px, 3px, 0.3);
	}

	@supports (position: sticky) or (position: -webkit-sticky)
	{
		&
		{
			position: -webkit-sticky;
			position: sticky;
			top: 0;

			&.is-sticky-broken,
			&.is-sticky-disabled
			{
				position: static;
				top: auto;
			}
		}
	}
}]]></template>
  <template type="public" title="app_title.less" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[.p-title
{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	max-width: 100%;
	margin-bottom: -5px;

	&.p-title--noH1
	{
		flex-direction: row-reverse;
	}
}

.p-title-value
{
	padding: 0;
	margin: 0 0 5px 0;
	font-size: @xf-fontSizeLargest;
	font-weight: @xf-fontWeightNormal;
	min-width: 0;
	margin-right: auto;
}

.p-title-pageAction
{
	margin-bottom: 5px;
}

.p-description
{
	margin: 5px 0 0;
	padding: 0;
	font-size: @xf-fontSizeSmall;
	color: @xf-textColorMuted;
}

@media (max-width: @xf-responsiveNarrow)
{
	.p-title-value
	{
		font-size: @xf-fontSizeLarger;
	}
}]]></template>
  <template type="public" title="app_user_banners.less" version_id="2000034" version_string="2.0.0 Beta 4"><![CDATA[.m-userBannerVariation(@color; @bg; @border: false)
{
	color: @color;
	background: @bg;
	border-color: xf-intensify(@bg, 10%);

	& when (iscolor(@border))
	{
		border-color: @border;
	}
}

.userBanner
{
	font-size: 75%;
	font-weight: @xf-fontWeightNormal;
	font-style: normal;
	padding: 1px @xf-paddingMedium;
	border: 1px solid transparent;
	border-radius: @xf-borderRadiusSmall;
	text-align: center;
	display: inline-block;

	strong
	{
		font-weight: inherit;
	}

	// variations
	&.userBanner--hidden
	{
		background: none;
		border: none;
		box-shadow: none;
	}

	&.userBanner--staff,
	&.userBanner--primary
	{
		.m-userBannerVariation(@xf-linkColor, @xf-contentHighlightBg, @xf-borderColorHighlight);
	}

	&.userBanner--accent
	{
		.m-userBannerVariation(@xf-textColorAccentContent, @xf-contentAccentBg, @xf-borderColorAccentContent);
	}

	&.userBanner--red { .m-userBannerVariation(white, #d80000); }
	&.userBanner--green { .m-userBannerVariation(white, green); }
	&.userBanner--olive { .m-userBannerVariation(white, olive); }
	&.userBanner--lightGreen { .m-userBannerVariation(black, #ccf9c8, #bee8ba); }
	&.userBanner--blue { .m-userBannerVariation(white, #0008e3); }
	&.userBanner--royalBlue { .m-userBannerVariation(white, royalblue); }
	&.userBanner--skyBlue { .m-userBannerVariation(white, #7cc3e0); }
	&.userBanner--gray { .m-userBannerVariation(white, gray); }
	&.userBanner--silver { .m-userBannerVariation(black, silver); }
	&.userBanner--yellow { .m-userBannerVariation(black, #ffff91, #e6e687); }
	&.userBanner--orange { .m-userBannerVariation(black, #ffcb00); }
}]]></template>
  <template type="public" title="app_username_styles.less" version_id="2020033" version_string="2.2.0 Beta 3"><![CDATA[.username--invisible
{
	color: @xf-textColorMuted;
}

.username--banned
{
	text-decoration: line-through;
}

<xf:foreach loop="$displayStyles" key="$id" value="$style" if="$style.username_css">
	.username--style{$id}
	{
		{$style.username_css|raw}
	}
</xf:foreach>]]></template>
  <template type="public" title="approval_item_post" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="approval_queue_macros::item_message_type"
	arg-content="{$content}"
	arg-user="{$content.User}"
	arg-messageHtml="{{ bb_code($content.message, 'post', $content) }}"
	arg-typePhraseHtml="{{ phrase('post_noun') }}"
	arg-spamDetails="{$spamDetails}"
	arg-unapprovedItem="{$unapprovedItem}"
	arg-handler="{$handler}"
	arg-headerPhraseHtml="{{ phrase('posted_in_thread_x_in_forum_y', {
		'postLink': link('posts', $content),
		'threadTitle': $content.Thread.title,
		'forumLink': link('forums', $content.Thread.Forum),
		'forumTitle': $content.Thread.Forum.title
	}) }}" />
]]></template>
  <template type="public" title="approval_item_profile_post" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="approval_queue_macros::item_message_type"
	arg-content="{$content}"
	arg-user="{$content.User}"
	arg-messageHtml="{{ bb_code($content.message, 'profile_post', $content) }}"
	arg-typePhraseHtml="{{ phrase('profile_post') }}"
	arg-spamDetails="{$spamDetails}"
	arg-unapprovedItem="{$unapprovedItem}"
	arg-handler="{$handler}"
	arg-headerPhraseHtml="{{ phrase('posted_on_profile_x', {
		'profilePostLink': link('profile-posts', $content),
		'user': $content.ProfileUser.username
	}) }}"/>]]></template>
  <template type="public" title="approval_item_profile_post_comment" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="approval_queue_macros::item_message_type"
	arg-content="{$content}"
	arg-contentDate="{$content.comment_date}"
	arg-user="{$content.User}"
	arg-messageHtml="{{ bb_code($content.message, 'profile_post_comment', $content) }}"
	arg-typePhraseHtml="{{ phrase('profile_post_comment') }}"
	arg-spamDetails="{$spamDetails}"
	arg-unapprovedItem="{$unapprovedItem}"
	arg-handler="{$handler}"
	arg-headerPhraseHtml="{{ phrase('posted_on_profile_post_by_x', {
		'commentLink': link('profile-posts/comments', $content),
		'user': $content.ProfilePost.username})
	}}"/>]]></template>
  <template type="public" title="approval_item_thread" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:set var="$messageHtml">
	<h4 class="message-title"><a href="{{ link('threads', $content) }}">{$content.title}</a></h4>
	{{ bb_code($content.FirstPost.message, 'post', $content.FirstPost) }}
</xf:set>

<xf:macro id="approval_queue_macros::item_message_type"
	arg-content="{$content}"
	arg-user="{$content.User}"
	arg-messageHtml="{$messageHtml}"
	arg-typePhraseHtml="{{ phrase('thread') }}"
	arg-spamDetails="{$spamDetails}"
	arg-unapprovedItem="{$unapprovedItem}"
	arg-handler="{$handler}"
	arg-headerPhraseHtml="{{ phrase('thread_x_posted_in_forum_y', {
		'threadLink': link('threads', $content),
		'threadTitle': $content.title,
		'forumLink': link('forums', $content.Forum),
		'forumTitle': $content.Forum.title
	}) }}"/>]]></template>
  <template type="public" title="approval_item_user" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:set var="$userIp" value="{{ $user.getIp('register') }}" />
<xf:set var="$headerPhraseHtml"><xf:trim>
	<xf:if is="$xf.visitor.canViewIps() AND $userIp">
		<a href="{{ link('misc/ip-info', null, {'ip': $userIp|ip}) }}" target="_blank">{$userIp|ip}</a>
	</xf:if>
	<xf:if is="$xf.visitor.canBypassUserPrivacy() AND $user.email">
		{$user.email|email_display}
	</xf:if>
</xf:trim></xf:set>

<xf:set var="$messageHtml"><xf:trim>

	<xf:macro id="custom_fields_macros::custom_fields_view"
		arg-type="users" arg-group="{{ null }}"
		arg-set="{$user.Profile.custom_fields}"
		arg-additionalFilters="{{ ['registration'] }}" />

	<xf:if is="$preRegAction AND $preRegHandler">
		{$preRegHandler.renderApprovalQueueInfo($preRegAction)|raw}
	</xf:if>

	<xf:if is="$changesGrouped">
		<br />
		<xf:datalist data-xf-init="responsive-data-list" class="dataList--separated">
			<thead>
			<xf:datarow rowtype="subSection">
				<xf:cell colspan="3">{{ phrase('change_log') }}</xf:cell>
			</xf:datarow>
			<xf:datarow rowtype="header">
				<xf:cell>{{ phrase('field_name') }}</xf:cell>
				<xf:cell>{{ phrase('old_value') }}</xf:cell>
				<xf:cell>{{ phrase('new_value') }}</xf:cell>
			</xf:datarow>
			</thead>
			<xf:foreach loop="$changesGrouped" value="$group">
				<tbody class="dataList-rowGroup">
				<xf:foreach loop="$group.changes" value="$change">
					<xf:datarow>
						<xf:cell>{$change.label}</xf:cell>
						<xf:cell>{$change.old}</xf:cell>
						<xf:cell>{$change.new}</xf:cell>
					</xf:datarow>
				</xf:foreach>
				</tbody>
			</xf:foreach>
		</xf:datalist>
	</xf:if>

</xf:trim></xf:set>

<xf:set var="$actionsHtml">

	<xf:radio name="queue[{$unapprovedItem.content_type}][{$unapprovedItem.content_id}]">

		<xf:option value="" checked="checked" label="{{ phrase('do_nothing') }}" data-xf-click="approval-control" />
		<xf:option value="approve" label="{{ phrase('approve') }}" data-xf-click="approval-control" />
		<xf:if is="$xf.visitor.canCleanSpam() AND $unapprovedItem.Content.isPossibleSpammer()">
			<xf:option value="spam_clean" label="{{ phrase('spam_clean') }}" data-xf-click="approval-control" />
		</xf:if>
		<xf:option value="reject" label="{{ phrase('reject_with_reason:') }}"
			title="{{ phrase('rejected_users_will_not_be_deleted_user_state_will_be_set_to_rejected') }}"
			data-xf-init="tooltip"
			data-xf-click="approval-control">
			<xf:textbox name="reason[{$unapprovedItem.content_type}][{$unapprovedItem.content_id}]"
				maxlength="{{ max_length('XF:UserReject', 'reject_reason') }}"
				placeholder="{{ phrase('optional') }}" />
			<xf:html>
				<div class="formRow-explain">{{ phrase('this_will_be_shown_to_user_if_provided') }}</div>
			</xf:html>
		</xf:option>
	</xf:radio>

	<xf:checkbox>
		<xf:option name="notify[{$unapprovedItem.content_type}][{$unapprovedItem.content_id}]" value="1" checked="{{ !$spamDetails }}">
			{{ phrase('notify_user_if_action_was_taken') }}
		</xf:option>
	</xf:checkbox>

</xf:set>

<xf:macro id="approval_queue_macros::item_message_type"
	arg-content="{$content}"
	arg-contentDate="{$user.register_date}"
	arg-user="{$user}"
	arg-messageHtml="{$messageHtml}"
	arg-typePhraseHtml="{{ phrase('user') }}"
	arg-actionsHtml="{$actionsHtml}"
	arg-spamDetails="{$spamDetails}"
	arg-headerPhraseHtml="{$headerPhraseHtml}"/>]]></template>
  <template type="public" title="approval_item_username_change" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:set var="$messageHtml"><xf:trim>

	<div class="pairWrapper pairWrapper--spaced">
		<dl class="pairs pairs--columns pairs--fixedSmall">
			<dt>{{ phrase('current_username') }}</dt>
			<dd>{$content.old_username}</dd>
		</dl>

		<dl class="pairs pairs--columns pairs--fixedSmall">
			<dt>{{ phrase('new_username') }}</dt>
			<dd>{$content.new_username}</dd>
		</dl>

		<dl class="pairs pairs--columns pairs--fixedSmall">
			<dt>{{ phrase('change_reason') }}</dt>
			<dd>{$content.change_reason|nl2br}</dd>
		</dl>
	</div>

	<xf:if is="$previousChanges is not empty">
		<br />

		<xf:datalist data-xf-init="responsive-data-list" class="dataList--separated">
			<thead>
			<xf:datarow rowtype="subSection">
				<xf:cell colspan="4">{{ phrase('username_change_log') }}</xf:cell>
			</xf:datarow>
			<xf:datarow rowtype="header">
				<xf:cell>{{ phrase('old_username') }}</xf:cell>
				<xf:cell>{{ phrase('new_username') }}</xf:cell>
				<xf:cell>{{ phrase('change_state') }}</xf:cell>
				<xf:cell>{{ phrase('date') }}</xf:cell>
			</xf:datarow>
			</thead>
			<tbody class="dataList-rowGroup">
			<xf:foreach loop="$previousChanges" value="$change">
				<xf:datarow rowclass="dataList-row--noHover">
					<xf:cell class="{{ $change.visible ? '' : 'dataList-cell--alt' }}">
						{$change.old_username}
					</xf:cell>
					<xf:cell class="{{ $change.visible ? '' : 'dataList-cell--alt' }}">
						{$change.new_username}
						<xf:if is="$change.change_reason">
							<a role="button"
									tabindex="0"
									data-xf-init="tooltip"
									data-trigger="hover focus click"
									title="{{ phrase('change_reason:') }} {$change.change_reason}"><xf:trim>
									<xf:fa icon="fa-info-circle" />
								</xf:trim></a>
						</xf:if>
					</xf:cell>
					<xf:cell class="{{ $change.visible ? '' : 'dataList-cell--alt' }}">
						<xf:if is="$change.change_state == 'approved'">
							{{ phrase('approved') }}
						<xf:elseif is="$change.change_state == 'moderated'" />
							{{ phrase('awaiting_approval') }}
						<xf:elseif is="$change.change_state == 'rejected'" />
							{{ phrase('rejected') }}
							<xf:if is="$change.reject_reason">
								<a role="button"
									tabindex="0"
									data-xf-init="tooltip"
									data-trigger="hover focus click"
									title="{{ phrase('reason:') }} {$change.reject_reason}"><xf:trim>
									<xf:fa icon="fa-info-circle" />
								</xf:trim></a>
							</xf:if>
						</xf:if>
					</xf:cell>
					<xf:cell class="{{ $change.visible ? '' : 'dataList-cell--alt' }}">
						<xf:date time="{$change.change_date}" />
					</xf:cell>
				</xf:datarow>
			</xf:foreach>
			</tbody>
		</xf:datalist>
	</xf:if>

</xf:trim></xf:set>

<xf:set var="$actionsHtml">

	<xf:radio name="queue[{$unapprovedItem.content_type}][{$unapprovedItem.content_id}]">

		<xf:option value="" checked="checked" label="{{ phrase('do_nothing') }}" data-xf-click="approval-control" />
		<xf:option value="approve" label="{{ phrase('approve') }}" data-xf-click="approval-control" />
		<xf:option value="reject" label="{{ phrase('reject_with_reason:') }}" data-xf-click="approval-control">
			<xf:textbox name="reason[{$unapprovedItem.content_type}][{$unapprovedItem.content_id}]"
				maxlength="100"
				placeholder="{{ phrase('optional') }}" />
			<xf:html>
				<div class="formRow-explain">{{ phrase('this_will_be_shown_to_user_if_provided') }}</div>
			</xf:html>
		</xf:option>
	</xf:radio>

	<xf:checkbox>
		<xf:option name="notify[{$unapprovedItem.content_type}][{$unapprovedItem.content_id}]" value="1" checked="{{ true }}">
			{{ phrase('notify_user_if_action_was_taken') }}
		</xf:option>
	</xf:checkbox>

</xf:set>

<xf:macro id="approval_queue_macros::item_message_type"
	arg-content="{$content}"
	arg-contentDate="{$content.change_date}"
	arg-user="{$content.User}"
	arg-messageHtml="{$messageHtml}"
	arg-typePhraseHtml="{{ phrase('username_change') }}"
	arg-actionsHtml="{$actionsHtml}" />]]></template>
  <template type="public" title="approval_queue" version_id="2010033" version_string="2.1.0 Beta 3"><![CDATA[<xf:title>{{ phrase('approval_queue') }}</xf:title>

<xf:css src="approval_queue.less" />
<xf:js src="xf/approval_queue.js" />

<xf:set var="$sortOrders" value="{{ {
	'content_date': phrase('content_date')
} }}" />

<div class="block">
	<div class="block-container block-container--none">
		<div class="block-filterBar block-filterBar--standalone">
			<div class="filterBar">
				<xf:if contentcheck="true">
					<ul class="filterBar-filters">
						<xf:contentcheck>
							<xf:if is="$filters.content_type">
								<li><a href="{{ link('approval-queue', null, $filters|replace({'content_type': null})) }}"
									class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
									<span class="filterBar-filterToggle-label">{{ phrase('content_type:') }}</span>
									{{ $xf.app.getContentTypePhrase($filters.content_type) ?: $filters.content_type }}
								</a></li>
							</xf:if>
							<xf:if is="$filters.order AND {$sortOrders.{$filters.order}}">
								<li><a href="{{ link('approval-queue', null, $filters|replace({'order': null, 'direction': null})) }}"
									class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('return_to_default_order')|for_attr }}">
									<span class="filterBar-filterToggle-label">{{ phrase('sort_by:') }}</span>
									{$sortOrders.{$filters.order}}
									<xf:fa icon="{{ $filters.direction == 'asc' ? 'fa-angle-up' : 'fa-angle-down' }}" />
									<span class="u-srOnly"><xf:if is="$filters.direction == 'asc'">{{ phrase('ascending') }}<xf:else />{{ phrase('descending') }}</xf:if></span>
								</a></li>
							</xf:if>
						</xf:contentcheck>
					</ul>
				</xf:if>

				<a class="filterBar-menuTrigger" data-xf-click="menu" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{{ phrase('filters') }}</a>
				<div class="menu menu--wide" data-menu="menu" aria-hidden="true"
					data-href="{{ link('approval-queue/filters', null, $filters) }}"
					data-load-target=".js-filterMenuBody">
					<div class="menu-content">
						<h4 class="menu-header">{{ phrase('show_only:') }}</h4>
						<div class="js-filterMenuBody">
							<div class="menu-row">{{ phrase('loading...') }}</div>
						</div>
					</div>
				</div>
			</div>
		</div>
	</div>
</div>

<xf:if is="$unapprovedItems is not empty">
	<xf:form action="{{ link('approval-queue/process') }}" ajax="true" class="js-stickyParent approvalQueue">
		<div class="blocks">
			<xf:foreach loop="$unapprovedItems" value="$unapprovedItem" i="$i" count="$count">
				<div class="block">
					<div class="block-container approvalQueue-item js-approvalQueue-item">
						<div class="block-body">
							{$unapprovedItem.getHandler().render($unapprovedItem)|raw}
						</div>
					</div>
				</div>
			</xf:foreach>

			<div class="block">
				<div class="block-container block-container--none">
					<xf:submitrow icon="save" sticky=".js-stickyParent" rowtype="standalone" />
				</div>
			</div>
		</div>
	</xf:form>
<xf:elseif is="$filters" />
	<div class="blockMessage">{{ phrase('no_items_matched_your_filter') }}</div>
<xf:else />
	<div class="blockMessage">{{ phrase('there_is_no_content_currently_awaiting_approval') }}</div>
</xf:if>]]></template>
  <template type="public" title="approval_queue.less" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[.approvalQueue
{
	.block-container.approvalQueue-item--approve
	{
		.message,
		.message-cell--user,
		.message-cell--extra
		{
			background: @xf-inlineModHighlightColor;
		}

		.message .message-userArrow:after
		{
			border-right-color: @xf-inlineModHighlightColor;
		}
	}

	.block-container.approvalQueue-item--delete
	{
		.message-cell--user,
		.message-cell--main
		{
			opacity: 0.25;
		}
	}

	.block-container.approvalQueue-item--spam
	{
		border-color: red;

		.message-cell--user,
		.message-cell--main
		{
			opacity: 0.25;
		}
	}
}]]></template>
  <template type="public" title="approval_queue_filters" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:form action="{{ link('approval-queue/filters') }}">
	<!--[XF:above_content_type]-->
	<div class="menu-row menu-row--separated">
		<label for="ctrl_content_type">{{ phrase('content_type:') }}</label>
		<div class="u-inputSpacer">
			<xf:select name="content_type" value="{$filters.content_type}" id="ctrl_content_type">
				<xf:option value="">{{ phrase('(any)') }}</xf:option>
				<xf:foreach loop="$contentTypes" value="$contentType">
					<xf:option value="{$contentType}">{$xf.app.getContentTypePhrase($contentType)}</xf:option>
				</xf:foreach>
			</xf:select>
		</div>
	</div>
	
	<!--[XF:above_sort_direction]-->
	<div class="menu-row menu-row--separated">
		{{ phrase('sort_direction:') }}
		<div class="inputGroup u-inputSpacer">
			<xf:select name="direction" value="{{ $filters.direction ?: 'asc' }}" aria-labelledby="ctrl_sort_direction">
				<xf:option value="asc">{{ phrase('ascending') }}</xf:option>
				<xf:option value="desc">{{ phrase('descending') }}</xf:option>
			</xf:select>
		</div>
	</div>
	<xf:hiddenval name="order">{{ $filters.order ?: 'content_date' }}</xf:hiddenval>

	<div class="menu-footer">
		<span class="menu-footer-controls">
			<xf:button type="submit" class="button--primary">{{ phrase('filter') }}</xf:button>
		</span>
	</div>
	<xf:hiddenval name="apply">1</xf:hiddenval>
</xf:form>]]></template>
  <template type="public" title="approval_queue_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="spam_log" arg-spamDetails="!">
	<xf:if is="$spamDetails">
		<xf:formrow label="{{ phrase('spam_log') }}">
			{$spamDetails}
		</xf:formrow>
	</xf:if>
</xf:macro>

<xf:macro id="action_row" arg-unapprovedItem="!" arg-handler="!">
	<xf:formrow label="{{ phrase('action') }}" class="js-approvalQueue-itemControls">
		<xf:macro id="action_radio" arg-unapprovedItem="{$unapprovedItem}" arg-handler="{$handler}" />
	</xf:formrow>
</xf:macro>

<xf:macro id="action_radio" arg-unapprovedItem="!" arg-handler="!">
	<div class="js-approvalQueue-itemControls">
		<xf:radio name="queue[{$unapprovedItem.content_type}][{$unapprovedItem.content_id}]">

			<xf:foreach loop="$unapprovedItem.getDefaultActions()" key="$action" value="$label">
				<xf:option value="{$action}" checked="{{ !$action ? 'checked' : '' }}" data-xf-click="approval-control">{$label}</xf:option>
			</xf:foreach>

		</xf:radio>
	</div>
</xf:macro>

<xf:macro id="item_message_type"
	arg-content="!"
	arg-contentDate=""
	arg-user="!"
	arg-typePhraseHtml="!"
	arg-headerPhraseHtml=""
	arg-spamDetails=""
	arg-messageHtml="!"
	arg-unapprovedItem=""
	arg-handler=""
	arg-actionsHtml="">

	<div class="message">
		<xf:css src="message.less" />
		<div class="message-inner">
			<div class="message-cell message-cell--user">

				<section class="message-user"
					itemscope itemtype="https://schema.org/Person" itemid="{{ $user ? link('canonical:members', $user) : '' }}">

					<xf:if is="$user">
						<meta itemprop="url" content="{{ link('canonical:members', $user) }}" />
					</xf:if>

					<div class="message-avatar">
						<div class="message-avatar-wrapper">
							<xf:avatar user="$user" size="m" itemprop="image" />
						</div>
					</div>
					<div class="message-userDetails">
						<h4 class="message-name"><xf:username user="$user" rich="true" itemprop="name" defaultname="{{ $content.isValidKey('username') ? $content.username : '' }}" /></h4>
					</div>

					<span class="message-userArrow"></span>
				</section>

			</div>
			<div class="message-cell message-cell--main">
				<div class="message-expandWrapper js-expandWatch">
					<div class="message-expandContent js-expandContent">
						<div class="message-main">

					<header class="message-attribution">
						<span class="message-attribution-main"><xf:date time="{{ $contentDate ?: $content.post_date }}" /></span>
						<span class="message-attribution-opposite">{$typePhraseHtml|raw}</span>
					</header>

					<div class="message-content">

						<xf:if contentcheck="true">
							<xf:contentcheck>
								<xf:if is="$headerPhraseHtml is not empty">
									<div class="messageNotice messageNotice--highlighted messageNotice--moderated">
										{$headerPhraseHtml|raw}
									</div>
								</xf:if>

								<xf:if is="$spamDetails is not empty">
									<div class="messageNotice messageNotice--warning">
										{$spamDetails}
									</div>
								</xf:if>

								<xf:if is="$messageHtml is not empty">
									<div class="message-userContent">
										<article class="message-body">{$messageHtml|raw}</article>
									</div>
								</xf:if>
							</xf:contentcheck>
						<xf:else />
							<div class="message-userContent">
								<article class="message-body">
									<i>{{ phrase('no_additional_information_available') }}</i>
								</article>
							</div>
						</xf:if>
					</div>

				</div>
					</div>
					<div class="message-expandLink js-expandLink"><a role="button" tabindex="0">{{ phrase('click_to_expand') }}</a></div>
				</div>
			</div>
			<div class="message-cell message-cell--extra">
				<xf:if is="$unapprovedItem AND $handler">
					<xf:macro id="approval_queue_macros::action_radio"
						arg-unapprovedItem="{$unapprovedItem}"
						arg-handler="{$handler}" />
				<xf:else />
					{$actionsHtml|raw}
				</xf:if>
			</div>
		</div>
	</div>
</xf:macro>]]></template>
  <template type="public" title="attachment_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="attachment_list_item" arg-attachment="!" arg-canView="!">
	<li class="file file--linked">
		<a class="u-anchorTarget" id="attachment-{$attachment.attachment_id}"></a>
		<xf:if is="$attachment.has_thumbnail">
			<xf:macro id="lightbox_macros::setup" arg-canViewAttachments="{$canView}" />

			<a class="file-preview {{ $canView ? 'js-lbImage' : '' }}" href="{$attachment.direct_url}" target="_blank">
				<img src="{$attachment.thumbnail_url}" alt="{$attachment.filename}"
					width="{$attachment.thumbnail_width}" height="{$attachment.thumbnail_height}" loading="lazy" />
			</a>
		<xf:elseif is="$attachment.is_video AND $canView" />
			<a class="file-preview" href="{$attachment.direct_url}" target="_blank">
				<video title="{$attachment.filename}" data-xf-init="video-init">
					<source src="{$attachment.direct_url}" />
				</video>
			</a>
		<xf:else />
			<a class="file-preview" href="{$attachment.direct_url}" target="_blank">
				<span class="file-typeIcon">
					<xf:fa icon="{$attachment.icon}" title="{$attachment.filename}" />
				</span>
			</a>
		</xf:if>

		<div class="file-content">
			<div class="file-info">
				<span class="file-name" title="{$attachment.filename}">{$attachment.filename}</span>
				<div class="file-meta">
					{$attachment.file_size|file_size}
					<xf:if is="!$attachment.is_video AND !$attachment.is_audio">
					&middot; {{ phrase('views:') }} {$attachment.view_count|number}
					</xf:if>
				</div>
			</div>
		</div>
	</li>
</xf:macro>]]></template>
  <template type="public" title="attachment_upload" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('attachment_upload') }}</xf:title>

<xf:form action="{{ link('attachments/upload', null, {'type': $type, 'hash': $hash, 'context': $context}) }}" class="block" upload="true" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$existing is not empty OR $new is not empty">
				<xf:formrow label="{{ phrase('existing_attachments') }}">
					<xf:css src="attachments.less" />
					<ul class="attachUploadList">
						<xf:foreach loop="$existing" value="$attachment">
							<xf:macro id="helper_attach_upload::uploaded_file"
								arg-attachment="{$attachment}"
								arg-noJsFallback="{{ true }}" />
						</xf:foreach>
						<xf:foreach loop="$new" value="$attachment">
							<xf:macro id="helper_attach_upload::uploaded_file"
								arg-attachment="{$attachment}"
								arg-noJsFallback="{{ true }}" />
						</xf:foreach>
					</ul>
				</xf:formrow>
			</xf:if>
			<xf:if is="$canUpload">
				<xf:uploadrow name="upload" accept=".{$constraints.extensions|join(',.')}"
					label="{{ phrase('attach_file') }}"
					explain="{{ phrase('you_may_close_this_window_tab_once_you_have_uploaded_your_files_to_return') }}" />
			<xf:elseif is="!$canUpload AND $uploadError" />
				<xf:formrow label="{{ phrase('attach_file') }}">{$uploadError}</xf:formrow>
			</xf:if>
		</div>
		<xf:if is="$canUpload">
			<xf:submitrow submit="{{ phrase('upload') }}" icon="upload" />
		</xf:if>
	</div>
</xf:form>]]></template>
  <template type="public" title="attachments.less" version_id="2020670" version_string="2.2.6"><![CDATA[@_fileMinSize: 165px;
@_fileBorderRadius: @xf-borderRadiusSmall;

.attachmentUploads
{
	display: none;
	margin-bottom: @xf-paddingLarge;

	&.is-active
	{
		display: block;
	}

	&.attachmentUploads--spaced
	{
		margin-top: @xf-paddingLarge;
	}

	.hScroller-action
	{
		color: @xf-linkColor;

		&:hover
		{
			color: @xf-linkHoverColor;
		}

		&.hScroller-action--start
		{
			&:before
			{
				content: '';
				position: absolute;
				left: 0;
				height: 50px;
				width: 35px;
				background: @xf-contentBg;
				.m-borderRightRadius(@xf-borderRadiusMedium);
				.m-dropShadow(1px, 0, 4px, 1px, .3);
			}

			&:after
			{
				position: absolute;
				left: 10px;
			}
		}

		&.hScroller-action--end
		{
			&:before
			{
				content: '';
				position: absolute;
				right: 0;
				height: 50px;
				width: 35px;
				background: @xf-contentBg;
				.m-borderLeftRadius(@xf-borderRadiusMedium);
				.m-dropShadow(-1px, 0, 4px, 1px, .3);
			}

			&:after
			{
				position: absolute;
				right: 10px;
			}
		}
	}
}

.attachmentUploads-banner
{
	.xf-contentAltBase();
	border: @xf-borderSize solid @xf-borderColor;
	border-radius: @xf-borderRadiusSmall;
	margin-top: @xf-paddingLarge;
	padding: @xf-paddingSmall @xf-paddingMedium;
}

.attachmentUploads-selectActions
{
	.m-listPlain();
	display: none;
	font-size: @xf-fontSizeSmall;

	.attachmentUploads.is-selecting &
	{
		display: flex;
	}

	> li
	{
		margin-right: .35em;

		.buttonGroup
		{
			vertical-align: middle;
		}

		&:last-of-type
		{
			flex: 1 1 auto;
			text-align: right;
		}
	}

	.selectAll .iconic
	{
		cursor: pointer;

		input + i
		{
			color: @xf-linkColor;
		}
	}
}

.is-selecting button.js-attachmentSelect
{
	float: right;
}

.file
{
	position: relative;
	width: @_fileMinSize;
	height: @_fileMinSize;
	margin-right: @xf-paddingMedium;
	background: @xf-contentAltBg;
	border-radius: @_fileBorderRadius;

	&:last-child
	{
		margin-right: 0;
	}
}

.attachUploadList
{
	.m-listPlain();
	display: block;
	white-space: nowrap;
	font-size: 0;

	.file
	{
		display: inline-block;
		font-size: @xf-fontSizeNormal;
	}
}

.attachmentList
{
	.m-listPlain();

	display: flex;
	flex-wrap: wrap;

	.file
	{
		margin-bottom: @xf-paddingMedium;
	}
}

@supports (display: grid)
{
	.attachmentList
	{
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(@_fileMinSize, 1fr));
		grid-gap: @xf-paddingMedium;
		gap: @xf-paddingMedium;

		.file
		{
			width: 100%;
			height: auto;
			margin-right: 0;
			margin-bottom: 0;

			&:after
			{
				content: '';
				display: block;
				padding-bottom: 100%;
				pointer-events: none;
			}
		}
	}
}

.file-preview
{
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: @_fileBorderRadius;
	overflow: hidden;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;

	img, video
	{
		position: absolute;
		top: 0;
		left: 0;
		object-fit: cover;
		width: 100%;
		height: 100%;
	}

	.file--linked &:after
	{
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: @zIndex-1;
	}
}

.file-typeIcon
{
	font-size: 80px;
	vertical-align: middle;
	color: @xf-textColorFeature;
}

.file-error
{
	color: @xf-textColorAttention;
	font-size: @xf-fontSizeSmaller;
	white-space: normal;
	padding: @xf-paddingMedium;
}

.file-progress
{
	position: relative;
	width: 100%;
	width: calc(~'100% - 8px');
	font-size: @xf-fontSizeSmallest;
	line-height: 1.3;

	i
	{
		position: absolute;
		top: 0;
		bottom: 0;
		left: 0;
		background: @xf-progressBarColor;
		color: contrast(@xf-progressBarColor);
		border-radius: @xf-borderRadiusSmall;
		padding-right: .2em;
		text-align: right;
		font-style: normal;
		white-space: nowrap;
		min-width: 2em;

		.m-transition(width);
	}
}

.file-content
{
	position: absolute;
	width: 100%;
	height: 100%;
}

.file-info
{
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	padding: 0 @xf-paddingLarge;
	height: 2.5em;
	line-height: 2.5;
	overflow: hidden;
	.m-transition(height);
	.m-borderBottomRadius(@_fileBorderRadius);

	font-size: @xf-fontSizeSmaller;
	color: rgb(255, 255, 255);
	background: rgba(0, 0, 0, 0.5);
	text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.6);

	@supports (backdrop-filter: blur(3px)) or (-webkit-backdrop-filter: blur(3px))
	{
		.m-backdropFilter(blur(3px));
	}

	a&
	{
		color: rgb(255, 255, 255);

		&:hover
		{
			color: rgb(255, 255, 255);
			text-decoration: none;

			.file-name
			{
				text-decoration: underline;
			}
		}
	}

	&:hover,
	.file--linked:hover &,
	.has-touchevents &
	{
		height: 5em;
	}
}

.file-name,
.file-meta
{
	display: block;
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;
}

.file-delete,
.file-insert
{
	position: absolute;
	color: rgb(255, 255, 255);
	text-shadow: 1px 1px 1px rgba(0, 0, 0, .6);
}

.file-checkbox
{
	display: none;

	.attachmentUploads.is-selecting &
	{
		display: block;
	}

	.iconic
	{
		position: static;

		&:after
		{
			content: '';
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			bottom: 0;
			z-index: @zIndex-1;
		}

		> i
		{
			position: absolute;
			top: 4px;
			left: 4px;
			box-sizing: content-box;
			width: 1em;
			height: 1em;
			color: rgb(220, 220, 220);
			text-shadow: 1px 1px 1px rgba(0, 0, 0, .6);
			background: rgba(0, 0, 0, .2);
			border-radius: @xf-borderRadiusMedium;
			padding: @xf-paddingMedium;
			line-height: 1;
		}

		&:hover > i
		{
			color: rgb(255, 255, 255);

			&:before
			{
				content: @fa-var-check-square;
			}
		}

		> input + i
		{
			&:before,
			&:after
			{
				top: @xf-paddingMedium;
				left: @xf-paddingMedium;
			}
		}

		> input:checked + i:after
		{
			font-weight: bold;
		}
	}
}

.file-insert
{
	top: 4px;
	left: 4px;
	font-size: @xf-fontSizeSmaller;
	max-width: (@_fileMinSize - 40px);
	white-space: normal;
	word-wrap: break-word;

	&.is-active
	{
		.file-insertLink
		{
			display: none;
		}

		.file-menuOptions
		{
			display: block;
		}
	}
}

.file-delete
{
	top: 4px;
	right: 4px;
	font-size: @xf-fontSizeNormal;
}

.file-insert,
.file-delete
{
	.attachmentUploads.is-selecting &
	{
		display: none;
	}
}

.file-insertLink,
.file-deleteLink
{
	display: inline-block;
}

a.file-deleteLink
{
	color: inherit;
	background: rgba(0, 0, 0, .2);
	border-radius: @xf-borderRadiusMedium;
	padding: @xf-paddingMedium;
	.m-transition(background);

	&:hover
	{
		text-decoration: none;
		background: rgba(0, 0, 0, .5);
	}
}

a.file-insertLink,
.file-menuOptions > a
{
	color: inherit;
	background: rgba(0, 0, 0, 0.4);
	border-radius: @xf-borderRadiusMedium;
	padding: @xf-paddingMedium;
	.m-transition(background);

	&:hover
	{
		text-decoration: none;
		background: rgba(0, 0, 0, .5);
	}
}

.file-menuOptions
{
	.m-listPlain();
	display: none;

	> a
	{
		display: block;
		margin-top: @xf-paddingSmall;
		max-width: max-content;

		&:first-child
		{
			margin-top: 0;
		}
	}
}

@media (max-width: @xf-responsiveNarrow)
{
	.attachmentUploads
	{
		.iconic-label,
		.insert-label
		{
			display: none;
		}
	}
}]]></template>
  <template type="public" title="base_prefix_selector" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="select" arg-prefixes="!" arg-selected="0" arg-withRow="1">

	<xf:set var="$prefixesGrouped" value="{$prefixes.prefixesGrouped}" />
	<xf:set var="$prefixGroups" value="{$prefixes.prefixGroups}" />

	<xf:if is="$prefixesGrouped is not empty">
		<xf:set var="$inner">
			<xf:select name="prefix_id" value="{$selected}">
				<xf:option value="0">{{ phrase('(no_prefix)') }}</xf:option>
				<xf:foreach loop="$prefixGroups" key="$prefixGroupId" value="$prefixGroup" if="{{ count($prefixesGrouped.{$prefixGroupId}) > 0 }}">
					<xf:if is="{{ $prefixGroupId > 0 }}">
						<xf:option value="" disabled="disabled">{$prefixGroup.title}</xf:option>
					<xf:else />
						<xf:option value="" disabled="disabled">{{ phrase('(ungrouped)') }}</xf:option>
					</xf:if>
					<xf:foreach loop="{$prefixesGrouped.{$prefixGroupId}}" key="$prefixId" value="$prefix">
						<xf:option value="{$prefixId}">&nbsp;&nbsp; {$prefix.title}</xf:option>
					</xf:foreach>
				</xf:foreach>
			</xf:select>
		</xf:set>

		<xf:if is="$withRow">
			<xf:formrow label="{{ phrase('prefix') }}" rowtype="input">
				{$inner|raw}
			</xf:formrow>
		<xf:else />
			{$inner|raw}
		</xf:if>

	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="bb_code.less" version_id="2030170" version_string="2.3.1"><![CDATA[@_bbCodeBlock-spacing: .5em;
@_bbCodeBlock-paddingV: @xf-paddingMedium;
@_bbCodeBlock-paddingH: @xf-paddingLarge;
@_bbCodeBlock-expandTriggerHeight: (@xf-bbCodeBlockExpandHeight / 2);

.bbCodeBlock
{
	display: flow-root;
	margin: @_bbCodeBlock-spacing 0;
	.xf-bbCodeBlock();

	&.bbCodeBlock--quote
	{
		.bbCodeBlock-content
		{
			font-size: @xf-fontSizeSmall;
		}
	}

	&.bbCodeBlock--feature
	{
		border-left: @xf-borderSizeFeature solid @xf-borderColorFeature;

		.bbCodeBlock-title
		{
			color: @xf-textColorFeature;
		}
	}
}

.bbCodeBlock-title
{
	padding: @_bbCodeBlock-paddingV @_bbCodeBlock-paddingH;
	.xf-bbCodeBlockTitle();
	.m-clearFix();
}

a.bbCodeBlock-sourceJump
{
	color: inherit;
	text-decoration: none;

	&:hover
	{
		text-decoration: underline;
	}

	&:after
	{
		.m-faBase();
		.m-faContent(@fa-var-arrow-circle-up); //, 1em
		display: inline-block;
		margin-left: 5px;
	}
}

.bbCodeBlock-content
{
	position: relative;
	padding: @_bbCodeBlock-paddingV @_bbCodeBlock-paddingH;
	.m-clearFix();
}

.bbCodeBlock-expandLink
{
	display: none;
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: @_bbCodeBlock-expandTriggerHeight;
	cursor: pointer;
	z-index: @zIndex-1;

	.m-gradient(
		fade(@xf-bbCodeBlock--background-color, 0%),
		xf-default(@xf-bbCodeBlock--background-color, transparent),
		transparent,
		0%,
		80%
	);

	a
	{
		position: absolute;
		bottom: @_bbCodeBlock-paddingV;
		left: 0;
		right: 0;
		text-align: center;
		font-size: @xf-fontSizeSmall;
		color: @xf-textColorAttention;
		text-decoration: none;
	}
}

.bbCodeBlock--screenLimited
{
	.bbCodeBlock-content
	{
		max-height: 300px;
		max-height: 70vh;
		overflow: auto;
		-webkit-overflow-scrolling: touch;
	}
}

.bbCodeBlock--expandable
{
	overflow: hidden;
	.m-transition(-xf-height, height, padding, margin, border;);

	.bbCodeBlock-content
	{
		overflow: hidden;

		.bbCodeBlock:not(.bbCodeBlock--expandable) .bbCodeBlock-content
		{
			overflow: visible;
		}
		.bbCodeBlock.bbCodeBlock--screenLimited .bbCodeBlock-content
		{
			overflow: auto;
		}
	}

	.bbCodeBlock-expandContent
	{
		max-height: @xf-bbCodeBlockExpandHeight;
		overflow: hidden;
	}

	&.is-expandable
	{
		.bbCodeBlock-expandLink
		{
			display: block;
		}
	}

	&.is-expanded
	{
		.bbCodeBlock-expandContent
		{
			max-height: none;
		}

		.bbCodeBlock-expandLink
		{
			display: none;
		}
	}
}

.bbCodeBlock--unfurl
{
	.xf-contentHighlightBase();

	padding: @_bbCodeBlock-paddingV;
	width: 650px;
	max-width: 100%;
	border-left: @xf-borderSizeMinorFeature solid @xf-borderColorFeature;

	overflow: hidden;

	.contentRow-header
	{
		margin: 0;
		font-size: @xf-fontSizeNormal;
		font-weight: normal;
		.m-overflowEllipsis();
	}

	.contentRow-snippet
	{
		font-size: @xf-fontSizeSmaller;
		font-style: normal;
	}

	.contentRow-minor
	{
		font-size: @xf-fontSizeSmaller;
	}

	&.is-pending
	{
		opacity: 0.5;

		&.is-recrawl
		{
			opacity: 1;
		}
	}

	&.is-simple
	{
		.contentRow-figure
		{
			display: none;
		}
	}

	.bbCodeBlockUnfurl-image
	{
		aspect-ratio: auto 1 / 1;
	}

	.bbCodeBlockUnfurl-icon
	{
		width: 12px;
		vertical-align: -2px;
		aspect-ratio: auto 1 / 1;
	}
}

.bbCodeCode
{
	margin: 0;
	padding: 0;

	.has-hiddenscroll &
	{
		// solely to workaround this Chrome bug: https://bugs.chromium.org/p/chromium/issues/detail?id=914844
		// TODO: remove when fixed
		padding-bottom: @xf-paddingLarge;
	}

	font-family: @xf-fontFamilyCode;
	font-size: @xf-fontSizeSmall;
	line-height: @xf-lineHeightDefault;
	-ltr-rtl-text-align: left;

	direction: ltr;
	white-space: pre;
	position: relative;

	.m-tabSize();

	code
	{
		font-family: inherit;
	}

	.prism-token
	{
		&.prism-comment,
		&.prism-prolog,
		&.prism-doctype,
		&.prism-cdata
		{
			color: #a50;
		}

		&.prism-constant
		{
			color: #05a;
		}

		&.prism-tag
		{
			color: #170;
		}

		&.prism-boolean
		{
			color: #219;
		}

		&.prism-symbol,
		&.prism-atrule,
		&.prism-keyword
		{
			color: #708;
		}

		&.prism-selector,
		&.prism-function
		{
			color: #05a;
		}

		&.prism-deleted
		{
			color: #d44;
		}

		&.prism-inserted
		{
			color: #292;
		}

		&.prism-string,
		&.prism-attr-value
		{
			color: #a11;
		}

		&.prism-number
		{
			color: #164;
		}

		&.prism-attr-name,
		&.prism-char,
		&.prism-builtin
		{
			color: #00c;
		}

		&.prism-regex,
		&.prism-important,
		&.prism-variable,
		&.prism-package
		{
			color: #05a;
		}

		&.prism-class-name,
		&.prism-important,
		&.prism-bold
		{
			color: #00f;
		}

		&.prism-bold
		{
			font-weight: bold;
		}

		&.prism-italic,
		&.prism-constant
		{
			color: #05a;

			font-style: italic;
		}

		&.prism-entity
		{
			cursor: help;
		}
	}

	.m-colorScheme(dark,
	{
		.prism-token
		{
			&.prism-comment,
			&.prism-prolog,
			&.prism-doctype,
			&.prism-cdata
			{
				color: #8292a2;
			}

			&.prism-constant
			{
				color: #f92672;
			}

			&.prism-tag
			{
				color: #f92672;
			}

			&.prism-boolean
			{
				color: #ae81ff;
			}

			&.prism-symbol,
			&.prism-atrule,
			&.prism-keyword
			{
				color: #e6db74;
			}

			&.prism-selector,
			&.prism-function
			{
				color: #e6db74;
			}

			&.prism-string,
			&.prism-attr-value
			{
				color: #a6e22e;
			}

			&.prism-number
			{
				color: #ae81ff;
			}

			&.prism-attr-name,
			&.prism-char,
			&.prism-builtin
			{
				color: #a6e22e;
			}

			&.prism-regex,
			&.prism-important,
			&.prism-variable,
			&.prism-package
			{
				color: #fd971f;
			}

			&.prism-class-name,
			&.prism-important,
			&.prism-bold
			{
				color: #e6db74;
			}

			&.prism-italic,
			&.prism-constant
			{
				color: #f92672;
			}
		}
	});
}

.bbCodeInline
{
	margin: 0;
	.xf-bbCodeInlineCode();
	font-family: @xf-fontFamilyCode;
	line-height: @xf-lineHeightDefault;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
	white-space: pre-wrap;
}

.bbCodeSpoiler
{
	margin: @_bbCodeBlock-spacing 0;
}

.bbCodeSpoiler-button
{
	.has-no-js & { display: none; }
}

.bbCodeSpoiler-content
{
	.m-hiddenEl(true);
	.has-no-js & { display: block !important; }

	> .bbCodeBlock--spoiler
	{
		margin: .2em 0 0;
	}
}

.bbCodeInlineSpoiler
{
	@blurAmount: 6px;
	filter: blur(@blurAmount);
	cursor: pointer;

	a, span
	{
		.has-js &
		{
			pointer-events: none;
		}
	}

	.smilie
	{
		filter: grayscale(90%);
	}

	&:hover
	{
		filter: blur((@blurAmount - 1));
	}
}]]></template>
  <template type="public" title="bb_code_preview" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:if is="$message">
	<xf:css src="bb_code_preview.less" />
	<div class="bbCodePreview">
	<xf:formrow rowtype="fullWidth noLabel noGutter">
		<h4 class="block-textHeader">{{ phrase('preview') }}</h4>
		<div class="bbCodePreview-content">
			{{ bb_code($message, $context . ':preview', $user, {
				'attachments': $attachments,
				'viewAttachments': $canViewAttachments
			}) }}
		</div>
	</xf:formrow>
	</div>
</xf:if>]]></template>
  <template type="public" title="bb_code_preview.less" version_id="2010132" version_string="2.1.1 Beta 2"><![CDATA[.bbCodePreview
{
	.m-transitionFadeDown();
}

.bbCodePreview-content
{
	max-height: 300px;
	max-height: 75vh;
	overflow: auto;
	padding-bottom: 3px; // mostly to ensure icode doesn't overflow unexpectedly
	font-family: @xf-fontFamilyBody;
}]]></template>
  <template type="public" title="bb_code_tag_attach" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="!$attachment"><xf:trim>
	<a href="{{ link('full:attachments', {'attachment_id': $id}) }}" target="_blank">{{ phrase('view_attachment_x', {'name': $id}) }}</a>
</xf:trim><xf:elseif is="$attachment.is_video AND $full AND $canView" /><xf:trim>
	<div class="bbMediaWrapper bbMediaWrapper--inline {$alignClass}">
		<div class="bbMediaWrapper-inner">
			<video controls data-xf-init="video-init"
				style="{$styleAttr}">
				<source src="{$attachment.direct_url}" />
				<div class="bbMediaWrapper-fallback">{{ phrase('your_browser_is_not_able_to_display_this_video') }}</div>
			</video>
		</div>
	</div>
</xf:trim><xf:elseif is="$attachment.is_audio AND $full AND $canView" /><xf:trim>
	<div class="bbMediaWrapper bbMediaWrapper--inline {$alignClass}">
		<div class="bbMediaWrapper-inner bbMediaWrapper-inner--audio">
			<audio controls
				style="{$styleAttr}">
				<source src="{$attachment.direct_url}" />
				<div class="bbMediaWrapper-fallback">{{ phrase('your_browser_is_not_able_to_play_this_audio') }}</div>
			</audio>
		</div>
	</div>
</xf:trim><xf:elseif is="!$attachment.has_thumbnail" /><xf:trim>
	<a href="{{ link('full:attachments', $attachment, {'hash': $attachment.temp_hash}) }}" target="_blank">{{ phrase('view_attachment_x', {'name': $attachment.filename}) }}</a>
</xf:trim><xf:elseif is="$canView AND $full" /><xf:trim>
	<xf:if is="$noLightbox">
		<img src="{{ link('full:attachments', $attachment, {'hash': $attachment.temp_hash}) }}"
			class="bbImage {$alignClass}"
			style="{$styleAttr}"
			alt="{$alt}"
			title="{$alt}"
			width="{$attachment.width}" height="{$attachment.height}" loading="lazy" />
	<xf:else />
		<xf:macro id="lightbox_macros::single_image"
			arg-canViewAttachments="{$canView}"
			arg-id="attachment{$attachment.attachment_id}"
			arg-src="{{ link('full:attachments', $attachment, {'hash': $attachment.temp_hash}) }}"
			arg-width="{$attachment.width}"
			arg-height="{$attachment.height}"
			arg-alt="{$alt}"
			arg-title="{$alt}"
			arg-styleAttr="{$styleAttr}"
			arg-alignClass="{$alignClass}" />
	</xf:if>
</xf:trim><xf:elseif is="$canView AND !$noLightbox" /><xf:trim>
	<xf:macro id="lightbox_macros::setup" arg-canViewAttachments="{$canView}" />
	<a href="{{ link('full:attachments', $attachment, {'hash': $attachment.temp_hash}) }}"
		target="_blank" class="js-lbImage"><img src="{$attachment.thumbnail_url_full}"
		class="bbImage {$alignClass}"
		style="{$styleAttr}"
		alt="{$alt}"
		title="{$alt}"
		width="{$attachment.thumbnail_width}" height="{$attachment.thumbnail_height}" loading="lazy" /></a>
</xf:trim><xf:else /><xf:trim>
	<a href="{{ link('full:attachments', $attachment, {'hash': $attachment.temp_hash}) }}"
		target="_blank"><img src="{$attachment.thumbnail_url_full}"
		class="bbImage {$alignClass}"
		style="{$styleAttr}"
		alt="{$alt}"
		title="{$alt}"
		width="{$attachment.thumbnail_width}" height="{$attachment.thumbnail_height}" loading="lazy" /></a>
</xf:trim></xf:if>]]></template>
  <template type="public" title="bb_code_tag_code" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="prism_macros::setup" />

<div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code">
	<div class="bbCodeBlock-title">
		{{ $config.phrase ?: phrase('code') }}{$xf.language.label_separator}
	</div>
	<div class="bbCodeBlock-content" dir="ltr">
		<pre class="bbCodeCode" dir="ltr" data-xf-init="code-block" data-lang="{{ $language ?: '' }}"><code>{$content}</code></pre>
	</div>
</div>]]></template>
  <template type="public" title="bb_code_tag_embed" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:css src="embed_resolver.less" />

<div class="embed fauxBlockLink" data-embed-content="{$content.getEntityContentTypeId()}" data-embed-content-url="{$contentUrl}">
	{$content.renderEmbed()|raw}
</div>]]></template>
  <template type="public" title="bb_code_tag_img" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$lightbox">
	<xf:macro id="lightbox_macros::single_image"
		arg-canViewAttachments="{{ true }}"
		arg-src="{$imageUrl}"
		arg-dataUrl="{$validUrl}"
		arg-alt="{{ $alt ?: $altFallback }}"
		arg-title="{$alt}"
		arg-styleAttr="{$styleAttr}"
		arg-alignClass="{$alignClass}"
		arg-width="{$width}"
		arg-height="{$height}" />
<xf:else />
	<img src="{$imageUrl}" data-url="{$validUrl}" class="bbImage {$alignClass}" loading="lazy"
		{{ $alt ? ('alt="' . $alt|for_attr . '" title="' . $alt|for_attr . '"') : '' }} style="{$styleAttr}" width="{$width}" height="{$height}" />
</xf:if>
]]></template>
  <template type="public" title="bb_code_tag_quote" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:css src="bb_code.less" />

<xf:set var="$isIgnored" value="{{ $attributes.member && $xf.visitor.isIgnoring($attributes.member) }}" />

<blockquote data-attributes="{{ $attributes.member ? ('member: ' . $attributes.member) : '' }}" data-quote="{{ $name ?: null }}" data-source="{{ $source ? ($source.type . ': ' . $source.id) : '' }}"
	class="bbCodeBlock bbCodeBlock--expandable bbCodeBlock--quote js-expandWatch">
	<xf:if is="$name">
		<div class="bbCodeBlock-title">
			<xf:if is="$source">
				<a href="{{ link('goto/' . {$source.type}, null, {'id': $source.id}) }}"
					class="bbCodeBlock-sourceJump"
					rel="nofollow"
					data-xf-click="attribution"
					data-content-selector="#{$source.type}-{$source.id}">{{ phrase('x_said:', {'name': $name}) }}</a>
			<xf:else />
				{{ phrase('x_said:', {'name': $name}) }}
			</xf:if>
		</div>
	</xf:if>
	<div class="bbCodeBlock-content">
		<xf:if is="$isIgnored">
			<div class="messageNotice messageNotice--nested messageNotice--ignored">
				{{ phrase('you_are_ignoring_content_by_this_member') }}
				<xf:showignored />
			</div>
		</xf:if>
		<div class="bbCodeBlock-expandContent js-expandContent {{ $isIgnored ? 'is-ignored' : '' }}">
			{$content}
		</div>
		<div class="bbCodeBlock-expandLink js-expandLink"><a role="button" tabindex="0">{{ phrase('click_to_expand') }}</a></div>
	</div>
</blockquote>]]></template>
  <template type="public" title="bb_code_tag_spoiler" version_id="2001070" version_string="2.0.10"><![CDATA[<xf:css src="bb_code.less" />

<div class="bbCodeSpoiler">
	<xf:button class="bbCodeSpoiler-button{{ $title ? ' button--longText' : '' }}" data-xf-click="toggle"
		data-xf-init="tooltip" title="{{ phrase('click_to_reveal_spoiler') }}">

		<span>{{ phrase('spoiler') }}<xf:if is="$title">: <span class="bbCodeSpoiler-button-title">{$title}</span></xf:if></span>
	</xf:button>
	<div class="bbCodeSpoiler-content">
		<div class="bbCodeBlock bbCodeBlock--spoiler">
			<div class="bbCodeBlock-content">{$content}</div>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="bb_code_tag_url_unfurl" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$result.isBasicLink()">
	<div>
		<a href="{$result.url}"
			class="{{ $linkInfo.class ?: '' }}"
			target="{{ $linkInfo.target ?: '' }}"
			rel="{{ $rels ? $rels|join(' ') : '' }}"
			data-proxy-href="{{ $proxyUrl ?: '' }}">
			{{ $result.title ?: $result.url }}
		</a>
	</div>
<xf:else />
	<xf:css src="bb_code.less" />

	<div class="bbCodeBlock bbCodeBlock--unfurl {{ $result.pending ? 'is-pending' : '' }} {{ $result.is_recrawl ? 'is-recrawl' : '' }} {{ $simple ? 'is-simple' : '' }} js-unfurl fauxBlockLink"
		data-unfurl="true" data-result-id="{$result.result_id}" data-url="{$result.url}" data-host="{$result.host}" data-pending="{{ $result.pending ? 'true' : 'false' }}">
		<div class="contentRow">
			<xf:if is="($result.pending OR $imageUrl) AND !$simple">
				<div class="contentRow-figure contentRow-figure--fixedSmall js-unfurl-figure">
					<xf:if is="$imageUrl">
						<img src="{$imageUrl}" loading="lazy" alt="{$result.host}" class="bbCodeBlockUnfurl-image" data-onerror="hide-parent"/>
					<xf:else />
						<span class="fa-2x u-muted">
							<xf:fa icon="fa-spinner fa-pulse" />
						</span>
					</xf:if>
				</div>
			</xf:if>
			<div class="contentRow-main">
				<h3 class="contentRow-header js-unfurl-title">
					<a href="{$result.url}"
						class="{{ $linkInfo.class ?: '' }} fauxBlockLink-blockLink"
						target="{{ $linkInfo.target ?: '' }}"
						rel="{{ $rels ? $rels|join(' ') : '' }}"
						data-proxy-href="{{ $proxyUrl ?: '' }}">
						{{ $result.title ?: phrase('loading...') }}
					</a>
				</h3>

				<div class="contentRow-snippet js-unfurl-desc">{{ snippet($result.description, $simple ? 50 : 300) }}</div>

				<div class="contentRow-minor contentRow-minor--hideLinks">
					<span class="js-unfurl-favicon">
						<xf:if is="$faviconUrl">
							<img src="{$faviconUrl}" loading="lazy" alt="{$result.host}" class="bbCodeBlockUnfurl-icon"
								data-onerror="hide-parent"/>
						</xf:if>
					</span>
					{$result.host}
				</div>
			</div>
		</div>
	</div>
</xf:if>]]></template>
  <template type="public" title="bookmark_delete" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{$confirmUrl}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_delete_your_bookmark_for_following_content:') }}
				<strong><a href="{$bookmark.content_link}">{$bookmark.content_title}</a></strong>
			</xf:inforow>
		</div>

		<xf:submitrow rowtype="simple" name="delete" icon="delete" />
	</div>
</xf:form>]]></template>
  <template type="public" title="bookmark_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$tooltip">
	<div class="tooltip-content-inner">
		<xf:form action="{$confirmUrl}" class="" ajax="true">
			<div class="block-minorHeader">
				<xf:if is="$added">
					{{ phrase('bookmark_added') }}
				<xf:elseif is="$bookmark.isInsert()" />
					{{ phrase('add_bookmark') }}
				<xf:else />
					{{ phrase('edit_bookmark') }}
				</xf:if>
			</div>
			<div class="block-body">
				<div class="block-row">
					<xf:textarearow name="message" value="{$bookmark}" label="{{ phrase('message') }}"
						rowtype="fullWidth noPadding"
						autosize="true"
						rows="1"
						hint="{{ phrase('optional') }}" />
				</div>
				<div class="block-row">
					<xf:formrow label="{{ phrase('labels') }}" hint="{{ phrase('optional') }}" rowtype="fullWidth noPadding"
						explain="{{ phrase('multiple_labels_may_be_separated_by_commas') }}">
						<xf:macro id="bookmark_macros::filter"
							arg-label="{$bookmark.labels|pluck('label')|join(', ')}"
							arg-allLabels="{$allLabels}"
							arg-maxTokens="0"
							arg-placeholder="" />
					</xf:formrow>
				</div>
				<div class="block-row">
					<div class="formButtonGroup formButtonGroup--simple formButtonGroup--close">
						<div class="formButtonGroup-primary">
							<xf:button type="submit" class="button--primary" icon="save" />
							<xf:button type="submit" name="delete" icon="delete" />
						</div>
					</div>
				</div>
			</div>
		</xf:form>
	</div>
<xf:else />
	<xf:if is="$bookmark.isInsert()">
		<xf:title>{{ phrase('add_bookmark') }}</xf:title>
	<xf:else />
		<xf:title>{{ phrase('edit_bookmark') }}</xf:title>
	</xf:if>


	<xf:form action="{$confirmUrl}" class="block" ajax="true">
		<div class="block-container">
			<div class="block-body">
				<xf:textarearow name="message" value="{$bookmark}" label="{{ phrase('message') }}"
					autosize="true"
					hint="{{ phrase('optional') }}" />

				<xf:formrow label="{{ phrase('labels') }}" rowtype="input" hint="{{ phrase('optional') }}">
					<xf:macro id="bookmark_macros::filter"
						arg-label="{$bookmark.labels|pluck('label')|join(', ')}"
						arg-allLabels="{$allLabels}"
						arg-maxTokens="0"
						arg-placeholder="" />
					<div class="formRow-explain">
						{{ phrase('multiple_labels_may_be_separated_by_commas') }}
					</div>
				</xf:formrow>
			</div>
			<xf:submitrow icon="save"><xf:html>
				<xf:button type="submit" name="delete" icon="delete" />
			</xf:html></xf:submitrow>
		</div>
	</xf:form>
</xf:if>]]></template>
  <template type="public" title="bookmark_item_custom_icon_node" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<div class="contentRow-figure contentRow-figure--fixedBookmarkIcon">
	<div class="contentRow-figureIcon">
		<xf:fa icon="fa-file-alt fa-3x" />
	</div>
</div>]]></template>
  <template type="public" title="bookmark_item_node" version_id="2020570" version_string="2.2.5"><![CDATA[{{ snippet($content.description, max_length($bookmark, 'message'), {'stripHtml': true}) }}]]></template>
  <template type="public" title="bookmark_item_post" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ snippet($content.message, max_length($bookmark, 'message'), {'stripQuote': true}) }}]]></template>
  <template type="public" title="bookmark_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="link"
	arg-content="!"
	arg-confirmUrl="!"
	arg-editText="{{ phrase('edit_bookmark') }}"
	arg-addText="{{ phrase('add_bookmark') }}"
	arg-showText="{{ true }}"
	arg-class="actionBar-action actionBar-action--bookmarkLink">

	<xf:if is="$content.canBookmark()">
		<a href="{$confirmUrl}" class="bookmarkLink {$class} {{ $content.isBookmarked() ? 'is-bookmarked' : '' }}"
			title="{{ $showText ? '' : ($content.isBookmarked() ? $editText|for_attr : $addText|for_attr) }}"
			data-xf-click="bookmark-click"
			data-label=".js-bookmarkText"
			data-sk-bookmarked="addClass:is-bookmarked, titleAttr:sync"
			data-sk-bookmarkremoved="removeClass:is-bookmarked, titleAttr:sync"><xf:trim>
			<span class="js-bookmarkText {{ $showText ? '' : 'u-srOnly' }}"><xf:if is="$content.isBookmarked()">{$editText}<xf:else/>{$addText}</xf:if></span>
		</xf:trim></a>
	</xf:if>
</xf:macro>

<xf:macro id="button"
	arg-content="!"
	arg-confirmUrl="!"
	arg-class="button--link"
	arg-showText="{{ false }}"
	arg-editText="{{ phrase('edit_bookmark') }}"
	arg-addText="{{ phrase('add_bookmark') }}">

	<xf:if is="$content.canBookmark()">
		<xf:button href="{$confirmUrl}" icon="bookmark" class="{{ $showText ? '' : 'button--iconOnly' }} {$class} {{ $content.isBookmarked() ? 'is-bookmarked' : '' }}"
			title="{{ $showText ? '' : ($content.isBookmarked() ? $editText|for_attr : $addText|for_attr) }}"
			data-xf-click="bookmark-click"
			data-label=".js-bookmarkText"
			data-sk-bookmarked="addClass:is-bookmarked, titleAttr:sync"
			data-sk-bookmarkremoved="removeClass:is-bookmarked, titleAttr:sync"><xf:trim>
			<span class="js-bookmarkText {{ $showText ? '' : 'u-srOnly' }}"><xf:if is="$content.isBookmarked()">{$editText}<xf:else/>{$addText}</xf:if></span>
		</xf:trim></xf:button>
	</xf:if>
</xf:macro>

<xf:macro id="row"
	arg-bookmark="!"
	arg-content="!">

	<div class="contentRow">
		<xf:if is="$bookmark.has_custom_icon">
			{$bookmark.renderCustomIcon()|raw}
		<xf:elseif is="$bookmark.content_user" />
			<div class="contentRow-figure contentRow-figure--fixedBookmarkIcon">
				<xf:avatar user="$bookmark.content_user" href="" size="s" defaultname="{$bookmark.content_user.username}" />
			</div>
		</xf:if>

		<div class="contentRow-main">
			<xf:macro id="item_buttons" arg-bookmark="{$bookmark}" />

			<div class="contentRow-title">
				<a href="{$bookmark.content_link}">{$bookmark.content_title}</a>
			</div>

			<div class="contentRow-snippet">
				<xf:if is="$bookmark.message">
					{{ structured_text($bookmark.message) }}
				<xf:else />
					<xf:if contentcheck="true">
						<xf:contentcheck>
							{$bookmark.renderMessageFallback()|raw}
						</xf:contentcheck>
					<xf:else />
						{{ phrase('no_bookmark_note') }}
					</xf:if>
				</xf:if>
			</div>

			<xf:macro id="item_footer"
				arg-bookmark="{$bookmark}"
				arg-content="{$content}" />
		</div>
	</div>
</xf:macro>

<xf:macro id="item_buttons" arg-bookmark="!">

	<div class="contentRow-extra">
		<xf:button class="button--link button--smaller menuTrigger"
			data-xf-click="menu"
			aria-label="{{ phrase('more_options') }}"
			aria-expanded="false"
			aria-haspopup="true">
			<xf:fa icon="fa-cog" />
		</xf:button>

		<div class="menu" data-menu="menu" aria-hidden="true">
			<div class="menu-content">
				<h3 class="menu-header">{{ phrase('bookmark_tools') }}</h3>
				<a class="menu-linkRow is-hidden" role="button" tabindex="0" data-menu-closer="on" data-xf-init="copy-to-clipboard" data-copy-text="{$bookmark.content_link}">{{ phrase('copy_link') }}</a>
				<a href="{$bookmark.edit_link}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('edit') }}</a>
				<a href="{$bookmark.delete_link}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('delete') }}</a>
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="item_footer" arg-bookmark="!" arg-content="!">
	<div class="contentRow-minor contentRow-minor--hideLinks contentRow-minor--smaller">
		<ul class="listInline listInline--bullet">
			<xf:if is="$bookmark.content_user OR $content.isValidKey('username')">
				<li>
					<xf:fa icon="fa-user" title="{{ phrase('user') }}" />
					<span class="u-srOnly">{{ phrase('user') }}</span>
					<xf:username user="{$bookmark.content_user}" defaultname="{{ $content.isValidKey('username') ? $content.username : '' }}" />
				</li>
			</xf:if>
			<li>
				<xf:fa icon="fa-clock" title="{{ phrase('bookmarked') }}" />
				<span class="u-srOnly">{{ phrase('bookmarked') }}</span>
				<xf:date time="$bookmark.bookmark_date" />
			</li>
			<xf:if is="$bookmark.labels">
				<li class="tagList">
					<span class="u-srOnly">{{ phrase('labels') }}</span>
					<xf:foreach loop="$bookmark.labels" value="$label">
						<a href="{{ link('account/bookmarks', null, {'label': $label.label}) }}" class="tagItem" dir="auto">{$label.label}</a>
					</xf:foreach>
				</li>
			</xf:if>
		</ul>
	</div>
</xf:macro>

<xf:macro id="filter"
	arg-label="{$label}"
	arg-allLabels="{{ [] }}"
	arg-name="labels"
	arg-minLength="0"
	arg-maxTokens="1"
	arg-placeholder="{{ phrase('filter_by_label...') }}">
	<xf:tokeninput inputclass="js-labelFilter"
		name="{$name}"
		value="{$label}"
		min-length="{$minLength}"
		max-tokens="{$maxTokens}"
		list-data="{$allLabels|json}"
		placeholder="{$placeholder}" />
</xf:macro>]]></template>
  <template type="public" title="browser_warning_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="javascript">
	<noscript class="js-jsWarning"><div class="blockMessage blockMessage--important blockMessage--iconic u-noJsOnly">{{ phrase('javascript_is_disabled_please_enable_before_proceeding') }}</div></noscript>
</xf:macro>

<xf:macro id="browser">
	<div class="blockMessage blockMessage--important blockMessage--iconic js-browserWarning" style="display: none">{{ phrase('you_are_using_out_of_date_browser_upgrade') }}</div>
</xf:macro>]]></template>
  <template type="public" title="captcha" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$withRow">
	<xf:captcharow label="{{ $phrase ? $phrase : phrase('verification') }}" rowtype="{$rowType}" force="true" context="{$context}" />

<xf:else />
	<xf:captcha force="true" context="{$context}" />
</xf:if>]]></template>
  <template type="public" title="captcha_hcaptcha" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:js src="xf/captcha.js" min="1" />

<div data-xf-init="h-captcha" data-sitekey="{$siteKey}" data-invisible="{$invisible}"></div>]]></template>
  <template type="public" title="captcha_keycaptcha" version_id="2000036" version_string="2.0.0 Beta 6"><![CDATA[<xf:js src="xf/captcha.js" min="1" />

<div class="keycaptcha-root" data-xf-init="key-captcha" data-user="{$keyUserId}" data-session="{$sessionId}" data-sign="{$sign}" data-sign2="{$sign2}">
	<noscript>{{ phrase('please_enable_javascript_to_continue') }}</noscript>
	<span class="u-jsOnly">{{ phrase('loading...') }}</span>
</div>
<xf:hiddenval name="keycaptcha_code" value="" />]]></template>
  <template type="public" title="captcha_question" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:js src="xf/captcha.js" min="1" />

<div data-xf-init="qa-captcha" data-url="{{ link('misc/captcha') }}">
	<xf:if is="$question.captcha_question_id">
		<div style="margin-top: 4px;">{$question.question|raw}</div>
		<div class="u-inputSpacer">
			<xf:textbox name="captcha_question_answer" placeholder="{{ phrase('please_answer_the_question_above') }}" />
		</div>
	<xf:else />
		{{ phrase('n_a') }}
	</xf:if>
	<xf:hiddenval name="captcha_question_hash">{$question.hash}</xf:hiddenval>
</div>]]></template>
  <template type="public" title="captcha_recaptcha" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:js src="xf/captcha.js" min="1" />

<div data-xf-init="re-captcha" data-sitekey="{$siteKey}" data-invisible="{$invisible}"></div>

<noscript>
	<div>
		<div style="width: 302px; height: 422px; position: relative;">
			<div style="width: 302px; height: 422px; position: absolute;">
				<iframe src="https://www.recaptcha.net/recaptcha/api/fallback?k={$siteKey|urlencode}"
					frameborder="0" scrolling="no"
					style="width: 302px; height:422px; border-style: none;"></iframe>
			</div>
		</div>
		<div style="width: 300px; height: 60px; border-style: none;
			bottom: 12px; left: 25px; margin: 0px; padding: 0px; right: 25px;
			background: #f9f9f9; border: 1px solid #c1c1c1; border-radius: 3px;">
			<textarea name="g-recaptcha-response" id="g-recaptcha-response"
				class="g-recaptcha-response"
				style="width: 250px; height: 40px; border: 1px solid #c1c1c1;
				margin: 10px 25px; padding: 0px; resize: none;"></textarea>
		</div>
	</div>
</noscript>]]></template>
  <template type="public" title="captcha_textcaptcha" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:js src="xf/captcha.js" min="1" />

<div data-xf-init="qa-captcha" data-url="{{ link('misc/captcha') }}">
	<xf:if is="$question.q">
		<div style="margin-top: 4px;">{$question.q}</div>
		<div class="u-inputSpacer">
			<xf:textbox name="captcha_question_answer" placeholder="{{ phrase('please_answer_the_question_above') }}" />
		</div>
	<xf:else />
		{{ phrase('n_a') }}
	</xf:if>
	<xf:hiddenval name="captcha_question_hash">{$question.hash}</xf:hiddenval>
</div>]]></template>
  <template type="public" title="captcha_turnstile" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:js src="xf/captcha.js" min="1" />

<div data-xf-init="turnstile" data-sitekey="{$siteKey}" data-action="{$context}"></div>]]></template>
  <template type="public" title="carousel.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[:root
{
	--f-carousel-theme-color: @xf-linkColor;
}

.carousel
{
	.m-clearFix();
	margin-bottom: calc(var(--f-carousel-dots-height) + @xf-elementSpacer);

	&.carousel--withFooter
	{
		margin-bottom: @xf-elementSpacer;
	}
}

.carousel-body
{
	&,
	&.f-carousel
	{
		--xf-slidesPerPage: 1;
		--f-carousel-spacing: @xf-paddingMedium;
	}

	display: flex;
	overflow: hidden;
	.m-listPlain();

	.carousel-container
	{
		flex: 0 0 auto;
		width: calc((100% - (var(--f-carousel-spacing) * (var(--xf-slidesPerPage) - 1))) / var(--xf-slidesPerPage));
		margin: 0 var(--f-carousel-spacing) 0 0;
	}

	@media (min-width: 700px)
	{
		&.carousel-body--show2
		{
			--xf-slidesPerPage: 2;
		}
	}
}

.carousel-item
{
	width: 100%;
	height: 100%;
	.xf-contentBase();
	.xf-blockBorder();
	border-radius: @xf-blockBorderRadius;
	padding: @xf-blockPaddingV @xf-blockPaddingH;
}

.carousel-footer
{
	position: relative;
	float: right;
	font-size: @xf-fontSizeSmall;
	line-height: var(--f-carousel-dots-height);
	z-index: @zIndex-1;
}

:root
{
	--f-spinner-width: 36px;
	--f-spinner-height: 36px;
	--f-spinner-color-1: rgba(0, 0, 0, 0.1);
	--f-spinner-color-2: rgba(17, 24, 28, 0.8);
	--f-spinner-stroke: 2.75
}

.f-spinner
{
	margin: auto;
	padding: 0;
	width: var(--f-spinner-width);
	height: var(--f-spinner-height)
}

.f-spinner svg
{
	width: 100%;
	height: 100%;
	vertical-align: top;
	animation: f-spinner-rotate 2s linear infinite
}

.f-spinner svg *
{
	stroke-width: var(--f-spinner-stroke);
	fill: none
}

.f-spinner svg *:first-child
{
	stroke: var(--f-spinner-color-1)
}

.f-spinner svg *:last-child
{
	stroke: var(--f-spinner-color-2);
	animation: f-spinner-dash 2s ease-in-out infinite
}

@keyframes f-spinner-rotate
{
	100%
	{
		transform: rotate(360deg)
	}
}

@keyframes f-spinner-dash
{
	0%
	{
		stroke-dasharray: 1, 150;
		stroke-dashoffset: 0
	}
	50%
	{
		stroke-dasharray: 90, 150;
		stroke-dashoffset: -35
	}
	100%
	{
		stroke-dasharray: 90, 150;
		stroke-dashoffset: -124
	}
}

.f-throwOutUp
{
	animation: .175s ease-out both f-throwOutUp
}

.f-throwOutDown
{
	animation: .175s ease-out both f-throwOutDown
}

@keyframes f-throwOutUp
{
	to
	{
		transform: translate3d(0, -150px, 0);
		opacity: 0
	}
}

@keyframes f-throwOutDown
{
	to
	{
		transform: translate3d(0, 150px, 0);
		opacity: 0
	}
}

.f-zoomInUp
{
	animation: var(--f-transition-duration, 0.2s) ease-out .1s both f-zoomInUp
}

.f-zoomOutDown
{
	animation: var(--f-transition-duration, 0.2s) ease-out both f-zoomOutDown
}

@keyframes f-zoomInUp
{
	from
	{
		transform: scale(0.975) translate3d(0, 16px, 0);
		opacity: 0
	}
	to
	{
		transform: scale(1) translate3d(0, 0, 0);
		opacity: 1
	}
}

@keyframes f-zoomOutDown
{
	to
	{
		transform: scale(0.975) translate3d(0, 16px, 0);
		opacity: 0
	}
}

.f-fadeIn
{
	animation: var(--f-transition-duration, 0.2s) ease both f-fadeIn;
	z-index: 2
}

.f-fadeOut
{
	animation: var(--f-transition-duration, 0.2s) ease both f-fadeOut;
	z-index: 1
}

@keyframes f-fadeIn
{
	0%
	{
		opacity: 0
	}
	100%
	{
		opacity: 1
	}
}

@keyframes f-fadeOut
{
	100%
	{
		opacity: 0
	}
}

.f-fadeSlowIn
{
	animation: var(--f-transition-duration, 0.5s) ease both f-fadeSlowIn;
	z-index: 2
}

.f-fadeSlowOut
{
	animation: var(--f-transition-duration, 0.5s) ease both f-fadeSlowOut;
	z-index: 1
}

@keyframes f-fadeSlowIn
{
	0%
	{
		opacity: 0
	}
	100%
	{
		opacity: 1
	}
}

@keyframes f-fadeSlowOut
{
	100%
	{
		opacity: 0
	}
}

.f-fadeFastIn
{
	animation: var(--f-transition-duration, 0.2s) ease-out both f-fadeFastIn;
	z-index: 2
}

.f-fadeFastOut
{
	animation: var(--f-transition-duration, 0.2s) ease-out both f-fadeFastOut;
	z-index: 2
}

@keyframes f-fadeFastIn
{
	0%
	{
		opacity: .75
	}
	100%
	{
		opacity: 1
	}
}

@keyframes f-fadeFastOut
{
	100%
	{
		opacity: 0
	}
}

.f-crossfadeIn
{
	animation: var(--f-transition-duration, 0.2s) ease-out both f-crossfadeIn;
	z-index: 2
}

.f-crossfadeOut
{
	animation: calc(var(--f-transition-duration, 0.2s) * .5) linear .1s both f-crossfadeOut;
	z-index: 1
}

@keyframes f-crossfadeIn
{
	0%
	{
		opacity: 0
	}
	100%
	{
		opacity: 1
	}
}

@keyframes f-crossfadeOut
{
	100%
	{
		opacity: 0
	}
}

.f-slideIn.from-next
{
	animation: var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-slideInNext
}

.f-slideIn.from-prev
{
	animation: var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-slideInPrev
}

.f-slideOut.to-next
{
	animation: var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-slideOutNext
}

.f-slideOut.to-prev
{
	animation: var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-slideOutPrev
}

@keyframes f-slideInPrev
{
	0%
	{
		transform: translateX(100%)
	}
	100%
	{
		transform: translate3d(0, 0, 0)
	}
}

@keyframes f-slideInNext
{
	0%
	{
		transform: translateX(-100%)
	}
	100%
	{
		transform: translate3d(0, 0, 0)
	}
}

@keyframes f-slideOutNext
{
	100%
	{
		transform: translateX(-100%)
	}
}

@keyframes f-slideOutPrev
{
	100%
	{
		transform: translateX(100%)
	}
}

.f-classicIn.from-next
{
	animation: var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-classicInNext;
	z-index: 2
}

.f-classicIn.from-prev
{
	animation: var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-classicInPrev;
	z-index: 2
}

.f-classicOut.to-next
{
	animation: var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-classicOutNext;
	z-index: 1
}

.f-classicOut.to-prev
{
	animation: var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-classicOutPrev;
	z-index: 1
}

@keyframes f-classicInNext
{
	0%
	{
		transform: translateX(-75px);
		opacity: 0
	}
	100%
	{
		transform: translate3d(0, 0, 0);
		opacity: 1
	}
}

@keyframes f-classicInPrev
{
	0%
	{
		transform: translateX(75px);
		opacity: 0
	}
	100%
	{
		transform: translate3d(0, 0, 0);
		opacity: 1
	}
}

@keyframes f-classicOutNext
{
	100%
	{
		transform: translateX(-75px);
		opacity: 0
	}
}

@keyframes f-classicOutPrev
{
	100%
	{
		transform: translateX(75px);
		opacity: 0
	}
}

.f-carousel
{
	--f-carousel-theme-color: #706f6c;
	--f-carousel-spacing: 0px;
	--f-carousel-slide-width: 100%;
	--f-carousel-slide-height: auto;
	--f-carousel-slide-padding: 0;
	--f-button-width: 42px;
	--f-button-height: 42px;
	--f-button-color: var(--f-carousel-theme-color, currentColor);
	--f-button-hover-color: var(--f-carousel-theme-color, currentColor);
	--f-button-bg: transparent;
	--f-button-hover-bg: var(--f-button-bg);
	--f-button-active-bg: var(--f-button-bg);
	--f-button-svg-width: 24px;
	--f-button-svg-height: 24px;
	--f-button-next-pos: 10px;
	--f-button-prev-pos: 10px;
	position: relative;
	box-sizing: border-box
}

.f-carousel *, .f-carousel *:before, .f-carousel *:after
{
	box-sizing: inherit
}

.f-carousel.is-ltr
{
	direction: ltr
}

.f-carousel.is-rtl
{
	direction: rtl
}

.f-carousel__viewport
{
	overflow: hidden;
	transform: translate3d(0, 0, 0);
	backface-visibility: hidden;
	width: 100%;
	height: 100%
}

.f-carousel__viewport.is-draggable
{
	cursor: move;
	cursor: grab
}

.f-carousel__viewport.is-dragging
{
	cursor: move;
	cursor: grabbing
}

.f-carousel__track
{
	display: flex;
	margin: 0 auto;
	padding: 0;
	height: 100%;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0)
}

.f-carousel__slide
{
	position: relative;
	flex: 0 0 auto;
	width: var(--f-carousel-slide-width);
	max-width: 100%;
	height: var(--f-carousel-slide-height);
	margin: 0 var(--f-carousel-spacing) 0 0;
	padding: var(--f-carousel-slide-padding);
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	outline: 0;
	transform-origin: center center
}

.f-carousel__slide.is-loading
{
	min-height: 88px;
	min-width: 88px
}

.f-carousel.is-vertical
{
	--f-carousel-slide-height: 100%
}

.f-carousel.is-vertical .f-carousel__track
{
	flex-wrap: wrap
}

.f-carousel.is-vertical .f-carousel__slide
{
	margin: 0 0 var(--f-carousel-spacing) 0
}

:root
{
	--f-carousel-dots-width: 24px;
	--f-carousel-dots-height: 30px;
	--f-carousel-dot-width: 8px;
	--f-carousel-dot-height: 8px;
	--f-carousel-dot-radius: 50%;
	--f-carousel-dot-color: var(--f-carousel-theme-color, currentColor);
	--f-carousel-dot-opacity: 0.2;
	--f-carousel-dot-hover-opacity: 0.4
}

.f-carousel__dots
{
	position: absolute;
	bottom: calc(var(--f-carousel-dots-height) * -1);
	left: 0;
	right: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	margin: 0 auto !important;
	padding: 0;
	list-style: none !important;
	user-select: none
}

.f-carousel__dots li
{
	margin: 0;
	padding: 0;
	border: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: var(--f-carousel-dot-opacity);
	transition: opacity .15s ease-in-out
}

.f-carousel__dots li + li
{
	margin: 0
}

.f-carousel__dots li:hover
{
	opacity: var(--f-carousel-dot-hover-opacity)
}

.f-carousel__dots li.is-current
{
	opacity: 1
}

.f-carousel__dots li button
{
	appearance: none;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	width: var(--f-carousel-dots-width);
	height: var(--f-carousel-dots-height);
	border: 0;
	background: rgba(0, 0, 0, 0);
	cursor: pointer;
	transition: all .2s linear
}

.f-carousel__dot
{
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
	width: var(--f-carousel-dot-width);
	height: var(--f-carousel-dot-height);
	border-radius: var(--f-carousel-dot-radius);
	background-color: var(--f-carousel-dot-color);
	line-height: 0;
	font-size: 0;
	cursor: pointer;
	pointer-events: none
}

.f-carousel__dots.is-dynamic li:not(.is-prev,.is-next,.is-current,.is-after-next,.is-before-prev) button
{
	transform: scale(0);
	width: 0
}

.f-carousel__dots.is-dynamic li.is-before-prev button, .f-carousel__dots.is-dynamic li.is-after-next button
{
	transform: scale(0.22)
}

.f-carousel__dots.is-dynamic li.is-prev button, .f-carousel__dots.is-dynamic li.is-next button
{
	transform: scale(0.66)
}

.f-carousel__dots.is-dynamic li.is-current button
{
	transform: scale(1)
}

.f-carousel__dots.is-dynamic li.is-before-prev button, .f-carousel__dots.is-dynamic li.is-after-next button
{
	transform: scale(0.33)
}

.f-carousel__dots.is-dynamic li.is-current:first-child
{
	margin-left: calc(var(--f-carousel-dots-width) * 2)
}

.f-carousel__dots.is-dynamic li.is-prev:first-child
{
	margin-left: var(--f-carousel-dots-width)
}

.f-carousel__dots.is-dynamic li.is-next:last-child
{
	margin-right: var(--f-carousel-dots-width)
}

.f-carousel__dots.is-dynamic li.is-current:last-child
{
	margin-right: calc(var(--f-carousel-dots-width) * 2)
}

.f-carousel.is-rtl .f-carousel__dots.is-dynamic .is-current:first-child
{
	margin-left: 0;
	margin-right: var(--f-carousel-dots-width)
}

.f-carousel.is-rtl .f-carousel__dots.is-dynamic .is-prev:first-child
{
	margin-left: 0;
	margin-right: var(--f-carousel-dots-width)
}

.f-carousel.is-rtl .f-carousel__dots.is-dynamic .is-current:last-child
{
	margin-left: 0;
	margin-right: var(--f-carousel-dots-width)
}

.f-carousel.is-rtl .f-carousel__dots.is-dynamic .is-next:last-child
{
	margin-right: 0;
	margin-left: var(--f-carousel-dots-width)
}

:root
{
	--f-button-width: 40px;
	--f-button-height: 40px;
	--f-button-border: 0;
	--f-button-border-radius: 0;
	--f-button-color: #374151;
	--f-button-bg: #f8f8f8;
	--f-button-hover-bg: #e0e0e0;
	--f-button-active-bg: #d0d0d0;
	--f-button-shadow: none;
	--f-button-transition: all 0.15s ease;
	--f-button-transform: none;
	--f-button-svg-width: 20px;
	--f-button-svg-height: 20px;
	--f-button-svg-stroke-width: 1.5;
	--f-button-svg-fill: none;
	--f-button-svg-filter: none;
	--f-button-svg-disabled-opacity: 0.65
}

.f-button
{
	display: flex;
	justify-content: center;
	align-items: center;
	box-sizing: content-box;
	position: relative;
	margin: 0;
	padding: 0;
	width: var(--f-button-width);
	height: var(--f-button-height);
	border: var(--f-button-border);
	border-radius: var(--f-button-border-radius);
	color: var(--f-button-color);
	background: var(--f-button-bg);
	box-shadow: var(--f-button-shadow);
	pointer-events: all;
	cursor: pointer;
	transition: var(--f-button-transition)
}

@media (hover: hover)
{
	.f-button:hover:not([disabled])
	{
		color: var(--f-button-hover-color);
		background-color: var(--f-button-hover-bg)
	}
}

.f-button:active:not([disabled])
{
	background-color: var(--f-button-active-bg)
}

.f-button:focus:not(:focus-visible)
{
	outline: none
}

.f-button:focus-visible
{
	outline: none;
	box-shadow: inset 0 0 0 var(--f-button-outline, 2px) var(--f-button-outline-color, var(--f-button-color))
}

.f-button svg
{
	width: var(--f-button-svg-width);
	height: var(--f-button-svg-height);
	fill: var(--f-button-svg-fill);
	stroke: currentColor;
	stroke-width: var(--f-button-svg-stroke-width);
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: opacity .15s ease;
	transform: var(--f-button-transform);
	filter: var(--f-button-svg-filter);
	pointer-events: none
}

.f-button[disabled]
{
	cursor: default
}

.f-button[disabled] svg
{
	opacity: var(--f-button-svg-disabled-opacity)
}

.f-carousel__nav .f-button.is-prev, .f-carousel__nav .f-button.is-next, .fancybox__nav .f-button.is-prev, .fancybox__nav .f-button.is-next
{
	position: absolute;
	z-index: 1
}

.is-horizontal .f-carousel__nav .f-button.is-prev, .is-horizontal .f-carousel__nav .f-button.is-next, .is-horizontal .fancybox__nav .f-button.is-prev, .is-horizontal .fancybox__nav .f-button.is-next
{
	top: 50%;
	transform: translateY(-50%)
}

.is-horizontal .f-carousel__nav .f-button.is-prev, .is-horizontal .fancybox__nav .f-button.is-prev
{
	left: var(--f-button-prev-pos)
}

.is-horizontal .f-carousel__nav .f-button.is-next, .is-horizontal .fancybox__nav .f-button.is-next
{
	right: var(--f-button-next-pos)
}

.is-horizontal.is-rtl .f-carousel__nav .f-button.is-prev, .is-horizontal.is-rtl .fancybox__nav .f-button.is-prev
{
	left: auto;
	right: var(--f-button-next-pos)
}

.is-horizontal.is-rtl .f-carousel__nav .f-button.is-next, .is-horizontal.is-rtl .fancybox__nav .f-button.is-next
{
	right: auto;
	left: var(--f-button-prev-pos)
}

.is-vertical .f-carousel__nav .f-button.is-prev, .is-vertical .f-carousel__nav .f-button.is-next, .is-vertical .fancybox__nav .f-button.is-prev, .is-vertical .fancybox__nav .f-button.is-next
{
	top: auto;
	left: 50%;
	transform: translateX(-50%)
}

.is-vertical .f-carousel__nav .f-button.is-prev, .is-vertical .fancybox__nav .f-button.is-prev
{
	top: var(--f-button-next-pos)
}

.is-vertical .f-carousel__nav .f-button.is-next, .is-vertical .fancybox__nav .f-button.is-next
{
	bottom: var(--f-button-next-pos)
}

.is-vertical .f-carousel__nav .f-button.is-prev svg, .is-vertical .f-carousel__nav .f-button.is-next svg, .is-vertical .fancybox__nav .f-button.is-prev svg, .is-vertical .fancybox__nav .f-button.is-next svg
{
	transform: rotate(90deg)
}]]></template>
  <template type="public" title="carousel_macros" version_id="2030036" version_string="2.3.0 Beta 6"><![CDATA[<xf:macro name="setup">
	<xf:css src="carousel.less" />

	<xf:js prod="xf/carousel-compiled.js" dev="vendor/fancyapps/carousel/carousel.umd.js, vendor/fancyapps/carousel/carousel.autoplay.umd.js" />
	<xf:js src="xf/carousel.js" min="1" />

	<xf:js>
		XF.extendObject(XF.phrases, {
			next_slide: "{{ phrase('next_slide')|escape('js') }}",
			previous_slide: "{{ phrase('previous_slide')|escape('js') }}",
			go_to_slide_x: "{{ phrase('go_to_slide_x')|escape('js') }}"
		});
	</xf:js>
</xf:macro>]]></template>
  <template type="public" title="category_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="category_page_options" arg-category="!">
	<xf:page option="searchConstraints" value="{{ {
		phrase('threads'): {'search_type': 'post'},
		phrase('this_category'): {'search_type': 'post', 'c': {'nodes': [$category.node_id], 'child_nodes': 1}}
	} }}" />
</xf:macro>]]></template>
  <template type="public" title="category_mark_read" version_id="2000037" version_string="2.0.0 Beta 7"><![CDATA[<xf:title>{{ phrase('mark_forum_read') }}</xf:title>

<xf:form action="{{ link('categories/mark-read', $category, {'date': $date}) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('you_sure_you_want_to_mark_this_forum_read') }}
				<strong><a href="{{ link('categories', $category) }}">{$category.title}</a></strong>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('mark_forum_read') }}" rowtype="simple" icon="markRead" />
	</div>
</xf:form>]]></template>
  <template type="public" title="category_view" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{$category.title}</xf:title>
<xf:description>{$category.description|raw}</xf:description>

<xf:if is="!$category.isSearchEngineIndexable()">
	<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>
</xf:if>

<xf:macro id="metadata_macros::canonical_url" arg-canonicalUrl="{{ link('canonical:categories', $category) }}" />

<xf:macro id="category_macros::category_page_options" arg-category="{$category}" />
<xf:breadcrumb source="$category.getBreadcrumbs(false)" />

<xf:if is="$nodeTree">
	<div class="block">
		<div class="block-outer"><xf:trim>
			<xf:if contentcheck="true">
				<div class="block-outer-opposite">
					<div class="buttonGroup">
					<xf:contentcheck>
						<xf:if is="$xf.visitor.user_id && $hasForumDescendents">
							<xf:button href="{{ link('categories/mark-read', $category, {'date': $xf.time}) }}"
								class="button--link" overlay="true">
								{{ phrase('mark_read') }}
							</xf:button>
						</xf:if>
					</xf:contentcheck>
					</div>
				</div>
			</xf:if>
		</xf:trim></div>
		<div class="block-container">
			<div class="block-body">
				<xf:macro id="forum_list::node_list"
					arg-children="{$nodeTree}"
					arg-extras="{$nodeExtras}"
					arg-depth="2" />
			</div>
		</div>
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('there_is_nothing_to_display') }}</div>
</xf:if>

<xf:widgetpos id="category_view_sidebar" context-category="{$category}" position="sidebar" />]]></template>
  <template type="public" title="chartist.css" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[.ct-label
{
	fill: rgba(0, 0, 0, 0.4);
	color: rgba(0, 0, 0, 0.4);
	font-size: 0.75rem;
	line-height: 1;
}

.ct-chart-line .ct-label,
.ct-chart-bar .ct-label
{
	display: block;
	display: -webkit-box;
	display: -moz-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
}

.ct-chart-pie .ct-label,
.ct-chart-donut .ct-label
{
	dominant-baseline: central;
}

.ct-label.ct-horizontal.ct-start
{
	-webkit-box-align: flex-end;
	-webkit-align-items: flex-end;
	-ms-flex-align: flex-end;
	align-items: flex-end;
	-webkit-box-pack: flex-start;
	-webkit-justify-content: flex-start;
	-ms-flex-pack: flex-start;
	justify-content: flex-start;
	text-align: left;
	text-anchor: start;
}

.ct-label.ct-horizontal.ct-end
{
	-webkit-box-align: flex-start;
	-webkit-align-items: flex-start;
	-ms-flex-align: flex-start;
	align-items: flex-start;
	-webkit-box-pack: flex-start;
	-webkit-justify-content: flex-start;
	-ms-flex-pack: flex-start;
	justify-content: flex-start;
	text-align: left;
	text-anchor: start;
}

.ct-label.ct-vertical.ct-start
{
	-webkit-box-align: flex-end;
	-webkit-align-items: flex-end;
	-ms-flex-align: flex-end;
	align-items: flex-end;
	-webkit-box-pack: flex-end;
	-webkit-justify-content: flex-end;
	-ms-flex-pack: flex-end;
	justify-content: flex-end;
	text-align: right;
	text-anchor: end;
}

.ct-label.ct-vertical.ct-end
{
	-webkit-box-align: flex-end;
	-webkit-align-items: flex-end;
	-ms-flex-align: flex-end;
	align-items: flex-end;
	-webkit-box-pack: flex-start;
	-webkit-justify-content: flex-start;
	-ms-flex-pack: flex-start;
	justify-content: flex-start;
	text-align: left;
	text-anchor: start;
}

.ct-chart-bar .ct-label.ct-horizontal.ct-start
{
	-webkit-box-align: flex-end;
	-webkit-align-items: flex-end;
	-ms-flex-align: flex-end;
	align-items: flex-end;
	-webkit-box-pack: center;
	-webkit-justify-content: center;
	-ms-flex-pack: center;
	justify-content: center;
	text-align: center;
	text-anchor: start;
}

.ct-chart-bar .ct-label.ct-horizontal.ct-end
{
	-webkit-box-align: flex-start;
	-webkit-align-items: flex-start;
	-ms-flex-align: flex-start;
	align-items: flex-start;
	-webkit-box-pack: center;
	-webkit-justify-content: center;
	-ms-flex-pack: center;
	justify-content: center;
	text-align: center;
	text-anchor: start;
}

.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-start
{
	-webkit-box-align: flex-end;
	-webkit-align-items: flex-end;
	-ms-flex-align: flex-end;
	align-items: flex-end;
	-webkit-box-pack: flex-start;
	-webkit-justify-content: flex-start;
	-ms-flex-pack: flex-start;
	justify-content: flex-start;
	text-align: left;
	text-anchor: start;
}

.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-end
{
	-webkit-box-align: flex-start;
	-webkit-align-items: flex-start;
	-ms-flex-align: flex-start;
	align-items: flex-start;
	-webkit-box-pack: flex-start;
	-webkit-justify-content: flex-start;
	-ms-flex-pack: flex-start;
	justify-content: flex-start;
	text-align: left;
	text-anchor: start;
}

.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-start
{
	-webkit-box-align: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: flex-end;
	-webkit-justify-content: flex-end;
	-ms-flex-pack: flex-end;
	justify-content: flex-end;
	text-align: right;
	text-anchor: end;
}

.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-end
{
	-webkit-box-align: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: flex-start;
	-webkit-justify-content: flex-start;
	-ms-flex-pack: flex-start;
	justify-content: flex-start;
	text-align: left;
	text-anchor: end;
}

.ct-grid
{
	stroke: rgba(0, 0, 0, 0.2);
	stroke-width: 1px;
	stroke-dasharray: 2px;
}

.ct-grid-background
{
	fill: none;
}

.ct-point
{
	stroke-width: 10px;
	stroke-linecap: round;
}

.ct-line
{
	fill: none;
	stroke-width: 4px;
}

.ct-area
{
	stroke: none;
	fill-opacity: 0.1;
}

.ct-bar
{
	fill: none;
	stroke-width: 10px;
}

.ct-slice-donut
{
	fill: none;
	stroke-width: 60px;
}

.ct-series-a .ct-point,
.ct-series-a .ct-line,
.ct-series-a .ct-bar,
.ct-series-a .ct-slice-donut
{
	stroke: #d70206;
}

.ct-series-a .ct-slice-pie,
.ct-series-a .ct-slice-donut-solid,
.ct-series-a .ct-area
{
	fill: #d70206;
}

.ct-series-b .ct-point,
.ct-series-b .ct-line,
.ct-series-b .ct-bar,
.ct-series-b .ct-slice-donut
{
	stroke: #f05b4f;
}

.ct-series-b .ct-slice-pie,
.ct-series-b .ct-slice-donut-solid,
.ct-series-b .ct-area
{
	fill: #f05b4f;
}

.ct-series-c .ct-point,
.ct-series-c .ct-line,
.ct-series-c .ct-bar,
.ct-series-c .ct-slice-donut
{
	stroke: #f4c63d;
}

.ct-series-c .ct-slice-pie,
.ct-series-c .ct-slice-donut-solid,
.ct-series-c .ct-area
{
	fill: #f4c63d;
}

.ct-series-d .ct-point,
.ct-series-d .ct-line,
.ct-series-d .ct-bar,
.ct-series-d .ct-slice-donut
{
	stroke: #d17905;
}

.ct-series-d .ct-slice-pie,
.ct-series-d .ct-slice-donut-solid,
.ct-series-d .ct-area
{
	fill: #d17905;
}

.ct-series-e .ct-point,
.ct-series-e .ct-line,
.ct-series-e .ct-bar,
.ct-series-e .ct-slice-donut
{
	stroke: #453d3f;
}

.ct-series-e .ct-slice-pie,
.ct-series-e .ct-slice-donut-solid,
.ct-series-e .ct-area
{
	fill: #453d3f;
}

.ct-series-f .ct-point,
.ct-series-f .ct-line,
.ct-series-f .ct-bar,
.ct-series-f .ct-slice-donut
{
	stroke: #59922b;
}

.ct-series-f .ct-slice-pie,
.ct-series-f .ct-slice-donut-solid,
.ct-series-f .ct-area
{
	fill: #59922b;
}

.ct-series-g .ct-point,
.ct-series-g .ct-line,
.ct-series-g .ct-bar,
.ct-series-g .ct-slice-donut
{
	stroke: #0544d3;
}

.ct-series-g .ct-slice-pie,
.ct-series-g .ct-slice-donut-solid,
.ct-series-g .ct-area
{
	fill: #0544d3;
}

.ct-series-h .ct-point,
.ct-series-h .ct-line,
.ct-series-h .ct-bar,
.ct-series-h .ct-slice-donut
{
	stroke: #6b0392;
}

.ct-series-h .ct-slice-pie,
.ct-series-h .ct-slice-donut-solid,
.ct-series-h .ct-area
{
	fill: #6b0392;
}

.ct-series-i .ct-point,
.ct-series-i .ct-line,
.ct-series-i .ct-bar,
.ct-series-i .ct-slice-donut
{
	stroke: #f05b4f;
}

.ct-series-i .ct-slice-pie,
.ct-series-i .ct-slice-donut-solid,
.ct-series-i .ct-area
{
	fill: #f05b4f;
}

.ct-series-j .ct-point,
.ct-series-j .ct-line,
.ct-series-j .ct-bar,
.ct-series-j .ct-slice-donut
{
	stroke: #dda458;
}

.ct-series-j .ct-slice-pie,
.ct-series-j .ct-slice-donut-solid,
.ct-series-j .ct-area
{
	fill: #dda458;
}

.ct-series-k .ct-point,
.ct-series-k .ct-line,
.ct-series-k .ct-bar,
.ct-series-k .ct-slice-donut
{
	stroke: #eacf7d;
}

.ct-series-k .ct-slice-pie,
.ct-series-k .ct-slice-donut-solid,
.ct-series-k .ct-area
{
	fill: #eacf7d;
}

.ct-series-l .ct-point,
.ct-series-l .ct-line,
.ct-series-l .ct-bar,
.ct-series-l .ct-slice-donut
{
	stroke: #86797d;
}

.ct-series-l .ct-slice-pie,
.ct-series-l .ct-slice-donut-solid,
.ct-series-l .ct-area
{
	fill: #86797d;
}

.ct-series-m .ct-point,
.ct-series-m .ct-line,
.ct-series-m .ct-bar,
.ct-series-m .ct-slice-donut
{
	stroke: #b2c326;
}

.ct-series-m .ct-slice-pie,
.ct-series-m .ct-slice-donut-solid,
.ct-series-m .ct-area
{
	fill: #b2c326;
}

.ct-series-n .ct-point,
.ct-series-n .ct-line,
.ct-series-n .ct-bar,
.ct-series-n .ct-slice-donut
{
	stroke: #6188e2;
}

.ct-series-n .ct-slice-pie,
.ct-series-n .ct-slice-donut-solid,
.ct-series-n .ct-area
{
	fill: #6188e2;
}

.ct-series-o .ct-point,
.ct-series-o .ct-line,
.ct-series-o .ct-bar,
.ct-series-o .ct-slice-donut
{
	stroke: #a748ca;
}

.ct-series-o .ct-slice-pie,
.ct-series-o .ct-slice-donut-solid,
.ct-series-o .ct-area
{
	fill: #a748ca;
}

.ct-square
{
	display: block;
	position: relative;
	width: 100%;
}

.ct-square:before
{
	display: block;
	float: left;
	content: "";
	width: 0;
	height: 0;
	padding-bottom: 100%;
}

.ct-square:after
{
	content: "";
	display: table;
	clear: both;
}

.ct-square>svg
{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}

.ct-minor-second
{
	display: block;
	position: relative;
	width: 100%;
}

.ct-minor-second:before
{
	display: block;
	float: left;
	content: "";
	width: 0;
	height: 0;
	padding-bottom: 93.75%;
}

.ct-minor-second:after
{
	content: "";
	display: table;
	clear: both;
}

.ct-minor-second>svg
{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}

.ct-major-second
{
	display: block;
	position: relative;
	width: 100%;
}

.ct-major-second:before
{
	display: block;
	float: left;
	content: "";
	width: 0;
	height: 0;
	padding-bottom: 88.8888888889%;
}

.ct-major-second:after
{
	content: "";
	display: table;
	clear: both;
}

.ct-major-second>svg
{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}

.ct-minor-third
{
	display: block;
	position: relative;
	width: 100%;
}

.ct-minor-third:before
{
	display: block;
	float: left;
	content: "";
	width: 0;
	height: 0;
	padding-bottom: 83.3333333333%;
}

.ct-minor-third:after
{
	content: "";
	display: table;
	clear: both;
}

.ct-minor-third>svg
{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}

.ct-major-third
{
	display: block;
	position: relative;
	width: 100%;
}

.ct-major-third:before
{
	display: block;
	float: left;
	content: "";
	width: 0;
	height: 0;
	padding-bottom: 80%;
}

.ct-major-third:after
{
	content: "";
	display: table;
	clear: both;
}

.ct-major-third>svg
{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}

.ct-perfect-fourth
{
	display: block;
	position: relative;
	width: 100%;
}

.ct-perfect-fourth:before
{
	display: block;
	float: left;
	content: "";
	width: 0;
	height: 0;
	padding-bottom: 75%;
}

.ct-perfect-fourth:after
{
	content: "";
	display: table;
	clear: both;
}

.ct-perfect-fourth>svg
{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}

.ct-perfect-fifth
{
	display: block;
	position: relative;
	width: 100%;
}

.ct-perfect-fifth:before
{
	display: block;
	float: left;
	content: "";
	width: 0;
	height: 0;
	padding-bottom: 66.6666666667%;
}

.ct-perfect-fifth:after
{
	content: "";
	display: table;
	clear: both;
}

.ct-perfect-fifth>svg
{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}

.ct-minor-sixth
{
	display: block;
	position: relative;
	width: 100%;
}

.ct-minor-sixth:before
{
	display: block;
	float: left;
	content: "";
	width: 0;
	height: 0;
	padding-bottom: 62.5%;
}

.ct-minor-sixth:after
{
	content: "";
	display: table;
	clear: both;
}

.ct-minor-sixth>svg
{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}

.ct-golden-section
{
	display: block;
	position: relative;
	width: 100%;
}

.ct-golden-section:before
{
	display: block;
	float: left;
	content: "";
	width: 0;
	height: 0;
	padding-bottom: 61.804697157%;
}

.ct-golden-section:after
{
	content: "";
	display: table;
	clear: both;
}

.ct-golden-section>svg
{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}

.ct-major-sixth
{
	display: block;
	position: relative;
	width: 100%;
}

.ct-major-sixth:before
{
	display: block;
	float: left;
	content: "";
	width: 0;
	height: 0;
	padding-bottom: 60%;
}

.ct-major-sixth:after
{
	content: "";
	display: table;
	clear: both;
}

.ct-major-sixth>svg
{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}

.ct-minor-seventh
{
	display: block;
	position: relative;
	width: 100%;
}

.ct-minor-seventh:before
{
	display: block;
	float: left;
	content: "";
	width: 0;
	height: 0;
	padding-bottom: 56.25%;
}

.ct-minor-seventh:after
{
	content: "";
	display: table;
	clear: both;
}

.ct-minor-seventh>svg
{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}

.ct-major-seventh
{
	display: block;
	position: relative;
	width: 100%;
}

.ct-major-seventh:before
{
	display: block;
	float: left;
	content: "";
	width: 0;
	height: 0;
	padding-bottom: 53.3333333333%;
}

.ct-major-seventh:after
{
	content: "";
	display: table;
	clear: both;
}

.ct-major-seventh>svg
{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}

.ct-octave
{
	display: block;
	position: relative;
	width: 100%;
}

.ct-octave:before
{
	display: block;
	float: left;
	content: "";
	width: 0;
	height: 0;
	padding-bottom: 50%;
}

.ct-octave:after
{
	content: "";
	display: table;
	clear: both;
}

.ct-octave>svg
{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}

.ct-major-tenth
{
	display: block;
	position: relative;
	width: 100%;
}

.ct-major-tenth:before
{
	display: block;
	float: left;
	content: "";
	width: 0;
	height: 0;
	padding-bottom: 40%;
}

.ct-major-tenth:after
{
	content: "";
	display: table;
	clear: both;
}

.ct-major-tenth>svg
{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}

.ct-major-eleventh
{
	display: block;
	position: relative;
	width: 100%;
}

.ct-major-eleventh:before
{
	display: block;
	float: left;
	content: "";
	width: 0;
	height: 0;
	padding-bottom: 37.5%;
}

.ct-major-eleventh:after
{
	content: "";
	display: table;
	clear: both;
}

.ct-major-eleventh>svg
{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}

.ct-major-twelfth
{
	display: block;
	position: relative;
	width: 100%;
}

.ct-major-twelfth:before
{
	display: block;
	float: left;
	content: "";
	width: 0;
	height: 0;
	padding-bottom: 33.3333333333%;
}

.ct-major-twelfth:after
{
	content: "";
	display: table;
	clear: both;
}

.ct-major-twelfth>svg
{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}

.ct-double-octave
{
	display: block;
	position: relative;
	width: 100%;
}

.ct-double-octave:before
{
	display: block;
	float: left;
	content: "";
	width: 0;
	height: 0;
	padding-bottom: 25%;
}

.ct-double-octave:after
{
	content: "";
	display: table;
	clear: both;
}

.ct-double-octave>svg
{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}]]></template>
  <template type="public" title="code_editor" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:css src="code_editor.less" />

<xf:macro id="editor_setup" arg-modeConfig="{$modeConfig}" />

<textarea name="{$name}"
	class="input input--code codeEditor{{ $extraClasses ? ' ' . $extraClasses : '' }} js-codeEditor u-jsOnly"
	dir="ltr"
	rows="{$rows}"
	data-xf-init="code-editor"
	data-mode="{{ $modeConfig.mime ?: $modeConfig.modes|first }}"
	data-lang="{$lang}"
	data-config="{$modeConfig.config|json}"
	{{ $readOnly ? 'readonly="readonly"' : '' }}
	style="display: none;" {$attrsHtml|raw}>{$value}</textarea>
<noscript>
	<textarea name="{$name}" class="input input--code" dir="ltr" rows="{$rows}" {{ $readOnly ? 'readonly="readonly"' : '' }}>{$value}</textarea>
</noscript>

<xf:macro id="editor_setup" arg-modeConfig="!">
	<script class="js-codeEditorLanguage" type="application/json">
		{
			"All": "{{ phrase('all')|escape('json') }}",
			"Identical text collapsed. Click to expand.": "{{ phrase('identical_text_collapsed')|escape('json') }}",
			"Jump to line:": "{{ phrase('jump_to_line:')|escape('json') }}",
			"No": "{{ phrase('no')|escape('json') }}",
			"Push to left": "{{ phrase('push_to_left')|escape('json') }}",
			"Replace all:": "{{ phrase('replace_all:')|escape('json') }}",
			"Replace with:": "{{ phrase('replace_with:')|escape('json') }}",
			"Replace:": "{{ phrase('replace:')|escape('json') }}",
			"Replace?": "{{ phrase('replace_question')|escape('json') }}",
			"Revert chunk": "{{ phrase('revert_chunk')|escape('json') }}",
			"Search:": "{{ phrase('search:')|escape('json') }}",
			"Stop": "{{ phrase('stop')|escape('json') }}",
			"Toggle locked scrolling": "{{ phrase('toggle_locked_scrolling')|escape('json') }}",
			"(Use /re/ syntax for regexp search)": "{{ phrase('use_re_syntax')|escape('json') }}",
			"(Use line:column or scroll% syntax)": "{{ phrase('use_line_column_or_scroll_syntax')|escape('json') }}",
			"With:": "{{ phrase('with:')|escape('json') }}",
			"Yes": "{{ phrase('yes')|escape('json') }}"
		}
	</script>
	<xf:js src="vendor/codemirror/codemirror.min.js" />

	<xf:if is="$modeConfig.addons">
		<xf:if is="is_array($modeConfig.addons)">
			<xf:foreach loop="$modeConfig.addons" value="$addon">
				<xf:js src="vendor/codemirror/addon/{$addon}.min.js" />
			</xf:foreach>
		<xf:else />
			<xf:js src="vendor/codemirror/addon/{$modeConfig.addons}.min.js" />
		</xf:if>
	</xf:if>

	<xf:if is="$modeConfig.modes">
		<xf:if is="is_array($modeConfig.modes)">
			<xf:foreach loop="$modeConfig.modes" value="$mode">
				<xf:js src="vendor/codemirror/mode/{$mode}/{$mode}.min.js" />
			</xf:foreach>
		<xf:else />
			<xf:js src="vendor/codemirror/mode/{$modeConfig.modes}/{$modeConfig.modes}.min.js" />
		</xf:if>
	</xf:if>

	<xf:js src="xf/code_editor.js" min="1" />
</xf:macro>]]></template>
  <template type="public" title="code_editor.less" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[/* XF-RTL:disable */

.codeEditor
{
	// standard editor with fixed-width font and 55% screen height, used when the code editor is the primary
	// editable element on screen
	&.CodeMirror
	{
		height: 55vh;
		direction: ltr;

		.xf-input();
		font-family: @xf-fontFamilyCode;
		padding: 0;
		-ltr-rtl-border-color: @xf-borderColorHeavy @xf-borderColorLight @xf-borderColorLight @xf-borderColorHeavy;

		//color: @xf-inputTextColor;
		//background: @xf-inputBgColor;
		//border: @xf-borderSize solid;
		//border-radius: @xf-borderRadiusMedium;

		.m-inputZoomFix();

		&.CodeMirror-focused
		{
			.xf-inputFocus();
		}

		&.CodeMirror-simplescroll
		{
			.CodeMirror-sizer
			{
				// Bit hacky but solves issue with the simplescroll bars overlapping the content
				padding-right: 30px !important;
			}
		}
	}

	// short editor, taking only 30% of the vertical height
	&.codeEditor--short
	{
		height: 30vh;
	}

	// show an editor that shrinks to a very small height for very little content
	&.codeEditor--autoSize
	{
		height: auto;

		.CodeMirror-lines
		{
			min-height: (@xf-fontSizeNormal * @xf-lineHeightDefault * 2 + 8px); // 2 lines, 4px padding from .CodeMirror-lines
		}
	}

	// like --autoSize, but shrinks to a single line when empty
	&.codeEditor--oneLine
	{
		min-height: auto;
	}

	// use proportional font - use this when syntax highlighting is useful, but not imperative, like HTML-enabled descriptions
	&.codeEditor--proportional
	{
		font-family: @xf-fontFamilyUi;
	}
}

[disabled] + .codeEditor,
[disabled] + .codeEditor.CodeMirror-focused
{
	.xf-inputDisabled();
}

[readonly] + .codeEditor,
[readonly] + .codeEditor.CodeMirror-focused
{
	background: mix(xf-default(@xf-input--background-color, @xf-contentBg), xf-default(@xf-inputDisabled--background-color, @xf-paletteNeutral1));
}

// Default CSS (mostly)
{{ include('codemirror.less') }}

@_cm-black: @xf-textColor;
@_cm-999: @xf-textColorMuted;
@_cm-bbb: xf-diminish(@xf-borderColor, 12%);
@_cm-silver: @xf-borderColorHeavy;
@_cm-ccc: @xf-borderColorHeavy;
@_cm-d9d9d9: @xf-borderColor;
@_cm-ddd: @xf-borderColor;
@_cm-eee: @xf-borderColorFaint;
@_cm-f7f7f7: @xf-contentAltBg;
@_cm-white: @xf-contentBg;
@_cm-7e7: #7e7;
@_cm-bcd: #bcd;
@_cm-d7d4f0: @xf-contentHighlightBg;
@_cm-rgb_20_255_20: rgba(20, 255, 20, 0.5);
@_cm-rgba_255_255_0: rgba(255, 255, 0, .4);

.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { background-color: @_cm-white; } // white
.CodeMirror-gutters {
	border-right-color: @_cm-ddd; // #ddd
	background-color: @_cm-f7f7f7; } // #f7f7f7
.CodeMirror-linenumber {
	color: @_cm-999; } // #999
.CodeMirror-guttermarker {
	color: @_cm-black; } // black
.CodeMirror-guttermarker-subtle {
	color: @_cm-999; } // #999
.CodeMirror-cursor {
	border-left-color: @_cm-black; } // black
.CodeMirror div.CodeMirror-secondarycursor {
	border-left-color: @_cm-silver; } // silver / #c0c0c0
.cm-fat-cursor .CodeMirror-cursor {
	background: @_cm-7e7; } // #7e7
.cm-animate-fat-cursor {
	background-color: @_cm-7e7; } // #7e7
.cm-fat-cursor-mark {
	background-color: @_cm-rgb_20_255_20; } // rgba(20, 255, 20, 0.5)
.CodeMirror-ruler {
	border-left-color: @_cm-ccc; } // #ccc
.CodeMirror {
	background: @_cm-white; } // white
.CodeMirror-selected {
	background: @_cm-d9d9d9; } // #d9d9d9;
.CodeMirror-focused .CodeMirror-selected {
	background: @_cm-d7d4f0; } // #d7d4f0
.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection {
	background: @_cm-d7d4f0; } // #d7d4f0
.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection {
	background: @_cm-d7d4f0; } // #d7d4f0
.cm-searching {
	background-color: @_cm-rgba_255_255_0; } // rgba(255, 255, 0, .4)
.CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div {
	background: @_cm-ccc; // #ccc
	border-color: @_cm-bbb; } // #bbb
.CodeMirror-simplescroll-horizontal, .CodeMirror-simplescroll-vertical {
	background: @_cm-eee; } // #eee
.CodeMirror-overlayscroll-horizontal div, .CodeMirror-overlayscroll-vertical div {
	background: @_cm-bcd; } // #bcd
.CodeMirror-dialog-top {
	border-bottom-color: @_cm-eee; } // #eee
.CodeMirror-dialog-bottom {
	border-top-color: @_cm-eee; } // #eee

// Extra stuff for DARK styles, taking values from CodeMirror's DARCULA theme
.cm-s-default
{
	.m-colorScheme(dark,
	{
		//&.CodeMirror
		//{
		//	.CodeMirror-cursor { border-left: 1px solid #dddddd; }
		//	.CodeMirror-activeline-background { background: #3A3A3A; }
		//	.CodeMirror-selected { background: #085a9c; }
		//	.CodeMirror-gutters { background: rgb(72, 72, 72); border-right: 1px solid grey; color: #606366 }
		//	.CodeMirror-matchingbracket { background-color: #3b514d; color: yellow !important; }
		//}
		&.CodeMirror-focused .CodeMirror-selected
		{
			background: lighten(@xf-contentHighlightBg, 10%);
		}
		.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection
		{
			background: lighten(@xf-contentHighlightBg, 10%);
		}
		.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection
		{
			background: lighten(@xf-contentHighlightBg, 10%);
		}

		span.cm-keyword { font-weight: bold; color: #CC7832; }
		span.cm-atom { font-weight: bold; color: #CC7832; }
		span.cm-number { color: #6897BB; }
		span.cm-def { color: #FFC66D; }
		span.cm-variable { color: #A9B7C6; }
		span.cm-property { color: #A9B7C6; }
		span.cm-operator { color: #A9B7C6; }
		span.cm-variable-2 { color: #A9B7C6; }
		span.cm-variable-3,
		span.cm-comment { color: #808080; }
		span.cm-string { color: #6A8759; }
		span.cm-string-2 { color: #6A8759; }
		span.cm-meta { color: #BBB529; }
		span.cm-qualifier { color: #6A8759; }
		span.cm-builtin { color: #A9B7C6; }
		span.cm-bracket { color: #A9B7C6; }
		span.cm-tag { color: #CC7832; }
		span.cm-attribute { color: #6A8759; }
		span.cm-link { color: #287BDE; }
		span.cm-error { color: #BC3F3C; }
		span.cm-invalidchar { color: #BC3F3C; }
		span.cm-type { color: #A9B7C6; }
	});
}

/* XF-RTL:enable */]]></template>
  <template type="public" title="code_editor_mode_loader" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="public:code_editor::editor_setup" arg-modeConfig="{$modeConfig}" />]]></template>
  <template type="public" title="codemirror.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[/* BASICS */

.CodeMirror {
	height: 300px;
}

/* PADDING */

.CodeMirror-lines {
	padding: 4px 0; /* Vertical padding around content */
}
.CodeMirror pre.CodeMirror-line,
.CodeMirror pre.CodeMirror-line-like {
	padding: 0 4px; /* Horizontal padding of content */
}

.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
	background-color: white; /* The little square between H and V scrollbars */
}

/* GUTTER */

.CodeMirror-gutters {
	border-right: 1px solid #ddd;
	background-color: #f7f7f7;
	white-space: nowrap;
}
.CodeMirror-linenumbers {}
.CodeMirror-linenumber {
	padding: 0 3px 0 5px;
	min-width: 20px;
	text-align: right;
	color: #999;
	white-space: nowrap;
}

.CodeMirror-guttermarker { color: black; }
.CodeMirror-guttermarker-subtle { color: #999; }

/* CURSOR */

.CodeMirror-cursor {
	border-left: 1px solid black;
	border-right: none;
	width: 0;
}
/* Shown when moving in bi-directional text */
.CodeMirror div.CodeMirror-secondarycursor {
	border-left: 1px solid silver;
}
.cm-fat-cursor .CodeMirror-cursor {
	width: auto;
	border: 0 !important;
	background: #7e7;
}
.cm-fat-cursor div.CodeMirror-cursors {
	z-index: 1;
}
.cm-fat-cursor-mark {
	background-color: rgba(20, 255, 20, 0.5);
	-webkit-animation: blink 1.06s steps(1) infinite;
	-moz-animation: blink 1.06s steps(1) infinite;
	animation: blink 1.06s steps(1) infinite;
}
.cm-animate-fat-cursor {
	width: auto;
	border: 0;
	-webkit-animation: blink 1.06s steps(1) infinite;
	-moz-animation: blink 1.06s steps(1) infinite;
	animation: blink 1.06s steps(1) infinite;
	background-color: #7e7;
}
@-moz-keyframes blink {
	0% {}
	50% { background-color: transparent; }
	100% {}
}
@-webkit-keyframes blink {
	0% {}
	50% { background-color: transparent; }
	100% {}
}
@keyframes blink {
	0% {}
	50% { background-color: transparent; }
	100% {}
}

/* Can style cursor different in overwrite (non-insert) mode */
.CodeMirror-overwrite .CodeMirror-cursor {}

.cm-tab { display: inline-block; text-decoration: inherit; }

.CodeMirror-rulers {
	position: absolute;
	left: 0; right: 0; top: -50px; bottom: 0;
	overflow: hidden;
}
.CodeMirror-ruler {
	border-left: 1px solid #ccc;
	top: 0; bottom: 0;
	position: absolute;
}

/* DEFAULT THEME */

.cm-s-default .cm-header {color: blue;}
.cm-s-default .cm-quote {color: #090;}
.cm-negative {color: #d44;}
.cm-positive {color: #292;}
.cm-header, .cm-strong {font-weight: bold;}
.cm-em {font-style: italic;}
.cm-link {text-decoration: underline;}
.cm-strikethrough {text-decoration: line-through;}

.cm-s-default .cm-keyword {color: #708;}
.cm-s-default .cm-atom {color: #219;}
.cm-s-default .cm-number {color: #164;}
.cm-s-default .cm-def {color: #00f;}
.cm-s-default .cm-variable,
.cm-s-default .cm-punctuation,
.cm-s-default .cm-property,
.cm-s-default .cm-operator {}
.cm-s-default .cm-variable-2 {color: #05a;}
.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}
.cm-s-default .cm-comment {color: #a50;}
.cm-s-default .cm-string {color: #a11;}
.cm-s-default .cm-string-2 {color: #f50;}
.cm-s-default .cm-meta {color: #555;}
.cm-s-default .cm-qualifier {color: #555;}
.cm-s-default .cm-builtin {color: #30a;}
.cm-s-default .cm-bracket {color: #997;}
.cm-s-default .cm-tag {color: #170;}
.cm-s-default .cm-attribute {color: #00c;}
.cm-s-default .cm-hr {color: #999;}
.cm-s-default .cm-link {color: #00c;}

.cm-s-default .cm-error {color: #f00;}
.cm-invalidchar {color: #f00;}

.CodeMirror-composing { border-bottom: 2px solid; }

/* Default styles for common addons */

div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
.CodeMirror-activeline-background {background: #e8f2ff;}

/* STOP */

/* The rest of this file contains styles related to the mechanics of
   the editor. You probably shouldn't touch them. */

.CodeMirror {
	position: relative;
	overflow: hidden;
	background: white;
}

.CodeMirror-scroll {
	overflow: scroll !important; /* Things will break if this is overridden */
	/* 50px is the magic margin used to hide the element's real scrollbars */
	/* See overflow: hidden in .CodeMirror */
	margin-bottom: -50px; margin-right: -50px;
	padding-bottom: 50px;
	height: 100%;
	outline: none; /* Prevent dragging from highlighting the element */
	position: relative;
}
.CodeMirror-sizer {
	position: relative;
	border-right: 50px solid transparent;
}

/* The fake, visible scrollbars. Used to force redraw during scrolling
   before actual scrolling happens, thus preventing shaking and
   flickering artifacts. */
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
	position: absolute;
	z-index: 6;
	display: none;
	outline: none;
}
.CodeMirror-vscrollbar {
	right: 0; top: 0;
	overflow-x: hidden;
	overflow-y: scroll;
}
.CodeMirror-hscrollbar {
	bottom: 0; left: 0;
	overflow-y: hidden;
	overflow-x: scroll;
}
.CodeMirror-scrollbar-filler {
	right: 0; bottom: 0;
}
.CodeMirror-gutter-filler {
	left: 0; bottom: 0;
}

.CodeMirror-gutters {
	position: absolute; left: 0; top: 0;
	min-height: 100%;
	z-index: 3;
}
.CodeMirror-gutter {
	white-space: normal;
	height: 100%;
	display: inline-block;
	vertical-align: top;
	margin-bottom: -50px;
}
.CodeMirror-gutter-wrapper {
	position: absolute;
	z-index: 4;
	background: none !important;
	border: none !important;
}
.CodeMirror-gutter-background {
	position: absolute;
	top: 0; bottom: 0;
	z-index: 4;
}
.CodeMirror-gutter-elt {
	position: absolute;
	cursor: default;
	z-index: 4;
}
.CodeMirror-gutter-wrapper ::selection { background-color: transparent }
.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }

.CodeMirror-lines {
	cursor: text;
	min-height: 1px; /* prevents collapsing before first draw */
}
.CodeMirror pre.CodeMirror-line,
.CodeMirror pre.CodeMirror-line-like {
	/* Reset some styles that the rest of the page might have set */
	-moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
	border-width: 0;
	background: transparent;
	font-family: inherit;
	font-size: inherit;
	margin: 0;
	white-space: pre;
	word-wrap: normal;
	line-height: inherit;
	color: inherit;
	z-index: 2;
	position: relative;
	overflow: visible;
	-webkit-tap-highlight-color: transparent;
	-webkit-font-variant-ligatures: contextual;
	font-variant-ligatures: contextual;
}
.CodeMirror-wrap pre.CodeMirror-line,
.CodeMirror-wrap pre.CodeMirror-line-like {
	word-wrap: break-word;
	white-space: pre-wrap;
	word-break: normal;
}

.CodeMirror-linebackground {
	position: absolute;
	left: 0; right: 0; top: 0; bottom: 0;
	z-index: 0;
}

.CodeMirror-linewidget {
	position: relative;
	z-index: 2;
	padding: 0.1px; /* Force widget margins to stay inside of the container */
}

.CodeMirror-widget {}

.CodeMirror-rtl pre { direction: rtl; }

.CodeMirror-code {
	outline: none;
}

/* Force content-box sizing for the elements where we expect it */
.CodeMirror-scroll,
.CodeMirror-sizer,
.CodeMirror-gutter,
.CodeMirror-gutters,
.CodeMirror-linenumber {
	-moz-box-sizing: content-box;
	box-sizing: content-box;
}

.CodeMirror-measure {
	position: absolute;
	width: 100%;
	height: 0;
	overflow: hidden;
	visibility: hidden;
}

.CodeMirror-cursor {
	position: absolute;
	pointer-events: none;
}
.CodeMirror-measure pre { position: static; }

div.CodeMirror-cursors {
	visibility: hidden;
	position: relative;
	z-index: 3;
}
div.CodeMirror-dragcursors {
	visibility: visible;
}

.CodeMirror-focused div.CodeMirror-cursors {
	visibility: visible;
}

.CodeMirror-selected { background: #d9d9d9; }
.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
.CodeMirror-crosshair { cursor: crosshair; }
.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }

.cm-searching {
	background-color: #ffa;
	background-color: rgba(255, 255, 0, .4);
}

/* Used to force a border model for a node */
.cm-force-border { padding-right: .1px; }

@media print {
	/* Hide the cursor when printing */
	.CodeMirror div.CodeMirror-cursors {
		visibility: hidden;
	}
}

/* See issue #2901 */
.cm-tab-wrap-hack:after { content: ''; }

/* Help users use markselection to safely style text background */
span.CodeMirror-selectedtext { background: none; }

/* Simple scrollbars */

.CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div {
	position: absolute;
	background: #ccc;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	border: 1px solid #bbb;
	border-radius: 2px;
}

.CodeMirror-simplescroll-horizontal, .CodeMirror-simplescroll-vertical {
	position: absolute;
	z-index: 6;
	background: #eee;
}

.CodeMirror-simplescroll-horizontal {
	bottom: 0; left: 0;
	height: 8px;
}
.CodeMirror-simplescroll-horizontal div {
	bottom: 0;
	height: 100%;
}

.CodeMirror-simplescroll-vertical {
	right: 0; top: 0;
	width: 8px;
}
.CodeMirror-simplescroll-vertical div {
	right: 0;
	width: 100%;
}


.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler, .CodeMirror-overlayscroll .CodeMirror-gutter-filler {
	display: none;
}

.CodeMirror-overlayscroll-horizontal div, .CodeMirror-overlayscroll-vertical div {
	position: absolute;
	background: #bcd;
	border-radius: 3px;
}

.CodeMirror-overlayscroll-horizontal, .CodeMirror-overlayscroll-vertical {
	position: absolute;
	z-index: 6;
}

.CodeMirror-overlayscroll-horizontal {
	bottom: 0; left: 0;
	height: 6px;
}
.CodeMirror-overlayscroll-horizontal div {
	bottom: 0;
	height: 100%;
}

.CodeMirror-overlayscroll-vertical {
	right: 0; top: 0;
	width: 6px;
}
.CodeMirror-overlayscroll-vertical div {
	right: 0;
	width: 100%;
}

/* Dialog add-on */

.CodeMirror-dialog {
	position: absolute;
	left: 0; right: 0;
	background: inherit;
	z-index: 15;
	padding: .1em .8em;
	overflow: hidden;
	color: inherit;
}

.CodeMirror-dialog-top {
	border-bottom: 1px solid #eee;
	top: 0;
}

.CodeMirror-dialog-bottom {
	border-top: 1px solid #eee;
	bottom: 0;
}

.CodeMirror-dialog input {
	border: none;
	outline: none;
	background: transparent;
	width: 20em;
	color: inherit;
}

.CodeMirror-dialog button {
	font-size: 70%;
}

.CodeMirror-fullscreen {
	position: fixed;
	top: 0; left: 0; right: 0; bottom: 0;
	height: auto;
	z-index: @zIndex-9;
}]]></template>
  <template type="public" title="color_picker.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[// ### SETUP

.m-colorPreview(
	@size: 32px;
	@questionMarkSize: @xf-fontSizeLargest
)
{
	width: @size;
	height: @size;
	border: @xf-borderSize dashed @xf-borderColorHeavy;
	border-radius: @xf-borderRadiusSmall;
	background: @xf-contentBg;
	overflow: hidden;

	.color-sample
	{
		display: none;
		width: 100%;
		height: 100%;
	}

	&.is-unknown
	{
		&:after
		{
			display: block;
			content: '?';
			color: @xf-textColorMuted;
			font-size: @questionMarkSize;
			font-weight: @xf-fontWeightHeavy;
			line-height: @size;
			text-align: center;
		}
	}

	&.is-active
	{
		border-style: solid;
		.m-checkerboardBackground(calc(@size / 2));

		.color-sample
		{
			display: block;
		}
	}
}

.m-checkerboardBackground(
	@size;
	@foreground: #C3C3C3;
	@background: #FFF;
)
{
	background: repeating-conic-gradient(@foreground 0% 25%, @background 0% 50%) 50% / @size @size;
}

// ### BOX

.colorPickerBox
{
	.m-colorPreview(22px, @xf-fontSizeLarge);
	cursor: pointer;
}

// ### MENU

.colorPicker-sliders > *,
.colorPicker-inputs > *
{
	margin-bottom: @xf-paddingMedium;

	&:last-child
	{
		margin-bottom: 0;
	}
}

.colorPicker-palette,
.colorPicker-sliders
{
	border-bottom: @xf-borderSize solid @xf-borderColor;
}

.colorPicker-palette-color,
.colorPicker-sliders,
.colorPicker-inputs
{
	padding: @xf-paddingMedium @xf-paddingLarge;
}

// ### PALETTE

.colorPicker-palette
{
	height: 250px;
	overflow: auto;
}

.colorPicker-palette-color
{
	.xf-menuLinkRow();
	display: flex;
	align-items: center;
	cursor: pointer;

	&.is-active,
	&:hover
	{
		.xf-menuLinkRowSelected();
	}

	&.is-active
	{
		font-weight: @xf-fontWeightHeavy;
	}
}

.colorPicker-palette-color-preview
{
	flex: none;
	margin-right: @xf-paddingSmall;
	.m-colorPreview();

	.colorPicker-palette-color.is-active &
	{
		border-color: @xf-borderColorFeature;
	}
}

.colorPicker-palette-color-name
{
	color: @xf-textColorMuted;
	font-size: @xf-fontSizeSmallest;
	font-weight: @xf-fontWeightNormal;
}

// ### SLIDERS

/* XF-RTL:disable */

// HSV gradients from Spectrum (https://github.com/bgrins/spectrum), MIT licensed

.colorPicker-sliders-gradient,
.colorPicker-sliders-hue,
.colorPicker-sliders-alpha
{
	width: 100%;
	border: @xf-borderSize solid @xf-borderColorHeavy;
	border-radius: @xf-borderRadiusSmall;
}

.colorPicker-sliders-gradient
{
	height: 150px;
	overflow: hidden;
}

.colorPicker-sliders-hue,
.colorPicker-sliders-alpha
{
	height: 14px;
}

.colorPicker-sliders-hue
{
	background: linear-gradient(
		to right,
		hsl(359, 100%, 50%) 0%,
		hsl(298, 100%, 50%) 17%,
		hsl(241, 100%, 50%) 33%,
		hsl(180, 100%, 50%) 50%,
		hsl(118, 100%, 50%) 67%,
		hsl(61, 100%, 50%) 83%,
		hsl(0, 100%, 50%) 100%,
	);
}

.colorPicker-sliders-alpha
{
	.m-checkerboardBackground(14px);
}

.colorPicker-sliders-gradient-grid,
.colorPicker-sliders-hue-bar,
.colorPicker-sliders-alpha-bar
{
	position: relative;
	width: 100%;
	height: 100%;
	cursor: crosshair;
}

.colorPicker-sliders-gradient-saturation,
.colorPicker-sliders-gradient-value
{
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}

.colorPicker-sliders-gradient-saturation
{
	background-image: linear-gradient(
		to right,
		#FFF,
		rgba(204, 154, 129, 0)
	);
}

.colorPicker-sliders-gradient-value
{
	background-image: linear-gradient(
		to top,
		#000,
		rgba(204, 154, 129, 0)
	);
}

.colorPicker-sliders-gradient-indicator,
.colorPicker-sliders-hue-indicator,
.colorPicker-sliders-alpha-indicator
{
	position: absolute;
	top: 0;
	left: 0;
	border-radius: 50%;
}

.colorPicker-sliders-gradient-indicator
{
	width: 12px;
	height: 12px;
	margin-left: -6px;
	margin-top: -6px;
	border: 1px solid #FFF;
	box-shadow: 0 0 1px 1px rgba(255, 255, 255, 0.25),
		0 2px 4px 0px rgba(0, 0, 0, 0.25);
	cursor: all-scroll;
}

.colorPicker-sliders-hue-indicator,
.colorPicker-sliders-alpha-indicator
{
	width: 14px;
	height: 14px;
	margin-left: -7px;
	margin-top: -1px;
	background: hsl(200, 12%, 95%);
	box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.25),
		0 2px 4px 0px rgba(0, 0, 0, 0.25);
	cursor: ew-resize;

	.m-colorScheme(dark, {
		background: hsl(225, 5%, 17%);
		box-shadow: 0 0 1px 1px rgba(255, 255, 255, 0.25),
			0 2px 4px 0px rgba(255, 255, 255, 0.25);
	})
}

/* XF-RTL:enable */

// ### FOOTER

.colorPicker-inputs-save
{
	display: flex;
	justify-content: space-between;
	align-items: center;

	> *
	{
		margin-right: @xf-paddingSmall;

		&:last-child
		{
			margin-right: 0;
		}
	}
}

.colorPicker-preview
{
	position: relative;
	height: 32px;
	width: 62px;
	overflow: hidden;
	border: @xf-borderSize solid @xf-borderColorHeavy;
	border-radius: @xf-borderRadiusSmall;
	.m-checkerboardBackground(15px)
}

.colorPicker-preview-original,
.colorPicker-preview-current
{
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}

.colorPicker-preview-original
{
	right: 50%;
}

.colorPicker-preview-current
{
	left: 50%;
}

// ### MISC

.inputGroup.inputGroup--colorSmall
{
	width: 180px;
}]]></template>
  <template type="public" title="color_picker_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="color_picker"
	arg-name="!"
	arg-value=""
	arg-mapVariation="default"
	arg-mapName=""
	arg-allowPalette="false"
	arg-label=""
	arg-hint=""
	arg-explain=""
	arg-html=""
	arg-row="{{ true }}"
	arg-rowClass=""
	arg-rowtype=""
	arg-colorData=""
	arg-required="{{ false }}"
	arg-controlId=""
	arg-includeScripts="{{ true }}"
	arg-showTxt="{{ false }}">

	<xf:css src="public:color_picker.less" />
	<xf:js src="xf/color_picker.js" min="1" />

	<xf:if is="$row AND !$controlId">
		<xf:set var="$controlId" value="{{ unique_id() }}" />
	</xf:if>

	<xf:set var="$picker_orig">
		<div class="inputGroup inputGroup--joined inputGroup--color"
			data-xf-init="color-picker"
			data-allow-palette="{$allowPalette}"
			data-palette-variation="{$mapVariation}"
			data-palette-name="{$mapName}">

			<xf:textbox name="{$name}" value="{$value}" required="{$required}" id="{$controlId}" dir="ltr" />
			<div class="inputGroup-text"><span class="colorPickerBox js-colorPickerTrigger"></span></div>
			<xf:if is="{$showTxt}">
				<div class="inputGroup-text inputGroup-text--hslTxt"><span class="js-hslTxt-h"></span></div>
				<div class="inputGroup-text inputGroup-text--hslTxt"><span class="js-hslTxt-s"></span></div>
				<div class="inputGroup-text inputGroup-text--hslTxt"><span class="js-hslTxt-l"></span></div>
			</xf:if>
		</div>
	</xf:set>

	<xf:set var="$picker">
		<div class="inputGroup inputGroup---joined inputGroup--color {{ $showTxt ? 'inputGroup--color--showTxt' : '' }}"
			data-xf-init="color-picker"
			data-allow-palette="{$allowPalette}"
			data-palette-variation="{$mapVariation}"
			data-palette-name="{$mapName}">

			<xf:textbox name="{$name}" value="{$value}" required="{$required}" id="{$controlId}" dir="ltr" />
			<div class="inputGroup-text"><span class="colorPickerBox js-colorPickerTrigger"></span></div>
			<xf:if is="{$showTxt}">
				<div class="inputGroup-text inputGroup-text--hslTxt"><span class="js-hslTxt-h"></span></div>
				<div class="inputGroup-text inputGroup-text--hslTxt"><span class="js-hslTxt-s"></span></div>
				<div class="inputGroup-text inputGroup-text--hslTxt"><span class="js-hslTxt-l"></span></div>
			</xf:if>
		</div>
	</xf:set>

	<xf:if is="$row">
		<xf:formrow rowtype="{$rowtype}"
			rowclass="formRow--input {$rowClass}"
			controlid="{$controlId}"
			label="{$label}"
			hint="{$hint}"
			explain="{$explain}"
			html="{$html}">

			{$picker|raw}
		</xf:formrow>
	<xf:else />
		{$picker|raw}
	</xf:if>

	<xf:if is="{$includeScripts}">
		<xf:macro id="color_picker_scripts" arg-colorData="{$colorData}" />
	</xf:if>
</xf:macro>

<xf:macro id="color_picker_scripts" arg-colorData="">
	<xf:head option="js-colorPicker">
		<script type="text/template" id="xfColorPickerMenuTemplate">
			<xf:macro id="color_picker_menu" />
		</script>

		<xf:if is="$colorData">
			<script class="js-colorPickerData" type="application/json">
				{$colorData|json|raw}
			</script>
		</xf:if>
	</xf:head>
</xf:macro>

<xf:macro id="color_picker_menu">
	<div class="menu menu--colorPicker menu--medium" data-menu="menu" aria-hidden="true">
		<div class="menu-content colorPicker">
			<h4 class="menu-tabHeader tabs hScroller" data-xf-init="tabs h-scroller" role="tablist">
				<span class="hScroller-scroll">
					<xf:mustache name="#palette">
						<a class="tabs-tab" role="tab" tabindex="0">{{ mustache('title') }}</a>
					</xf:mustache>

					<a class="tabs-tab" role="tab" tabindex="0">{{ phrase('picker') }}</a>
				</span>
			</h4>

			<ul class="tabPanes">
				<xf:mustache name="#palette">
					<li role="tabpanel">
						<div class="colorPicker-palette">
							<xf:mustache name="#colors">
								<div class="colorPicker-palette-color" data-name="{{ mustache('name') }}">
									<span class="colorPicker-palette-color-preview {{ mustache('className') }}">
										<span class="color-sample" style="background: {{ mustache('background') }};"></span>
									</span>

									<div class="colorPicker-palette-color-meta">
										<div class="colorPicker-palette-color-title">{{ mustache('title') }}</div>
										<div class="colorPicker-palette-color-name">{{ mustache('name') }}</div>
									</div>
								</div>
							</xf:mustache>
						</div>
					</li>
				</xf:mustache>

				<li role="tabpanel">
					<div class="colorPicker-sliders" dir="ltr">
						<div class="colorPicker-sliders-gradient">
							<div class="colorPicker-sliders-gradient-grid">
								<div class="colorPicker-sliders-gradient-saturation"></div>
								<div class="colorPicker-sliders-gradient-value"></div>
								<span class="colorPicker-sliders-gradient-indicator"></span>
							</div>
						</div>

						<div class="colorPicker-sliders-hue">
							<div class="colorPicker-sliders-hue-bar">
								<span class="colorPicker-sliders-hue-indicator"></span>
							</div>
						</div>

						<div class="colorPicker-sliders-alpha">
							<div class="colorPicker-sliders-alpha-bar">
								<span class="colorPicker-sliders-alpha-indicator"></span>
							</div>
						</div>
					</div>
				</li>
			</ul>

			<div class="colorPicker-inputs">
				<div class="colorPicker-inputs-input">
					<input type="text" class="input colorPicker-input" dir="ltr">
				</div>

				<div class="colorPicker-inputs-save">
					<div class="colorPicker-preview">
						<span class="colorPicker-preview-original"></span>
						<span class="colorPicker-preview-current"></span>
					</div>

					<div class="colorPicker-buttons">
						<button class="button colorPicker-reset">
							<span class="button-text">{{ phrase('reset') }}</span>
						</button>

						<button class="button button--primary colorPicker-save">
							<span class="button-text">{{ phrase('update') }}</span>
						</button>
					</div>
				</div>
			</div>
		</div>
	</div>
</xf:macro>]]></template>
  <template type="public" title="connected_account_associated_apple" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<div>{{ phrase('account_associated') }}</div>]]></template>
  <template type="public" title="connected_account_associated_facebook" version_id="2020470" version_string="2.2.4"><![CDATA[<a href="{{ $providerData.profile_link ?: 'https://www.facebook.com/profile.php?id=' . $connectedAccounts.facebook }}" target="_blank">
	<img src="https://graph.facebook.com/{$connectedAccounts.facebook}/picture" width="48" alt="" />
</a>
<div><a href="{{ $providerData.profile_link ?: 'https://www.facebook.com/profile.php?id=' . $connectedAccounts.facebook }}" target="_blank">{{ $providerData.username ?: phrase('view_account') }}</a></div>]]></template>
  <template type="public" title="connected_account_associated_github" version_id="2010770" version_string="2.1.7"><![CDATA[<xf:if is="$providerData.profile_link">
	<a href="{$providerData.profile_link}" target="_blank">
		<img src="{{ $providerData.avatar_url ?: 'https://avatars.githubusercontent.com/u/{$connectedAccounts.github}?v=3' }}" width="48" alt="" />
	</a>
	<div><a href="{$providerData.profile_link}" target="_blank">{{ $providerData.username ?: phrase('view_account') }}</a></div>
<xf:else />
	<img src="{{ $providerData.avatar_url ?: 'https://avatars.githubusercontent.com/u/{$connectedAccounts.github}?v=3' }}" width="48" alt="" />
	<div>{{ $providerData.username ?: phrase('account_associated') }}</div>
</xf:if>]]></template>
  <template type="public" title="connected_account_associated_google" version_id="2010770" version_string="2.1.7"><![CDATA[<xf:if is="$providerData.avatar_url">
	<img src="{$providerData.avatar_url}" width="48" alt="" />
</xf:if>
<div>{{ $providerData.username ?: phrase('account_associated') }}</div>]]></template>
  <template type="public" title="connected_account_associated_linkedin" version_id="2010670" version_string="2.1.6"><![CDATA[<xf:if is="$providerData.avatarUrl">
	<img src="{$providerData.avatarUrl}" width="48" alt="" />
	<div>{$providerData.formattedName}</div>
<xf:else />
	{{ phrase('account_associated') }}
</xf:if>]]></template>
  <template type="public" title="connected_account_associated_microsoft" version_id="2010033" version_string="2.1.0 Beta 3"><![CDATA[<xf:if is="$providerData.avatar_url">
	<a href="https://profile.live.com/{$connectedAccounts.microsoft}" target="_blank">
		<img src="{$providerData.avatar_url}" width="48" alt="" />
	</a>
</xf:if>
<div><a href="https://profile.live.com/{$connectedAccounts.microsoft}" target="_blank">{{ $providerData.username ?: phrase('view_account') }}</a></div>]]></template>
  <template type="public" title="connected_account_associated_twitter" version_id="2010033" version_string="2.1.0 Beta 3"><![CDATA[<xf:if is="$providerData">
	<a href="https://twitter.com/{$providerData.screen_name}" target="_blank">
		<img src="{$providerData.avatar_url}" width="48" alt="" />
	</a>
	<div><a href="https://twitter.com/{$providerData.screen_name}" target="_blank">@{$providerData.screen_name} {$providerData.username|parens}</a></div>
<xf:else />
	{{ phrase('account_associated') }}
</xf:if>]]></template>
  <template type="public" title="connected_account_associated_xenforo" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$providerData.avatar_url">
	<img src="{$providerData.avatar_url}" width="48" alt="" />
</xf:if>
<div>{{ $providerData.username ?: phrase('account_associated') }}</div>]]></template>
  <template type="public" title="connected_account_associated_yahoo" version_id="2010033" version_string="2.1.0 Beta 3"><![CDATA[<xf:if is="$providerData.avatar_url">
	<img src="{$providerData.avatar_url}" width="48" alt="" />
</xf:if>
<div>{{ $providerData.username ?: phrase('account_associated') }}</div>]]></template>
  <template type="public" title="connected_account_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="associate" arg-provider="!">
	<xf:formrow label="{$provider.title}">

		<xf:macro id="connected_account_macros::button"
			arg-provider="{$provider}"
			arg-text="{{ phrase('continue_with_x', {'provider': $provider.title}) }}" />
	</xf:formrow>
</xf:macro>

<xf:macro id="disassociate" arg-provider="!" arg-hasPassword="!">
	<xf:set var="$explain" value="{{ (!$hasPassword && count($xf.visitor.Profile.connected_accounts) == 1) ? phrase('disassociating_with_all_accounts_cause_password_emailed_x', {'email': $xf.visitor.email|email_display}) : '' }}" />
	<xf:formrow
		label="{$provider.title}"
		explain="{$explain}">

		<div>{$provider.renderAssociated()|raw}</div>

		<xf:form action="{{ link('account/connected-accounts/disassociate', $provider) }}" class="u-inputSpacer">
			<xf:checkbox>
				<xf:option name="disassociate"
					label="{{ phrase('disassociate_x_account', {'provider': $provider.title}) }}">

					<xf:dependent>
						<xf:button type="submit">{{ phrase('confirm_disassociation') }}</xf:button>
					</xf:dependent>
				</xf:option>
			</xf:checkbox>
		</xf:form>
	</xf:formrow>
</xf:macro>

<xf:macro id="button" arg-provider="!" arg-link="{{ null }}" arg-text="{{ null }}">
	<xf:button href="{{ $link ?: link('register/connected-accounts', $provider, {'setup': true}) }}"
		fa="{$provider.icon_class}"
		class="button--provider button--provider--{$provider.provider_id}">
		<xf:if is="!$provider.icon_class && $provider.icon_url">
			<img class="button-icon" alt="" src="{$provider.icon_url}" />
		</xf:if>
		{{ $text ?: $provider.title }}
	</xf:button>
</xf:macro>]]></template>
  <template type="public" title="contact_form" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:title>{{ phrase('contact_us') }}</xf:title>

<xf:form action="{{ link('misc/contact') }}" class="block" ajax="true" data-force-flash-message="true">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="!$xf.visitor.user_id">
				<xf:textboxrow name="username" autocomplete="username" autofocus="autofocus" maxlength="{{ max_length($xf.visitor, 'username') }}"
					label="{{ phrase('your_name') }}" required="required" hint="{{ phrase('required') }}" />

				<xf:textboxrow type="email" name="email" autocomplete="email" maxlength="{{ max_length($xf.visitor, 'email') }}"
					label="{{ phrase('your_email_address') }}" required="required" hint="{{ phrase('required') }}" />
			<xf:else />
				<xf:formrow label="{{ phrase('your_name') }}">{$xf.visitor.username}</xf:formrow>
				<xf:if is="$xf.visitor.email">

					<xf:formrow label="{{ phrase('your_email_address') }}">{$xf.visitor.email|email_display}</xf:formrow>

				<xf:else />

					<xf:textboxrow type="email" name="email" autocomplete="email"
						label="{{ phrase('your_email_address') }}" required="required" hint="{{ phrase('required') }}" />

				</xf:if>
			</xf:if>

			<xf:captcharow label="{{ phrase('verification') }}" hint="{{ phrase('required') }}" force="{$forceCaptcha}" context="xf_contact_form" />

			<xf:textboxrow name="subject"
				label="{{ phrase('subject') }}" required="required" hint="{{ phrase('required') }}" />

			<xf:textarearow name="message" rows="5" autosize="true"
				label="{{ phrase('message') }}" required="required" hint="{{ phrase('required') }}" />
		</div>
		<xf:submitrow submit="{{ phrase('send') }}" />
	</div>
	<xf:redirect />
</xf:form>]]></template>
  <template type="public" title="content_display_macros" version_id="2030035" version_string="2.3.0 Beta 5"><![CDATA[<xf:macro id="article">
	<xf:if contentcheck="true">
		<xf:css src="message.less" />

		<article class="message message--article message--articlePreview">
			<xf:contentcheck>
				<xf:if contentcheck="true">
					<div class="articlePreview-main">
						<xf:contentcheck>
							<xf:if contentcheck="true">
								<xf:contentcheck>
									<xf:extension id="image" />
								</xf:contentcheck>
							</xf:if>

							<xf:if contentcheck="true">
								<div class="articlePreview-text">
									<xf:contentcheck>
										<xf:if contentcheck="true">
											<div class="articlePreview-headline">
												<h2 class="articlePreview-title">
													<xf:contentcheck>
														<xf:extension id="title" />
													</xf:contentcheck>
												</h2>
											</div>
										</xf:if>

										<xf:if contentcheck="true">
											<div class="articlePreview-content">
												<div class="message-content">
													<div class="message-userContent">
														<article class="message-body">
															<xf:contentcheck>
																<xf:extension id="snippet" />
															</xf:contentcheck>
														</article>
													</div>
												</div>
											</div>
										</xf:if>

										<xf:if contentcheck="true">
											<div class="articlePreview-links">
												<xf:contentcheck>
													<xf:extension id="links" />
												</xf:contentcheck>
											</div>
										</xf:if>
									</xf:contentcheck>
								</div>
							</xf:if>
						</xf:contentcheck>
					</div>
				</xf:if>

				<xf:if contentcheck="true">
					<footer class="articlePreview-footer">
						<ul class="articlePreview-meta listPlain">
							<xf:contentcheck>
								<xf:extension id="meta" />
							</xf:contentcheck>
						</ul>
					</footer>
				</xf:if>

				<xf:extension id="metadata" />
			</xf:contentcheck>
		</article>
	</xf:if>
</xf:macro>

<xf:macro id="simple">
	<xf:if contentcheck="true">
		<div class="contentRow">
			<xf:contentcheck>
				<xf:if contentcheck="true">
					<div class="contentRow-figure">
						<xf:contentcheck>
							<xf:extension id="image" />
						</xf:contentcheck>
					</div>
				</xf:if>

				<xf:if contentcheck="true">
					<div class="contentRow-main contentRow-main--close">
						<xf:contentcheck>
							<xf:extension id="title" />

							<xf:if contentcheck="true">
								<div class="contentRow-minor contentRow-minor--hideLinks">
									<ul class="listInline listInline--bullet">
										<xf:contentcheck>
											<xf:extension id="meta" />
										</xf:contentcheck>
									</ul>
								</div>
							</xf:if>

							<xf:extension id="extra" />
						</xf:contentcheck>
					</div>
				</xf:if>

				<xf:extension id="metadata" />
			</xf:contentcheck>
		</div>
	</xf:if>
</xf:macro>

<xf:macro id="carousel">
	<xf:if contentcheck="true">
		<div class="contentRow">
			<xf:contentcheck>
				<xf:if contentcheck="true">
					<div class="contentRow-figure">
						<xf:contentcheck>
							<xf:extension id="image" />
						</xf:contentcheck>
					</div>
				</xf:if>

				<xf:if contentcheck="true">
					<div class="contentRow-main">
						<xf:contentcheck>
							<xf:if contentcheck="true">
								<h4 class="contentRow-title">
									<xf:contentcheck>
										<xf:extension id="title" />
									</xf:contentcheck>
								</h4>
							</xf:if>

							<xf:if contentcheck="true">
								<div class="contentRow-lesser">
									<xf:contentcheck>
										<xf:extension id="snippet" />
									</xf:contentcheck>
								</div>
							</xf:if>

							<xf:if contentcheck="true">
								<div class="contentRow-minor contentRow-minor--smaller contentRow-minor--hideLinks">
									<ul class="listInline listInline--bullet">
										<xf:contentcheck>
											<xf:extension id="meta" />
										</xf:contentcheck>
									</ul>
								</div>
							</xf:if>
						</xf:contentcheck>
					</div>
				</xf:if>

				<xf:extension id="metadata" />
			</xf:contentcheck>
		</div>
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="content_ip_view" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('ip_address_information_for_content_by_x', {'name': $ip.User.username ?: phrase('guest')}) }}</xf:title>

<xf:breadcrumb source="{$breadcrumbs}" />

<xf:macro id="helper_ip::ip_block" arg-ip="{$ip.ip}" arg-user="{$ip.User}" />]]></template>
  <template type="public" title="content_vote_confirm" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:title>{{ phrase('vote_for_content') }}</xf:title>

<xf:form action="{$confirmUrl}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<xf:if is="$vote == $voteType">
					{{ phrase('you_sure_you_want_to_remove_your_vote_for_this_content') }}
				<xf:elseif is="$voteType == 'up'" />
					{{ phrase('you_sure_you_want_to_upvote_this_content') }}
				<xf:else />
					{{ phrase('you_sure_you_want_to_downvote_this_content') }}
				</xf:if>
			</xf:inforow>
		</div>
		<xf:submitrow icon="confirm" rowtype="simple" />
	</div>
	<xf:hiddenval name="type">{$voteType}</xf:hiddenval>
</xf:form>]]></template>
  <template type="public" title="content_vote_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="vote_control"
	arg-link="!"
	arg-content="!"
	arg-extraClass=""
	arg-includeMicrodata="{{ false }}">

	<xf:set var="$currentVote" value="{{ $content.getVisitorContentVote() }}" />
	<xf:set var="$canVote" value="{{ $content.canVoteOnContent() }}" />
	<div class="contentVote {{ $currentVote ? 'is-voted' : '' }} js-contentVote {$extraClass}" data-xf-init="content-vote" data-content-id="{{ $content.getEntityContentTypeId() }}">
		<xf:if is="$includeMicrodata">
			<meta itemprop="upvoteCount" content="{$content.vote_score}" />
		</xf:if>

		<a href="{{ $canVote ? link($link, $content, {'type' : 'up'}) : 'javascript:' }}"
			class="contentVote-vote {{ $canVote ? '' : 'is-disabled' }} contentVote-vote--up {{ ($currentVote == 'up') ? 'is-voted' : '' }}"
			data-vote="up"><span class="u-srOnly">{{ phrase('upvote') }}</span></a>

		<span class="contentVote-score {{ $content.vote_score > 0 ? 'is-positive' : ''  }} {{ $content.vote_score < 0 ? 'is-negative' : ''  }} js-voteCount"
			data-score="{$content.vote_score}">{$content.vote_score_short}</span>

		<xf:if is="$content.isContentDownvoteSupported()">
			<a href="{{ $canVote ? link($link, $content, {'type' : 'down'}) : 'javascript:' }}"
				class="contentVote-vote {{ ($canVote AND $content.canDownvoteContent()) ? '' : 'is-disabled' }} contentVote-vote--down {{ ($currentVote == 'down') ? 'is-voted' : '' }}"
				data-vote="down"><span class="u-srOnly">{{ phrase('downvote') }}</span></a>
		</xf:if>
	</div>

</xf:macro>

<xf:macro id="vote_display" arg-content="!" arg-extraClass="" arg-includeMicrodata="{{ false }}">

	<div class="contentVote js-contentVote contentVote--display {{ $content.getVisitorContentVote() ? 'is-voted' : '' }} {$extraClass}" data-content-id="{{ $content.getEntityContentTypeId() }}">
		<xf:if is="$includeMicrodata">
			<meta itemprop="upvoteCount" content="{$content.vote_score}" />
		</xf:if>

		<span class="contentVote-score {{ $content.vote_score > 0 ? 'is-positive' : ''  }} {{ $content.vote_score < 0 ? 'is-negative' : ''  }} js-voteCount" data-score="{$content.vote_score}">{$content.vote_score_short}</span>
		<span class="contentVote-description">{{ $content.vote_score == 1 ? phrase('vote_noun') : phrase('votes') }}</span>
	</div>

</xf:macro>

<xf:macro id="vote_display_placeholder" arg-extraClass="">

	<div class="contentVote contentVote--display contentVote--placeholder {$extraClass}">
		<span class="contentVote-score">-</span>
		<span class="contentVote-description">{{ phrase('votes') }}</span>
	</div>

</xf:macro>]]></template>
  <template type="public" title="conversation_add" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:title>{{ phrase('send_direct_message') }}</xf:title>

<xf:breadcrumb href="{{ link('direct-messages') }}">{{ phrase('direct_messages') }}</xf:breadcrumb>

<xf:if contentcheck="true">
	<div class="blockMessage blockMessage--error blockMessage--iconic">
		<xf:contentcheck>
			<xf:if is="$errorUsernames is not empty">
				<div>{{ phrase('you_can_not_send_direct_message_to_following_users_because_of_privacy', {'usernames': $errorUsernames|join(', ')}) }}</div>
			</xf:if>

			<xf:if is="$notFoundUsernames is not empty">
				<div>{{ phrase('following_users_not_found_x', {'usernames': $notFoundUsernames|join(', ')}) }}</div>
			</xf:if>

			<xf:if is="$recipientLimit">
				<div>{{ phrase('you_have_exceeded_allowed_number_of_recipients_x_for', {'limit': $recipientLimit}) }}</div>
			</xf:if>
		</xf:contentcheck>
	</div>
</xf:if>

<xf:form action="{{ link('direct-messages/add') }}" ajax="true" draft="{{ link('direct-messages/draft') }}" class="block" data-xf-init="attachment-manager">
	<div class="block-container">
		<div class="block-body">
			<xf:tokeninputrow name="recipients" value="{$to}" href="{{ link('members/find') }}"
				rowtype="fullWidth"
				label="{{ ($maxRecipients == -1 OR $maxRecipients > 1) ? phrase('recipients') : phrase('recipient') }}"
				min-length="1"
				max-tokens="{{ ($maxRecipients > -1) ? $maxRecipients : null }}"
				explain="{{ ($maxRecipients == -1 OR $maxRecipients > 1) ? phrase('separate_names_with_comma') : null }}" />

			<xf:textboxrow name="title" value="{$title}" rowtype="fullWidth noLabel" class="input--title"
				maxlength="{{ max_length('XF:ConversationMaster', 'title') }}"
				placeholder="{{ phrase('title...') }}"
				label="{{ phrase('title') }}" />

			<xf:editorrow name="message"
				value="{$message}"
				attachments="{{ $attachmentData ? $attachmentData.attachments : [] }}"
				rowtype="fullWidth noLabel mergePrev"
				data-preview-url="{{ link('direct-messages/add-preview') }}" />

			<xf:formrow>
				<xf:if is="$attachmentData">
					<xf:macro id="helper_attach_upload::upload_block"
						arg-attachmentData="{$attachmentData}"
						arg-forceHash="{$draft.attachment_hash}" />
				</xf:if>

				<xf:if is="$xf.options.multiQuote">
					<xf:macro id="multi_quote_macros::button"
						arg-href="{{ link('direct-messages/multi-quote', $conversation) }}"
						arg-messageSelector=".js-message"
						arg-storageKey="multiQuoteConversation" />
				</xf:if>
			</xf:formrow>

			<xf:checkboxrow>
				<xf:option name="open_invite" checked="{{ ($draft.open_invite OR $conversation.open_invite) ? 'checked' : '' }}">
					{{ phrase('allow_anyone_in_direct_message_to_invite_others') }}
				</xf:option>

				<xf:option name="conversation_locked" checked="{{ ($draft.conversation_open OR $conversation.conversation_open) ? '' : 'checked' }}">
					{{ phrase('lock_direct_message_no_responses_will_be_allowed') }}
				</xf:option>
			</xf:checkboxrow>
		</div>
		<xf:submitrow submit="{{ phrase('send_direct_message') }}" sticky="true" icon="conversation" />
	</div>
</xf:form>]]></template>
  <template type="public" title="conversation_edit" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:title>{{ phrase('edit_direct_message') }}</xf:title>

<xf:breadcrumb href="{{ link('direct-messages') }}">{{ phrase('direct_messages') }}</xf:breadcrumb>
<xf:breadcrumb href="{{ link('direct-messages', $conversation) }}">{$conversation.title}</xf:breadcrumb>

<xf:form action="{{ link('direct-messages/edit', $conversation) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow name="title" value="{$conversation}"
				label="{{ phrase('title') }}" />

			<xf:checkboxrow>
				<xf:option name="open_invite" checked="{{ $conversation.open_invite ? 'checked' : '' }}"
					label="{{ phrase('allow_anyone_in_direct_message_to_invite_others') }}" />

				<xf:option name="conversation_locked" checked="{{ $conversation.conversation_open ? '' : 'checked' }}"
					label="{{ phrase('lock_direct_message') }}"
					hint="{{ phrase('no_responses_will_be_allowed') }}" />
			</xf:checkboxrow>
		</div>
		<xf:submitrow icon="save" />
	</div>
</xf:form>]]></template>
  <template type="public" title="conversation_invite" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('invite_members_to_direct_message') }}</xf:title>

<xf:breadcrumb href="{{ link('direct-messages') }}">{{ phrase('direct_messages') }}</xf:breadcrumb>
<xf:breadcrumb href="{{ link('direct-messages', $conversation) }}">{$conversation.title}</xf:breadcrumb>

<xf:form action="{{ link('direct-messages/invite', $conversation) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:tokeninputrow name="recipients" href="{{ link('members/find') }}"
				min-length="1"
				max-tokens="{{ ($remainingRecipients > -1) ? $remainingRecipients : null }}"
				label="{{ phrase('invite_members') }}">

				<xf:explain>
					<xf:if is="$remainingRecipients > 1">{{ phrase('separate_names_with_comma') }}</xf:if> {{ phrase('invited_members_see_entire_direct_message') }}
					<xf:if is="$remainingRecipients > 0">{{ phrase('you_may_invite_up_to_x_members', {'number': $remainingRecipients|number}) }}</xf:if>
				</xf:explain>
			</xf:tokeninputrow>
		</div>
		<xf:submitrow submit="{{ phrase('invite') }}" />
	</div>
</xf:form>]]></template>
  <template type="public" title="conversation_leave" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('leave_direct_message') }}</xf:title>

<xf:breadcrumb href="{{ link('direct-messages') }}">{{ phrase('direct_messages') }}</xf:breadcrumb>
<xf:breadcrumb href="{{ link('direct-messages', $conversation) }}">{$conversation.title}</xf:breadcrumb>

<xf:form action="{{ link('direct-messages/leave', $conversation) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow>
				{{ phrase('leaving_direct_message_will_remove_it_from_your_direct_message_list') }}
			</xf:inforow>
			<xf:radiorow name="recipient_state"
				label="{{ phrase('future_message_handling') }}">

				<xf:option value="deleted" checked="checked"
					label="{{ phrase('accept_future_messages') }}"
					hint="{{ phrase('should_direct_message_receive_responses_restored_to_inbox') }}" />

				<xf:option value="deleted_ignored"
					label="{{ phrase('ignore_future_messages') }}"
					hint="{{ phrase('not_notified_of_responses_direct_message_remain_deleted') }}" />
			</xf:radiorow>
		</div>
		<xf:submitrow submit="{{ phrase('leave') }}" />
	</div>
</xf:form>]]></template>
  <template type="public" title="conversation_list" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:title page="{$page}">{{ phrase('direct_messages') }}</xf:title>

<xf:js src="xf/inline_mod.js" min="1" />

<xf:macro id="conversation_list_macros::conversation_page_options" />

<xf:pageaction if="$xf.visitor.canStartConversation()">
	<xf:button href="{{ link('direct-messages/add') }}" class="button--cta" icon="write">{{ phrase('send_direct_message') }}</xf:button>
</xf:pageaction>

<div class="block" data-xf-init="inline-mod" data-type="conversation" data-href="{{ link('inline-mod') }}">
	<div class="block-outer">
		<xf:pagenav
			page="{$page}" perpage="{$perPage}" total="{$total}"
			link="direct-messages" params="{$filters}"
			wrapperclass="block-outer-main" />
		<div class="block-outer-opposite">
			<div class="buttonGroup">
				<xf:macro id="inline_mod_macros::button"
					arg-variant="inlineModButton--withLabel"
					arg-label="{{ phrase('selected') }}"
					arg-tooltip="{{ false }}" />
			</div>
		</div>
	</div>

	<div class="block-container">
		<div class="block-filterBar">
			<div class="filterBar">
				<xf:if contentcheck="true">
					<ul class="filterBar-filters">
					<xf:contentcheck>
						<xf:if is="$filters.starter_id AND $starterFilter">
							<li><a href="{{ link('direct-messages', null, $filters|replace('starter_id', null)) }}"
								class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
								{{ phrase('started_by_x', {'name': $starterFilter.username}) }}</a></li>
						</xf:if>
						<xf:if is="$filters.receiver_id AND $receiverFilter">
							<li><a href="{{ link('direct-messages', null, $filters|replace('receiver_id', null)) }}"
								class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
								{{ phrase('received_by_x', {'name': $receiverFilter.username}) }}</a></li>
						</xf:if>
						<xf:if is="$filters.starred">
							<li><a href="{{ link('direct-messages', null, $filters|replace('starred', null)) }}"
								class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
								<span class="filterBar-filterToggle-label">{{ phrase('show_only:') }}</span>
								{{ phrase('starred') }}</a></li>
						</xf:if>
						<xf:if is="$filters.unread">
							<li><a href="{{ link('direct-messages', null, $filters|replace('unread', null)) }}"
								class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
								<span class="filterBar-filterToggle-label">{{ phrase('show_only:') }}</span>
								{{ phrase('filter_unread') }}</a></li>
						</xf:if>
					</xf:contentcheck>
					</ul>
				</xf:if>

				<a class="filterBar-menuTrigger" data-xf-click="menu" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{{ phrase('filters') }}</a>
				<div class="menu" data-menu="menu" aria-hidden="true">
					<div class="menu-content">
						<h4 class="menu-header">{{ phrase('show_only:') }}</h4>
						<xf:form action="{{ link('direct-messages/filters') }}">
							<div class="menu-row menu-row--separated">
								<xf:radio name="filter_type">
									<xf:option value="" selected="{{ !$starterFilter AND !$receiverFilter }}">{{ phrase('show_all_direct_messages') }}</xf:option>
									<xf:option value="started" selected="{{ $starterFilter ? true : false }}" data-hide="true"
										label="{{ phrase('started_by...') }}">

										<xf:textbox name="starter" value="{{ $starterFilter ? $starterFilter.username : '' }}" ac="single"
											maxlength="{{ max_length($xf.visitor, 'username') }}"/>
									</xf:option>
									<xf:option value="received" selected="{{ $receiverFilter ? true : false }}" data-hide="true"
										label="{{ phrase('received_by...') }}">

										<xf:textbox name="receiver" value="{{ $receiverFilter ? $receiverFilter.username : '' }}" ac="single"
											maxlength="{{ max_length($xf.visitor, 'username') }}" />
									</xf:option>
								</xf:radio>
							</div>
							<div class="menu-row menu-row--separated">
								<xf:checkbox>
									<xf:option name="starred" selected="{$filters.starred}" label="{{ phrase('starred_direct_messages') }}" />
									<xf:option name="unread" selected="{$filters.unread}" label="{{ phrase('unread_direct_messages') }}" />
								</xf:checkbox>
							</div>

							<div class="menu-footer">
								<span class="menu-footer-controls">
									<xf:button type="submit" class="button--primary">{{ phrase('filter') }}</xf:button>
								</span>
							</div>
							<xf:hiddenval name="apply">1</xf:hiddenval>
						</xf:form>
					</div>
				</div>
			</div>
		</div>

		<div class="block-body">
			<xf:if is="$userConvs is not empty">
				<div class="structItemContainer">
					<xf:foreach loop="$userConvs" value="$userConv">
						<xf:macro id="conversation_list_macros::item" arg-userConv="{$userConv}" />
					</xf:foreach>
				</div>
			<xf:else />
				<div class="block-row">{{ phrase('there_no_direct_messages_to_display') }}</div>
			</xf:if>
		</div>
	</div>

	<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
		link="direct-messages" params="{$filters}"
		wrapperclass="block-outer block-outer--after" />
</div>

<xf:widgetpos id="conversation_list_sidebar" position="sidebar" />]]></template>
  <template type="public" title="conversation_list_macros" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:macro id="conversation_page_options"
	arg-conversation="{{ null }}">

	<xf:if is="{$conversation}">
		<xf:page option="searchConstraints" value="{{ {
			phrase('direct_messages'): {'search_type': 'conversation_message'},
			phrase('this_direct_message'): {'search_type': 'conversation_message', 'c': {'conversation': $conversation.conversation_id}}
		} }}" />
	<xf:else />
		<xf:page option="searchConstraints" value="{{ {
			phrase('direct_messages'): {'search_type': 'conversation_message'}
		} }}" />
	</xf:if>
</xf:macro>

<xf:macro id="item"
	arg-userConv="!"
	arg-allowInlineMod="{{ true }}">

	<xf:css src="structured_list.less" />

	<div class="structItem structItem--conversation {{ $userConv.isUnread() ? 'is-unread' : '' }} js-inlineModContainer" data-author="{{ $userConv.Master.Starter.username ?: $userConv.Master.username }}">
		<div class="structItem-cell structItem-cell--icon">
			<div class="structItem-iconContainer">
				<xf:avatar user="$userConv.Master.Starter" size="s" defaultname="{$userConv.Master.username}" />
			</div>
		</div>
		<div class="structItem-cell structItem-cell--main" data-xf-init="touch-proxy">
			<xf:if contentcheck="true">
				<ul class="structItem-statuses">
				<xf:contentcheck>
					<xf:if is="$userConv.is_starred">
						<li>
							<i class="structItem-status structItem-status--starred" aria-hidden="true" title="{{ phrase('starred')|for_attr }}"></i>
							<span class="u-srOnly">{{ phrase('starred') }}</span>
						</li>
					</xf:if>
					<xf:if is="!$userConv.Master.conversation_open">
						<li>
							<i class="structItem-status structItem-status--locked" aria-hidden="true" title="{{ phrase('locked')|for_attr }}"></i>
							<span class="u-srOnly">{{ phrase('locked') }}</span>
						</li>
					</xf:if>
				</xf:contentcheck>
				</ul>
			</xf:if>

			<a href="{{ link('direct-messages/unread', $userConv) }}" class="structItem-title" data-tp-primary="on">{$userConv.title}</a>

			<div class="structItem-minor">
				<xf:if contentcheck="true">
					<ul class="structItem-extraInfo">
					<xf:contentcheck>
						<xf:if is="$allowInlineMod">
							<li><xf:checkbox standalone="true">
								<xf:option value="{$userConv.conversation_id}" class="js-inlineModToggle" />
							</xf:checkbox></li>
						</xf:if>
					</xf:contentcheck>
					</ul>
				</xf:if>

				<ul class="structItem-parts">
					<li>
						<ul class="listInline listInline--comma listInline--selfInline">
							<li><xf:username user="$userConv.Master.Starter" defaultname="{$userConv.Master.username}" title="{{ phrase('direct_message_starter') }}" /></li><xf:trim>
							</xf:trim><xf:foreach loop="$userConv.Master.recipients" value="$recipient" if="{$recipient.user_id} != {$userConv.Master.user_id}"><xf:trim>
								<li><xf:username user="{$recipient}" defaultname="{{ phrase('unknown_member') }}" /></li>
							</xf:trim></xf:foreach>
						</ul>
					</li>
					<li class="structItem-startDate"><a href="{{ link('direct-messages', $userConv) }}" rel="nofollow"><xf:date time="{$userConv.Master.start_date}" /></a></li>
				</ul>

				<xf:if is="$userConv.reply_count >= $xf.options.messagesPerPage">
					<span class="structItem-pageJump">
					<xf:foreach loop="{{ last_pages($userConv.reply_count + 1, $xf.options.messagesPerPage, $xf.options.lastPageLinks) }}" value="$p">
						<a href="{{ link('direct-messages', $userConv, {'page': $p}) }}">{$p}</a>
					</xf:foreach>
					</span>
				</xf:if>
			</div>
		</div>
		<div class="structItem-cell structItem-cell--meta">
			<dl class="pairs pairs--justified">
				<dt>{{ phrase('replies') }}</dt>
				<dd>{$userConv.reply_count|number}</dd>
			</dl>
			<dl class="pairs pairs--justified structItem-minor">
				<dt>{{ phrase('participants') }}</dt>
				<dd>{$userConv.Master.recipient_count|number}</dd>
			</dl>
		</div>
		<div class="structItem-cell structItem-cell--latest">
			<a href="{{ link('direct-messages/latest', $userConv) }}" rel="nofollow"><xf:date time="{$userConv.last_message_date}" class="structItem-latestDate" /></a>
			<div class="structItem-minor"><xf:username user="{$userConv.Master.last_message_cache}" /></div>
		</div>
	</div>
</xf:macro>]]></template>
  <template type="public" title="conversation_mark_unread" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ $isUnread ? phrase('mark_read') : phrase('mark_unread') }}</xf:title>

<xf:breadcrumb href="{{ link('direct-messages') }}">{{ phrase('direct_messages') }}</xf:breadcrumb>
<xf:breadcrumb href="{{ link('direct-messages', $conversation) }}">{$conversation.title}</xf:breadcrumb>

<xf:form action="{{ link('direct-messages/mark-unread', $userConv) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<xf:if is="$isUnread">
					{{ phrase('please_confirm_that_you_wish_to_mark_following_direct_message_read:') }}
				<xf:else />
					{{ phrase('please_confirm_that_you_wish_to_mark_following_direct_message_unread:') }}
				</xf:if>
				<strong><a href="{{ link('direct-messages', $conversation) }}">{$conversation.title}</a></strong>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ $isUnread ? phrase('mark_read') : phrase('mark_unread') }}" rowtype="simple" />
	</div>

	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="public" title="conversation_message_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('edit_message_in_direct_message:') }} {$conversation.title}</xf:title>

<xf:breadcrumb href="{{ link('direct-messages') }}">{{ phrase('direct_messages') }}</xf:breadcrumb>
<xf:breadcrumb href="{{ link('direct-messages', $conversation) }}">{$conversation.title}</xf:breadcrumb>

<xf:form action="{{ link('direct-messages/replies/edit', $message) }}" ajax="true" class="block"
	data-xf-init="attachment-manager">

	<div class="block-container">
		<div class="block-body">
			<xf:editorrow name="message" value="{$message.message}" attachments="{$attachmentData.attachments}"
				rowtype="{{ $quickEdit ? 'fullWidth noLabel' : '' }}"
				label="{{ phrase('message') }}"
				data-preview-url="{{ link('direct-messages/replies/preview', $message) }}" />

			<xf:formrow rowtype="{{ $quickEdit ? 'fullWidth noLabel' : '' }}">
				<xf:if is="$attachmentData">
					<xf:macro id="helper_attach_upload::upload_block" arg-attachmentData="{$attachmentData}" />
				</xf:if>
			</xf:formrow>
		</div>
		<xf:submitrow icon="save" sticky="true" rowtype="{{ $quickEdit ? 'simple' : '' }}">
			<xf:html>
				<xf:if is="$quickEdit">
					<xf:button class="js-cancelButton" icon="cancel">{{ phrase('button.cancel') }}</xf:button>
				</xf:if>
			</xf:html>
		</xf:submitrow>
	</div>
</xf:form>]]></template>
  <template type="public" title="conversation_message_edit_new_message" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="conversation_message_macros::message" arg-message="{$message}" arg-conversation="{$conversation}" />]]></template>
  <template type="public" title="conversation_message_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="message" arg-message="!" arg-conversation="!" arg-position="" arg-lastRead="{{ null }}">
	<xf:css src="message.less" />
	<article class="message message--conversationMessage {{ $message.isIgnored() ? ' is-ignored' : '' }} {{ $message.isUnread($lastRead) ? 'is-unread' : '' }} js-message" data-author="{{ $message.User.username ?: $message.username }}">
		<span class="u-anchorTarget" id="convMessage-{$message.message_id}"></span>
		<div class="message-inner">
			<div class="message-cell message-cell--user">
				<xf:macro id="message_macros::user_info" arg-user="{$message.User}" arg-fallbackName="{$message.username}" />
			</div>
			<div class="message-cell message-cell--main">
				<div class="message-main js-quickEditTarget">
					<div class="message-content">
						<header class="message-attribution">
							<a href="{{ link('direct-messages/replies', $message) }}" class="message-attribution-main u-concealed" rel="nofollow">
								<xf:date time="{$message.message_date}" />
							</a>
							<span class="message-attribution-opposite">
								<xf:if is="$message.isUnread($lastRead)">
									<span class="message-newIndicator">{{ phrase('new') }}</span>
								</xf:if>
								<xf:if is="$position">#{$position|number}</xf:if>
							</span>
						</header>

						<xf:if is="$message.isIgnored()">
							<div class="messageNotice messageNotice--ignored">
								{{ phrase('you_are_ignoring_content_by_this_member') }}
							</div>
						</xf:if>

						<div class="message-userContent lbContainer js-lbContainer"
							data-lb-id="message-{$message.message_id}"
							data-lb-caption-title="{{ $message.User ? $message.User.username : $message.username }}"
							data-lb-caption-desc="{{ date_time($message.message_date) }}">

							<article class="message-body js-selectToQuote">
								{{ bb_code($message.message, 'conversation_message', $message) }}
								<div class="js-selectToQuoteEnd">&nbsp;</div>
							</article>

							<xf:if is="$message.attach_count">
								<xf:macro id="message_macros::attachments"
									arg-attachments="{$message.Attachments}"
									arg-message="{$message}"
									arg-canView="{{ true }}" />
							</xf:if>
						</div>

						<xf:macro id="message_macros::signature" arg-user="{$message.User}" />
					</div>

					<footer class="message-footer">
						<xf:if contentcheck="true">
							<div class="message-actionBar actionBar">
								<xf:contentcheck>
									<xf:if contentcheck="true">
										<div class="actionBar-set actionBar-set--external">
											<xf:contentcheck>
												<xf:react content="{$message}" link="direct-messages/replies/react" list="< .js-message | .js-reactionsList" />

												<xf:if is="$conversation.canReply()">
													<xf:set var="$quoteLink">{{ link('direct-messages/reply', $conversation, {'quote': $message.message_id}) }}</xf:set>
													<xf:if is="$xf.options.multiQuote">
														<a href="{$quoteLink}"
															class="actionBar-action actionBar-action--mq u-jsOnly js-multiQuote"
															title="{{ phrase('toggle_multi_quote_tooltip')|for_attr }}"
															data-message-id="{$message.message_id}"
															data-mq-action="add">
															{{ phrase('quote') }}
														</a>
													</xf:if>
													<a href="{$quoteLink}"
														class="actionBar-action actionBar-action--reply"
														title="{{ phrase('reply_quoting_this_message')|for_attr }}"
														data-xf-click="quote"
														data-quote-href="{{ link('direct-messages/replies/quote', $message) }}">{{ phrase('reply') }}</a>

												</xf:if>
											</xf:contentcheck>
										</div>
									</xf:if>

									<xf:if contentcheck="true">
										<div class="actionBar-set actionBar-set--internal">
											<xf:contentcheck>
												<xf:if is="$message.canReport()">
													<a href="{{ link('direct-messages/replies/report', $message) }}" class="actionBar-action actionBar-action--report" data-xf-click="overlay">{{ phrase('report_verb') }}</a>
												</xf:if>

												<xf:if is="$message.canEdit()">
													<xf:js src="xf/action.js, xf/message.js" min="1" />
													<a href="{{ link('direct-messages/replies/edit', $message) }}"
														class="actionBar-action actionBar-action--edit"
														data-xf-click="quick-edit"
														data-editor-target="< .js-quickEditTarget">{{ phrase('edit') }}</a>
												</xf:if>

												<xf:if is="$message.canCleanSpam()">
													<a href="{{ link('spam-cleaner', $message) }}"
														class="actionBar-action actionBar-action--spam actionBar-action--menuItem"
														data-xf-click="overlay">{{ phrase('spam') }}</a>
												</xf:if>

												<xf:if is="$xf.visitor.canViewIps() && $message.ip_id">
													<a href="{{ link('direct-messages/replies/ip', $message) }}"
														class="actionBar-action actionBar-action--ip"
														data-xf-click="overlay">{{ phrase('ip') }}</a>
												</xf:if>
											</xf:contentcheck>
										</div>
									</xf:if>
								</xf:contentcheck>
							</div>
						</xf:if>

						<div class="reactionsBar js-reactionsList {{ $message.reactions ? 'is-active' : '' }}">
							<xf:reactions content="{$message}" link="direct-messages/replies/reactions" />
						</div>
					</footer>
				</div>
			</div>
		</div>
	</article>
</xf:macro>]]></template>
  <template type="public" title="conversation_multi_quote" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="multi_quote_macros::block"
	arg-quotes="{$quotes}"
	arg-messages="{$messages}"
	arg-containerRelation="Conversation"
	arg-dateKey="message_date"
	arg-bbCodeContext="conversation_message" />
]]></template>
  <template type="public" title="conversation_reply" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('reply_to_direct_message') }}</xf:title>

<xf:breadcrumb href="{{ link('direct-messages') }}">{{ phrase('direct_messages') }}</xf:breadcrumb>
<xf:breadcrumb href="{{ link('direct-messages', $conversation) }}">{$conversation.title}</xf:breadcrumb>

<xf:form action="{{ link('direct-messages/add-reply', $conversation) }}" class="block" ajax="true"
	draft="{{ link('direct-messages/draft', $conversation) }}"
	data-xf-init="attachment-manager">

	<div class="block-container">
		<div class="block-body">
			<xf:editorrow name="message"
				value="{$defaultMessage}"
				attachments="{{ $attachmentData ? $attachmentData.attachments : [] }}"
				rowtype="fullWidth noLabel"
				placeholder="{{ phrase('reply_placeholder') }}"
				label="{{ phrase('message') }}"
				data-preview-url="{{ link('direct-messages/reply-preview', $conversation) }}" />

			<xf:formrow rowtype="fullWidth noLabel">
				<xf:if is="$attachmentData">
					<xf:macro id="helper_attach_upload::upload_block"
						arg-attachmentData="{$attachmentData}"
						arg-forceHash="{$conversation.draft_reply.attachment_hash}" />
				</xf:if>

				<xf:if is="$xf.options.multiQuote">
					<xf:macro id="multi_quote_macros::button"
						arg-href="{{ link('direct-messages/multi-quote', $conversation) }}"
						arg-messageSelector=".js-message"
						arg-storageKey="multiQuoteConversation" />
				</xf:if>
			</xf:formrow>

		</div>
		<xf:submitrow submit="{{ phrase('post_reply') }}" icon="reply" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="public" title="conversation_reply_new_messages" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$firstUnshownMessage">
	<div class="message">
		<div class="message-inner">
			<div class="message-cell message-cell--alert">
				{{ phrase('there_more_messages_to_display') }} <a href="{{ link('direct-messages/replies', $firstUnshownMessage) }}">{{ phrase('view_them') }}</a>
			</div>
		</div>
	</div>
</xf:if>

<xf:foreach loop="$messages" value="$message">
	<xf:macro id="conversation_message_macros::message" arg-message="{$message}" arg-conversation="{$conversation}" />
</xf:foreach>
]]></template>
  <template type="public" title="conversation_star" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ $isStarred ? phrase('unstar') : phrase('star') }}</xf:title>

<xf:breadcrumb href="{{ link('direct-messages') }}">{{ phrase('direct_messages') }}</xf:breadcrumb>
<xf:breadcrumb href="{{ link('direct-messages', $conversation) }}">{$conversation.title}</xf:breadcrumb>

<xf:form action="{{ link('direct-messages/star', $userConv) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<xf:if is="$isStarred">
					{{ phrase('please_confirm_that_you_wish_to_unstar_following_direct_message:') }}
				<xf:else />
					{{ phrase('please_confirm_that_you_wish_to_star_following_direct_message:') }}
				</xf:if>
				<strong><a href="{{ link('direct-messages', $conversation) }}">{$conversation.title}</a></strong>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ $isStarred ? phrase('unstar') : phrase('star') }}" rowtype="simple" />
	</div>

	<xf:redirect />
</xf:form>]]></template>
  <template type="public" title="conversation_view" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:title page="{$page}">{$conversation.title}</xf:title>

<xf:description meta="false">
	<ul class="listInline listInline--bullet">
		<li>
			<xf:fa icon="fa-users" title="{{ phrase('participants')|for_attr }}" />
			<span class="u-srOnly">{{ phrase('participants') }}</span>

			<ul class="listInline listInline--selfInline listInline--comma">
				<li><xf:username user="$conversation.Starter" defaultname="{$conversation.username}" title="{{ phrase('direct_message_starter') }}" href="" /></li><xf:trim>
				</xf:trim><xf:foreach loop="$conversation.recipients" value="$recipient" if="{$recipient.user_id} != {$conversation.user_id} AND $i < 4" i="$i"><xf:trim>
					<li><xf:username user="{$recipient}" defaultname="{{ phrase('unknown_member') }}" href="" /></li>
				</xf:trim></xf:foreach>
			</ul>
			<xf:if is="$conversation.recipient_count > 5">
				{{ phrase('ellipsis_and_x_more', {'count': ($conversation.recipient_count - 5)|number}) }}
			</xf:if>
		</li>
		<li>
			<xf:fa icon="fa-clock" title="{{ phrase('start_date')|for_attr }}" />
			<span class="u-srOnly">{{ phrase('start_date') }}</span>

			<a href="{{ link('direct-messages', $conversation) }}" class="u-concealed"><xf:date time="{$conversation.start_date}" /></a>
		</li>
	</ul>
</xf:description>

<xf:macro id="conversation_list_macros::conversation_page_options"
	arg-conversation="{$conversation}" />

<xf:breadcrumb href="{{ link('direct-messages') }}">{{ phrase('direct_messages') }}</xf:breadcrumb>

<xf:sidebar key="conversationInfo">
	<div class="block">
		<div class="block-container">
			<h3 class="block-minorHeader">{{ phrase('direct_message_info') }}</h3>
			<div class="block-body block-row block-row--minor">
				<dl class="pairs pairs--justified"><dt>{{ phrase('participants') }}</dt> <dd>{$conversation.recipient_count|number}</dd></dl>
				<dl class="pairs pairs--justified"><dt>{{ phrase('replies') }}</dt> <dd>{$conversation.reply_count|number}</dd></dl>
				<dl class="pairs pairs--justified"><dt>{{ phrase('last_reply_date') }}</dt> <dd><xf:date time="$conversation.last_message_date" /></dd></dl>
				<dl class="pairs pairs--justified"><dt>{{ phrase('last_reply_from') }}</dt> <dd><xf:username user="$conversation.LastMessageUser" /></dd></dl>
			</div>
		</div>
	</div>
</xf:sidebar>

<xf:sidebar key="conversationParticipants">
	<div class="block">
		<div class="block-container">
			<h3 class="block-minorHeader">{{ phrase('direct_message_participants') }}</h3>
			<ol class="block-body">
				<xf:foreach loop="$recipients" value="$recipient">
					<li class="block-row">
						<div class="contentRow">
							<xf:if is="$recipient.User">
								<div class="contentRow-figure">
									<xf:avatar user="$recipient.User" size="xs" />
								</div>
								<div class="contentRow-main">
									<xf:username user="$recipient.User" rich="true" />
									<div class="contentRow-minor"><xf:usertitle user="$recipient.User" /></div>
								</div>
							<xf:else />
								<div class="contentRow-figure">
									<xf:avatar user="{{ null }}" size="xs" />
								</div>
								<div class="contentRow-main">
									{{ phrase('unknown_member') }}
								</div>
							</xf:if>
						</div>
					</li>
				</xf:foreach>
			</ol>
			<xf:if is="$conversation.canInvite()">
				<div class="block-footer">
					<span class="block-footer-controls">
						<a href="{{ link('direct-messages/invite', $conversation) }}" data-xf-click="overlay">{{ phrase('invite_more') }}</a>
					</span>
				</div>
			</xf:if>
		</div>
	</div>
</xf:sidebar>

<div class="block block--messages">
	<div class="block-outer">
		<xf:pagenav
			page="{$page}" perpage="{$perPage}" total="{{ $conversation.reply_count + 1 }}"
			link="direct-messages" data="{$conversation}"
			wrapperclass="block-outer-main" />
		<div class="block-outer-opposite">
			<div class="buttonGroup">
				<xf:if is="$conversation.canEdit()">
					<xf:button href="{{ link('direct-messages/edit', $conversation) }}" class="button--link"
						icon="edit" overlay="true" />
				</xf:if>
				<xf:button href="{{ link('direct-messages/star', $conversation) }}" class="button--link"
					data-xf-click="switch"
					data-sk-star="{{ phrase('star') }}"
					data-sk-unstar="{{ phrase('unstar') }}">
					{{ {$userConv.is_starred} ? phrase('unstar') : phrase('star') }}
				</xf:button>
				<xf:button href="{{ link('direct-messages/mark-unread', $conversation) }}" class="button--link"
					data-xf-click="switch"
					data-sk-read="{{ phrase('mark_read') }}"
					data-sk-unread="{{ phrase('mark_unread') }}">
					{{ {$userConv.is_unread} ? phrase('mark_read') : phrase('mark_unread') }}
				</xf:button>
				<xf:button href="{{ link('direct-messages/leave', $conversation) }}" class="button--link" overlay="true">
					{{ phrase('leave') }}
				</xf:button>
			</div>
		</div>
	</div>

	<div class="block-container lbContainer"
		data-xf-init="lightbox{{ $xf.options.selectQuotable ? ' select-to-quote' : '' }}"
		data-message-selector=".js-message"
		data-lb-id="conversation-{$conversation.conversation_id}"
		data-lb-universal="{$xf.options.lightBoxUniversal}">

		<div class="block-body js-replyNewMessageContainer">
			<xf:foreach loop="$messages" value="$message">
				<xf:macro id="conversation_message_macros::message"
					arg-message="{$message}" arg-conversation="{$conversation}"
					arg-lastRead="{$lastRead}" />
			</xf:foreach>
		</div>
	</div>

	<div class="block-outer block-outer--after">
		<xf:pagenav
			page="{$page}" perpage="{$perPage}" total="{{ $conversation.reply_count + 1 }}"
			link="direct-messages" data="{$conversation}"
			wrapperclass="block-outer-main" />
		<xf:showignored wrapperclass="block-outer-opposite" />
	</div>

	<xf:if is="!$conversation.conversation_open">
		<div class="block-outer block-outer--after">
			<dl class="blockStatus">
				<dt>{{ phrase('status') }}</dt>
				<dd class="blockStatus-message blockStatus-message--locked">
					{{ phrase('this_direct_message_is_closed_for_new_replies') }}
				</dd>
			</dl>
		</div>
	</xf:if>
</div>

<xf:if is="$conversation.canReply()">
	<xf:form action="{{ link('direct-messages/add-reply', $conversation) }}"
		ajax="true"
		draft="{{ link('direct-messages/draft', $conversation) }}"
		class="block js-quickReply"
		data-xf-init="attachment-manager quick-reply">

		<xf:js src="xf/action.js, xf/message.js" min="1" />
		<xf:set var="$lastMessage" value="{$messages|last}" />

		<div class="block-container">
			<div class="block-body">
				<xf:macro id="quick_reply_macros::body"
					arg-message="{$conversation.draft_reply.message}"
					arg-attachmentData="{$attachmentData}"
					arg-forceHash="{$conversation.draft_reply.attachment_hash}"
					arg-messageSelector=".js-message"
					arg-supportsMultiQuote="{$xf.options.multiQuote}"
					arg-multiQuoteHref="{{ link('direct-messages/multi-quote', $conversation) }}"
					arg-multiQuoteStorageKey="multiQuoteConversation"
					arg-lastItemId="{$lastMessage.message_id}"
					arg-lastDate="{$lastMessage.message_date}"
					arg-previewUrl="{{ link('direct-messages/reply-preview', $conversation) }}" />
			</div>
		</div>
	</xf:form>
</xf:if>

<xf:widgetpos id="conversation_view_sidebar" context-conversation="{$conversation}" position="sidebar" />]]></template>
  <template type="public" title="conversations_popup" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$unreadConversations is not empty OR $readConversations is not empty">
	<div class="menu-scroller">
		<ol class="listPlain">
			<xf:foreach loop="$unreadConversations" value="$userConv">
				<xf:macro id="popup_item" arg-userConv="{$userConv}" />
			</xf:foreach>
			<xf:foreach loop="$readConversations" value="$userConv">
				<xf:macro id="popup_item" arg-userConv="{$userConv}" />
			</xf:foreach>
		</ol>
	</div>
<xf:else />
	<div class="menu-row">{{ phrase('you_have_no_recent_direct_messages') }}</div>
</xf:if>

<xf:macro id="popup_item" arg-userConv="!">
	<li class="menu-row menu-row--separated menu-row--clickable {{ $userConv.isUnread() ? 'menu-row--highlighted' : '' }}">
		<div class="fauxBlockLink">
			<div class="contentRow">
				<div class="contentRow-figure">
					<xf:avatar user="$userConv.Master.LastMessageUser" size="xxs" defaultname="{$userConv.Master.last_message_username}" />
				</div>
				<div class="contentRow-main contentRow-main--close">
					<a href="{{ link('direct-messages/unread', $userConv) }}" class="fauxBlockLink-blockLink">{$userConv.Master.title}</a>
					<div class="contentRow-minor contentRow-minor--smaller contentRow-minor--hideLinks">
						{{ phrase('with_people:') }}
						<ul class="listInline listInline--selfInline listInline--comma">
							<li><xf:username user="$userConv.Master.Starter" defaultname="{$userConv.Master.username}" title="{{ phrase('direct_message_starter') }}" href="" /></li><xf:trim>
							</xf:trim><xf:foreach loop="$userConv.Master.recipients" value="$recipient" if="{$recipient.user_id} != {$userConv.Master.user_id}"><xf:trim>
								<li><xf:username user="{$recipient}" defaultname="{{ phrase('unknown_member') }}" href="" /></li>
							</xf:trim></xf:foreach>
						</ul>
					</div>
					<div class="contentRow-minor contentRow-minor--smaller">
						<xf:date time="$userConv.Master.last_message_date" />
					</div>
				</div>
			</div>
		</div>
	</li>
</xf:macro>]]></template>
  <template type="public" title="core.less" version_id="2030036" version_string="2.3.0 Beta 6"><![CDATA[// ########################## GLOBAL BASE SETUP #######################

html
{
	font: @xf-fontSizeNormal / @xf-lineHeightDefault sans-serif;
	font-family: @xf-fontFamilyUi;
	font-weight: @xf-fontWeightNormal;
	color: @xf-textColor;
	margin: 0;
	padding: 0;
	word-wrap: break-word;
	background-color: @xf-pageBg;

	/* // just a reminder that we *might* want this at some point
	-ms-text-size-adjust: none;
	-webkit-text-size-adjust: none;*/

	--js-display: block;
}

button, input, optgroup, select, textarea
{
	font-family: @xf-fontFamilyUi;
	line-height: @xf-lineHeightDefault;
}

img
{
	max-width: 100%;
	height: auto;
}

b, strong
{
	font-weight: @xf-fontWeightHeavy;
}

a
{
	.xf-link();

	&:hover
	{
		.xf-linkHover();
	}
}

svg
{
	fill: currentColor;
}

{{ include('core_setup.less') }}
{{ include('core_utilities.less') }}
{{ include('core_list.less') }}
{{ include('core_categorylist.less') }}
{{ include('core_block.less') }}
{{ include('core_blockmessage.less') }}
{{ include('core_blockstatus.less') }}
{{ include('core_blocklink.less') }}
{{ include('core_blockend.less') }}
{{ include('core_fixedmessage.less') }}
{{ include('core_button.less') }}
{{ include('core_meter_bar.less') }}

// ################################# INPUTS & FORMS #####################

{{ include('core_input.less') }}
{{ include('core_formrow.less') }}

{{ include('core_collapse.less') }}
{{ include('core_badge.less') }}
{{ include('core_tooltip.less') }}
{{ include('core_menu.less') }}
{{ include('core_offcanvas.less') }}
{{ include('core_tab.less') }}
{{ include('core_overlay.less') }}
{{ include('core_globalaction.less') }}
{{ include('core_avatar.less') }}
{{ include('core_datalist.less') }}
{{ include('core_filter.less') }}
{{ include('core_contentrow.less') }}
{{ include('core_pagenav.less') }}
{{ include('core_hscroller.less') }}

// FLASH MESSAGES
.flashMessage
{
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: @zIndex-9;
	.xf-flashMessage();

	.m-transitionFadeDown();
}

// AUTOCOMPLETE
.autoCompleteList
{
	.m-autoCompleteList();
	margin-top: 2px;

	&.autoCompleteList--inherit
	{
		font-size: inherit;

		li
		{
			padding: @xf-paddingLarge;
			line-height: inherit;
		}
	}

	&.autoCompleteList--fullWidth
	{
		min-width: 100%;
	}
}

// #################################### TAGS ##############################
// note that while this is related to tags, it's commonly used so just include it

.tagList,
.tagList > dt,
.tagList > dd
{
	display: inline;
	padding: 0;
	margin: 0;
}

.tagItem
{
	display: inline-block;
	max-width: 100%;
	padding: 0 6px 1px;
	margin: 0 0 2px;
	border-radius: @xf-borderRadiusMedium;
	font-size: @xf-fontSizeSmaller;
	.xf-chip();

	a&:hover
	{
		text-decoration: none;
		color: @xf-chip--color;
		.xf-chipHover();
	}
}

// ############################# MISC #########################

.recaptcha
{
	&.input
	{
		box-sizing: content-box;
		max-width: 100%;
	}

	img
	{
		max-width: 100%;
	}
}

.likesBar
{
	.m-transitionFadeDown(@display: flex);
	align-items: center;
	.xf-minorBlockContent();
	border-left: @xf-borderSizeMinorFeature solid @xf-borderColorFeature;
	padding: @xf-paddingMedium;
	font-size: @xf-fontSizeSmaller;
	margin-top: @xf-paddingMedium;
}

.likeIcon
{
	&:before
	{
		.m-faBase();
		.m-faContent(@fa-var-thumbs-up); //, 1em
		color: @xf-textColorFeature;
		//margin-right: .2em;
	}
}

.reactionsBar
{
	.m-transitionFadeDown(@display: flex);
	align-items: center;
	.xf-minorBlockContent();
	border-left: @xf-borderSizeMinorFeature solid @xf-borderColorFeature;
	padding: @xf-paddingMedium;
	font-size: @xf-fontSizeSmaller;
	margin-top: @xf-paddingMedium;
}

.reactionsBar-link
{
	padding-left: @xf-paddingSmall;
}

.reactionSummary
{
	.m-listPlain();
	flex-shrink: 0;
	height: 16px;
	margin: 0 -2px;

	> li
	{
		display: inline-block;
		height: 20px;
		width: 20px;
		padding: 2px;
		margin: -2px 0;
		background: @xf-contentBg;
		border-radius: 50%;
		position: relative;
		margin-left: -6px;

		&:nth-child(1)
		{
			z-index: 3;
			margin-left: 0;
		}

		&:nth-child(2)
		{
			z-index: 2;
		}

		&:nth-child(3)
		{
			z-index: 1;
		}
	}

	.reaction
	{
		position: absolute;
		top: 0;

		&.reaction
		{
			// increase specificity to override .reaction.reaction--<size>
			display: block;
		}
	}
}

.reactionsBar,
.message-responseRow
{
	.reactionSummary
	{
		> li
		{
			background: @xf-contentAltBg;
		}

		.reaction
		{
			top: 2px;
		}
	}
}

.reactTooltip
{
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	max-width: 100%;

	.reaction
	{
		margin: @xf-paddingSmall;
		.m-transition(transform);

		&:hover
		{
			.m-transform(scale(1.2));
		}
	}
}

.colorChip
{
	display: inline-block;
	border: @xf-borderSize solid @xf-borderColor;
	border-radius: @xf-borderRadiusMedium;
	padding: 1px;
	width: 100px;
}

.colorChip-inner
{
	display: block;
	background-color: transparent;
	border-radius: @xf-borderRadiusSmall;
	height: 1em;
}

.colorChip-value
{
	display: none;
}

pre.sf-dump
{
	// not ideal, but then again neither is the default of 99999...
	z-index: @zIndex-1 !important;
}

.grecaptcha-badge
{
	z-index: @zIndex-5;
}

// Bookmarking links for 2.1
.bookmarkLink
{
	&:before
	{
		& when (@xf-fontAwesomeWeight >= @faWeight-solid)
		{
			.m-faIcon(@fa-var-regular-bookmark);
		}
		& when (@xf-fontAwesomeWeight < @faWeight-solid)
		{
			.m-faIcon(@fa-var-bookmark);
		}
	}
	&.is-bookmarked
	{
		&:before
		{
			.m-faContent(@fa-var-solid-bookmark);
		}
	}

	&.bookmarkLink--highlightable.is-bookmarked
	{
		color: @xf-textColorAttention;

		&:hover
		{
			color: @xf-textColorAccentContent;
		}
	}

	span
	{
		margin-left: .35em;
	}
}

.p-breadcrumbs > li > a,
a.ui
{
	--ui-pad: .2em;
	--ui-pad-h: 2;
	display: inline-block;
	padding: var(--ui-pad) calc(var(--ui-pad) * var(--ui-pad-h));
	margin: calc(var(--ui-pad) * -1) calc(var(--ui-pad) * var(--ui-pad-h) * -1);
	border-radius: 5px;
	background-color: transparent;
	.m-transition(background-color);

	&:hover
	{
		background-color: fade(@xf-paletteNeutral3, 5%);
		text-decoration: none;
	}
}

// used in H2-H4 anchors
.hoverLink
{
	font-weight: normal;
	font-size: 75%;
	opacity: 0;
	.m-transition(color opacity);

	&:not(:hover)
	{
		color: inherit;
	}

	&:after
	{
		.m-faBase();
		.m-faContent(@fa-var-link);
		position: relative;
		left: .5em;
		bottom: .1em;
	}

	*:hover > &
	{
		opacity: 0.5;

		&:hover
		{
			opacity: 1;
		}
	}

	&:first-child:after
	{
		left: 0;
		right: .5em;
		background: pink;
	}
}

.dragHandle
{
	cursor: move;
	touch-action: none;

	&:before
	{
		.m-faBase();
		.m-faContent(@fa-var-bars);
	}

	.is-undraggable &
	{
		visibility: hidden;
		cursor: default;
	}
}

.memberProfileBanner
{
	background-size: cover !important;
	background-position-x: center !important;
	background-repeat: no-repeat !important;

	&.memberProfileBanner--small
	{
		height: 150px;
		margin-bottom: @xf-paddingMedium;
	}

	&.memberProfileBanner--empty
	{
		display: none;
	}
}

.solutionIcon
{
	display: inline-flex;
	padding: @xf-paddingMedium;
	font-size: @xf-fontSizeLargest;
	line-height: 1;
	color: @xf-textColorMuted;
	.m-transition();

	a&
	{
		color: @xf-textColorMuted;
		text-decoration: none;
	}

	&:before
	{
		& when (@xf-fontAwesomeWeight >= @faWeight-solid)
		{
			.m-faIcon(@fa-var-regular-check-circle);
		}
		& when (@xf-fontAwesomeWeight < @faWeight-solid)
		{
			.m-faIcon(@fa-var-check-circle);
		}
	}

	&.is-solution
	{
		color: @xf-votePositiveColor;
		opacity: 1;

		&:before
		{
			.m-faContent(@fa-var-solid-check-circle);
		}
	}
}

{{ include('core_action_bar.less') }}
{{ include('core_labels.less') }}
{{ include('core_reaction.less') }}
{{ include('core_smilie.less') }}
{{ include('core_bbcode.less') }}

// RESOLUTION OUTPUT

.debugResolution
{
	.debugResolution-output:before
	{
		content: "Full @{xf-responsiveWide} - @{xf-pageWidthMax}";
		@media (min-width: @xf-pageWidthMax) { content: "Max > @{xf-pageWidthMax}"; }
		@media (max-width: @xf-responsiveWide) { content: "Wide < @{xf-responsiveWide}"; }
		@media (max-width: @xf-responsiveMedium) { content: "Medium < @{xf-responsiveMedium}"; }
		@media (max-width: @xf-responsiveNarrow) { content: "Narrow < @{xf-responsiveNarrow}"; }
	}
}]]></template>
  <template type="public" title="core_action_bar.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[.actionBar
{
	.m-clearFix();
}

.actionBar-set
{
	&.actionBar-set--internal
	{
		float: left;
		margin-left: -3px;

		> .actionBar-action:first-child
		{
			margin-left: 0;
		}
	}

	&.actionBar-set--external
	{
		float: right;
		margin-right: -3px;

		> .actionBar-action:last-child
		{
			margin-right: 0;
		}
	}
}

.actionBar-action
{
	display: inline-block;
	padding: 3px;
	border: 1px solid transparent;
	border-radius: @xf-borderRadiusMedium;
	margin-left: 5px;

	&:before
	{
		.m-faBase();
		font-size: 90%;
	}

	&.actionBar-action--menuTrigger
	{
		display: none;

		&.is-displayed
		{
			display: inline;
		}

		&:after
		{
			.m-menuGadget();
		}

		&.is-menuOpen
		{
			// get rid of text decoration when the menu opens
			text-decoration: none;
		}
	}

	&.actionBar-action--inlineMod
	{
		label
		{
			color: @xf-linkColor;
			font-size: 120%;
			vertical-align: -2px;
		}

		input
		{
			.m-checkboxAligner();
		}
	}

	&.actionBar-action--mq
	{
		&:before { .m-faContent("@{fa-var-plus}", .75em); margin-right: 3px; }

		&.is-selected
		{
			background-color: @xf-contentHighlightBg;
			border-color: @xf-borderColorHighlight;

			&:before { .m-faContent("@{fa-var-minus}", .75em); }
		}
	}

	&.actionBar-action--postLink
	{
		text-decoration: inherit !important;
		color: inherit !important;
	}

	&.actionBar-action--reply:before { .m-faContent("@{fa-var-reply}", 1.125em); margin-right: 3px; }
	&.actionBar-action--like:before { .m-faContent("@{fa-var-thumbs-up}", 1em); margin-right: 3px; }

	&.actionBar-action--reaction:not(.has-reaction) .reaction-text
	{
		color: inherit;
	}

	&.actionBar-action--view
	{
		background: @xf-contentBg;
		color: @xf-linkColor;
		.m-buttonBorderColorVariation(@xf-borderColor);
		padding-left: @xf-paddingLarge;
		padding-right: @xf-paddingLarge;

		&:hover,
		&:active,
		&:focus
		{
			text-decoration: none;
			background: @xf-contentHighlightBg;
		}
	}
}

@media (max-width: @xf-responsiveNarrow)
{
	.actionBar-action
	{
		&.actionBar-action--menuItem
		{
			display: none !important;
		}

		&.actionBar-action--menuTrigger
		{
			display: inline;
		}
	}
}]]></template>
  <template type="public" title="core_avatar.less" version_id="2010131" version_string="2.1.1 Beta 1"><![CDATA[// ################################### AVATARS #############################

.avatar
{
	display: inline-flex;
	justify-content: center;
	align-items: center;
	border-radius: @xf-avatarBorderRadius;
	vertical-align: top;
	overflow: hidden;

	img { background-color: @xf-avatarBg; }

	&.avatar--default
	{
		&.avatar--default--dynamic,
		&.avatar--default--text
		{
			font-family: @xf-avatarDynamicFont;
			font-weight: normal;
			text-align: center;
			text-decoration: none !important;

			// this works with the flex box approach
			line-height: 1;

			-webkit-user-select: none;
			-moz-user-select: none;
			-ms-user-select: none;
			user-select: none;
		}

		&.avatar--default--text
		{
			color: xf-default(@xf-textColorMuted, black) !important;
			background: mix(xf-default(@xf-textColorMuted, black), xf-default(@xf-avatarBg, white), 25%) !important;

			> span:before { content: ~"'@{xf-avatarDefaultTextContent}'"; }
		}

		&.avatar--default--image
		{
			background-color: @xf-avatarBg;
			background-image: url(@xf-avatarDefaultImage);
			background-size: cover;
			> span { display: none; }
		}
	}

	&:hover
	{
		text-decoration: none;
	}

	&.avatar--updateLink
	{
		position: relative;
	}

	&.avatar--separated
	{
		border: 1px solid @xf-avatarBg;
	}

	&.avatar--square
	{
		border-radius: 0;
	}

	&.avatar--xxs
	{
		.m-avatarSize(@avatar-xxs);
	}

	&.avatar--xs
	{
		.m-avatarSize(@avatar-xs);
	}

	&.avatar--s
	{
		.m-avatarSize(@avatar-s);
	}

	&.avatar--m
	{
		.m-avatarSize(@avatar-m);
	}

	&.avatar--l
	{
		.m-avatarSize(@avatar-l);
	}

	&.avatar--o
	{
		.m-avatarSize(@avatar-o);
	}

	img:not(.cropImage)
	{
		.m-hideText;
		display: block;
		border-radius: inherit;
		width: 100%;
		height: 100%;
	}

	&:not(a)
	{
		cursor: inherit;
	}
}

.avatar-update
{
	width: 100%;
	height: 30px;
	bottom: -30px;
	position: absolute;

	.m-hiddenLinks();
	.m-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.3), #000);
	.m-transition();

	padding: @xf-paddingSmall;
	overflow: hidden;

	font-family: @xf-fontFamilyUi;
	font-size: @xf-fontSizeSmaller;
	line-height: @xf-lineHeightDefault;

	display: none;
	align-items: center;
	justify-content: center;

	.avatar--updateLink &
	{
		display: flex;
	}

	.has-touchevents &,
	.avatar:hover &
	{
		bottom: 0;
	}

	a
	{
		text-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
		color: #fff;

		&:hover
		{
			text-decoration: none;
		}
	}
}

.avatarWrapper
{
	display: inline-block;
	position: relative;
}

.avatarWrapper-update
{
	position: absolute;
	top: 50%;
	bottom: 0;
	left: 0;
	right: 0;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding-bottom: .8em;
	color: #fff;
	text-decoration: none;
	opacity: 0;
	.m-transition(opacity);

	&:before
	{
		content: '';
		position: absolute;
		top: -100%;
		bottom: 0;
		left: 0;
		right: 0;
		.m-borderBottomRadius(xf-default(@xf-avatarBorderRadius, 0));
		.m-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, .9), #000, 60%);
		opacity: .75;
		.m-transition(opacity);
		pointer-events: none;
	}

	span
	{
		// so it sits on top of the BG
		position: relative;
	}

	&:hover
	{
		color: #fff;
		text-decoration: none;

		&:before
		{
			opacity: 1;
		}
	}

	.avatarWrapper:hover &,
	.has-touchevents &
	{
		opacity: 1;
	}

	&.avatarWrapper-update--small
	{
		font-size: @xf-fontSizeSmall;
	}
}]]></template>
  <template type="public" title="core_badge.less" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[// #################################################### BADGES ###########################

.badge,
.badgeContainer:after
{
	display: inline-block;
	padding: 2px 4px;
	margin: -2px 0;
	font-size: 80%;
	line-height: 1;
	font-weight: @xf-fontWeightNormal;
	.xf-badge();
}

.badgeContainer
{
	&:after
	{
		content: attr(data-badge);
		display: none;
	}

	&.badgeContainer--visible:after
	{
		display: inline-block;
	}
}

.badge.badge--highlighted,
.badgeContainer.badgeContainer--highlighted:after
{
	display: inline-block;
	.xf-badgeHighlighted();
}]]></template>
  <template type="public" title="core_bbcode.less" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[.bbWrapper
{
	// This approach is needed to normalize browser differences that normalize.css won't handle within BB code/rich text
	// sections. You may need higher specificity to override some situations because of this.

	ol:not(.is-structureList),
	ul:not(.is-structureList)
	{
		margin-top: 1em;
		margin-bottom: 1em;
		overflow: hidden;
	}

	ol:not(.is-structureList) ol:not(.is-structureList),
	ol:not(.is-structureList) ul:not(.is-structureList),
	ul:not(.is-structureList) ol:not(.is-structureList),
	ul:not(.is-structureList) ul:not(.is-structureList)
	{
		margin-top: 0;
		margin-bottom: 0;
	}

	// note that changes to these rules will likely need to be replicated into editor.less
	.bbHeading
	{
		margin: .5em 0;
		clear: both;
	}

	h2.bbHeading { font-size: @xf-fontSizeLargest; }
	h3.bbHeading { font-size: @xf-fontSizeLarger; }
	h4.bbHeading { font-size: @xf-fontSizeLarge; }

	hr
	{
		border: none;
		border-top: @xf-borderSize solid @xf-borderColorHeavy;
		clear: both;
	}

	> :first-child
	{
		margin-top: 0;
	}

	a.link
	{
		color: @xf-linkUgcColor;
	}

	a.link:hover
	{
		color: @xf-linkUgcHoverColor;
	}
}

.bbImage
{
	height: auto;
	max-width: 100%;
}

.bbImageWrapper
{
	display: inline-block;
	max-width: 100%;
}

// classes to handle images being floated left and right via BB code attributes
.bbImage,
.bbImageWrapper
{
	&.bbImageAligned--left
	{
		float: left;
		margin: @xf-bbCodeImgFloatMargin @xf-bbCodeImgFloatMarginAfter @xf-bbCodeImgFloatMarginAfter 0;
	}

	&.bbImageAligned--right
	{
		float: right;
		margin: @xf-bbCodeImgFloatMargin 0 @xf-bbCodeImgFloatMarginAfter @xf-bbCodeImgFloatMarginAfter;
	}
}

.bbMediaWrapper,
.bbMediaJustifier,
.bbOembed
{
	width: 560px;
	max-width: 100%;
	margin: 0;

	&.fb_iframe_widget
	{
		display: block;
	}

	.m-blockAligner();

	&.bbImageAligned--left
	{
		float: left;
		margin: @xf-bbCodeImgFloatMargin @xf-bbCodeImgFloatMarginAfter @xf-bbCodeImgFloatMarginAfter 0;
	}

	&.bbImageAligned--right
	{
		float: right;
		margin: @xf-bbCodeImgFloatMargin 0 @xf-bbCodeImgFloatMarginAfter @xf-bbCodeImgFloatMarginAfter;
	}
}

.fb_iframe_widget
{
	> span,
	iframe
	{
		max-width: 100%;
	}
}

.bbMediaWrapper.bbMediaWrapper--inline
{
	display: inline-block;
}

.bbMediaWrapper-inner
{
	position: relative;
	padding-bottom: 56.25%; /* 16:9 ratio */
	height: 0;

	&.bbMediaWrapper-inner--4to3
	{
		padding-bottom: 75%; /* 4:3 ratio */
	}

	&.bbMediaWrapper-inner--104px
	{
		padding-bottom: 104px;
	}

	&.bbMediaWrapper-inner--110px
	{
		padding-bottom: 110px;
	}

	&.bbMediaWrapper-inner--150px
	{
		padding-bottom: 150px;
	}

	&.bbMediaWrapper-inner--232px
	{
		padding-bottom: 232px;
	}

	&.bbMediaWrapper-inner--500px
	{
		padding-bottom: 500px;
	}

	&.bbMediaWrapper-inner--audio
	{
		padding-bottom: 60px;

		audio
		{
			outline: none;
		}
	}

	iframe,
	object,
	embed,
	video,
	audio,
	.bbMediaWrapper-fallback
	{
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}
}

.bbMediaWrapper-fallback
{
	display: flex;
	justify-content: center;
	align-items: center;
	max-width: 100%;
	.xf-minorBlockContent();
}

.bbOembed
{
	&.bbOembed--loaded
	{
		display: block;
	}

	iframe,
	object,
	embed,
	video,
	audio
	{
		max-width: 100%;
	}

	.embedly-card
	{
		margin: 0;
		background: white;
	}
}

.bbTable
{
	max-width: 100%;
	overflow: auto;

	.m-tableBase();
}

.bbCodePlainUnfurl
{
	&.link
	{
		display: block;
	}
}]]></template>
  <template type="public" title="core_block.less" version_id="2030031" version_string="2.3.0 Beta 1"><![CDATA[// ################################# BLOCKS ##################

.blocks
{
	margin-bottom: @xf-elementSpacer;

	&:last-child
	{
		margin-bottom: 0;
	}

	.block
	{
		margin-bottom: (@xf-elementSpacer / 2);

		&:last-child
		{
			margin-bottom: 0;
		}
	}

	&.blocks--close .block
	{
		margin-bottom: (@xf-elementSpacer / 4);
	}

	&.blocks--separated
	{
		+ .blocks
		{
			padding-top: @xf-elementSpacer;
			border-top: @xf-borderSize solid @xf-borderColor;
		}
	}
}

.blocks-header
{
	font-size: @xf-fontSizeLarger;
	font-weight: @xf-fontWeightNormal;
	color: @xf-textColorMuted;

	margin: 0;
	padding: 0;
	margin-bottom: 5px;

	&.blocks-header--strong
	{
		color: @xf-textColorDimmed;

		.blocks-desc
		{
			color: @xf-textColorMuted;
		}
	}
}

.blocks-textJoiner
{
	display: table;
	width: 100%;
	margin-bottom: (@xf-elementSpacer / 2);
	padding: 0 @xf-paddingMedium;

	> span
	{
		display: table-cell;
		position: relative;

		&:before
		{
			content: '';
			position: absolute;
			left: 0;
			right: 0;
			top: 50%;
			border-top: @xf-borderSize solid @xf-borderColor;
		}
	}

	> em
	{
		display: table-cell;
		padding: 0 @xf-paddingLarge;
		width: 1%;
		white-space: nowrap;
		font-size: @xf-fontSizeLargest;
		line-height: 1;
		font-style: normal;
		text-align: center;
	}
}

.block
{
	margin-bottom: @xf-elementSpacer;

	&.block--close
	{
		margin-bottom: 5px;
	}

	&.block--treeEntryChooser
	{
		.block-header
		{
			font-size: @xf-fontSizeLarge;

			.block-desc
			{
				font-size: @xf-fontSizeSmallest;
			}
		}

		.block-row
		{
			padding-top: 6px;
			padding-bottom: 6px;
		}

		.contentRow
		{
			&.is-disabled
			{
				opacity: 0.5;
			}
		}

		.contentRow-title
		{
			font-size: @xf-fontSizeNormal;
		}

		.contentRow-minor
		{
			font-size: @xf-fontSizeSmaller;
		}

		.contentRow-suffix
		{
			font-size: @xf-fontSizeSmall;
		}
	}
}

.block-outer
{
	padding-bottom: @xf-blockPaddingV;
	.m-clearFix();

	&:empty
	{
		display: none;
	}

	&.block-outer--after
	{
		padding-top: @xf-blockPaddingV;
		padding-bottom: 0;
	}

	&.block-outer--padded
	{
		padding-left: @xf-blockPaddingH;
		padding-right: @xf-blockPaddingH;
	}

	.block-outer-hint
	{
		font-size: @xf-fontSizeSmall;
		color: @xf-textColorMuted;
	}
}
.block-outer-main, .block-row-main { float: left; }
.block-outer-opposite, .block-row-opposite { float: right; }
.block-outer-middle, .block-row-middle { text-align: center; }

.block-container
{
	.xf-contentBase();
	.xf-blockBorder();
	border-radius: @xf-blockBorderRadius;

	&.block-container--none
	{
		background: none;
		border: none;
		color: @xf-textColor;
		padding: 0;
	}
}

@media (min-width: @xf-responsiveEdgeSpacerRemoval)
{
	@{block-noStripSel} > :first-child,
	.block-topRadiusContent,
	@{block-noStripSel} > .block-body:first-child > .blockLink:first-child
	{
		border-top-left-radius: @block-borderRadius-inner;
		border-top-right-radius: @block-borderRadius-inner;
	}

	@{block-noStripSel} > :last-child,
	.block-bottomRadiusContent,
	@{block-noStripSel} > .block-body:last-child > .blockLink:last-child,
	@{block-noStripSel} > .tabPanes:last-child > [role=tabpanel] > :last-child,
	@{block-noStripSel} > .tabPanes:last-child > [role=tabpanel] > .block-body > :last-child
	{
		border-bottom-left-radius: @block-borderRadius-inner;
		border-bottom-right-radius: @block-borderRadius-inner;
	}

	@{block-noStripSel} > .block-body:first-child > .dataList:first-child,
	.block-topRadiusContent.dataList,
	.block-topRadiusContent > .dataList:first-child
	{
		tbody:first-child .dataList-row:first-child,
		thead:first-child .dataList-row:first-child
		{
			> .dataList-cell:first-child { border-top-left-radius: @block-borderRadius-inner; }
			> .dataList-cell:last-child { border-top-right-radius: @block-borderRadius-inner; }
		}
	}

	@{block-noStripSel} > .block-body:first-child > .formRow:first-child,
	.block-topRadiusContent.formRow,
	.block-topRadiusContent > .formRow:first-child
	{
		> dt { border-top-left-radius: @block-borderRadius-inner; }
		> dd { border-top-right-radius: @block-borderRadius-inner; }
	}

	@{block-noStripSel} > .block-body:last-child > .dataList:last-child,
	.block-bottomRadiusContent.dataList,
	.block-bottomRadiusContent > .dataList:last-child
	{
		tbody:last-child .dataList-row:last-child
		{
			> .dataList-cell:first-child { border-bottom-left-radius: @block-borderRadius-inner; }
			> .dataList-cell:last-child { border-bottom-right-radius: @block-borderRadius-inner; }
		}
	}

	@{block-noStripSel} > .block-body:last-child > .formRow:last-child,
	.block-bottomRadiusContent.formRow,
	.block-bottomRadiusContent > .formRow:last-child
	{
		> dt { border-bottom-left-radius: @block-borderRadius-inner; }
		> dd { border-bottom-right-radius: @block-borderRadius-inner; }
	}

	@{block-noStripSel} > .block-body:last-child .formSubmitRow:not(.is-sticky),
	@{block-noStripSel} > .formSubmitRow:not(.is-sticky):last-child,
	.block-bottomRadiusContent > .formSubmitRow:not(.is-sticky)
	{
		> dt { border-bottom-left-radius: @block-borderRadius-inner; }
		> dd { border-bottom-right-radius: @block-borderRadius-inner; }

		.formSubmitRow-bar
		{
			border-bottom-left-radius: @block-borderRadius-inner;
			border-bottom-right-radius: @block-borderRadius-inner;
		}
	}
}

.block-header
{
	padding: @xf-blockPaddingV @xf-blockPaddingH;
	margin: 0;
	font-weight: @xf-fontWeightNormal;
	text-decoration: none;
	.xf-blockHeader();

	.m-clearFix();
	.m-hiddenLinks();

	&.block-header--separated
	{
		border-top: @xf-borderSize solid @xf-borderColorLight;
	}

	.block-desc
	{
		color: fade(@xf-blockHeader--color, 70);
		.m-textColoredLinks();
	}
}

.block-minorHeader
{
	padding: @xf-blockPaddingV @xf-blockPaddingH;
	margin: 0;
	font-weight: @xf-fontWeightNormal;
	text-decoration: none;
	.xf-blockMinorHeader();

	.m-clearFix();
	.m-hiddenLinks();

	.block-body + &
	{
		border-top: @xf-borderSize solid @xf-borderColorLight;
	}

	.block-desc
	{
		.m-textColoredLinks();
	}

	&--spaced
	{
		margin-top: @xf-paddingSmall;
	}

	&--small
	{
		font-size: @xf-fontSizeSmall;
	}
}

.block-tabHeader
{
	padding: 0;
	margin: 0;
	font-weight: @xf-fontWeightNormal;
	.xf-blockTabHeader();
	.m-tabsTogether(xf-default(@xf-blockTabHeader--font-size, @xf-fontSizeNormal));

	.tabs-tab
	{
		padding: @xf-blockPaddingV @xf-blockPaddingH;
		border-bottom: @xf-borderSizeFeature solid transparent;

		&:not(.is-readonly):hover
		{
			color: @xf-blockTabHeaderSelected--color;
			background: fade(@xf-blockTabHeaderSelected--color, 10%);
		}

		&.is-readonly:hover
		{
			cursor: default;
		}

		&.tabs-tab--radio.is-readonly:hover
		{
			cursor: not-allowed;
		}
	}

	.tabs-tab.is-active,
	.tabs > input:checked + .tabs-tab--radio
	{
		background: none;
		.xf-blockTabHeaderSelected();
	}

	.tabs > input[type="radio"]
	{
		display: none;
	}

	.tabs-text
	{
		padding: @xf-blockPaddingV @xf-blockPaddingH;
		border-bottom: @xf-borderSizeFeature solid transparent;
	}

	.block-tabHeader-extra
	{
		float: right;
		color: inherit;
		font-size: @xf-blockTabHeader--font-size;
		padding: @xf-blockPaddingV @xf-blockPaddingH;
	}

	.hScroller-action
	{
		.m-hScrollerActionColorVariation(
			xf-default(@xf-blockTabHeader--background-color, transparent),
			xf-default(@xf-blockTabHeader--color, ~""),
			xf-default(@xf-blockTabHeaderSelected--color, ~"")
		);
	}
}

.block-minorTabHeader
{
	padding: 0;
	margin: 0;
	font-weight: @xf-fontWeightNormal;
	.xf-blockMinorTabHeader();
	.m-tabsTogether(xf-default(@xf-blockMinorTabHeader--font-size, @xf-fontSizeNormal));

	.tabs-tab
	{
		padding: @xf-blockPaddingV @xf-blockPaddingH max(0px, (@xf-blockPaddingV - @xf-borderSizeFeature));
		border-bottom: @xf-borderSizeFeature solid transparent;

		&:hover
		{
			color: @xf-blockMinorTabHeaderSelected--color;
		}

		&.is-active
		{
			background: none;
			.xf-blockMinorTabHeaderSelected();
		}
	}

	.tabs-text
	{
		padding: @xf-blockPaddingV @xf-blockPaddingH max(0px, (@xf-blockPaddingV - @xf-borderSizeFeature));
		border-bottom: @xf-borderSizeFeature solid transparent;
	}

	.hScroller-action
	{
		.m-hScrollerActionColorVariation(
			xf-default(@xf-blockMinorTabHeader--background-color, transparent),
			xf-default(@xf-blockMinorTabHeader--color, ~""),
			xf-default(@xf-blockMinorTabHeaderSelected--color, ~"")
		);
	}
}

.block-filterBar
{
	padding: @xf-blockPaddingV @xf-blockPaddingH;
	.xf-blockFilterBar();

	&.block-filterBar--standalone
	{
		padding: @xf-paddingLarge @xf-blockPaddingH;
		border: @xf-borderSize solid @xf-borderColor;
		border-radius: @block-borderRadius-inner;

		@media (max-width: @xf-responsiveEdgeSpacerRemoval)
		{
			border-radius: 0;
			border-left: none;
			border-right: none;
		}
	}

	.filterBar-filterToggle
	{
		background: mix(
			xf-default(@xf-blockFilterBar--color, @xf-linkColor),
			xf-default(@xf-blockFilterBar--background-color, transparent),
			8%
		);
	}

	.filterBar-filterToggle,
	.filterBar-menuTrigger
	{
		&:hover
		{
			text-decoration: none;
			background: mix(
				xf-default(@xf-blockFilterBar--color, @xf-linkColor),
				xf-default(@xf-blockFilterBar--background-color, transparent),
				16%
			);
		}
	}

	.filterBar-menuTrigger
	{
		margin-right: -5px;
	}
}

.block-textHeader
{
	margin: (@xf-blockPaddingV / 2) 0;
	padding: 0;
	font-weight: @xf-fontWeightNormal;
	.xf-blockTextHeader();

	.m-clearFix();
	.m-hiddenLinks();

	&.block-textHeader--scaled
	{
		font-size: inherit;
	}

	.block-textHeader-highlight
	{
		color: @xf-textColor;
	}

	.block-desc
	{
		.m-textColoredLinks();
	}

	&:first-child
	{
		margin-top: 0;
	}
}

.block-formSectionHeader
{
	padding: @xf-blockPaddingV @xf-blockPaddingH;
	margin: 0;
	font-weight: @xf-fontWeightNormal;
	text-decoration: none;
	.xf-formSectionHeader();

	.m-clearFix();
	.m-hiddenLinks();

	.block-desc
	{
		.m-textColoredLinks();
	}

	.block-container > &:first-child,
	.block-body--collapsible &:first-child,
	.block-header + &
	{
		border-top: none;
	}

	.block-formSectionHeader-aligner
	{
		@_blockPaddingShift: (unit(@xf-formLabelWidth) / @xf-blockPaddingH * 100);

		display: inline-block;
		text-align: right;
		min-width: @xf-formLabelWidth;
		min-width: ~"calc((@{xf-formLabelWidth}) - (@{_blockPaddingShift}) - (@{xf-formRowPaddingHInner}) - (@{xf-borderSize}))";
		max-width: 100%;

		@media (max-width: @xf-formResponsive)
		{
			display: inline;
			text-align: left;
			min-width: 0;
			padding-left: 0;
		}
	}

	@media (max-width: @xf-formResponsive)
	{
		padding-left: @xf-formRowPaddingHOuter;
	}

	.block-formSectionHeader-multiChecker
	{
		float: right;
	}

	&--small
	{
		font-size: @xf-fontSizeNormal;
	}
}

.block-desc,
.blocks-desc
{
	display: block;
	font-size: @xf-fontSizeSmaller;
	font-weight: @xf-fontWeightNormal;
}

.block-body
{
	.m-listPlain();

	&.block-body--collapsible
	{
		.has-no-js & { display: block; }

		.m-transitionFadeDown();
	}

	&.block-body--contained
	{
		overflow: auto;
		max-height: 300px;
		max-height: 70vh;
	}

	&.block-body--containedFixed
	{
		overflow-x: auto;
		max-height: 300px;
	}
}

.block-row
{
	margin: 0;
	padding: @xf-blockPaddingV @xf-blockPaddingH;
	.m-clearFix();

	&.block-row--toEdge
	{
		padding-left: 0;
		padding-right: 0;
	}

	&.block-row--alt
	{
		.xf-contentAltBase();
	}

	&.block-row--minor
	{
		font-size: @xf-fontSizeSmall;
	}

	&.block-row--separated
	{
		padding-top: (@xf-blockPaddingV * 2);
		padding-bottom: (@xf-blockPaddingV * 2);

		+ .block-row
		{
			border-top: @xf-borderSize solid @xf-borderColorLight;
		}
	}

	&.block-row--connectAbove
	{
		padding-bottom: (@xf-blockPaddingV * 2);

		.block-body > &:last-child
		{
			padding-bottom: @xf-blockPaddingV;
		}
	}

	&.block-row--highlighted
	{
		.xf-contentHighlightBase();
	}

	&.block-row--clickable:hover
	{
		.xf-contentHighlightBase();
	}

	&.is-mod-selected
	{
		background: @xf-inlineModHighlightColor;
	}

	> pre
	{
		&:first-child { margin-top: 0; }
		&:last-child { margin-bottom: 0; }
	}
}

.block-separator
{
	margin: 0;
	padding: 0;
	border: none;
	border-top: @xf-borderSize solid @xf-borderColorLight;
}

.block-footer
{
	padding: @xf-blockPaddingV @xf-blockPaddingH;
	.xf-blockFooter();
	.m-clearFix();

	&:first-child
	{
		border: none;
	}

	[data-app=admin] &
	{
		.block-footer-counter,
		.block-footer-select
		{
			line-height: 30px;
		}
	}

	&:not(.block-footer--split)
	{
		.block-footer-counter
		{
			float: left;
		}

		.block-footer-controls
		{
			float: right;
		}
	}

	&.block-footer--split
	{
		display: flex;
		align-items: center;

		.block-footer-main,
		.block-footer-counter
		{
			flex-grow: 1;
		}

		.block-footer-select:not(:last-child)
		{
			margin: 0 1em;
		}

		.block-footer-opposite,
		.block-footer-controls
		{
			margin-left: auto;
		}
	}
}

@media (max-width: @xf-responsiveNarrow)
{
	.block-outer
	{
		text-align: center;
	}

	.block-outer-main,
	.block-outer-opposite
	{
		float: none;
		text-align: center;
	}

	.block-outer-main + .block-outer-opposite
	{
		margin-top: @xf-paddingMedium;
	}
}
]]></template>
  <template type="public" title="core_blockend.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[// This contains rules that apply to various block and block-related systems. This file should be included
// after all of the primary definitions to ensure the rules override.

.blockMessage,
.blockStatus,
.block-row
{
	p:first-child
	{
		margin-top: 0;
	}

	p:last-child
	{
		margin-bottom: 0;
	}
}

@media (max-width: @xf-responsiveEdgeSpacerRemoval)
{
	.block-container,
	.blockMessage
	{
		margin-left: (@xf-pageEdgeSpacer * -1);
		margin-right: (@xf-pageEdgeSpacer * -1);
		border-radius: 0;
		border-left: none;
		border-right: none;
	}

	.blockStatus
	{
		margin-left: (@xf-pageEdgeSpacer * -1);
		margin-right: (@xf-pageEdgeSpacer * -1);
		border-radius: 0;
		border-right: none;
	}

	.blockMessage.blockMessage--none
	{
		margin-left: 0;
		margin-right: 0;
	}
}]]></template>
  <template type="public" title="core_blocklink.less" version_id="2010033" version_string="2.1.0 Beta 3"><![CDATA[// ############################ BLOCK LINKS ##################

.blockLink
{
	display: block;
	padding: @xf-blockPaddingV @xf-blockPaddingH;
	.xf-blockLink();

	&.is-selected
	{
		.xf-blockLinkSelected(no-border);
		border-left: @xf-blockLinkSelected--border-width solid @xf-blockLinkSelected--border-color;
		padding-left: (@xf-blockPaddingH - xf-default(@xf-blockLinkSelected--border-width, 0));
	}

	&:hover
	{
		.xf-blockLinkSelected(background);
		text-decoration: inherit;
	}
}

.blockLink-desc
{
	display: block;
	color: @xf-textColorMuted;
	font-size: @xf-fontSizeSmaller;
	font-weight: @xf-fontWeightNormal;
}

.blockLinkSplitToggle
{
	display: flex;
	padding: 0;
	text-decoration: none;
	cursor: pointer;

	&.is-selected
	{
		.xf-blockLinkSelected(no-border);
	}

	&:hover
	{
		.xf-blockLinkSelected(background);
		text-decoration: inherit;
	}
}

.blockLinkSplitToggle-link
{
	display: block;
	padding: @xf-blockPaddingV @xf-blockPaddingH;
	text-decoration: none;
	flex-grow: 1;

	&:hover
	{
		text-decoration: none;
	}

	.blockLinkSplitToggle.is-selected &
	{
		border-left: @xf-blockLinkSelected--border-width solid @xf-blockLinkSelected--border-color;
		padding-left: (@xf-blockPaddingH - xf-default(@xf-blockLinkSelected--border-width, 0));
	}
}

.blockLinkSplitToggle-toggle
{
	display: inline-block;
	padding: @xf-blockPaddingV @xf-blockPaddingH;
	text-decoration: none;
	flex-grow: 0;
	line-height: 1;

	&:hover
	{
		text-decoration: none;
	}

	&:after
	{
		.m-faBase();
		font-size: 80%;
		.m-faContent(@fa-var-chevron-down);
	}

	&.is-active:after
	{
		.m-faContent(@fa-var-chevron-up);
	}
}

.blockLink--iconic
{
	i:after
	{
		.m-faBase();
		display: inline-block;
		min-width: 1em;
		position: absolute;
		left: @xf-blockPaddingH;
		top: 8px;
		display: none !important;
	}

	&--started i:after
	{
		.m-faContent(@fa-var-file-alt);
	}
	&--contributed i:after
	{
		.m-faContent(@fa-var-comments);
	}
	&--watched i:after
	{
		.m-faContent(@fa-var-bookmark);
	}
	&--unanswered i:after
	{
		.m-faContent(@fa-var-question-circle);
	}
}

// ################################ FAUX BLOCK LINKS #######################
// concept from https://codepen.io/BPScott/pen/Erwan and http://codepen.io/IschaGast/pen/Qjxpxo
// z-indexes are bumped to have the link sit on top of positioned elements (without z-index)

.fauxBlockLink
{
	position: relative;

	a,
	.fauxBlockLink-link
	{
		position: relative;
		z-index: 2;
	}

	.fauxBlockLink-blockLink
	{
		position: static;

		&:before
		{
			content: '';
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			bottom: 0;
			z-index: 1;
		}
	}

	&.fauxBlockLink--noHover
	{
		.fauxBlockLink-blockLink:hover
		{
			text-decoration: none;
		}
	}
}]]></template>
  <template type="public" title="core_blockmessage.less" version_id="2030031" version_string="2.3.0 Beta 1"><![CDATA[// ############################ BLOCK MESSAGE ###################

.block-rowMessage
{
	margin: @xf-blockPaddingV 0;
	padding: @xf-blockPaddingV @xf-blockPaddingH;
	.xf-blockBorder();
	border-radius: @xf-blockBorderRadius;

	.m-clearFix();

	&:first-child
	{
		margin-top: 0;
	}

	&:last-child
	{
		margin-bottom: 0;
	}

	&.block-rowMessage--small
	{
		font-size: @xf-fontSizeSmall;
		padding: (@xf-blockPaddingV / 2) (@xf-blockPaddingH / 2);
	}

	&.block-rowMessage--center
	{
		text-align: center;
	}

	&.block-rowMessage--limited
	{
		max-height: 100px;
		max-height: 25vh;
		overflow: auto;
		-webkit-overflow-scrolling: touch;
	}

	.m-blockMessageVariants();
}

.blockMessage
{
	margin-bottom: @xf-elementSpacer;
	padding: @xf-blockPaddingV @xf-blockPaddingH;
	.xf-contentBase();
	.xf-blockBorder();
	border-radius: @xf-blockBorderRadius;

	.m-clearFix();

	//.m-transition(border, margin;); // edgeSpacerRemoval

	&.blockMessage--none
	{
		background: none;
		border: none;
		color: @xf-textColor;
		padding: 0;
	}

	&.blockMessage--close
	{
		margin-top: 5px;
		margin-bottom: 5px;
	}

	&.blockMessage--small
	{
		font-size: @xf-fontSizeSmall;
		padding: @xf-paddingMedium;
	}

	&.blockMessage--center
	{
		text-align: center;
	}

	&.blockMessage--limited
	{
		max-height: 100px;
		max-height: 25vh;
		overflow: auto;
		-webkit-overflow-scrolling: touch;
	}

	.m-blockMessageVariants();
}

.blockMessage--iconic,
.block-rowMessage--iconic
{
	text-align: left;
	position: relative;
	padding-left: 4em;
	min-height: 4em;

	&:before
	{
		.m-faBase();
		font-size: 280%; // 2 x line height
		position: absolute;
		top: 0.2em;
		left: @xf-blockPaddingV;
	}
}

.m-blockMessageVariants()
{
	// note: the double && is correct here -- it enforces output like ".x.x--variant". The extra specificity helps
	// prevent issues from things like media query overrides.

	&&--highlight
	{
		.xf-contentHighlightBase();
	}
	&--highlight&--iconic:before
	{
		.m-faContent(@fa-var-info-circle);
	}

	&&--important
	{
		.xf-contentAccentBase();
		border-left: @xf-borderSizeFeature solid @xf-borderColorAttention;

		a { .xf-contentAccentLink(); }
	}
	&--important&--iconic:before
	{
		.m-faContent(@fa-var-exclamation-circle);
		color: @xf-textColorAttention;
	}

	&&--alt
	{
		.xf-contentAltBase();
	}

	&&--success
	{
		border-left: @xf-borderSizeFeature solid @xf-successFeatureColor;
		background: @xf-successBg;
		color: @xf-successColor;

		.m-textColoredLinks();
	}
	&--success&--iconic:before
	{
		.m-faContent(@fa-var-check-circle);
		color: @xf-successFeatureColor;
	}

	&&--warning
	{
		border-left: @xf-borderSizeFeature solid @xf-warningFeatureColor;
		background: @xf-warningBg;
		color: @xf-warningColor;

		.m-textColoredLinks();
	}
	&--warning&--iconic:before
	{
		.m-faContent(@fa-var-exclamation-triangle);
		color: @xf-warningFeatureColor;
	}

	&&--error
	{
		border-left: @xf-borderSizeFeature solid @xf-errorFeatureColor;
		background: @xf-errorBg;
		color: @xf-errorColor;

		.m-textColoredLinks();
	}
	&--error&--iconic:before
	{
		.m-faContent(@fa-var-times-circle);
		color: @xf-errorFeatureColor;
	}
}]]></template>
  <template type="public" title="core_blockstatus.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[// ################################## BLOCK STATUS MESSAGES ##############################

.blockStatus
{
	.xf-contentAltBase();
	.xf-blockBorder();
	border-left: @xf-borderSizeFeature solid @xf-borderColorAttention;
	border-radius: @xf-blockBorderRadius;
	margin: 0;
	padding: @xf-paddingMedium 0;
	font-size: @xf-fontSizeSmall;
	text-align: left;

	//.m-transition(border, margin;); // edgeSpacerRemoval

	> dt
	{
		display: none;
	}

	&.blockStatus--info
	{
		border-left-color: @xf-borderColorFeature;
	}

	&.blockStatus--simple
	{
		.xf-blockBorder();
	}

	&.blockStatus--standalone
	{
		margin-bottom: (@xf-elementSpacer / 2);
	}
}

.blockStatus-message
{
	display: block;
	padding: 0 @xf-paddingMedium;
	margin: .2em 0 0;

	&:first-of-type
	{
		margin-top: 0;
	}

	&:before
	{
		.m-faBase();
		display: inline-block;
		min-width: .8em;
		color: @xf-textColorAttention;
	}

	&--deleted::before { .m-faContent("@{fa-var-trash}\20"); }
	&--locked::before { .m-faContent("@{fa-var-lock}\20"); }
	&--moderated::before { .m-faContent("@{fa-var-shield}\20"); }
	&--warning:before { .m-faContent("@{fa-var-exclamation-triangle}\20"); }
	&--ignored:before { .m-faContent("@{fa-var-microphone-slash}\20"); }
}]]></template>
  <template type="public" title="core_button.less" version_id="2030033" version_string="2.3.0 Beta 3"><![CDATA[// ############################ BUTTONS #################

.button,
a.button // needed for specificity over a:link
{
	.m-buttonBase();

	a
	{
		color: inherit;
		text-decoration: none;
	}

	.xf-buttonDefault();
	.m-buttonBlockColorVariationSimple(xf-default(@xf-buttonDefault--background-color, transparent));

	&.button--primary
	{
		.xf-buttonPrimary();
		.m-buttonBlockColorVariationSimple(xf-default(@xf-buttonPrimary--background-color, transparent));
	}

	&.button--cta
	{
		.xf-buttonCta();
		.m-buttonBlockColorVariationSimple(xf-default(@xf-buttonCta--background-color, transparent));
	}

	&.button--link
	{
		// block colors
		background: @xf-contentBg;
		color: @xf-linkColor;
		.m-buttonBorderColorVariation(@xf-borderColor);

		&:hover,
		&:active,
		&:focus
		{
			text-decoration: none;
			background: @xf-contentHighlightBg;
		}
	}

	&.button--plain
	{
		background: none;
		color: @xf-linkColor;
		border: none;

		&:hover,
		&:active,
		&:focus
		{
			text-decoration: none;
			background: none;
		}
	}

	&.button--alt
	{
		// block colors
		background-color: @xf-paletteColor1;
		color: @xf-linkColor;
		.m-buttonBorderColorVariation(@xf-paletteColor2);

		&:hover,
		&:active,
		&:focus
		{
			background-color: @xf-paletteColor1;
			color: @xf-linkColor;
		}
	}

	&.button--longText
	{
		.m-overflowEllipsis();
		max-width: 100%;
		display: inline-block;
	}

	&.is-disabled
	{
		.xf-buttonDisabled();
		.m-buttonBorderColorVariation(xf-default(@xf-buttonDisabled--background-color, transparent));

		&:hover,
		&:active,
		&:focus
		{
			background: xf-default(@xf-buttonDisabled--background-color, transparent) !important;
		}
	}

	&.is-hidden
	{
		display: none;
	}

	&.button--scroll
	{
		background: fade(xf-default(@xf-buttonDefault--background-color, transparent), 75%);
		padding: 5px 8px;

		.m-dropShadow();
	}

	&.button--normal
	{
		font-size: @xf-fontSizeNormal;
	}

	&.button--small
	{
		font-size: @xf-fontSizeSmall;
		padding: 3px 6px;
	}

	&.button--smaller
	{
		font-size: @xf-fontSizeSmaller;
		padding: 2px 5px;
	}

	&.button--padded
	{
		padding: 7px 10px;
	}

	&.button--fullWidth
	{
		display: block;
		width: 100%;
	}

	&.button--adminStyleAsset
	{
		&.is-disabled
		{
			visibility: hidden;
		}

		&.is-modify
		{
			.m-buttonIcon(@fa-var-pencil);
		}

		&.is-revert
		{
			.m-buttonIcon(@fa-var-history);
		}
	}

	&.button--wrap
	{
		white-space: normal;
	}

	&.button--icon
	{
		> .button-text:before,
		.button-icon
		{
			.m-faBase();
		}

		> .button-text:before,
		> .fa--xf:before,
		> .fa--xf svg,
		.button-icon
		{
			font-size: 120%;
			vertical-align: .04em;
			display: inline-block;
			margin: -.255em 6px -.255em 0;
		}

		> .fa--xf
		{
			// helps fix a button alignment issue (Chrome only)
			line-height: inherit;
		}

		.button-icon
		{
			height: 1em;
			vertical-align: 0;
		}

		&.button--iconOnly
		{
			> .button-text:before,
			> i.fa--xf:before,
			> i.fa--xf svg,
			.button-icon
			{
				margin-left: 0;
				margin-right: 0;
			}
		}

		&--add          { .m-buttonIconWidth(.88em); }
		&--confirm      { .m-buttonIconWidth(1em); }
		&--write	    { .m-buttonIconWidth(1.13em); }
		&--import  	    { .m-buttonIconWidth(1.13em); }
		&--export  	    { .m-buttonIconWidth( 1.13em); }
		&--download	    { .m-buttonIconWidth(1.13em); }
		&--redirect	    { .m-buttonIconWidth(1em); }
		&--disable      { .m-buttonIconWidth(1em); }
		&--edit         { .m-buttonIconWidth(1.13em); }
		&--save         { .m-buttonIconWidth(.88em); }
		&--reply	    { .m-buttonIconWidth(1.13em); }
		&--quote	    { .m-buttonIconWidth(1.13em); }
		&--purchase	    { .m-buttonIconWidth(1.13em); }
		&--payment	    { .m-buttonIconWidth(1.13em); }
		&--convert	    { .m-buttonIconWidth(.75em); }
		&--search	    { .m-buttonIconWidth(1em); }
		&--sort         { .m-buttonIconWidth(.63em); }
		&--upload	    { .m-buttonIconWidth(1.13em); }
		&--attach	    { .m-buttonIconWidth(1em); }
		&--login {
			.m-buttonIconWidth(.88em);
		}
		&--rate         { .m-buttonIconWidth(1.13em); }
		&--config       { .m-buttonIconWidth(1em); }
		&--refresh      { .m-buttonIconWidth(1em); }
		&--translate    { .m-buttonIconWidth(.97em); }
		&--vote         { .m-buttonIconWidth(1em); }
		&--result       { .m-buttonIconWidth(1em); }
		&--history	    { .m-buttonIconWidth(1em); }
		&--cancel       { .m-buttonIconWidth(1em); }
		&--close        { .m-buttonIconWidth(.69em); }
		&--preview      { .m-buttonIconWidth(1.13em); }
		&--conversation { .m-buttonIconWidth(1.13em); }
		&--bolt         { .m-buttonIconWidth(.75em); }
		&--list         { .m-buttonIconWidth(1em); }
		&--prev			{ .m-buttonIconWidth(.63em); }
		&--next			{ .m-buttonIconWidth(.63em); }
		&--markRead     { .m-buttonIconWidth(.88em); }
		&--user         { .m-buttonIconWidth(.88em); }
		&--userCircle   { .m-buttonIconWidth(.97em); }

		&--notificationsOn  { .m-buttonIconWidth(1.25em); } // actually only .88em, but as we use this as a toggle, make it the same width as bell-slash
		&--notificationsOff { .m-buttonIconWidth(1.25em); }

		&--show			{ .m-buttonIconWidth(1.25em) } // actually only 1.13em, but it's a toggle
		&--hide			{ .m-buttonIconWidth(1.25em) }

		// for inline mod confirmations
		&--merge { .m-buttonIconWidth(.88em); }
		&--move { .m-buttonIconWidth(1.13em); }
		&--copy { .m-buttonIconWidth(.88em); }
		&--approve, &--unapprove { .m-buttonIconWidth(1em); }
		&--delete, &--undelete { .m-buttonIconWidth(.88em); }
		&--stick, &--unstick { .m-buttonIconWidth(.75em); }
		&--lock { .m-buttonIconWidth(.88em); }
		&--unlock { .m-buttonIconWidth(.88em); }

		&--bookmark
		{
			.m-buttonIcon(@fa-var-bookmark);

			&.is-bookmarked
			{
				.m-buttonIcon(@fa-var-solid-bookmark);
				color: @xf-textColorAttention;
			}
		}
	}

	&.button--provider
	{
		> .button-text:before,
		.button-icon
		{
			.m-faBase('Brands');
			font-size: 120%;
			vertical-align: middle;
			display: inline-block;
			margin: -4px 6px -4px 0;
		}

		.button-icon
		{
			height: 1em;
			vertical-align: 0;
		}

		&--facebook
		{
			.m-buttonColorVariation(#3B5998, white);
		}

		&--twitter
		{
			.m-buttonColorVariation(#1DA1F3, white);
		}

		&--google
		{
			.m-buttonColorVariation(white, #444);
			border-color: #e9e9e9;

			> .button-text:before
			{
				display: none;
			}
		}

		&--github
		{
			.m-buttonColorVariation(#666666, white);
		}

		&--linkedin
		{
			.m-buttonColorVariation(#0077b5, white);
		}

		&--microsoft
		{
			.m-buttonColorVariation(#00bcf2, white);
		}

		&--yahoo
		{
			.m-buttonColorVariation(#410093, white);
		}

		&--apple
		{
			.m-buttonColorVariation(black, white);
			.m-buttonIcon(@fa-var-apple, .88em);
		}

		&--passkey
		{
			svg
			{
				font-size: 120%;
				vertical-align: .04em;
				display: inline-block;
				margin: -0.255em 0px -0.255em 0;
			}
		}
	}

	&.button--splitTrigger
	{
		// button-text and button-menu are always children of button--splitTrigger
		// but are defined here for reasons of specificity, as these border colors
		// are overwritten by .m-buttonBorderColorVariation()
		> .button-text { border-right: @xf-borderSize solid transparent; }
		> .button-menu { border-left: @xf-borderSize solid transparent; }

		.m-clearFix();
		padding: 0;
		font-size: 0;
		display: inline-block;

		button.button-text
		{
			background: transparent;
			border: none;
			border-right: @xf-borderSize solid transparent;
			color: inherit;
		}

		> .button-text,
		> .button-menu
		{
			.xf-buttonBase();
			display: inline-block;

			&:hover
			{
				&:after
				{
					opacity: 1;
				}
			}
		}

		> .button-text
		{
			.m-borderRightRadius(0);
		}

		> .button-menu
		{
			.m-borderLeftRadius(0);
			padding-right: xf-default(@xf-buttonBase--padding-right, 0);// * (2/3);
			padding-left: xf-default(@xf-buttonBase--padding-left, 0);// * (2/3);

			&:after
			{
				.m-menuGadget(); // .58em
				opacity: .5;
			}
		}
	}
}

.buttonGroup
{
	display: inline-block;
	vertical-align: top;
	.m-clearFix();

	&.buttonGroup--aligned
	{
		vertical-align: middle;
	}

	> .button
	{
		float: left;

		&:not(:first-child)
		{
			border-left: none;
		}

		&:not(:first-child):not(:last-child)
		{
			border-radius: 0;
		}

		&:first-child:not(:last-child)
		{
			.m-borderRightRadius(0);
		}

		&:last-child:not(:first-child)
		{
			.m-borderLeftRadius(0);
		}
	}

	> .buttonGroup-buttonWrapper
	{
		float: left;

		&:not(:first-child) > .button
		{
			border-left: none;
		}

		&:not(:first-child):not(:last-child) > .button
		{
			border-radius: 0;
		}

		&:first-child:not(:last-child) > .button
		{
			.m-borderRightRadius(0);
		}

		&:last-child:not(:first-child) > .button
		{
			.m-borderLeftRadius(0);
		}
	}
}

.toggleButton
{
	> input
	{
		display: none;
	}

	> span
	{
		.xf-buttonDisabled();
		.m-buttonBorderColorVariation(xf-default(@xf-buttonDisabled--background-color, transparent));
	}

	&.toggleButton--small > span
	{
		font-size: @xf-fontSizeSmaller;
		padding: @xf-paddingSmall;
	}

	> input:checked + span
	{
		.xf-buttonDefault();
		.m-buttonBlockColorVariationSimple(xf-default(@xf-buttonDefault--background-color, transparent));
	}
}

.u-scrollButtons
{
	position: fixed;
	bottom: 30px;
	right: (@xf-pageEdgeSpacer / 2);

	.has-hiddenscroll &
	{
		right: 20px;
	}

	z-index: @zIndex-9;

	.m-transition(opacity; @xf-animationSpeed);
	opacity: 0;
	display: none;

	&.is-transitioning
	{
		display: block;
	}

	&.is-active
	{
		display: block;
		opacity: 1;
	}

	.button
	{
		display: block;

		+ .button
		{
			margin-top: (@xf-pageEdgeSpacer / 2);
		}
	}
}

.u-navButtons
{
	position: fixed;
	bottom: 30px;
	left: (@xf-pageEdgeSpacer) / 2;

	.has-hiddenscroll &
	{
		left: 20px;
	}

	z-index: @zIndex-9;

	.m-transition(opacity; @xf-animationSpeed);
	opacity: 0;
	display: none;

	&.is-transitioning
	{
		display: block;
	}

	&.is-active
	{
		display: block;
		opacity: 1;
	}

	.button
	{
		display: block;

		+ .button
		{
			margin-top: (@xf-pageEdgeSpacer) / 2;
		}
	}
}
]]></template>
  <template type="public" title="core_categorylist.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[// ################################ CATEGORY LIST #######################

@_categoryListTogglerWidth: 1em;
@_categoryListTogglerPaddingH: @xf-paddingMedium;

.categoryList
{
	display: none;
	.m-listPlain();

	&.is-active
	{
		display: block;
	}
}

.categoryList-item
{
	padding: 0;
	text-decoration: none;
	font-size: @xf-fontSizeNormal;

	&.categoryList-item--small
	{
		font-size: @xf-fontSizeSmall;
	}

	.categoryList
	{
		padding-left: @xf-paddingLarge;
	}
}

.categoryList-itemDesc
{
	display: block;
	font-size: @xf-fontSizeSmaller;
	font-weight: @xf-fontWeightNormal;
	color: @xf-textColorMuted;
	margin-top: (@xf-blockPaddingV * -1);

	.m-overflowEllipsis();
}

.categoryList-header
{
	padding: @xf-blockPaddingV 0;
	margin: 0;
	color: @xf-textColorFeature;
	text-decoration: none;
	font-weight: @xf-fontWeightHeavy;

	&.categoryList-header--muted
	{
		color: @xf-textColorMuted;
	}

	.m-clearFix();
	.m-hiddenLinks();
}

.categoryList-itemRow
{
	display: flex;
	min-width: 0;
}

.categoryList-link
{
	display: block;
	flex-grow: 1;
	padding: @xf-blockPaddingV @_categoryListTogglerPaddingH;
	text-decoration: none;

	.m-overflowEllipsis();

	&:hover
	{
		text-decoration: none;
	}

	&.is-selected
	{
		font-weight: @xf-fontWeightHeavy;
	}

	.categoryList-toggler + &,
	.categoryList-togglerSpacer + &
	{
		padding-left: 0;
	}
}

.categoryList-label
{
	margin-left: auto;
	align-self: center;
	padding-right: @_categoryListTogglerPaddingH;
}

.categoryList-toggler
{
	display: inline-block;
	padding: @xf-blockPaddingV @_categoryListTogglerPaddingH;
	text-decoration: none;
	flex-grow: 0;
	line-height: 1;

	&:hover
	{
		text-decoration: none;
	}

	&:after
	{
		.m-faBase();
		font-size: 80%;
		.m-faContent(@fa-var-chevron-down, @_categoryListTogglerWidth);
	}

	&.is-active:after
	{
		.m-faContent(@fa-var-chevron-up, @_categoryListTogglerWidth);
	}
}

.categoryList-togglerSpacer
{
	display: inline-block;
	visibility: hidden;
	padding: @xf-blockPaddingV @_categoryListTogglerPaddingH;

	&:after
	{
		.m-faBase();
		font-size: 80%;
		.m-faContent(@fa-var-chevron-down, @_categoryListTogglerWidth);
	}
}]]></template>
  <template type="public" title="core_collapse.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[// ########################################## COLLAPSE / TOGGLERS ##############################

.toggleTarget
{
	display: none;
	.m-transition(all, -xf-height;);
	overflow: hidden;
	height: 0;
	opacity: 0;

	&.is-transitioning
	{
		display: block;
	}

	&.is-active
	{
		display: block;
		height: auto;
		opacity: 1;
	}
}

.collapseTrigger:not(.button)
{
	cursor: pointer;

	&:before
	{
		.m-faContent(@fa-var-solid-caret-right); //, .63em
		font-size: 80%;
		margin-right: .2em;
	}

	&.is-active:before
	{
		.m-faContent(@fa-var-solid-caret-down); //, .63em
	}

	&.collapseTrigger--block
	{
		display: block;

		&:before
		{
			float: right;
			margin-top: 0.2em;
			margin-right: 0;
			margin-left: 5px;
			font-size: 100%;
			line-height: inherit;
		}
	}
}

.collapseTrigger.button--icon
{
	.m-buttonIcon(@fa-var-angle-right, .63em); // only .5em but it's a toggle

	&.is-active
	{
		.m-buttonIcon(@fa-var-angle-down, .63em);
	}
}]]></template>
  <template type="public" title="core_contentrow.less" version_id="2030035" version_string="2.3.0 Beta 5"><![CDATA[// ########################################### CONTENT ROWS ############################

@_contentRow-faderHeight: 150px;
@_contentRow-faderCoverHeight: (@_contentRow-faderHeight / 2);

.contentRow
{
	display: flex;

	&.contentRow--fixed
	{
		width: 300px;
	}

	&.contentRow--alignMiddle
	{
		align-items: center;
	}

	&.is-deleted
	{
		opacity: .7;

		.contentRow-header,
		.contentRow-title
		{
			text-decoration: line-through;
		}
	}
}

.m-figureFixed(@size)
{
	width: @size;

	img,
	i.fa,
	i.fal,
	i.far,
	i.fas,
	i.fab,
	i.fad,
	.avatar
	{
		max-height: @size;
	}
}

.contentRow-figure
{
	vertical-align: top;
	white-space: nowrap;
	word-wrap: normal;
	text-align: center;

	img,
	i.fa,
	i.fal,
	i.far,
	i.fas,
	i.fab,
	i.fad,
	.avatar
	{
		vertical-align: bottom;
	}

	&.contentRow-figure--fixedBookmarkIcon
	{
		.m-figureFixed(48px);
	}

	&.contentRow-figure--fixedSmall
	{
		.m-figureFixed(60px);
	}

	&.contentRow-figure--fixedMedium
	{
		.m-figureFixed(100px);

		&.contentRow-figure--fixedMedium--fluidWidth
		{
			width: auto;
			max-width: 200px;
		}
	}

	&.contentRow-figure--fixedLarge
	{
		.m-figureFixed(200px);
	}

	&.contentRow-figure--text
	{
		font-size: @xf-fontSizeLargest;
	}
}

.contentRow-figureContainer
{
	position: relative;

	.contentRow-figureSeparated
	{
		position: absolute;
		right: -5px;
		bottom: -5px;

		.m-avatarSize((@avatar-s / 2 + 2px));
	}
}

.contentRow-figureIcon
{
	text-align: center;
	color: @xf-textColorFeature;


	img,
	i.fa,
	i.fal,
	i.far,
	i.fas,
	i.fab,
	i.fad
	{
		width: 64px;
		overflow: hidden;
		white-space: nowrap;
		word-wrap: normal;
		border-radius: @xf-borderRadiusMedium;

		.contentRow-figure--fixedBookmarkIcon &
		{
			width: 48px;
		}
	}
}

.contentRow-main
{
	flex: 1;
	min-width: 0;
	vertical-align: top;
	padding-left: @xf-paddingLarge;

	&:before
	{
		// because of line height, there appears to be extra space at the top of this
		content: '';
		display: block;
		margin-top: -.18em;
	}

	&.contentRow-main--close
	{
		padding-left: @xf-paddingMedium;
	}

	&:first-child
	{
		padding-left: 0;
	}
}

.contentRow-header
{
	margin: 0;
	padding: 0;
	font-weight: @xf-fontWeightHeavy;
	font-size: @xf-fontSizeLarge;
}

.contentRow-title
{
	margin: 0;
	padding: 0;
	font-weight: @xf-fontWeightNormal;
	font-size: @xf-fontSizeLarge;
}

.contentRow-cover
{
	display: block;
	margin: @xf-paddingLarge 0;

	img
	{
		max-height: 65vw;
		object-fit: cover;
		//aspect-ratio: 1/1;
		//object-position: top left;
	}
}

.contentRow-snippet
{
	//font-size: @xf-fontSizeSmall;
	margin: .25em 0;
}

.contentRow-muted
{
	color: @xf-textColorMuted;
}

.contentRow-lesser
{
	font-size: @xf-fontSizeSmall;
}

.contentRow-suffix
{
	padding-left: @xf-paddingMedium;
	white-space: nowrap;
	word-wrap: normal;
}

.contentRow-faderContainer
{
	position: relative;
	overflow: hidden;
}

.contentRow-faderContent
{
	max-height: 150px;
	overflow: hidden;
}

.contentRow-fader
{
	position: absolute;
	top: (@_contentRow-faderHeight + @xf-paddingMedium * 2 - @_contentRow-faderCoverHeight);
	left: 0;
	right: 0;
	height: @_contentRow-faderCoverHeight;

	.m-gradient(fade(@xf-contentBg, 0%), @xf-contentBg, transparent, 0%, 80%);
}

.contentRow-minor
{
	font-size: @xf-fontSizeSmall;
	color: @xf-textColorMuted;

	&.contentRow-minor--hideLinks
	{
		.m-hiddenLinks();
	}

	&.contentRow-minor--smaller
	{
		font-size: @xf-fontSizeSmaller;
	}

	&.contentRow-minor--singleLine
	{
		.m-overflowEllipsis();
	}
}

.contentRow-spaced
{
	margin: .5em 0;

	&:last-child
	{
		margin-bottom: 0;
	}
}

.contentRow-extra
{
	float: right;
	padding-left: @xf-paddingMedium;
	font-size: @xf-fontSizeSmallest;

	&.contentRow-extra--small
	{
		font-size: @xf-fontSizeSmall;
		color: @xf-textColorMuted;
	}

	&.contentRow-extra--normal
	{
		font-size: @xf-fontSizeNormal;
		color: @xf-textColorMuted;
	}

	&.contentRow-extra--large
	{
		font-size: @xf-fontSizeLarge;
		color: @xf-textColorMuted;
	}

	&.contentRow-extra--larger
	{
		font-size: @xf-fontSizeLarger;
		color: @xf-textColorMuted;
	}

	&.contentRow-extra--largest
	{
		font-size: @xf-fontSizeLargest;
		color: @xf-textColorMuted;
	}
}

@media (max-width: @xf-responsiveNarrow)
{
	.contentRow-figure
	{
		&.contentRow-figure--fixedBookmarkIcon
		{
			width: @avatar-xs;
		}

		.avatar--s
		{
			.m-avatarSize(@avatar-xs);
		}
	}

	.contentRow--hideFigureNarrow
	{
		.contentRow-figure
		{
			display: none;
		}

		.contentRow-main
		{
			padding-left: 0;
		}
	}
}]]></template>
  <template type="public" title="core_datalist.less" version_id="2030031" version_string="2.3.0 Beta 1"><![CDATA[// ################################# DATA LISTS ###################

.dataList
{
	max-width: 100%;

	&.dataList--separated
	{
		border-top: @xf-borderSize solid @xf-borderColorLight;
		border-bottom: @xf-borderSize solid @xf-borderColorLight;
	}

	&.dataList--separatedTop
	{
		border-top: @xf-borderSize solid @xf-borderColorLight;
	}

	&.dataList--separatedBottom
	{
		border-bottom: @xf-borderSize solid @xf-borderColorLight;
	}

	&.dataList--contained
	{
		overflow-x: auto;
		max-height: 300px;
		max-height: 85vh;
	}

	&.dataList--containedFixed
	{
		overflow-x: auto;
		max-height: 300px;
	}

	&.dataList--autoSize
	{
		display: table;
		width: auto;
		margin: 0 auto;
	}

	@media (max-width: @xf-responsiveMedium)
	{
		overflow-x: auto;
	}

	--imageBgWidth: 64px;
}

.dataList-table
{
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
}

.dataList-rowGroup
{
	&.is-hidden
	{
		display: none;
	}
}

.m-adjustDataListCellPadding(@paddingV; @paddingH)
{
	padding: @paddingV @paddingH;

	&.dataList-cell--action,
	&.dataList-cell--link
	{
		padding: 0;

		a,
		label,
		.dataList-blockLink
		{
			padding: @paddingV @paddingH;
		}
	}
}

.dataList-row
{
	&:hover:not(.dataList-row--noHover):not(.dataList-row--header):not(.is-spHovered),
	.is-spActive &.is-spChecked
	{
		background: fade(@xf-contentHighlightBg, 50%);
	}

	.is-spActive &.is-spHovered
	{
		background: fade(@xf-contentHighlightBg, 75%);
	}

	.is-spActive &:not(.dataList-row--noHover):not(.dataList-row--header):not(.is-spChecked) *
	{
		color: @xf-textColorMuted;
	}

	&.dataList-row--header
	{
		.dataList-cell
		{
			.xf-dataListHeader();
			.m-adjustDataListCellPadding((@xf-dataListPaddingV / 2), @xf-dataListPaddingH);
			.m-textColoredLinks();
			text-align: left;

			&.dataList-cell--min
			{
				text-align: center;
			}
		}
	}

	&.dataList-row--subSection
	{
		.dataList-cell
		{
			.xf-dataListSection();
			.m-adjustDataListCellPadding((@xf-dataListPaddingV / 2), @xf-dataListPaddingH);

			a { color: inherit; }
		}

		&:hover:not(.dataList-row--noHover) .dataList-cell
		{
			.xf-dataListSection(background);
		}
	}

	&.dataList-row--note
	{
		.dataList-cell
		{
			text-align: center;
		}
	}

	&.dataList-row--deleted
	{
		.dataList-cell
		{
			opacity: .5;
		}
	}

	&.dataList-row--highlighted
	{
		font-weight: @xf-fontWeightHeavy;
	}

	&.dataList-row--custom
	{
		> .dataList-cell:first-child
		{
			border-left: @xf-borderSizeFeature solid red;
		}

		.dataList-cell--link a
		{
			color: red;
		}
	}

	&.dataList-row--parentCustom
	{
		> .dataList-cell:first-child
		{
			border-left: @xf-borderSizeFeature solid orange;
		}

		.dataList-cell--link a
		{
			color: orange;
		}
	}

	&.dataList-row--protected
	{
		> .dataList-cell:first-child
		{
			border-left: @xf-borderSizeFeature solid @xf-borderColorFeature;
		}
	}

	&.is-hidden
	{
		display: none;
	}

	&.dataList-row--disabled
	{
		.dataList-cell--link a
		{
			color: @xf-textColorMuted;
			.m-transition();
		}
	}

	&.dataList-row--invalid
	{
		opacity: 0.5;
		.m-transition(opacity);

		&:hover
		{
			opacity: 1;
		}
	}

	&.dataList-row--opposite,
	&.dataList-row--header.dataList-row--opposite
	{
		.dataList-cell
		{
			text-align: right;

			&:first-of-type
			{
				text-align: left;
			}
		}
	}

	tbody:last-child &:last-child .dataList-cell
	{
		border-bottom: none;
	}
}

.iconicIcon(@setPosition: true)
{
	.m-iconicIcon(@setPosition);
}

.dataList-cell {
	vertical-align: middle;
	padding: @xf-dataListPaddingV @xf-dataListPaddingH;
	border-bottom: @xf-borderSize solid @xf-borderColorFaint;

	&.dataList-cell--main {
		min-width: 180px;
	}

	&.dataList-cell--minWidth {
		min-width: 17vw;
		min-width: ~"min(17vw, 250px)";
	}

	&.dataList-cell--link,
	&.dataList-cell--action {
		padding: 0;
	}

	&.dataList-cell--alt,
	&.dataList-cell--action {
		background: @xf-contentAltBg;
	}

	&.dataList-cell--highlighted {
		background: @xf-contentHighlightBg;
	}

	&.dataList-cell--separated {
		border-left: @xf-borderSize solid @xf-borderColorFaint;
	}

	&.dataList-cell--min,
	&.dataList-cell--action,
	&.dataList-cell--iconic,
	&.dataList-cell-fa
	{
		width: 1%;
		white-space: nowrap;
		word-wrap: normal;
		text-align: center;
	}

	&.dataList-cell--opposite,
	.dataList-row.dataList-row--header &.dataList-cell--opposite // need higher specificity for header rows
	{
		text-align: right;
	}

	&.dataList-cell--number
	{
		text-align: right !important;
	}

	&.dataList-cell--action {
		font-size: @xf-fontSizeSmaller;
	}

	&.dataList-cell--action,
	&.dataList-cell--link {
		cursor: pointer;
		text-decoration: none;

		&.dataList-cell--alt:hover,
		&.dataList-cell--action:hover {
			background: @xf-contentHighlightBg;
		}

		a,
		label,
		.dataList-blockLink {
			padding: @xf-dataListPaddingV @xf-dataListPaddingH;
			display: block;
			height: 100%;
			text-decoration: none;
			cursor: pointer;
		}

		input {
			cursor: pointer;
		}
	}

	&.dataList-cell--action a:not(.iconic) {
		//	padding: @xf-dataListPaddingV @xf-dataListPaddingH * 2;
	}

	&.dataList-cell--iconic,
	&.dataList-cell--fa
	{
		padding: 0;
		font-size: 125%;
		min-width: 2.5em;
		position: relative;
		text-align: center;
	}

	&.dataList-cell--iconic
	{
		> a.iconic > i
		{
			.m-iconicIcon(false);
		}

		> .iconic
		{
			position: absolute;

			// fill the cell
			top: 0;
			left: 0;
			right: 0;
			bottom: 0;

			> i
			{
				&:before,
				&:after
				{
					left: 50%;
					margin-left: -.5em; // half of icon width

					top: 50%;
					margin-top: -.5em; // half of icon height
				}
			}

			> input[type=checkbox] + i
			{
				&:before,
				&:after
				{
					margin-left: -.4375em; // half of .fa-check-square width
				}
			}

			> input[type=radio] + i
			{
				&:before,
				&:after
				{
					margin-left: -.5em; // half of .fa-check-square width
				}
			}

			&.iconic--toggle > input[type=checkbox] + i
			{
				&:before
				{
					.m-faContent(@fa-var-toggle-off, 1.125em);
				}

				&:after
				{
					.m-faContent(@fa-var-toggle-on, 1.125em);
				}

				&:before,
				&:after
				{
					font-size: 120%;
					margin-left: -.5625em; // half of .fa-toggle-on width
				}
			}

			&.iconic--delete > i
			{
				&:before
				{
					.m-faContent(@fa-var-trash-alt, .875em);
				}

				&:before,
				&:after
				{
					margin-left: -.4375em; // half of .fa-trash-alt width
				}
			}
		}
	}

	&.dataList-cell--attachment
	{
		background: center / cover @xf-contentAltBg no-repeat;

		--size: 120px;
		width: var(--size);
		height: var(--size);
		line-height: var(--size);
		text-align: center;

		a { display: block; padding: 0; }

		.tooltip-element { display: none; }
	}

	&.dataList-cell--image
	{
		padding: 0;

		a
		{
			padding: 0;
		}

		img,
		.dataList-imagePlaceholder
		{
			display: block;
			margin: auto;
			font-size: 30px;
		}
	}

	&.dataList-cell--imageSmall
	{
		img,
		.dataList-imagePlaceholder
		{
			height: 41px;
			max-width: 41px;
			line-height: 41px;
		}

		.avatar
		{
			.m-avatarSize(41px);
			border-radius: 2px;
		}
	}

	&.dataList-cell--imageSmallWide
	{
		img,
		.dataList-imagePlaceholder
		{
			height: 41px;
			max-width: 82px;
			line-height: 41px;
		}

		.avatar
		{
			.m-avatarSize(41px);
			border-radius: 0;
		}
	}

	&.dataList-cell--imageMedium
	{
		img,
		.dataList-imagePlaceholder
		{
			height: 54px;
			max-width: 54px;
			line-height: 54px;
		}

		.avatar
		{
			.m-avatarSize(54px);
			border-radius: 0;
		}
	}

	&.dataList-cell--imageMediumWide
	{
		img,
		.dataList-imagePlaceholder
		{
			height: 54px;
			max-width: 108px;
			line-height: 54px;
		}

		.avatar
		{
			.m-avatarSize(54px);
			border-radius: 0;
		}
	}

	&.dataList-cell--imageBg
	{
		--bg: url('data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=');
		width: var(--imageBgWidth);
		background: top left / cover var(--bg);

		.dataList-row--disabled &
		{
			background-image: linear-gradient(black, black), var(--bg);
			background-blend-mode: saturation;
		}
	}

	&.dataList-cell--responsiveMenuTrigger,
	&.dataList-cell--fauxResponsiveMenuTrigger
	{
		display: none;
	}

	&.dataList-cell--breakWord
	{
		word-break: break-word;
	}

	&.dataList-cell--hint,
	.dataList-row--subSection &.dataList-cell--hint
	{
		text-align: right;
		font-size: @xf-fontSizeSmaller;
		color: @xf-textColorMuted;
	}

	// create ten depth classes for the appearance of nested items
	.depthLoop(@i) when (@i <= 10)
	{
		&.dataList-cell--d@{i} { text-indent: ((@i - 1) * 25px); }
		.depthLoop((@i + 1));
	}
	.depthLoop(1);

	.is-match
	{
		text-decoration: underline;
		color: red;
	}

	@media (max-width: @xf-responsiveMedium)
	{
		&.dataList-cell--responsiveMenuItem,
		&.dataList-cell--fauxResponsiveMenuItem
		{
			display: none !important;
		}

		&.dataList-cell--responsiveMenuTrigger,
		&.dataList-cell--fauxResponsiveMenuTrigger
		{
			display: table-cell;
		}
	}
}

.dataList-imagePlaceholder
{
	&:after
	{
		content: '?';
	}
}

.dataList-mainRow,
.dataList-textRow,
.dataList-subRow
{
	width: 0;
	display: block;
	min-width: 100%;
	line-height: 1.4;
	overflow: hidden;
	word-wrap: normal;
	text-overflow: ellipsis;

	&:empty { display: none; }
}

.dataList-mainRow
{
	font-weight: @xf-fontWeightHeavy;

	.dataList-row--subSection &
	{
		font-weight: @xf-fontWeightNormal;
	}
}

.dataList-secondRow
{
	display: block;
	font-size: @xf-fontSizeSmallest;
}

.dataList-hint,
.dataList-subRow
{
	color: @xf-textColorMuted;
	font-size: @xf-fontSizeSmaller;
	font-weight: @xf-fontWeightNormal;
}

.dataList-hint
{
	display: inline;
}

.dataList-row--footer .dataList-cell
{
	// note that this is applied as a cell style which has higher priority than the row styles normally applied
	padding: (@xf-dataListPaddingV / 2) @xf-dataListPaddingH;
	border-bottom: none;
	.xf-dataListFooter();
}

.dataList--responsive
{
	.dataList-table,
	tbody,
	thead,
	tfoot
	{
		display: block;
	}

	.dataList-row
	{
		display: block;

		&.dataList-row--headerResponsive
		{
			display: none;
		}
	}

	.dataList-cell
	{
		display: block;
		width: auto;

		&[data-cell-label]
		{
			display: flex;
			align-items: center;

			> *
			{
				min-width: 0;
				text-align: right;
			}

			&:before
			{
				display: table-cell;

				content: attr(data-cell-label) "{$xf.language.label_separator}";
				padding-right: @xf-dataListPaddingH;
				margin-right: auto;
				word-break: normal;
				white-space: normal;
				text-align: left;
			}

			> .input:first-child:last-child
			{
				display: inline;
			}

			a
			{
				// commonly a URL, but needed to prevent a potential overflow
				min-width: 0;
			}
		}

		&.dataList-cell--iconic
		{
			&:not([data-cell-label]):before
			{
				content: "";
				display: inline-block;
				height: 1em;
			}

			padding: @xf-dataListPaddingV @xf-dataListPaddingH;
		}

		&.dataList-cell--link,
		&.dataList-cell--action
		{
			&[data-cell-label]:before
			{
				padding: @xf-dataListPaddingV @xf-dataListPaddingH;
			}
		}

		&.dataList-cell--iconic,
		&.dataList-cell--fa
		{
			display: table-cell;
			width: 1%;
		}

		&.dataList-cell--iconic[data-cell-label]
		{
			display: flex;
			width: auto;
			font-size: 100%;

			.iconic
			{
				position: relative;
			}
		}
	}

	.dataList-row:not(.dataList-row--header):not(.dataList-row--subSection)
	{
		border-bottom: @xf-borderSize solid @xf-borderColorLight;

		.dataList-cell
		{
			border-bottom: none;
		}
	}

	tbody:last-child .dataList-row:not(.dataList-row--header):not(.dataList-row--subSection):last-child
	{
		border-bottom: none;
	}

	.dataList-mainRow,
	.dataList-textRow,
	.dataList-subRow
	{
		width: auto;
		min-width: 0;
	}
}]]></template>
  <template type="public" title="core_filter.less" version_id="2030070" version_string="2.3.0"><![CDATA[// ##################### FILTERING #####################

.filterBlock
{
	padding: @xf-paddingMedium;
	font-size: @xf-fontSizeSmaller;
	float: right;
	.xf-contentBase();
	.xf-blockBorder();
	border-radius: @xf-blockBorderRadius;
	.m-clearFix();

	.filterBlock-input
	{
		width: 150px;
		font-size: @xf-fontSizeSmaller;

		&.filterBlock-input--small
		{
			width: 100px;
		}
	}

	select.filterBlock-input
	{
		width: auto;
	}
}

.quickFilter
{
	position: relative;

	.input
	{
		width: 180px;
		font-size: @xf-fontSizeSmaller;
	}

	label
	{
		font-size: @xf-fontSizeSmaller;
	}

	input[type=search]
	{
		&::-webkit-search-cancel-button,
		&::-webkit-search-results-button,
		  {
			  display: none;
		  }
	}

	input[type=checkbox]
	{
		.m-checkboxAligner();
	}

	.js-filterClear
	{
		color: @controlColor;

		&:hover
		{
			color: @controlColor--hover;
		}

		&:before
		{
			.m-faBase();
			.m-faContent(@fa-var-times);
		}
	}
}

.filterBar
{
	display: flex;
}

.filterBar-filters
{
	flex: 1 1 auto;

	display: flex;
	flex-wrap: wrap;
	row-gap: @xf-blockPaddingV;
	// column-gap: @xf-blockPaddingV;

	.m-listPlain();
}

.filterBar-filterToggle
{
	display: flex;
	text-decoration: none;
	color: inherit;
	padding: 1px 8px;
	border-radius: @xf-borderRadiusMedium;
	.m-transition();

	column-gap: 2px;
	margin-right: @xf-blockPaddingV;

	i.fa--xf
	{
		align-self: center;
	}

	&:after
	{
		.m-faBase();
		font-size: 80%;
		vertical-align: bottom;
		.m-faContent(" @{fa-var-times}");
		opacity: .5;
		.m-transition(opacity);
		position: relative;
		bottom: -4px;
	}

	&:hover
	{
		text-decoration: none;

		&:after
		{
			opacity: 1;
		}
	}
}

.filterBar-filterToggle-label
{
	opacity: .75;
	margin-right: 2px;
}

.filterBar-filterToggle-value
{
	max-width: 120px;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;

	&:not(:last-of-type):after
	{
		content: "{$xf.language.comma_separator}";
	}
}

.filterBar-menuTrigger
{
	flex: 0 0 auto;
	margin-left: auto;
	white-space: nowrap;
	border-radius: @xf-borderRadiusMedium;
	text-decoration: none;
	padding: 1px  5px;

	&:after
	{
		.m-menuGadget();
	}
}

@media (max-width: @xf-responsiveMedium)
{
	.filterBar-filterToggle-label
	{
		display: none;
	}
}]]></template>
  <template type="public" title="core_fixedmessage.less" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[// ############################ FIXED MESSAGE BAR ################

.fixedMessageBar
{
	.xf-fixedMessage();
	.m-transitionFadeDown();
	.m-clearFix();
}

.fixedMessageBar-inner
{
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.fixedMessageBar-message
{
	order: 1;
}

.fixedMessageBar-close
{
	float: right;
	margin-left: 1em;
	order: 2;
	color: inherit;

	&:before
	{
		.m-faBase();
		.m-faContent(@fa-var-times); //, .69em
	}

	&:hover
	{
		text-decoration: none;
		color: xf-intensify(@xf-fixedMessage--color, 10%);
	}
}]]></template>
  <template type="public" title="core_formrow.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[// ########################################### FORM ROWS #################################

@_form-labelShiftInput: (@xf-paddingMedium + @xf-borderSize); // technically input border-top-width + padding-top
@_form-labelButtonInput: 5px; // technically button border-top-width + padding-top, adjusted for text size differences
@_form-elementSpacer: @xf-paddingMedium;

.m-formRowBlockStyle()
{
	display: block;

	> dt,
	> dd
	{
		width: auto;
		display: block;
		padding: (@xf-formRowPaddingV / 2) @xf-formRowPaddingHOuter @xf-formRowPaddingV;
	}

	> dt
	{
		background: none;
		border: none;
		text-align: left;
		padding-bottom: 0;

		.formRow-hint
		{
			display: inline;
		}
	}

	&.formRow--input,
	&.formRow--button
	{
		> dt
		{
			padding-top: (@xf-formRowPaddingV / 2);
		}
	}

	> dd
	{
		padding-top: (@xf-formRowPaddingV / 2);
	}

	> dd > .inputChoices:first-child
	{
		padding-top: 0;
	}
}

.formRow
{
	display: table;
	table-layout: fixed;
	width: 100%;
	margin: 0;
	position: relative;

	> dt,
	> dd
	{
		display: table-cell;
		vertical-align: top;
		margin: 0;
	}

	> dt
	{
		border-right: @xf-borderSize solid transparent;
		.xf-formLabel();
		width: @xf-formLabelWidth;
		padding: @xf-formRowPaddingV @xf-formRowPaddingHInner @xf-formRowPaddingV @xf-formRowPaddingHOuter;
	}

	> dd
	{
		width: (100% - @xf-formLabelWidth);
		padding: @xf-formRowPaddingV @xf-formRowPaddingHOuter @xf-formRowPaddingV @xf-formRowPaddingHInner;
	}

	&.formRow--input > dt
	{
		padding-top: (@xf-formRowPaddingV + @_form-labelShiftInput);
	}

	&.formRow--button > dt
	{
		padding-top: (@xf-formRowPaddingV + @_form-labelButtonInput);
	}

	&.formRow--inputLabelPair > dt
	{
		padding-top: (@xf-formRowPaddingV * 2);
	}

	&.formRow--valueToEdge > dd
	{
		padding-left: 0;
		padding-right: 0;
	}

	&.formRow--noValuePadding > dd
	{
		padding: 0;
	}

	&.formRow--fullWidth,
	.menu &
	{
		.m-formRowBlockStyle();

		& + .formRow,
		.formRow + &,
		& + * > .formRow:first-of-type, // allows formRows to be wrapped
		.formRow + * > &:first-of-type //  in a single-depth grouping element
		{
			border-top: @xf-borderSize solid @xf-borderColorLight;
		}

		&.formRow--noLabel
		{
			> dt
			{
				display: none;
			}

			> dd
			{
				padding-top: @xf-formRowPaddingV;
			}
		}

		& + .formRow--mergePrev,
		& + * > .formRow:first-of-type.formRow--mergePrev,
		&.formRow--mergeNext + &,
		&.formRow--mergeNext + * > &:first-of-type
		{
			border-top: 0;

			> dt
			{
				padding-top: 0;
			}
		}

		&.formRow--noGutter
		{
			> dt,
			> dd
			{
				padding-left: 0;
				padding-right: 0;
			}
		}

		&.formRow--noPadding
		{
			> dt,
			> dd
			{
				padding: 0;
			}
		}

		&.formRow--noTopPadding
		{
			> dt,
			> dd
			{
				padding-top: 0;
			}
		}

		&.formRow--noBottomPadding
		{
			> dt,
			> dd
			{
				padding-bottom: 0;
			}
		}

		&.formRow--noPadding + &,
		&.formRow--noPadding + * > &:first-of-type
		{
			> dt
			{
				padding-top: @xf-formRowPaddingV;
			}
		}
	}

	&.formRow--limited
	{
		display: none;
	}

	&.formRow--inputMultiLine > dd
	{
		> .input,
		> .inputGroup
		{
			margin-bottom: @_form-elementSpacer;

			&:last-child
			{
				margin-bottom: 0;
			}
		}
	}

	.formRow-label
	{
		.m-appendColon();
	}

	&.formRow--noColon .formRow-label:after
	{
		content: "";
	}

	&.formRow--boldLabel .formRow-label
	{
		font-weight: bold;
	}

	.formRow-error
	{
		padding: @_form-elementSpacer 0;
		color: @xf-warningColor;
		font-weight: bold;

		&:before
		{
			.m-faBase();
			.m-faContent(@fa-var-exclamation-triangle);
		}
	}

	.formRow-explain
	{
		margin: @_form-elementSpacer 0 0;
		.m-formElementExplain();
	}

	&.formRow--explainOffset .formRow-explain
	{
		margin-top: (@_form-elementSpacer * 2);
	}

	.formRow-hint
	{
		display: block;
		font-style: normal;
		.xf-formHint();

		.m-textColoredLinks();

		.formRow-hint-featured
		{
			display: block;
			//font-weight: @xf-fontWeightHeavy;
			color: @xf-textColorFeature;
		}
	}

	+ .formInfoRow
	{
		border-top: @xf-borderSize solid @xf-borderColorLight;
	}

	@media (max-width: @xf-formResponsive)
	{
		.m-formRowBlockStyle();
	}
}

.formButtonGroup
{
	display: flex;
	flex-wrap: wrap;
	margin-top: @xf-paddingLarge;
	margin-bottom: -5px;

	&.formButtonGroup--close
	{
		margin-top: 0;
	}
}

.formButtonGroup-primary
{
	order: 2;
	margin-left: auto;
	margin-bottom: 5px;

	.formButtonGroup--simple &
	{
		order: 1;
		margin-left: 0;
	}
}

.formButtonGroup-extra
{
	order: 1;
	margin-bottom: 5px;

	.formButtonGroup--simple &
	{
		order: 2;
		margin-left: @xf-paddingSmall;
	}
}

.formInfoRow
{
	padding: @xf-formRowPaddingV @xf-formRowPaddingHOuter;

	&.formInfoRow--close
	{
		padding-top: (@xf-formRowPaddingV / 2);
		padding-bottom: (@xf-formRowPaddingV / 2);
	}

	&.formInfoRow--noPadding
	{
		padding: 0;
	}

	&.formInfoRow--confirm
	{
		text-align: center;

		strong
		{
			display: block;
			margin: .5em 0;
			font-size: @xf-fontSizeLarger;

			&:last-child
			{
				margin-bottom: 0;
			}
		}
	}

	+ .formRow
	{
		border-top: @xf-borderSize solid @xf-borderColorLight;
	}

	&.u-hidden:not(.is-active)
	{
		+ .formRow
		{
			border-top: none;
		}
	}

	> .blockMessage
	{
		&:first-child { margin-top: 0; }
		&:last-child { margin-bottom: 0; }
	}
}

.formSubmitRow
{
	position: relative;

	> dt
	{
		display: none;
	}

	> dd
	{
		width: 100%;
		padding: 0;
	}

	&.formSubmitRow--sticky.is-sticky
	{
		.formSubmitRow-main
		{
			position: fixed;
			bottom: 0;
			z-index: @zIndex-2;

		}

		.formSubmitRow-bar
		{
			box-shadow: 0px -5px 15px fade(black, 15%);

			@supports (backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px))
			{
				box-shadow: none;
				.m-backdropFilter(blur(10px));
			}
		}
	}

	&.formSubmitRow--simple,
	&.formSubmitRow--standalone
	{
		> dt
		{
			visibility: hidden;
		}

		.formSubmitRow-controls
		{
			text-align: center;
			padding-left: 0;
			margin-left: 0;
		}
	}

	&.formSubmitRow--standalone
	{
		.formSubmitRow-bar
		{
			border: @xf-borderSize solid @xf-borderColor;
			border-radius: @block-borderRadius-inner;

			@media (max-width: @xf-responsiveEdgeSpacerRemoval)
			{
				border-radius: 0;
				border-left: none;
				border-right: none;
			}
		}

		&.is-sticky
		{
			.formSubmitRow-bar
			{
				border-bottom: 0;
			}
		}
	}

	.block-body--collapsible:not(.is-active) + &:not(.formSubmitRow--simple, .formSubmitRow--standalone)
	{
		> dt
		{
			visibility: hidden;
		}
	}

	.menu &
	{
		dt
		{
			display: none;
		}

		dd
		{
			padding: 0;
		}
	}
}

.formSubmitRow-main
{
	position: relative;
}

.formSubmitRow-bar
{
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;

	.xf-formSubmitRow();
}

.formSubmitRow-controls
{
	position: relative;
	padding-left: @xf-formLabelWidth;
	padding-top: @xf-paddingMedium;
	padding-bottom: @xf-paddingMedium;
	margin-left: @xf-formRowPaddingHInner;
	margin-right: @xf-formRowPaddingHOuter;

	> .button:first-child:last-child
	{
		min-width: 120px;
	}
}

@media (max-width: @xf-formResponsive)
{
	.formSubmitRow-controls
	{
		padding-left: 0;
		text-align: center;
	}
}

.formRowSep
{
	margin: -1px @xf-formRowPaddingHOuter 0;
	border: none;
	border-top: @xf-borderSize solid @xf-borderColor;

	&.formRowSep--noGutter
	{
		margin-left: 0;
		margin-right: 0;
	}

	+ .formRowSep,
	&:last-child
	{
		display: none;
	}

	.block-body > &:first-child
	{
		display: none;
	}
}

.formRow-linkList
{
	padding: 0;
	margin: 0;
	list-style: none;

	position: relative;
	top: -.25em;
	left: -.25em;
	margin-right: 1em;

	> li
	{
		position: relative;

		> a
		{
			display: block;
			padding: .25em;

			&:hover
			{
				text-decoration: none;
				background: @xf-contentHighlightBg;
			}
		}
	}

	.link-delete
	{
		position: absolute;
		right: .25em;
	}

	.link-title
	{
		font-weight: bold;
	}

	.link-hint
	{
		color: @xf-textColorMuted;
		font-size: @xf-fontSizeSmaller;
	}
}]]></template>
  <template type="public" title="core_globalaction.less" version_id="2000033" version_string="2.0.0 Beta 3"><![CDATA[// #################################### GLOBAL ACTION INDICATOR ##########################

.globalAction
{
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: @zIndex-9;
	opacity: 0;
	.m-transition(opacity);
	pointer-events: none;

	&.is-active
	{
		opacity: 1;
	}
}

.globalAction-bar
{
	position: absolute;
	left: 0;
	top: 0;
	width: 33%;
	height: 3px;
	background: @xf-globalActionColor;
	pointer-events: none;

	-ltr-transform: translateX(-33vw);
	-rtl-transform: translateX(33vw);

	.m-animation(1.5s ease-in-out infinite globalActionBar);

	&:before
	{
		content: '';
		position: absolute;
		right: 0;
		height: 100%;
		width: 100px;
		box-shadow: 0 0 10px 2px @xf-globalActionColor;

		-ltr-transform: rotate(2deg) translate(0px, -3px);
		-rtl-transform: rotate(-2deg) translate(0px, -3px);
	}
}

.m-keyframes(globalActionBar, {
	from
	{
		-ltr-transform: translateX(-33vw);
		-rtl-transform: translateX(33vw);
	}
	to
	{
		-ltr-transform: translateX(100vw);
		-rtl-transform: translateX(-100vw);
	}
});

.globalAction-block
{
	position: fixed;
	top: 20px;
	right: 10px;
	pointer-events: none;

	i
	{
		display: inline-block;
		content: ' ';
		font-size: 10px;
		width: 1em;
		height: 2.5em;
		margin-right: .3em;
		background-color: @xf-globalActionColor;
		box-shadow: 1px 1px 2px rgba(0, 0, 0, .5);
		.m-animation(1s ease infinite globalActionPulse);
		opacity: .35;

		&:last-child
		{
			margin-right: 0;
		}

		&:nth-child(2)
		{
			animation-delay: .2s;
		}

		&:nth-child(3)
		{
			animation-delay: .4s;
		}
	}

	@media (max-width: @xf-responsiveNarrow)
	{
		display: none;
	}
}

.m-keyframes(globalActionPulse, {
	from
	{
		.m-transform(scaleY(1.5));
		opacity: 1;
	}
	to
	{
		.m-transform(scaleY(1));
		opacity: .35;
	}
});]]></template>
  <template type="public" title="core_hscroller.less" version_id="2020034" version_string="2.2.0 Beta 4"><![CDATA[// ##################################### HORIZONTAL SCROLLER ###################

.hScroller
{
	overflow-y: hidden;
	position: relative;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
	-webkit-overflow-scrolling: touch;

	&.hScroller--scrollHidden
	{
		.hScroller-action
		{
			opacity: 0;
			.m-transition();
		}

		html:not(.has-touchevents) &:hover .hScroller-action
		{
			opacity: 1;
		}
	}
}

.hScroller-scroll
{
	display: block;
	white-space: nowrap;
	word-wrap: normal;
	overflow-x: hidden;

	&.is-calculated
	{
		overflow-x: scroll;
		padding-bottom: 30px;
		margin-bottom: -30px;
		// pushes the scrollbar out of view
	}
}

.hScroller-action
{
	position: absolute;
	top: 0;
	bottom: 0;
	width: 40px;
	padding: 0 5px;
	display: none;
	cursor: pointer;

	&.is-active
	{
		display: block;
		display: flex;
		align-items: center;
	}

	&:after
	{
		.m-faBase();
		font-size: 120%;
	}

	&.hScroller-action--start
	{
		left: 0;
		justify-content: flex-start;
		text-align: left;

		&:after
		{
			.m-faContent(@fa-var-chevron-left, .63em, ltr);
			.m-faContent(@fa-var-chevron-right, .63em, rtl);
		}
	}

	&.hScroller-action--end
	{
		right: 0;
		justify-content: flex-end;
		text-align: right;

		&:after
		{
			.m-faContent(@fa-var-chevron-right, .63em, ltr);
			.m-faContent(@fa-var-chevron-left, .63em, rtl);
		}
	}
}

.scrollMeasure
{
	position: absolute;
	top: -1000px;
	width: 100px;
	height: 100px;
	overflow: scroll;
	visibility: hidden;
}]]></template>
  <template type="public" title="core_input.less" version_id="2030035" version_string="2.3.0 Beta 5"><![CDATA[// ###################################### INPUTS ##########################

@_input-numberWidth: 150px;
@_input-numberNarrowWidth: 90px;
@_input-dateInputWidth: 200px;
@_input-textColor: xf-default(@xf-input--color, @xf-textColor);
@_input-elementSpacer: @xf-paddingMedium;
@_input-checkBoxSpacer: 1.5em;

.m-inputReadOnly()
{
	color: mix(xf-default(@xf-input--color, @xf-textColor), xf-default(@xf-inputDisabled--color, @xf-textColorMuted));
	background: mix(xf-default(@xf-input--background-color, @xf-contentBg), xf-default(@xf-inputDisabled--background-color, @xf-paletteNeutral1));
}

:root
{
	--input-border-heavy: darken(@xf-borderColor, 4%);
	--input-border-light: lighten(@xf-borderColor, 4%);
}

.input:focus,
.input.is-focused,
.inputGroup:focus-within,
#XF .fr-box.fr-basic.is-focused,
.codeEditor.CodeMirror.CodeMirror-focused,
.input.tagify--focus
{
	--input-border-heavy: darken(@xf-borderColorHighlight, 5%);
	--input-border-light: lighten(@xf-borderColorHighlight, 3%);
}

.input
{
	.xf-input();
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	width: 100%;
	vertical-align: top;
	line-height: @xf-lineHeightDefault;
	text-align: left; // this will be flipped in RTL
	word-wrap: break-word;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	.m-transition();
	.m-placeholder({color: fade(@_input-textColor, 40%); });

	&:focus,
	&.is-focused
	{
		outline: 0;
		.xf-inputFocus();
		.m-placeholder({color: fade(@_input-textColor, 50%); });
	}

	&[readonly],
	&.is-readonly
	{
		.m-inputReadOnly();
	}

	&[disabled]
	{
		.xf-inputDisabled();
	}

	&[type=number],
	&.input--number
	{
		text-align: right;
		max-width: @_input-numberWidth;

		&.input--numberNarrow
		{
			width: @_input-numberNarrowWidth;
		}
	}

	&.input--date,
	&.input--datetime-local,
	&.input--time
	{
		height: 2.4em;
		max-width: @_input-dateInputWidth;
		position: relative;

		&::-webkit-calendar-picker-indicator
		{
			right: @xf-paddingMedium;
			position: absolute;
		}
	}

	&.input--flipped
	{
		text-align: right;
	}

	textarea&
	{
		min-height: 0;
		max-height: 400px;
		max-height: 75vh;
		resize: vertical;

		&.input--fitHeight
		{
			height: auto;
			resize: none;

			&.input--fitHeight--short
			{
				max-height: 200px;
				max-height: 35vh;
			}
		}

		&.input--code
		{
			overflow-x: auto;
			-ltr-rtl-text-align: left; // force blocks of code back to left align
		}

		&.input--maxHeight-300px
		{
			max-height: 300px;
		}

		.has-js &[rows="1"][data-single-line]
		{
			overflow: hidden;
			resize: none;
		}
	}

	// this makes select inputs consistent across all browsers and OSes
	select&,
	&.input--select
	{
		padding-right: 1em !important;
		background-size: 1em !important;
		background-repeat: no-repeat !important;
		-ltr-background-position: 100% !important;
		white-space: nowrap;
		word-wrap: normal;
		-webkit-appearance: none !important;
		-moz-appearance: none !important;
		appearance: none !important;

		.m-selectGadgetColor({{ property_variation(
			'input--color',
			'default',
			property_variation('textColor', 'default')
		) }});

		<xf:if is="$xf.style.hasAlternateStyleTypeVariation()">
			.m-colorScheme({{ $xf.style.getAlternateStyleType() }}, {
				.m-selectGadgetColor({{ property_variation(
					'input--color',
					$xf.style.getAlternateStyleTypeVariation(),
					property_variation('textColor', $xf.style.getAlternateStyleTypeVariation())
				) }});
			});
		</xf:if>

		overflow-x: hidden; // iOS seems to require this to prevent overflow with long options...
		overflow-y: auto; // ...and Firefox seems to require this to prevent the above from breaking vertical scroll...

		&[disabled]
		{
			.m-selectGadgetColor({{ property_variation(
				'inputDisabled--color',
				'default',
				property_variation('textColor', 'default')
			) }});

			<xf:if is="$xf.style.hasAlternateStyleTypeVariation()">
				.m-colorScheme({{ $xf.style.getAlternateStyleType() }}, {
					.m-selectGadgetColor({{ property_variation(
						'inputDisabled--color',
						$xf.style.getAlternateStyleTypeVariation(),
						property_variation('textColor', $xf.style.getAlternateStyleTypeVariation())
					) }});
				});
			</xf:if>
		}

		&[size],
		&[multiple]
		{
			background-image: none !important;
			padding-right: xf-default(@xf-input--padding, 5px) !important;
		}

		&[multiple]
		{
			height: initial;
		}
	}

	&.input--autoSize
	{
		width: auto;
	}

	&.input--inline
	{
		display: inline;
		width: auto;
	}

	&.input--block
	{
		display: block;
	}

	&.input--code
	{
		font-family: @xf-fontFamilyCode;
		direction: ltr;
		//white-space: nowrap;
		word-wrap: normal;
	}

	&.input--title
	{
		font-size: @xf-fontSizeLargest;
	}

	&.input--avatarSizeS
	{
		min-height: @avatar-s;
	}

	&.input--passwordHideShow
	{
		::-ms-reveal,
		::-ms-clear
		{
			display: none !important;
		}
	}

	.m-inputZoomFix();

	.fa--inputOverlay + &
	{
		padding-left: 1.7em;
	}
}

// Overlay a FontAwesome icon over the start of a text box as a hint to its use
// Use the 'fa' attribute in XF template syntax for xf:textbox, xf:numberbox and xf:textarea
.fa--xf.fa--inputOverlay
{
	position: absolute;
	padding: (xf-default(@xf-input--padding, 0) + 2) xf-default(@xf-input--padding, 0) xf-default(@xf-input--padding, 0);
	line-height: @xf-lineHeightDefault;
	color: @xf-input--border-top-color;

	//& + .input
	//{
	//	padding-left: xf-default(@xf-input--padding, 0) * 2 + xf-default(@xf-input--font-size, @xf-fontSizeNormal);
	//}
}

// ############################# NEW ICONIC CONTROLS ######################

@controlColor: xf-default(@xf-buttonPrimary--background-color, @xf-paletteColor4);
@controlColor--hover: xf-intensify(@controlColor, 25%);

.iconicIcon(@setPosition: true)
{
	.m-iconicIcon(@setPosition);
}

.iconic
{
	display: inline-block;
	position: relative;
	max-width: 100%;

	> input
	{
		.m-visuallyHidden();
		position: absolute;
		left: 0;
		width: auto;
		height: auto;

		+ i
		{
			.m-iconicIcon();
		}

		& + i:after
		{
			opacity: 0;
		}

		&:disabled + i:before,
		&[readonly] + i:before
		{
			opacity: .3;
		}

		&:disabled:checked + i:after,
		&[readonly]:checked + i:after
		{
			opacity: .3;
		}

		&:checked
		{
			& + i:before
			{
				opacity: 0;
			}

			& + i:after
			{
				opacity: 1;
			}
		}

		&:focus + i
		{
			&:before,
			&:after
			{
				outline: Highlight solid 2px;
				-moz-outline-radius: 5px;

				@media (-webkit-min-device-pixel-ratio: 0)
				{
					outline: -webkit-focus-ring-color auto 5px;
				}
			}
		}
	}

	// handler for labelled inputs - indent the text away from the control
	.iconic-label:before
	{
		content: '';
		display: inline-block;
		width: (@_input-checkBoxSpacer - 1em); // min-width of input > i
	}

	&.iconic--hideShow
	{
		min-width: 56px;
		cursor: pointer;

		> input[type=checkbox] + i
		{
			&:before
			{
				.m-faContent(@fa-var-eye);
			}

			&:after
			{
				.m-faContent(@fa-var-eye-slash);
			}
		}

		.iconic-label
		{
			font-size: @xf-fontSizeSmall;
			vertical-align: text-top;
		}
	}

	&.iconic--hiddenLabel .iconic-label:before
	{
		display: none;
	}

	> input[type=checkbox] + i
	{
		&:before { .m-faContent(@fa-var-square, .88em); }
		&:after  { .m-faContent(@fa-var-check-square, .88em); }
	}

	> input[type=radio] + i
	{
		&:before { .m-faContent(@fa-var-circle, 1em); }
		&:after  { .m-faContent(@fa-var-check-circle, 1em); }
	}

	&.iconic--toggle > input[type=checkbox] + i
	{
		&:before { .m-faContent(@fa-var-toggle-off, 1em); }
		&:after  { .m-faContent(@fa-var-toggle-on, 1em); }
	}
}

// Fix position for inputChoices to allow nested indenting


.inputChoices > .inputChoices-choice
{
	position: relative;

	.iconic
	{
		position: static;

		> input + i
		{
			position: absolute;
			left: 0;
		}

		&.iconic--noLabel
		{
			display: inline;
		}
	}

	// undo the normal indenting of text from checkbox
	.iconic-label:before {
		display: none;
	}
}

// Basic control colours for common scenarios

.formRow,
.inputGroup,
.inputChoices,
.block-footer,
.dataList-cell,
.message-cell--extra
{
	.iconic,
	&.dataList-cell--fa > a
	{
		> i, svg
		{
			color: @controlColor;
			fill: currentColor;
		}

		&:hover > i,
		&:hover svg
		{
			color: @controlColor--hover;
			fill: currentColor;
		}
	}
}

// ############################# END ICONIC CONTROLS ######################

.u-inputSpacer
{
	margin-top: @_input-elementSpacer;
}

.inputGroup
{
	display: flex;
	align-items: stretch;
	max-width: 100%;

	.inputGroup-text
	{
		flex-grow: 0;
		display: flex;
		align-items: center;

		white-space: nowrap;
		vertical-align: middle;
		padding: 0 @xf-paddingMedium;

		&:first-child { padding-left: 0; }
		&:last-child { padding-right: 0; }
	}

	.inputGroup-splitter
	{
		display: inline-block;
		width: @_form-elementSpacer;
		flex-shrink: 0;
	}

	.input
	{
		flex-shrink: 1;
		min-width: 0; // firefox bug - https://bugzilla.mozilla.org/show_bug.cgi?id=1021913
	}

	.button
	{
		flex-shrink: 0;
	}

	&:not(.inputGroup--joined)
	{
		.input,
		.button
		{
			+ .input,
			+ .button
			{
				margin-left: @_form-elementSpacer;
			}
		}
	}

	.inputGroup-label
	{
		flex-shrink: 1;
		width: 100%;
		padding: 0 0 @xf-paddingMedium;

		.m-appendColon();
	}

	@media (max-width: @xf-formResponsive)
	{
		.input:not(.input--autoSize):not(.input--numberNarrow)
		{
			width: 100%;
		}
	}

	&.inputGroup--inline
	{
		display: inline-flex;
	}

	&.inputGroup--auto
	{
		.input
		{
			width: auto;
		}
	}

	&.inputGroup--grow
	{
		> .inputGroup,
		> .inputChoices
		{
			flex: 1;
		}
	}

	&.inputGroup--joined
	{
		.input
		{
			border-radius: 0;

			&:first-child
			{
				border-top-left-radius: @xf-borderRadiusMedium;
				border-bottom-left-radius: @xf-borderRadiusMedium;
				border-right: none;
			}

			&:last-child
			{
				border-top-right-radius: @xf-borderRadiusMedium;
				border-bottom-right-radius: @xf-borderRadiusMedium;
				border-left: none;
			}
		}

		.inputGroup-text
		{
			.xf-input(border);
			.xf-input(background);
			text-align: center;
			padding: @xf-paddingSmall @xf-paddingMedium;

			&.inputGroup-text--disabled,
			&.is-disabled,
			&[disabled]
			{
				.xf-inputDisabled();

				a { text-decoration: none; }
			}

			&:first-child
			{
				border-right: 0;
				border-top-left-radius: @xf-borderRadiusMedium;
				border-bottom-left-radius: @xf-borderRadiusMedium;
			}

			&:last-child
			{
				border-left: 0;
				border-top-right-radius: @xf-borderRadiusMedium;
				border-bottom-right-radius: @xf-borderRadiusMedium;
			}
		}

		.input + .inputGroup-text,
		.input + .input,
		.inputGroup-text + .input
		{
			border-left: @xf-borderSize solid var(--input-border-light);
		}

		.inputGroup-text + .inputGroup-text,
		.inputGroup-text + select.input
		{
			border-left: 0;
		}
	}
}

.inputGroup-container > .inputGroup
{
	margin-top: @xf-paddingMedium;

	&:first-child
	{
		margin-top: 0;
	}
}

.inputNumber
{
	.input--number
	{
		-moz-appearance: textfield !important;

		&::-webkit-inner-spin-button,
		&::-webkit-outer-spin-button
		{
			margin: 0 !important;
			-webkit-appearance: none !important;
		}

		@media (max-width: @xf-formResponsive)
		{
			min-width: auto;
			max-width: 120px;
		}
	}
}

.inputNumber-button
{
	position: relative;

	.m-faBase();
	color: @controlColor;
	font-size: 1.0em;
	font-style: normal !important;
	line-height: .75em;
	vertical-align: -15%;

	width: 45px;
	justify-content: center;
	text-align: center;

	cursor: pointer;

	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;

	&.inputNumber-button--smaller
	{
		vertical-align: 0;
		width: 35px;
	}

	&--up::before
	{
		.m-faContent(@fa-var-plus, .88em);
	}

	&--down::before
	{
		.m-faContent(@fa-var-minus, .88em);
	}

	.inputGroup.inputGroup--joined &
	{
		&:hover,
		&:active,
		&:focus
		{
			background-color: @xf-contentHighlightBg;
			color: @controlColor--hover;
		}
	}

	.input.input--number[readonly] ~ &
	{
		.m-inputReadOnly();
	}

	.input.input--number[disabled] ~ &
	{
		cursor: default;
		.xf-inputDisabled();
	}
}

.inputDate
{
	.inputDate-icon
	{
		position: relative;

		.m-faBase();
		color: @xf-linkColor;
		font-size: 1.0em;
		font-style: normal !important;
		line-height: .75em;
		vertical-align: -15%;

		cursor: pointer;

		width: 45px;
		justify-content: center;
		text-align: center;

		-webkit-touch-callout: none;
		-webkit-user-select: none;
		-moz-user-select: none;
		-ms-user-select: none;
		user-select: none;

		@media (max-width: @xf-formResponsive)
		{
			vertical-align: 0;
			width: 25px;
		}

		&::before
		{
			.m-faContent(@fa-var-calendar, .88em);
		};
	}
}

.inputUploadButton
{
	position: relative;

	.m-faBase();
	color: @controlColor;
	font-size: 1.0em;
	font-style: normal !important;
	line-height: .75em;
	vertical-align: -15%;

	width: 45px;
	justify-content: center;
	text-align: center;

	cursor: pointer;

	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;

	.inputGroup.inputGroup--joined &
	{
		&:hover,
		&:active,
		&:focus
		{
			background-color: saturate(xf-intensify(@xf-paletteColor1, 4%), 12%);
			color: @controlColor--hover;
		}
	}

	&:before
	{
		.m-faContent(@fa-var-upload, 1.25em);
	}

	input[type="file"]
	{
		visibility: hidden;
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		left: -1000px;
		z-index: -1;
		opacity: 0;
	}
}

.inputList
{
	.m-listPlain();

	> li
	{
		margin-top: @xf-paddingMedium;

		&:first-child
		{
			margin-top: 0;
		}
	}
}

.inputPair
{
	.m-clearFix();

	> .input,
	.inputPair-input
	{
		float: right;
		width: 49%; // fallback
		width: ~"calc(50% - 2px)";

		&:first-child
		{
			float: left;
		}
	}
}

.inputPair-container > .inputPair
{
	margin-top: @xf-paddingMedium;

	&:first-child
	{
		margin-top: 0;
	}
}

.inputLabelPair
{
	.m-clearFix();
	margin: @xf-paddingMedium 0;
	padding: 0;

	> dt,
	> dd
	{
		float: left;
		margin: 0;
		padding: 0;
	}

	> dt
	{
		width: 65%;
		padding-right: @xf-paddingMedium;
		padding-top: .6em;

		> label
		{
			.m-appendColon();
		}
	}

	> dd
	{
		width: 35%;
		text-align: right;

		.input
		{
			width: 100%;
			max-width: none;
		}
	}

	@media (max-width: @xf-responsiveNarrow)
	{
		> dt,
		> dd
		{
			width: 50%;
		}
	}
}

.inputChoices
{
	list-style: none;
	padding: 0;
	margin: 0;

	> .inputChoices-choice
	{
		margin-bottom: @_input-elementSpacer;
		padding-left: @_input-checkBoxSpacer;

		&:last-child
		{
			margin-bottom: 0;
		}

		> .inputChoices,
		.inputChoices-spacer
		{
			margin-top: @_input-elementSpacer;
		}
	}

	&.inputChoices--expanded > .inputChoices-choice
	{
		margin-bottom: (@_input-elementSpacer * 2);

		&:last-child
		{
			margin-bottom: 0;
		}
	}

	&.inputChoices--noChoice > .inputChoices-choice,
	.inputChoices-plainChoice
	{
		padding-left: 0;
	}

	&.inputChoices--inline > .inputChoices-choice
	{
		display: inline-block;
		margin-right: @_input-elementSpacer;
		margin-bottom: 0;

		&:last-child
		{
			margin-right: 0;
		}
	}

	.inputChoices-label
	{
		padding-left: 0;
		font-size: @xf-fontSizeSmall;
		color: @xf-textColorMuted;
	}

	+ .inputChoices:not(.inputChoices--inline)
	{
		margin-top: @_input-elementSpacer;
	}
}

.inputChoices-group + .inputChoices-group,
.inputChoices-choice + .inputChoices-group
{
	margin-top: (@xf-paddingMedium * 2);
}

.inputChoices-spacer + .inputChoices
{
	margin-top: @_input-elementSpacer;
}

.inputChoices-heading
{
	color: @xf-textColorMuted;
	padding-bottom: (@xf-paddingMedium / 2);
	border-bottom: @xf-borderSize solid @xf-borderColorFaint;
	margin-bottom: @xf-paddingMedium;
	position: relative;

	&.inputChoices-heading--checkAll {
		.iconic {
			position: static;

			& > input + i {
				position: absolute;
				right: 0;
				left: auto;
				width: auto;
			}
		}
	}
}

.inputChoices-explain
{
	.m-formElementExplain();

	&.inputChoices-explain--after
	{
		margin-top: @_input-elementSpacer;
	}
}

.inputChoices-dependencies
{
	list-style: none;
	padding: 0;
	margin: 0;

	> li
	{
		margin-top: @_input-elementSpacer;

		> label
		{
			display: block;
			padding: @xf-paddingSmall 0;

			&.iconic--labelled > input + i
			{
				margin-left: 0;
			}
		}
	}
}

.inputValidationError
{
	margin-top: @xf-paddingMedium;
	padding: @xf-blockPaddingV @xf-blockPaddingH;
	.xf-blockBorder();
	border-radius: @xf-blockBorderRadius;
	border-left: @xf-borderSizeFeature solid @xf-errorFeatureColor;
	background: @xf-errorBg;
	color: @xf-errorColor;

	.m-textColoredLinks();

	.m-hiddenEl(true);

	&:empty
	{
		display: none;
	}

	> ul,
	> ol
	{
		margin-top: 0;
		margin-bottom: 0;
	}
}


@media (max-width: @xf-responsiveNarrow)
{
	.input.input--title
	{
		font-size: @xf-fontSizeLarge;
	}
}]]></template>
  <template type="public" title="core_labels.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[.label
{

	display: inline-block;
	padding: 1px .35em;
	border: 1px solid transparent;
	border-radius: @xf-borderRadiusMedium;
	font-size: 80%;
	line-height: (@xf-lineHeightDefault * .9);
	text-decoration: none;

	&:hover,
	a:hover &
	{
		text-decoration: none;
	}

	&.label--fullSize
	{
		font-size: 100%;
	}

	&.label--small
	{
		font-size: @xf-fontSizeSmall;
	}

	&.label--smallest
	{
		font-size: @xf-fontSizeSmallest;
	}

	// Label variations

	&.label--hidden
	{
		// this has to essentially undo all the adjustments made by .label
		padding: inherit;
		border: none;
		font-size: inherit;
		line-height: inherit;
		text-decoration: inherit;

		&:hover
		{
			text-decoration: underline;
		}
	}

	&.label--subtle
	{
		.m-labelVariation(@xf-textColorMuted, @xf-contentAltBg);
	}

	&.label--primary
	{
		.m-labelVariation(@xf-linkColor, @xf-contentHighlightBg, @xf-borderColorHighlight);
	}

	&.label--accent
	{
		.m-labelVariation(@xf-textColorAccentContent, @xf-contentAccentBg, @xf-borderColorAccentContent);
	}

	&.label--red { .m-labelVariation(white, #e20000); }
	&.label--green { .m-labelVariation(white, green); }
	&.label--olive { .m-labelVariation(white, olive); }
	&.label--lightGreen { .m-labelVariation(black, #ccf9c8, #bee8ba); }
	&.label--blue { .m-labelVariation(white, #0008e3); }
	&.label--royalBlue { .m-labelVariation(white, royalblue); }
	&.label--skyBlue { .m-labelVariation(white, #7cc3e0); }
	&.label--gray { .m-labelVariation(white, gray); }
	&.label--silver { .m-labelVariation(black, silver); }
	&.label--yellow { .m-labelVariation(black, #ffff91, #e6e687); }
	&.label--orange { .m-labelVariation(black, #ffcb00); }

	&.label--error { .m-labelVariation(#c84448, #fde9e9, #c84448); }
}

.label-append
{
	display: inline-block;
}

.labelLink,
.labelLink:hover
{
	text-decoration: none;
}]]></template>
  <template type="public" title="core_list.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[// ##################################### LISTS ##################

.pairs
{
	padding: 0;
	margin: 0;
	overflow: hidden;

	&.pairs--plainLabel
	{
		> dt
		{
			color: inherit;
		}
	}

	&.pairs--spaced + .pairs
	{
		margin-top: @xf-paddingMedium;
	}

	&.pairs--noColon
	{
		> dt
		{
			&:after
			{
				content: "";
			}
		}
	}

	&.pairs--rightLabel
	{
		> dt
		{
			text-align: right;
		}
	}

	> dt
	{
		padding: 0;
		margin: 0;
		color: @xf-textColorMuted;

		.m-appendColon();
	}

	> dd
	{
		padding: 0;
		margin: 0;
	}

	&.pairs--inline
	{
		display: inline;

		> dt,
		> dd
		{
			display: inline;
		}
	}

	&.pairs--columns
	{
		display: table;
		table-layout: fixed;
		width: 100%;

		> dt,
		> dd
		{
			display: table-cell;
		}

		> dt
		{
			width: 50%;
			padding-right: @xf-paddingMedium;
		}

		&.pairs--fixedSmall > dt
		{
			width: 200px;
		}
		&.pairs--fluidSmall > dt
		{
			width: 25%;
		}
		&.pairs--fluidHuge > dt
		{
			width: 70%;
		}

		@media (max-width: 500px)
		{
			display: block;

			> dt,
			> dd
			{
				display: block;
			}

			&.pairs > dt // the .pairs repetition is to increase specificity to override all fixed/fluid options
			{
				width: auto;
				padding-right: 0;
			}

			& + .pairs
			{
				margin-top: @xf-paddingMedium;
			}
		}
	}

	&.pairs--justified
	{
		.m-clearFix();

		> dt
		{
			float: left;
			max-width: 100%;
			margin-right: @xf-paddingMedium;
		}

		> dd
		{
			float: right;
			text-align: right;
			max-width: 100%;
		}
	}

	&.pairs--rows
	{
		display: inline-table;
		margin-right: @xf-paddingMedium;

		&.pairs--rows--centered
		{
			> dt,
			> dd
			{
				text-align: center;
			}
		}

		&:last-of-type
		{
			margin-right: 0;
		}

		> dt
		{
			display: table-row;
			font-size: 80%;

			&:after
			{
				content: '';
				display: none;
			}
		}

		> dd
		{
			display: table-row;
		}
	}
}

.pairWrapper
{
	&.pairWrapper--spaced
	{
		.pairs
		{
			margin-top: @xf-paddingMedium;

			&:first-child
			{
				margin-top: 0;
			}
		}
	}
}

.pairJustifier
{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;

	margin-right: -5px;
	margin-bottom: -5px;

	.pairs.pairs--rows
	{
		margin-right: 5px;
		margin-bottom: 5px;
	}
}

.listPlain
{
	.m-listPlain();
}

.listInline
{
	.m-listPlain();

	&.listInline--selfInline,
	&.listInline--customField
	{
		display: inline;
	}

	> li
	{
		display: inline;
		margin: 0;
		padding: 0;
	}

	&.listInline--block > li
	{
		display: inline-block;
	}

	&.listInline--comma,
	&.listInline--customField
	{
		> li:nth-last-child(n+2)::after
		{
			content: "{$xf.language.comma_separator}";
		}
	}

	&.listInline--bullet > li + li::before
	{
		content: "\00B7\20";
	}

	&.listInline--plus > li + li::before
	{
		content: "\002B\20";
	}
}

.listHeap
{
	.m-listPlain();
	margin-top: -4px;

	> li
	{
		margin: 0;
		padding: 0;
		display: inline-block;
		margin-right: -1px;
		margin-top: 4px;

		&:last-child
		{
			margin-right: 0;
		}
	}
}

.listColumns
{
	.m-columns(2, @xf-responsiveNarrow);

	> li
	{
		.m-columnBreakAvoid();
		position: relative; // workaround Chrome quirk with hover triggers in visitor menu
	}

	&.listColumns--spaced
	{
		> li
		{
			margin-bottom: .5em;
		}
	}

	&.listColumns--narrow
	{
		.m-columns(2);
	}

	&.listColumns--together
	{
		-moz-column-gap: 0;
		-webkit-column-gap: 0;
		column-gap: 0;
	}

	&.listColumns--collapsed
	{
		display: inline-block;
	}

	&.listColumns--3
	{
		.m-columns(3);

		@media (max-width: @xf-responsiveWide)
		{
			.m-columns(2, @xf-responsiveNarrow);
		}
	}

	&.listColumns--4
	{
		.m-columns(4);

		@media (max-width: @xf-responsiveWide)
		{
			.m-columns(2, @xf-responsiveNarrow);
		}
	}
}

.textHighlight
{
	font-style: normal;
	font-weight: @xf-fontWeightHeavy;

	&.textHighlight--attention
	{
		color: @xf-textColorAttention;
	}
}]]></template>
  <template type="public" title="core_menu.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[// ###################################### MENUS ######################

@_menu-arrowSize: 8px;
@_menu-edgePadding: @xf-pageEdgeSpacer;
@_menu-paddingV: @xf-paddingMedium;
@_menu-closePaddingH: @xf-paddingLarge;
@_menu-paddingH: @xf-paddingLargest;

.menuTrigger
{
	cursor: pointer;

	&:after
	{
		.m-menuGadget();
	}
}

.menuOutsideClicker
{
	position: fixed;
	display: none;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 2; // above non set stuff but below anything intentionally set

	&.is-active
	{
		display: block;
		-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
	}
}

.menu
{
	.m-transitionFade();

	position: absolute;
	z-index: @zIndex-2;
	margin: @_menu-arrowSize 0 0;
	min-width: 240px;
	max-width: 320px;
	border-radius: @xf-menuBorderRadius;

	.m-dropShadow(0, 5px, 10px, 0, .35);

	&.menu--structural
	{
		margin-top: 0;

		// when menus nudge up against structure, the joined corner should not be radiused
		&.menu--left
		{
			border-top-left-radius: 0;
		}
		&.menu--right
		{
			border-top-right-radius: 0;
		}
	}

	&.menu--superWide
	{
		width: 75%;
		max-width: calc(~'100% - @{xf-pageEdgeSpacer}');
	}

	&.menu--veryWide
	{
		width: 500px;
		max-width: calc(~'100% - @{xf-pageEdgeSpacer}');
	}

	&.menu--wide
	{
		width: 350px;
		max-width: calc(~'100% - @{xf-pageEdgeSpacer}');
	}

	&.menu--medium
	{
		width: 300px;
		max-width: calc(~'100% - @{xf-pageEdgeSpacer}');
	}

	&.menu--potentialFixed
	{
		z-index: @zIndex-4;
	}
}

.menu-arrow
{
	position: absolute;
	width: 0;
	height: 0;
	border: 0 solid transparent;

	top: -@_menu-arrowSize;
	-ltr-rtl-left: 50%;
	-ltr-rtl-margin-left: -@_menu-arrowSize;
	.m-triangleUp(@xf-menuFeatureBorderColor, @_menu-arrowSize);

	.menu--structural &
	{
		top: -@_menu-arrowSize;
	}

	.menu--up &
	{
		display: none;
	}
}

.menu-content
{
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: left;
	.xf-menu();
	border-radius: @xf-menuBorderRadius;
	border-top: @xf-borderSizeFeature solid @xf-menuFeatureBorderColor;

	// when menus nudge up against structure, the joined corner should not be radiused
	.menu--structural.menu--left &
	{
		border-top-left-radius: 0;
	}
	.menu--structural.menu--right &
	{
		border-top-right-radius: 0;
	}

	// potentially fixed menus
	.menu--potentialFixed &
	{
		overflow: auto;
		max-height: 450px;
		max-height: 80vh;
	}

	> :last-child
	{
		border-bottom-left-radius: @xf-menuBorderRadius;
		border-bottom-right-radius: @xf-menuBorderRadius;
	}
}

.menu--pageJump
{
	width: auto;
	min-width: 0;
}

.menu-header
{
	padding: @xf-blockPaddingV @_menu-paddingH;
	margin: 0;
	font-weight: @xf-fontWeightNormal;
	text-decoration: none;
	.xf-menuHeader();

	.m-clearFix();
	.m-hiddenLinks();

	&.menu-header--small
	{
		font-size: @xf-fontSizeNormal;
	}

	&.menu-header--sticky
	{
		position: sticky;
		top: 0;
	}

	.menu-desc
	{
		color: fade(@xf-menuHeader--color, 70);
		.m-textColoredLinks();
	}
}

.menu-desc
{
	display: block;
	font-size: @xf-fontSizeSmaller;
	font-weight: @xf-fontWeightNormal;
}

.menu-tabHeader
{
	padding: 0;
	margin: 0;
	font-weight: @xf-fontWeightNormal;
	text-decoration: none;
	.xf-menuTabHeader();
	.m-tabsTogether(xf-default(@xf-menuTabHeader--font-size, @xf-fontSizeNormal));

	.tabs-tab
	{
		padding: @xf-blockPaddingV @_menu-paddingH max(0px, (@xf-blockPaddingV - @xf-borderSizeFeature));
		border-bottom: @xf-borderSizeFeature solid transparent;

		&:hover
		{
			color: @xf-blockMinorTabHeaderSelected--color;
		}

		&.is-active
		{
			.xf-menuTabHeaderSelected();
		}
	}

	.tabs-text
	{
		padding: @xf-blockPaddingV @_menu-paddingH max(0px, (@xf-blockPaddingV - @xf-borderSizeFeature));
		border-bottom: @xf-borderSizeFeature solid transparent;
	}

	.hScroller-action
	{
		.m-hScrollerActionColorVariation(
			xf-default(@xf-menuTabHeader--background-color, transparent),
			xf-default(@xf-menuTabHeader--color, ~""),
			xf-default(@xf-blockMinorTabHeaderSelected--color, ~"")
		);
	}
}

.menu-scroller
{
	overflow: auto;
	max-height: 300px;
	max-height: 60vh;
	-webkit-overflow-scrolling: touch;

	.menu-row + &
	{
		border-top: @xf-borderSize solid @xf-borderColorLight;
	}
}

.menu-row
{
	margin: 0;
	padding: @_menu-paddingV @_menu-paddingH;
	.m-clearFix();

	&.menu-row--alt
	{
		.xf-contentAltBase();
	}

	&.menu-row--highlighted
	{
		.xf-contentHighlightBase();
	}

	&.menu-row--close
	{
		padding-left: @_menu-closePaddingH;
		padding-right: @_menu-closePaddingH;
	}

	&.menu-row--separated
	{
		+ .menu-row
		{
			border-top: @xf-borderSize solid @xf-borderColorLight;
		}
	}

	&.menu-row--clickable:hover
	{
		background: @xf-contentHighlightBg;
	}

	&:empty
	{
		padding: 0;
	}
}

.menu-linkRow
{
	display: block;
	padding: @_menu-paddingV @_menu-paddingH @_menu-paddingV (@_menu-paddingH - @xf-borderSizeFeature);
	border-left: @xf-borderSizeFeature solid transparent;
	.xf-menuLinkRow();

	&.menu-linkRow--alt
	{
		.xf-contentAltBase();
	}

	&.is-selected,
	&:hover,
	&:focus
	{
		.xf-menuLinkRowSelected();

		border-left-color: fade(@xf-borderColorFeature, 50%);

		&:focus
		{
			outline: 0;
		}

		&.is-selected
		{
			border-left-color: @xf-borderColorFeature;
		}
	}

	&.is-hidden
	{
		display: none;
	}

	i.fa--xf
	{
		font-size: @xf-fontSizeSmall;
		display: inline-block;
		width: 23px; // about 1.75em at this font size

		& ~ .menu-linkRow-hint
		{
			padding-left: 23px;
		}
	}

	&:hover i.fa--xf:after
	{
		color: @xf-linkHoverColor;
	}
}

.menu-linkRow-hint
{
	font-style: inherit;
	font-size: @xf-fontSizeSmallest;
	color: @xf-textColorMuted;
	display: block;
}

.menu-separator
{
	margin: 0 (@_menu-paddingH / 2);
	padding: 0;
	border: none;
	border-top: @xf-borderSize solid @xf-borderColorLight;

	&.menu-separator--hard
	{
		margin: 0;
	}

	& + .menu-separator,
	&:last-child
	{
		display: none;
	}
}

.menu-footer
{
	padding: @xf-blockPaddingV @_menu-paddingH;
	.xf-menuFooter();
	.m-clearFix();

	&.menu-footer--close
	{
		padding-left: @_menu-closePaddingH;
		padding-right: @_menu-closePaddingH;
	}

	&:not(.menu-footer--split)
	{
		.menu-footer-counter
		{
			float: left;
		}

		.menu-footer-controls
		{
			float: right;
		}
	}

	&.menu-footer--split
	{
		display: flex;
		align-items: center;

		.menu-footer-main,
		.menu-footer-counter
		{
			flex-grow: 1;
		}

		.menu-footer-select:not(:last-child)
		{
			margin: 0 1em;
		}

		.menu-footer-opposite,
		.menu-footer-controls
		{
			margin-left: auto;
		}
	}
}

.menu .block
{
	margin: 0;

	.block-container
	{
		color: inherit;
		background: none;
		border: none;
		border-radius: 0;

		> .block-header:first-child
		{
			display: none;
		}
	}

	.block-body
	{
		border-radius: 0;
	}
}]]></template>
  <template type="public" title="core_meter_bar.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[meter.meterBar
{
	margin: @xf-paddingSmall auto @xf-paddingSmall;
	width: 100%;
	height: 10px;

	&::-webkit-meter-bar
	{
		.m-meterVariantEmpty();
	}

	&::-webkit-meter-optimum-value
	{
		.m-meterVariantOptimum();
	}

	&::-webkit-meter-suboptimum-value
	{
		.m-meterVariantSubOptimum();
	}

	&::-webkit-meter-even-less-good-value
	{
		.m-meterVariantSubSubOptimum();
	}
}

:-moz-meter-optimum::-moz-meter-bar
{
	.m-meterVariantOptimum();
}

:-moz-meter-sub-optimum::-moz-meter-bar
{
	.m-meterVariantSubOptimum();
}

:-moz-meter-sub-sub-optimum::-moz-meter-bar
{
	.m-meterVariantSubSubOptimum();
}

@_emptyColor: xf-intensify(@xf-paletteNeutral1, 6%);
@_optimumColor: #63b265;
@_subOptimumColor: #dcda54;
@_subSubOptimumColor: #c84448;

.meterBarLabel
{
	font-size: @xf-fontSizeSmall;
}

.m-meterVariantEmpty()
{
	background: none;
	background-color: @_emptyColor;
}

.m-meterVariantOptimum()
{
	background: @_optimumColor;
}

.m-meterVariantSubOptimum()
{
	background: @_subOptimumColor;
}

.m-meterVariantSubSubOptimum()
{
	background: @_subSubOptimumColor;
}]]></template>
  <template type="public" title="core_offcanvas.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[// ################################## OFF CANVAS MENU #########################

@_offCanvas-animationLength: (@xf-animationSpeed * 2);

.offCanvasMenu
{
	display: none;
	position: fixed;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: @zIndex-5;
	.m-transition(none; @_offCanvas-animationLength); // needed to keep the children displayed through animation
	.m-transform(scale(1)); // forces instant repaint in iOS

	// every tap on iOS causes a brief highlight, disable it for off canvas menu
	// then restore it for some tappable elements to retain it
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);

	a
	{
		-webkit-tap-highlight-color: initial;
	}

	&.is-transitioning
	{
		display: block;
	}

	&.is-active
	{
		display: block;
	}

	.offCanvasMenu-hidden
	{
		display: none;
	}

	.offCanvasMenu-shown
	{
		display: block;
	}

	.offCanvasMenu-closer
	{
		float: right;
		cursor: pointer;
		text-decoration: none;
		-webkit-tap-highlight-color: initial;
		padding: @xf-paddingLarge;
		margin: (@xf-paddingLarge * -1);

		&:hover
		{
			text-decoration: none;
		}

		&:after
		{
			.m-faBase();
			.m-faContent(@fa-var-times);
		}
	}

	.block-container,
	.blockMessage
	{
		margin-left: 0;
		margin-right: 0;
		border-radius: 0;
		border-left: none;
		border-right: none;
	}
}

.offCanvasMenu-shown
{
	display: none;
}

.offCanvasMenu-backdrop
{
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background: rgba(0, 0, 0, .25);
	opacity: 0;
	.m-transition(all; @_offCanvas-animationLength; ease-in-out);

	.is-active &
	{
		opacity: 1;
	}
}

.offCanvasMenu-content
{
	position: relative;
	width: 280px;
	max-width: 85%;
	height: 100%;
	overflow: auto;
	.m-transition(all; @_offCanvas-animationLength; ease-in-out);
	-webkit-overflow-scrolling: touch;

	.has-os-ios &
	{
		// accounts for iOS deadzone in Safari
		padding-bottom: 44px;
	}

	& when(@ltr)
	{
		.m-dropShadow(2px, 0, 5px, 0, .25);
		.m-transform(translateX(-280px));
	}

	& when(@rtl)
	{
		.m-dropShadow(-2px, 0, 5px, 0, .25);
		.m-transform(translateX(280px));
	}

	.offCanvasMenu--fromOpposite &
	{
		position: absolute;
		right: 0;
		.m-dropShadow(-2px, 0, 5px, 0, .25);
		.m-transform(translateX(280px));
	}

	.is-active &
	{
		.m-transform(translateX(0));
	}

	.p-nav-content {
		margin-bottom: 96px;
	}
}

.offCanvasMenu-header
{
	padding: @xf-paddingLarge;
	margin: 0;
	font-size: @xf-fontSizeLarger;
	font-weight: @xf-fontWeightNormal;

	.m-clearFix();
	.m-hiddenLinks();

	&.offCanvasMenu-header--separated
	{
		margin-bottom: @xf-paddingLarge;
	}
}

.offCanvasMenu-row
{
	padding: @xf-paddingLarge;
}

.offCanvasMenu-separator
{
	padding: 0;
	margin: 0;
	border: none;
	border-top: 1px solid transparent;
}

.offCanvasMenu-link
{
	display: block;
	padding: @xf-paddingLarge;
	font-size: @xf-fontSizeLarge;
	text-decoration: inherit;

	&:hover
	{
		text-decoration: inherit;
	}

	&.offCanvasMenu-link--splitToggle
	{
		position: relative;
		text-decoration: inherit;

		&:before
		{
			content: '';
			position: absolute;
			left: 0;
			top: (@xf-paddingLarge - 4px);
			bottom: (@xf-paddingLarge - 4px);
			width: 0;
			border-left: 1px solid currentColor;
		}

		&:after
		{
			.m-faBase();
			.m-faContent(@fa-var-chevron-down, .88em);
		}

		&.is-active:after
		{
			.m-faContent(@fa-var-chevron-up, .88em);
		}
	}
}

.offCanvasMenu-linkHolder
{
	display: flex;

	&.is-selected
	{
		a
		{
			color: inherit;
		}

		.offCanvasMenu-link:first-child
		{
			padding-left: @xf-paddingLarge;
		}
	}

	.offCanvasMenu-link
	{
		flex-grow: 1;

		&.offCanvasMenu-link--splitToggle
		{
			flex-grow: 0;
		}

		&:hover
		{
			background: none;
		}
	}
}

.offCanvasMenu-list
{
	.m-listPlain();

	> li
	{
		border-top: @xf-borderSize solid transparent;
	}

	&:first-child > li:first-child
	{
		border-top: none;
	}
}

.offCanvasMenu-subList
{
	.m-listPlain();
	.m-transitionFadeDown();

	padding-bottom: @xf-paddingLargest;

	.offCanvasMenu-link
	{
		padding-left: @xf-paddingLarge;
		padding-top: @xf-paddingMedium;
		padding-bottom: @xf-paddingMedium;
		font-size: @xf-fontSizeSmall;
	}
}

.offCanvasMenu-installBanner
{
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: @xf-paddingLarge @xf-paddingMedium;
	font-size: @xf-fontSizeLarge;
}

.offCanvasMenu--blocks
{
	.offCanvasMenu-content
	{
		.xf-pageBackground();
		color: @xf-textColor;
	}

	.offCanvasMenu-header
	{
		color: @xf-textColorEmphasized;
		background: @xf-contentHighlightBg;
		border-bottom: @xf-borderSize solid @xf-borderColorHeavy;
	}

	.offCanvasMenu-separator
	{
		border-top-color: @xf-borderColor;
	}

	.offCanvasMenu-list > li
	{
		border-top-color: @xf-borderColor;
	}
}

.offCanvasMenu--nav
{
	.offCanvasMenu-content
	{
		.xf-publicNav();

		display: flex;
		flex-direction: column;

		a
		{
			color: inherit;
		}
	}

	.offCanvasMenu-header
	{
		background: @xf-publicHeaderAdjustColor;
		border-bottom: @xf-borderSize solid fadein(@xf-publicHeaderAdjustColor, 10%);
	}

	.offCanvasMenu-list
	{
		border-bottom: @xf-borderSize solid fadein(@xf-publicHeaderAdjustColor, 10%);
	}

	.offCanvasMenu-separator
	{
		border-top-color: fadein(@xf-publicHeaderAdjustColor, 10%);
	}

	.offCanvasMenu-link.offCanvasMenu-link--splitToggle:before
	{
		border-left-color: fadein(@xf-publicHeaderAdjustColor, 1%);
	}

	.offCanvasMenu-linkHolder
	{
		text-decoration: none;

		&:hover
		{
			background: fadeout(@xf-publicHeaderAdjustColor, 6%);
		}

		&.is-selected
		{
			.xf-publicNavSelected(no-border, no-border-radius);

			.offCanvasMenu-link.offCanvasMenu-link--splitToggle:before
			{
				border-left-color: fade(xf-default(@xf-publicNavSelected--color, transparent), 20%);
			}
		}
	}

	.offCanvasMenu-subList
	{
		background: @xf-publicHeaderAdjustColor;

		.offCanvasMenu-link:hover
		{
			text-decoration: none;
			background: @xf-publicHeaderAdjustColor;
		}
	}

	.offCanvasMenu-list > li
	{
		border-top-color: @xf-publicHeaderAdjustColor;
	}

	.offCanvasMenu-installBanner
	{
		margin-top: auto;
		background: @xf-publicHeaderAdjustColor;
		border-top: @xf-borderSize solid fadein(@xf-publicHeaderAdjustColor, 10%);
	}
}]]></template>
  <template type="public" title="core_overlay.less" version_id="2030031" version_string="2.3.0 Beta 1"><![CDATA[// #################################### OVERLAYS ################################

.overlay-container
{
	display: none;
	position: fixed;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: @zIndex-9;
	background: @xf-overlayMaskColor;
	-webkit-overflow-scrolling: touch;
	opacity: 0;
	.m-transition(all);

	&.is-transitioning
	{
		display: block;
	}

	&.is-active
	{
		display: block;
		opacity: 1;

		& when (unit(xf-default(@xf-overlayMaskBlur, 0)) > 0)
		{
			backdrop-filter: blur(@xf-overlayMaskBlur);
		}
	}
}

.overlay
{
	position: relative;
	margin: 40px auto 10px;
	margin-top: @xf-overlayTopMargin;
	width: 100%;
	max-width: 800px;
	.xf-pageBackground();
	color: @xf-textColor;
	.xf-blockBorder();
	border-radius: @xf-blockBorderRadius;
	.m-dropShadow(0, 5px, 15px, 0, .5);
	outline: none;

	> .overlay-title:first-child,
	.overlay-firstChild
	{
		border-top-left-radius: @xf-blockBorderRadius;
		border-top-right-radius: @xf-blockBorderRadius;
	}

	> .overlay-content > *:last-child,
	.overlay-lastChild
	{
		border-bottom-left-radius: @xf-blockBorderRadius;
		border-bottom-right-radius: @xf-blockBorderRadius;
	}
}

@media (max-width: 820px)
{
	.overlay
	{
		max-width: calc(~'100% - 20px');
	}
}

.overlay-title
{
	.m-clearFix();

	display: none;
	margin: 0;
	font-weight: @xf-fontWeightNormal;
	.xf-overlayHeader();

	.overlay &
	{
		display: block;
	}
}

.overlay-titleCloser
{
	float: right;
	cursor: pointer;
	margin-left: 5px;
	text-decoration: none;
	opacity: .5;
	.m-transition();

	&:after
	{
		.m-faBase();
		.m-faContent(@fa-var-times);
	}

	&:hover
	{
		text-decoration: none;
		opacity: 1;
	}
}

.overlay-content
{
	.m-clearFix();
}

// when displaying a modal, prevent scrolling on the main content but allow it on the overlay
body.is-modalOpen
{
	overflow: hidden !important;

	.overlay-container,
	.offCanvasMenu
	{
		overflow-y: scroll !important;
	}
}

@media (max-width: @xf-responsiveNarrow)
{
	.overlay-title
	{
		font-size: @xf-fontSizeLarger;
	}
}

// ############################### OVERLAY/BLOCK NESTING ##############################

.block-container > .tabPanes > li,
.block-container > .block-body,
.block-container > .block-body > .block-row,
.overlay-content
{
	> .blocks > .block > .block-container,
	> .block > .block-container,
	> .blockMessage
	{
		margin-left: 0;
		margin-right: 0;
		border-radius: @xf-blockBorderRadius; // restore the radius that might be removed for some viewports as we're within the overlay
		border-left: none;
		border-right: none;
	}

	> .blocks > .block:first-child,
	> .block:first-child,
	> .blockMessage:first-child
	{
		margin-top: 0;

		.block-outer:not(.block-outer--after)
		{
			border-bottom: @xf-borderSize solid @xf-borderColorLight;
			padding: @xf-blockPaddingV;
		}
	}

	> .blocks > .block:last-child,
	> .block:last-child,
	> .blockMessage:last-child
	{
		margin-bottom: 0;

		.block-outer.block-outer--after
		{
			border-top: @xf-borderSize solid @xf-borderColorLight;
			padding: @xf-blockPaddingV;
		}
	}

	> .blocks > .block:first-child > .block-container,
	> .block:first-child > .block-container,
	> .blockMessage:first-child
	{
		border-top: none;
	}

	> .blocks > .block:last-child > .block-container,
	> .block:last-child > .block-container,
	> .blockMessage:last-child
	{
		border-bottom: none;
	}

	> .blocks > .block:not(:first-child) > .block-container,
	> .block:not(:first-child) > .block-container,
	> .blockMessage:not(:first-child)
	{
		.m-borderTopRadius(0);
	}

	> .blocks > .block:not(:last-child) > .block-container,
	> .block:not(:last-child) > .block-container,
	> .blockMessage:not(:last-child)
	{
		.m-borderBottomRadius(0);
	}
}

.overlay-content
{
	> .blocks > .block > .block-container,
	> .block > .block-container,
	> .blockMessage
	{
		.m-borderTopRadius(0);
	}

	> .blocks > .block > .block-container,
	> .block > .block-container
	{
		> :first-child
		{
			.m-borderTopRadius(0);
		}

		> .block-body:first-child > .formRow:first-child
		{
			> dt { border-top-left-radius: 0; }
			> dd { border-top-right-radius: 0; }
		}

		> .dataList:first-child
		{
			tbody:first-child .dataList-row:first-child,
			thead:first-child .dataList-row:first-child
			{
				> .dataList-cell:first-child { border-top-left-radius: 0; }
				> .dataList-cell:last-child { border-top-right-radius: 0; }
			}
		}
	}

	> .block:last-child > .block-container > .formSubmitRow:not(.is-sticky):last-child .formSubmitRow-bar
	{
		border-bottom-left-radius: @block-borderRadius-inner;
		border-bottom-right-radius: @block-borderRadius-inner;
	}
}]]></template>
  <template type="public" title="core_pagenav.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[// ####################################### PAGE NAVIGATION ########################

@_page-paddingV: xf-default(@xf-buttonBase--padding-top, 6px);
@_page-paddingH: 8px;
@_page-paddingHSimple: 10px;

.pageNavWrapper {}

.m-pageNavElCore()
{
	white-space: nowrap;

	.xf-blockBorder();
	.xf-pageNavBase();

	&:hover,
	&:active
	{
		//background: xf-intensify(@xf-contentHighlightBg, 3%);
		background: xf-intensify(@xf-pageNavBase--background-color, 3%);
		text-decoration: none;
	}
}

.pageNav-jump
{
	display: inline-block;
	.m-pageNavElCore();
	border-radius: @xf-borderRadiusSmall;
	padding: @_page-paddingV @_page-paddingH;

	&.pageNav-jump--prev:before,
	&.pageNav-jump--next:after
	{
		font-size: 80%;
		unicode-bidi: isolate; // maintain position in RTL with LTR text
	}

	&.pageNav-jump--prev:before
	{
		.m-faContent(@fa-var-solid-caret-left, false, ltr); // .61em
		.m-faContent(@fa-var-solid-caret-right, false, rtl); // .61em
		margin-right: .15em;
	}

	&.pageNav-jump--next:after
	{
		.m-faContent(@fa-var-solid-caret-right, false, ltr); // .61em
		.m-faContent(@fa-var-solid-caret-left, false, rtl); // .61em
		margin-left: .15em;
	}
}

.pageNav-main
{
	.m-listPlain();
	display: inline-table;
}

.pageNav-page
{
	display: table-cell;
	.m-pageNavElCore();

	&:not(:last-child)
	{
		border-right: none;
	}

	&:not(:first-child)
	{
		border-left-color: @xf-borderColorLight;
	}

	&:first-child
	{
		.m-borderLeftRadius(@xf-borderRadiusSmall);
	}

	&:last-child
	{
		.m-borderRightRadius(@xf-borderRadiusSmall);
	}

	> a
	{
		display: block;
		padding: @_page-paddingV @_page-paddingH;
		text-decoration: none;
		color: inherit;
	}

	&.pageNav-page--current
	{
		.xf-pageNavCurrent();

		cursor: pointer;

		&:hover,
		&:active
		{
			background: xf-intensify(@xf-contentAccentBg, 3%);
		}

		+ .pageNav-page
		{
			border-left: none;
		}
	}
}

// Hide relative page numbers on narrow devices when we have a skip entry as we don't necessarily have space.
@media (max-width: @xf-responsiveNarrow)
{
	.pageNav--skipStart
	{
		.pageNav-page.pageNav-page--earlier
		{
			display: none;
		}
	}

	.pageNav--skipEnd
	{
		.pageNav-page.pageNav-page--later
		{
			display: none;
		}

		.pageNav-page.pageNav-page--skipEnd
		{
			border-left: none;
		}
	}
}

// ########################### SIMPLE PAGE NAV VARIANT ########################

.pageNavSimple
{
	display: inline-flex;
}

.pageNavSimple-el
{
	display: inline-block;
	.xf-blockBorder();
	border-radius: @xf-borderRadiusSmall;
	padding: @_page-paddingV @_page-paddingHSimple;
	font-size: @xf-fontSizeSmall;
	text-align: center;
	white-space: nowrap;
	margin-right: 4px;

	&:last-child
	{
		margin-right: 0;
	}

	&.pageNavSimple-el--current
	{
		.xf-contentAccentBase();

		&:hover,
		&:active
		{
			background: xf-intensify(@xf-contentAccentBg, 3%);
			text-decoration: none;
		}
	}

	&.pageNavSimple-el--prev,
	&.pageNavSimple-el--next
	{
		background: linear-gradient(0deg, @xf-contentHighlightBg, mix(@xf-contentHighlightBg, @xf-contentBg, 25%));
		color: @xf-linkColor;
		min-width: 75px;

		@media (max-width: 350px)
		{
			min-width: 0;
		}

		&:hover,
		&:active
		{
			background: xf-intensify(@xf-contentHighlightBg, 3%);
			text-decoration: none;
		}
	}

	&.pageNavSimple-el--prev i:before
	{
		.m-faContent(@fa-var-solid-caret-left, false, ltr); // , .44em
		.m-faContent(@fa-var-solid-caret-right, false, rtl); // , .44em
	}

	&.pageNavSimple-el--next i:before
	{
		.m-faContent(@fa-var-solid-caret-right, false, ltr); // , .44em
		.m-faContent(@fa-var-solid-caret-left, false, rtl); // , .44em
	}

	&.pageNavSimple-el--first,
	&.pageNavSimple-el--last
	{
		border-color: transparent;
		padding-left: (@_page-paddingHSimple / 2);
		padding-right: (@_page-paddingHSimple / 2);
		color: fade(@xf-linkColor, 60%);

		&:hover,
		&:active
		{
			.xf-blockBorder();
			background: xf-intensify(@xf-contentHighlightBg, 3%);
			color: @xf-linkColor;
			text-decoration: none;
		}
	}

	&.pageNavSimple-el--first i:before
	{
		.m-faContent(@fa-var-solid-backward, false, ltr); // 1em
		.m-faContent(@fa-var-solid-forward, false, rtl); // 1em
	}

	&.pageNavSimple-el--last i:before
	{
		.m-faContent(@fa-var-solid-forward, false, ltr); // 1em
		.m-faContent(@fa-var-solid-backward, false, rtl); // 1em
	}

	&.is-disabled
	{
		border-color: transparent;
		background: none;
		color: @xf-textColorMuted;
		text-decoration: none;
		pointer-events: none;

		&:hover
		{
			background: none;
			color: @xf-textColorMuted;
		}
	}
}

// #################### DISPLAY VARIANTS #########################

.pageNavWrapper--simple
{
	.pageNav
	{
		display: none;
	}
}

.pageNavWrapper--full
{
	.pageNavSimple
	{
		display: none;
	}
}

.pageNavWrapper--mixed
{
	.pageNavSimple
	{
		display: none;
	}

	@media (max-width: @xf-responsiveMedium)
	{
		.pageNav
		{
			display: none;
		}

		.pageNavSimple
		{
			display: inline-flex;
		}
	}
}

// Hide any block page nav that goes before the block as we will be wasting vertical space.
@media (max-width: @xf-responsiveNarrow)
{
	.block-outer:not(.block-outer--after) .pageNavWrapper:not(.pageNavWrapper--forceShow)
	{
		display: none;
	}

	// this is a sanity check in case .block-outer--after is forgotten
	.block-container + .block-outer .pageNavWrapper
	{
		display: block;
	}
}]]></template>
  <template type="public" title="core_prepend.less" version_id="2020033" version_string="2.2.0 Beta 3"><![CDATA[.m-formElementExplain()
{
	display: block;
	font-style: normal;
	.xf-formExplain();

	.m-textColoredLinks();
}]]></template>
  <template type="public" title="core_reaction.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[.reaction
{
	display: flex;
	-webkit-touch-callout: none;

	&.reaction--imageHidden
	{
		img
		{
			display: none;
		}

		&.reaction--1
		{
			i
			{
				.m-faBefore(@fa-var-thumbs-up, 1em);
				.m-faBase();
			}
		}
	}

	&.reaction--small,
	&.reaction--medium
	{
		display: inline-block;

		.reaction-text
		{
			margin-left: 0;
		}
	}

	&.reaction--right
	{
		justify-content: flex-end;
	}

	&.reaction--inline
	{
		display: inline-flex;;
	}

	a&:hover,
	a&:focus
	{
		text-decoration: none;

		.reaction-text
		{
			text-decoration: underline;
		}
	}
}

.reactionScore
{
	display: inline-block;
	padding: 2px 3px;
	min-width: 16px;
	text-align: center;
	vertical-align: text-bottom;
	border-radius: @xf-borderRadiusMedium;
	font-size: @xf-fontSizeSmallest;
	.xf-chip();

	&:hover
	{
		.xf-chipHover();
	}
}

.reaction-image
{
	vertical-align: text-bottom;

	&.reaction-image--emoji
	{
		width: 32px;
	}

	.reaction--small &
	{
		max-width: 16px;
		max-height: 16px;
	}

	.reaction--medium &
	{
		max-width: 21px;
		max-height: 21px;
	}
}

.reaction-sprite
{
	vertical-align: text-bottom;

	<xf:if is="$reactionSprites">
		<xf:foreach loop="$reactionSprites" key="$reactionId" value="$reactionSprite">
			<xf:if is="$reactionSprite.sprite_css">
				.reaction--{$reactionId} &
				{
					{$reactionSprite.sprite_css|raw}
				}
			</xf:if>
			<xf:if is="$reactionSprite.small_sprite_css">
				.reaction--small.reaction--{$reactionId} &
				{
					{$reactionSprite.small_sprite_css|raw}
				}
			</xf:if>
			<xf:if is="$reactionSprite.medium_sprite_css">
				.reaction--medium.reaction--{$reactionId} &
				{
					{$reactionSprite.medium_sprite_css|raw}
				}
			</xf:if>
		</xf:foreach>
	</xf:if>
}

.reaction-text
{
	margin-left: 10px;
	align-self: center;

	// note: when we add a reaction we make the text bold
	// the below approach sets the space for that to ensure
	// the text doesn't jump when the bold happens.
	&::after
	{
		content: " ";
		font-weight: @xf-fontWeightHeavy;
		height: 1px;
		color: transparent;
		overflow: hidden;
		visibility: hidden;
	}

	.has-reaction &
	{
		font-weight: @xf-fontWeightHeavy;
	}

	.reaction--small &
	{
		margin-left: 0;
	}

	<xf:if is="$reactionColors">
		<xf:foreach loop="$reactionColors" key="$reactionId" value="$reactionColor">
			<xf:if is="$reactionColor">
				.reaction--{$reactionId} &
				{
					color: {$reactionColor};
				}
			</xf:if>
		</xf:foreach>
	</xf:if>
}

<xf:if is="$reactionColors">
	<xf:foreach loop="$reactionColors" key="$reactionId" value="$reactionColor">
		<xf:if is="$reactionColor">
			.is-active.tabs-tab--reaction{$reactionId}
			{
				border-color: {$reactionColor} !important;
			}
		</xf:if>
	</xf:foreach>
</xf:if>]]></template>
  <template type="public" title="core_setup.less" version_id="2020670" version_string="2.2.6"><![CDATA[// Vital base setup, don't change these!

html:after
{
	content: 'full';
	display: none;

	@media (max-width: @xf-responsiveWide) { content: 'wide'; }
	@media (max-width: @xf-responsiveMedium) { content: 'medium'; }
	@media (max-width: @xf-responsiveNarrow) { content: 'narrow'; }
}

*
{
	// global sizing calculations expect border-box
	box-sizing: border-box;
}

body
{
	// don't hide the vertical scrollbar
	overflow-y: scroll !important;
}


[data-xf-click], a[tabindex]
{
	// iOS doesn't bubble clicks up to the body where we have a listener, so we need to force that
	cursor: pointer;
}

[dir=auto]
{
	// this will get flipped in RT
	text-align: left;
}

pre, textarea
{
	// soft line wraps
	word-wrap: normal;
}

img
{
	// without specifying this, resized images look worse
	-ms-interpolation-mode: bicubic;
}

em
{
	&:lang(zh),
	&:lang(ja),
	&:lang(ko)
	{
	   font-style: normal;

		.bbWrapper &,
		.fr-element &
		{
			font-style: italic;
		}
	}
}

// #################################################
// Focus handlers, set by XF.NavDeviceWatcher (core.js)

.has-pointer-nav
{
	:focus
	{
		outline: 0
	}

	::-moz-focus-inner
	{
		border: 0;
	}

	.iconic > input:focus + i
	{
		&:before,
		&:after
		{
			outline: 0;
		}
	}
}

.m-keyframes(spin, {
	from
	{
		transform: rotate(0deg);
	}
	to
	{
		transform: rotate(360deg);
	}
});
]]></template>
  <template type="public" title="core_smilie.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[.smilie
{
	vertical-align: text-bottom;
	max-width: none;

	img&.smilie--emoji
	{
		width: 1.467em;
	}

	span&.smilie--emoji
	{
		display: inline-block;
		line-height: 1.2;
		font-size: 1.2em;
		vertical-align: 0;
	}

	&.is-clicked
	{
		transform: rotate(45deg);
		transition: all 0.25s;
	}
}

.contentRow-figure--emoji
{
	font-size: (@xf-fontSizeNormal * 1.2);

	img
	{
		max-width: 24px;
		max-height: 24px;
		vertical-align: top;
	}

	img.smilie--emoji
	{
		width: 22px;
	}

	span.smilie--emoji
	{
		// the default font-size above accounts for this
		font-size: 1em;
	}
}

<xf:if is="$smilieSprites">
	<xf:foreach loop="$smilieSprites" key="$smilieId" value="$smilieSprite">
		<xf:if is="$smilieSprite.sprite_css">
			.smilie--sprite.smilie--sprite{$smilieId}
			{
				{$smilieSprite.sprite_css|raw}
			}
		</xf:if>
	</xf:foreach>
</xf:if>]]></template>
  <template type="public" title="core_tab.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[// ################################## TABS ####################################

.tabs
{
	display: flex;

	&.tabs--wrappable
	{
		flex-wrap: wrap;
	}

	&.tabs--right
	{
		float: right;
		position: relative;
		margin-left: auto;
		align-self: center;
		white-space: nowrap;
	}
}

.tabs-tab
{
	display: inline-block;
	cursor: pointer;
	white-space: nowrap;
	color: inherit;
	font-weight: inherit;
	text-decoration: none;
	.m-transition();

	&:hover
	{
		text-decoration: none;
	}
}

.tabs-extra
{
	position: relative;
	margin-left: auto;
	padding: 0 @xf-blockPaddingH 0 @xf-paddingMedium;
	align-self: center;
	white-space: nowrap;

	&.tabs-extra--minor
	{
		font-size: @xf-fontSizeSmall;
	}

	a
	{
		color: inherit;
		text-decoration: none;
		display: block;
		padding: @xf-paddingMedium;
		margin-right: (@xf-paddingMedium * -1);
	}
}

.tabPanes
{
	.m-listPlain();

	> li
	{
		display: none;

		&.is-active
		{
			display: block;
		}
	}
}

// ################################# OUTER TABS #########################

.tabs--standalone
{
	padding: 0;
	margin-bottom: @xf-elementSpacer;
	font-weight: @xf-fontWeightNormal;
	.xf-blockBorder();
	.xf-standaloneTab();
	.m-tabsTogether(xf-default(@xf-standaloneTab--font-size, @xf-fontSizeNormal));

	&.tabs--standalone--closer
	{
		margin-bottom: @xf-paddingMedium;
	}

	&.tabs--standalone--small
	{
		.m-tabsTogether(@xf-fontSizeSmall);
	}

	&.tabs--standalone--inline
	{
		display: inline-block;
		margin-bottom: 0;
	}

	.tabs-tab
	{
		padding: @xf-blockPaddingV @xf-blockPaddingH max(0px, (@xf-blockPaddingV - @xf-borderSizeFeature));
		border-bottom: @xf-borderSizeFeature solid transparent;

		&:hover
		{
			color: @xf-standaloneTabSelected--color;
		}

		&.is-active
		{
			.xf-standaloneTabSelected();
		}
	}

	.hScroller-action
	{
		.m-hScrollerActionColorVariation(
			xf-default(@xf-standaloneTab--background-color, transparent),
			xf-default(@xf-standaloneTab--color, ~""),
			xf-default(@xf-standaloneTabSelected--color, ~"")
		);
	}
}

@media (max-width: @xf-responsiveEdgeSpacerRemoval)
{
	.tabs--standalone
	{
		margin-left: (@xf-pageEdgeSpacer * -1);
		margin-right: (@xf-pageEdgeSpacer * -1);
		border-radius: 0;

		.tabs--standalone:not(.tabs--right)
		{
			border-left: none;
			border-right: none;
		}

		.tabs--right&
		{
			margin: 0;
		}
	}
}]]></template>
  <template type="public" title="core_tooltip.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[// ######################################### TOOLTIPS #######################################

@_tooltip-arrowSize: 5px;
@_tooltip-arrowSizeLarge: 10px;
@_tooltip-zIndex: @zIndex-3;

.tooltip
{
	position: absolute;
	z-index: @_tooltip-zIndex;
	line-height: @xf-lineHeightDefault;
	padding: 0 5px;
	display: none;

	&.tooltip--basic
	{
		max-width: 300px;

		// Tooltip positioning is literal.
		&.tooltip--top
		{
			margin-bottom: 3px;
			padding-bottom: @_tooltip-arrowSize;
		}
		&.tooltip--right
		{
			-ltr-rtl-margin-left: 3px;
			-ltr-rtl-padding-left: @_tooltip-arrowSize;
		}
		&.tooltip--bottom
		{
			margin-top: 3px;
			padding-top: @_tooltip-arrowSize;

			.has-touchevents &.tooltip--selectToQuote
			{
				margin-top: .75em;
			}
		}
		&.tooltip--left
		{
			-ltr-rtl-margin-right: 3px;
			-ltr-rtl-padding-right: @_tooltip-arrowSize;
		}

		.m-textColoredLinks();
	}

	&.tooltip--noninteractive
	{
		pointer-events: none;
	}

	&.tooltip--description
	{
		max-width: 350px;
	}

	&.tooltip--selectToQuote
	{
		.m-hiddenLinks();
	}

	&.tooltip--preview
	{
		max-width: 100%;
		width: 400px;
	}

	&.tooltip--member
	{
		max-width: 100%;
		width: 450px;
		padding: 0 10px;
	}

	&.tooltip--reaction
	{
		max-width: 100%;
		padding: 0 15px;
		margin: 5px 0;
	}

	&.tooltip--bookmark,
	&.tooltip--share
	{
		max-width: 100%;
		width: 340px;
		padding: 0 15px;
	}

	&.tooltip--bookmark,
	&.tooltip--member,
	&.tooltip--preview,
	&.tooltip--share
	{
		// Tooltip positioning is literal.
		&.tooltip--top { padding-bottom: @_tooltip-arrowSizeLarge; }
		&.tooltip--right { -ltr-rtl-padding-left: @_tooltip-arrowSizeLarge; }
		&.tooltip--bottom { padding-top: @_tooltip-arrowSizeLarge; }
		&.tooltip--left { -ltr-rtl-padding-right: @_tooltip-arrowSizeLarge; }
	}
}
.tooltip-content
{
	.tooltip--basic &
	{
		text-align: center;
		.xf-tooltip();
	}

	.tooltip--description &
	{
		text-align: left;
	}

	.tooltip--preview &
	{
		.xf-contentBase();
		padding: @xf-paddingMedium;
		text-align: left;
		border: 1px solid @xf-borderColor;

		.m-dropShadow(0, 5px, 10px, 0, .35);
	}

	.tooltip--bookmark &,
	.tooltip--member &,
	.tooltip--share &
	{
		.xf-contentBase();
		padding: 0;
		text-align: left;
		border: 1px solid @xf-borderColor;

		.m-dropShadow(0, 5px, 10px, 0, .35);
	}

	.tooltip--reaction &
	{
		.xf-contentBase();
		padding: 0;
		text-align: center;
		border: 1px solid @xf-borderColor;
		border-radius: @xf-borderRadiusLarge;
	}
}

.tooltip-content-inner
{
	position: relative;

	.tooltip--basic &
	{
		max-height: 200px;
		overflow: hidden;
	}

	.tooltip--preview &
	{
		max-height: 200px;
		overflow: hidden;

		.tooltip-content-cover
		{
			.m-gradient(fade(@xf-contentBg, 0%), @xf-contentBg, transparent, 160px, 200px);
		}
	}

	.tooltip-content-cover
	{
		position: absolute;
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
	}
}

// Tooltip side positioning is literal.
/* XF-RTL:disable */
.tooltip-arrow
{
	position: absolute;
	width: 0;
	height: 0;
	border: 0 solid transparent;

	.m-tooltipArrow(
		xf-default(@xf-tooltip--background-color, transparent),
		@_tooltip-arrowSize,
		~'.tooltip--basic'
	);

	@classes: tooltip--preview tooltip--member tooltip--share tooltip--bookmark;
	.m-tooltipArrowList(@xf-borderColor, (@_tooltip-arrowSizeLarge + 1px), @classes, @xf-contentBg);

	.tooltip--member.tooltip--bottom &:after
	{
		.m-triangleUp(xf-default(@xf-memberTooltipHeader--background-color, transparent), @_tooltip-arrowSizeLarge);
	}
}

.m-tooltipArrowList(@color, @size, @classes, @fillColor: false)
{
	.variations(@classes, @i: 1) when (@i <= length(@classes))
	{
		@variation: extract(@classes, @i);

		.m-tooltipArrow(@color, @size, ~'.@{variation}', @fillColor);

		.variations(@classes, (@i + 1));
	}

	.variations(@classes);
}
/* XF-RTL:enable */

.tooltipCover
{
	display: none;
	position: absolute;
	opacity: 0;
	z-index: (@_tooltip-zIndex - 1);
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);

	&.is-active
	{
		display: block;
	}
}]]></template>
  <template type="public" title="core_utilities.less" version_id="2030035" version_string="2.3.0 Beta 5"><![CDATA[// ############################# BASIC UTILITY CLASSES #######################

.u-concealed,
.u-concealed a,
.u-cloaked,
.u-cloaked a,
.u-concealed--icon,
.u-concealed--icon a
{
	text-decoration: inherit !important;
	color: inherit !important;
}

a.u-concealed:hover,
.u-concealed a:hover
{
	text-decoration: underline !important;

	.fa
	{
		color: @xf-linkHover--color;
	}
}

a.u-concealed--icon:hover,
.u-concealed--icon a:hover
{
	.fa
	{
		color: @xf-linkHover--color;
	}
}

.u-textColor { color: @xf-textColor; }
.u-dimmed { color: @xf-textColorDimmed; }
.u-muted { color: @xf-textColorMuted; }

.u-dimmed,
.u-muted,
.u-faint
{
	.m-hiddenLinks();
}

.u-unbold { font-weight: normal; }

.u-featuredText { color: @xf-textColorFeature; }

.u-accentText
{
	color: @xf-textColorAccentContent;

	a { .xf-contentAccentLink(); }
}

.u-prependAsterisk:before { content: "* "; }
.u-appendAsterisk:after { content: " *"; }

.u-dt[title] { border: none; text-decoration: none; }

.u-clearFix
{
	.m-clearFix();
}

.u-appendColon
{
	.m-appendColon();
}

.u-pullLeft
{
	float: left !important;
}

.u-pullRight
{
	float: right !important;
}

.u-alignCenter
{
	text-align: center;
}

.u-alignMiddle
{
	vertical-align: middle;
}

.u-spaceAfter
{
	margin-right: .28em;
}

.u-spaceBefore
{
	margin-left: .28em;
}

.u-showWideInline,
.u-showWideBlock,
.u-showMediumInline,
.u-showMediumBlock,
.u-showNarrowInline,
.u-showNarrowBlock
{
	display: none;
}

.u-smaller
{
	font-size: small;
}

.u-equalFlex
{
	display: flex;

	& > *
	{
		flex: 1 1 auto;
	}
}

@media (max-width: @xf-responsiveWide)
{
	.u-hideWide { display: none !important; }
	.u-showWideInline { display: inline; }
	.u-showWideBlock { display: block; }
}
@media (max-width: @xf-responsiveMedium)
{
	.u-hideMedium { display: none !important; }
	.u-showMediumInline { display: inline; }
	.u-showMediumBlock { display: block; }
}
@media (max-width: @xf-responsiveNarrow)
{
	.u-hideNarrow { display: none !important; }
	.u-showNarrowInline { display: inline; }
	.u-showNarrowBlock { display: block; }
}

.u-ltr { direction: ltr; text-align: left; }
.u-rtl { direction: rtl; text-align: right; }

.generateDepth(@n, @i: 1) when (@i =< @n)
{
	.u-depth@{i} { padding-left: (@i * 1em); }
	.u-indentDepth@{i} { text-indent: (@i * 1em); }
	.generateDepth(@n, (@i + 1));
}
.generateDepth(9);

.u-hidden
{
	.m-hiddenEl(false);

	&.u-hidden--transition
	{
		.m-hiddenEl(true);
	}
}

.u-srOnly
{
	.m-visuallyHidden();
}

.has-no-js .u-jsOnly
{
	display: none !important;
}

.has-js .u-noJsOnly
{
	display: none !important;
}

img.u-imgContained
{
	max-height: 100%;
	max-width: 100%;
}

.u-bottomFixer
{
	position: sticky;
	//left: 0;
	//right: 0;
	bottom: 0;
	z-index: @zIndex-8;
	pointer-events: none;

	> *
	{
		pointer-events: auto;
	}
}

.u-anchorTarget
{
	display: block;
	height: 0;
	width: 0;
	visibility: hidden;
	pointer-events: none;
	position: absolute;
}

.u-flex-1 { flex: 1 }
.u-flex-2 { flex: 2 }
.u-flex-3 { flex: 3 }
.u-flex-4 { flex: 4 }

.u-flexStretch
{
	flex: 1 1 auto;
}

.u-splitter
{
	display: inline-block;
	width: @_form-elementSpacer;
	flex-shrink: 0;
}

.u-screenContained
{
	max-height: 70vh;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
}

.u-preWrap
{
	white-space: pre-wrap;
}

.u-singleLine
{
	.m-overflowEllipsis();
}]]></template>
  <template type="public" title="currency_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="currency_list" arg-value="!" arg-includePopular="{{ true }}" arg-row="{{ false }}" arg-rowLabel="" arg-name="cost_currency" arg-rowClass="" arg-class="">
	<xf:set var="$currencyData" value="{{ $xf.app.data('XF:Currency') }}" />
	<xf:set var="$currencies" value="{$currencyData.getCurrencyOptions()}" />
	<xf:if is="$includePopular">
		<xf:set var="$popularCurrencies" value="{$currencyData.getCurrencyOptions(true)}" />
	</xf:if>

	<xf:set var="$select">
		<xf:select name="{$name}" value="{$value}" class="{$class}">
			<xf:option value="">&nbsp;</xf:option>
			<xf:if is="$popularCurrencies">
				<xf:optgroup label="{{ phrase('popular_currencies') }}">
					<xf:options source="{$popularCurrencies}" />
				</xf:optgroup>
				<xf:optgroup label="{{ phrase('other_currencies') }}">
					<xf:options source="{$currencies}" />
				</xf:optgroup>
			<xf:else />
				<xf:options source="{$currencies}" />
			</xf:if>
		</xf:select>
	</xf:set>

	<xf:if is="$row">
		<xf:formrow rowtype="input" class="{$rowClass}"
			label="{$rowLabel}">

			{$select|raw}
		</xf:formrow>
	<xf:else />
		{$select|raw}
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="custom_fields_display_thread" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:if is="{{ $post.position < 1 AND $customFields is not empty }}">
	<div>
		<xf:foreach loop="$customFields" key="$fieldId" value="$field">
			<dl class="pairs pairs--inline">
				<dt>{$field.label}</dt>
				<dd>{$field.value|raw}</dd>
			</dl>
		</xf:foreach>
	</div>
</xf:if>]]></template>
  <template type="public" title="custom_fields_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="custom_fields_view"
	arg-type="!"
	arg-group="!"
	arg-set="!"
	arg-onlyInclude="{{ null }}"
	arg-additionalFilters="{{ [] }}"
	arg-wrapperClass=""
	arg-valueClass="pairs pairs--columns pairs--fixedSmall pairs--customField">

	<xf:if is="$wrapperClass">
		<xf:if contentcheck="true">
			<div class="{$wrapperClass}">
				<xf:contentcheck>
					<xf:macro name="custom_fields_values"
						arg-type="{$type}"
						arg-group="{$group}"
						arg-set="{$set}"
						arg-onlyInclude="{$onlyInclude}"
						arg-additionalFilters="{$additionalFilters}"
						arg-valueClass="{$valueClass}" />
				</xf:contentcheck>
			</div>
		</xf:if>
	<xf:else />
		<xf:if contentcheck="true">
			<xf:contentcheck>
				<xf:macro name="custom_fields_values"
					arg-type="{$type}"
					arg-group="{$group}"
					arg-set="{$set}"
					arg-onlyInclude="{$onlyInclude}"
					arg-additionalFilters="{$additionalFilters}"
					arg-valueClass="{$valueClass}" />
			</xf:contentcheck>
		</xf:if>
	</xf:if>
</xf:macro>

<xf:macro id="custom_fields_values"
	arg-type="!"
	arg-group="!"
	arg-set="!"
	arg-onlyInclude="{{ null }}"
	arg-additionalFilters="{{ [] }}"
	arg-valueClass="pairs pairs--columns pairs--fixedSmall pairs--customField">

	<xf:foreach loop="$xf.app.getCustomFields({$type}, {$group}, {$onlyInclude}, {$additionalFilters})" key="$fieldId" value="$fieldDefinition">
		<xf:if is="$fieldDefinition.hasValue({$set.{$fieldDefinition.field_id}})">
			<xf:set var="$fieldValue"><xf:trim><xf:macro id="custom_field_value"
				arg-definition="{$fieldDefinition}"
				arg-value="{$set.{$fieldDefinition.field_id}}" />
				</xf:trim></xf:set>

			<xf:if is="$fieldDefinition.wrapper_template">
				{$fieldDefinition.getFormattedOutput($fieldValue)|raw}
			<xf:else />
				<dl class="{$valueClass}" data-field="{$fieldId}">
					<dt>{$fieldDefinition.title}</dt>
					<dd>{$fieldValue}</dd>
				</dl>
			</xf:if>
		</xf:if>
	</xf:foreach>
</xf:macro>

<xf:macro id="custom_field_value" arg-definition="!" arg-value="!">
	<xf:if is="$definition.field_type == 'stars'">
		<xf:macro id="rating_macros::stars" arg-rating="{$value}" />
	<xf:else />
		<xf:if is="$definition.match_type == 'date'">
			<xf:macro id="custom_field_value_date" arg-date="{$value}" />
		<xf:elseif is="$definition.match_type == 'color'" />
			<xf:macro id="custom_field_value_color" arg-color="{$value}" />
		<xf:else />
			{$definition.getFormattedValue($value)|raw}
		</xf:if>
	</xf:if>
</xf:macro>

<xf:macro id="custom_field_value_date"
	arg-date="!">

	{{ date(date_from_format('Y-m-d', $date)) }}
</xf:macro>

<xf:macro id="custom_field_value_color"
	arg-color="!">

	<span class="colorChip" data-xf-init="tooltip" title="{$color}">
		<span class="colorChip-inner" style="background-color: {$color}">
			<span class="colorChip-value">{$color}</span>
		</span>
	</span>
</xf:macro>

<xf:macro id="custom_fields_edit"
	arg-type="!"
	arg-group="{{ null }}"
	arg-set="!"
	arg-editMode="user"
	arg-onlyInclude="{{ null }}"
	arg-additionalFilters="{{ [] }}"
	arg-rowType=""
	arg-rowClass=""
	arg-namePrefix="custom_fields"
	arg-requiredOnly="{{ false }}">

	<xf:foreach loop="$xf.app.getCustomFieldsForEdit({$type}, {$set}, {$editMode}, {$group}, {$onlyInclude}, {$additionalFilters})" key="$fieldId" value="$fieldDefinition">
		<xf:if is="!$requiredOnly OR ($requiredOnly AND $fieldDefinition.required)">
			<xf:set var="$controlId" value="{{
				in_array($fieldDefinition.field_type, ['textbox', 'textarea', 'select', 'multiselect', 'date', 'stars', 'color'])
				? unique_id()
				: '' }}" />
			<xf:set var="$labelId" value="{{
				in_array($fieldDefinition.field_type, ['radio', 'checkbox'])
				? unique_id()
				: '' }}" />

			<xf:formrow label="{$fieldDefinition.title}"
				explain="{$fieldDefinition.description}"
				hint="{{ $fieldDefinition.isRequired($editMode) ? phrase('required') : '' }}"
				rowtype="{$rowType} customField {{ in_array($fieldDefinition.field_type, ['textbox', 'textarea', 'bbcode', 'select']) ? 'input' : '' }}"
				rowclass="{$rowClass}"
				labelid="{$labelId}"
				controlid="{$controlId}"
				data-field="{$fieldDefinition.field_id}">

				<xf:macro id="custom_fields_edit_{$fieldDefinition.field_type}"
					arg-set="{$set}"
					arg-definition="{$fieldDefinition}"
					arg-editMode="{$editMode}"
					arg-refId="{{ $controlId ?: $labelId }}"
					arg-namePrefix="{$namePrefix}" />
			</xf:formrow>
		</xf:if>
	</xf:foreach>
</xf:macro>

<xf:macro id="custom_fields_edit_groups"
	arg-type="!"
	arg-groups="!"
	arg-set="!"
	arg-editMode="user"
	arg-onlyInclude="{{ null }}"
	arg-additionalFilters="{{ [] }}"
	arg-rowType=""
	arg-namePrefix="custom_fields"
	arg-requiredOnly="">

	<xf:foreach loop="$groups" value="$group">
		<xf:macro id="custom_fields_edit"
			arg-type="{$type}"
			arg-group="{$group}"
			arg-set="{$set}"
			arg-editMode="{$editMode}"
			arg-onlyInclude="{$onlyInclude}"
			arg-additionalFilters="{$additionalFilters}"
			arg-rowType="{$rowType}"
			arg-namePrefix="{$namePrefix}"
			arg-requiredOnly="{$requiredOnly}" />
	</xf:foreach>
</xf:macro>

<xf:macro id="custom_fields_edit_textbox" arg-set="!" arg-definition="!" arg-editMode="!" arg-refId="" arg-namePrefix="custom_fields">

	<xf:if is="$definition.match_type == 'date'">

		<xf:dateinput name="{$namePrefix}[{$definition.field_id}]" value="{$set.{$definition.field_id}}"
			data-field="{$definition.field_id}"
			maxlength="{{ $definition.max_length ? $definition.max_length : '' }}"
			required="{{ $definition.isRequired($editMode) ? 'required' : '' }}"
			id="{$refId}"
			class="field_{$definition.field_id}" />

	<xf:elseif is="$definition.match_type == 'color'" />

		<xf:macro id="color_picker_macros::color_picker"
			arg-name="{$namePrefix}[{$definition.field_id}]"
			arg-value="{$set.{$definition.field_id}}"
			arg-mapName=""
			arg-row="{{ false }}"
			arg-controlId="{$refId}"
			arg-required="{$definition.isRequired($editMode)}" />

	<xf:elseif is="$definition.match_type == 'number'" />

		<xf:set var="$step" value="1" />

		<xf:if is="$definition.match_params.number_integer">
			<xf:if is="$definition.match_params.number_min >= 0">
				<xf:set var="$pattern" value="\d*" />
			</xf:if>
		<xf:else />
			<xf:set var="$step" value="any" />
		</xf:if>
		<xf:if is="$definition.match_params.number_min !== ''">
			<xf:set var="$min" value="{$definition.match_params.number_min}" />
		</xf:if>
		<xf:if is="$definition.match_params.number_max !== ''">
			<xf:set var="$max" value="{$definition.match_params.number_max}" />
		</xf:if>

		<xf:numberbox name="{$namePrefix}[{$definition.field_id}]" value="{$set.{$definition.field_id}}"
			maxlength="{{ $definition.max_length ? $definition.max_length : '' }}"
			pattern="{$pattern}"
			default=""
			min="{$min}"
			max="{$max}"
			step="{$step}"
			required="{{ $definition.isRequired($editMode) ? 'required' : '' }}"
			id="{$refId}"
			class="field_{$definition.field_id}" />

	<xf:else />

		<xf:if is="in_array($definition.match_type, ['regex', 'alphanumeric'])">

			<xf:set var="$type" value="text" />
			<xf:set var="$pattern" value="{{ $definition.match_type == 'regex' ? $definition.match_params.regex : '\w+' }}" />
			<xf:set var="$title">{{ phrase('please_enter_value_that_matches_required_format') }}</xf:set>

		<xf:elseif is="in_array($definition.match_type, ['date', 'email', 'url', 'color'])" />

			<xf:set var="$type" value="{$definition.match_type}" />

		<xf:else />

			<xf:set var="$type" value="text" />

		</xf:if>

		<xf:textbox name="{$namePrefix}[{$definition.field_id}]" value="{$set.{$definition.field_id}}"
			type="{$type}"
			maxlength="{{ $definition.max_length ? $definition.max_length : '' }}"
			pattern="{$pattern}"
			title="{$title}"
			min="{$min}"
			max="{$max}"
			step="{$step}"
			required="{{ $definition.isRequired($editMode) ? 'required' : '' }}"
			id="{$refId}"
			class="field_{$definition.field_id}" />
	</xf:if>
</xf:macro>

<xf:macro id="custom_fields_edit_textarea" arg-set="!" arg-definition="!" arg-editMode="!" arg-refId="" arg-namePrefix="custom_fields">

	<xf:textarea name="{$namePrefix}[{$definition.field_id}]" value="{$set.{$definition.field_id}}"
		maxlength="{{ $definition.max_length ? $definition.max_length : '' }}"
		autosize="true"
		required="{{ $definition.isRequired($editMode) ? 'required' : '' }}"
		id="{$refId}"
		class="field_{$definition.field_id}" />
</xf:macro>

<xf:macro id="custom_fields_edit_bbcode" arg-set="!" arg-definition="!" arg-editMode="!" arg-refId="" arg-namePrefix="custom_fields">

	<xf:editor name="{$namePrefix}[{$definition.field_id}]" value="{$set.{$definition.field_id}}"
		previewable="0"
		data-min-height="80"
		data-attachment-target="false"
		class="field_{$definition.field_id}" />
</xf:macro>

<xf:macro id="custom_fields_edit_select" arg-set="!" arg-definition="!" arg-editMode="!" arg-refId="" arg-multi="" arg-namePrefix="custom_fields">

	<xf:select name="{$namePrefix}[{$definition.field_id}]"
		value="{{ $set.{$definition.field_id} === null ? '' : {$set.{$definition.field_id}} }}"
		multiple="{$multi}"
		id="{$refId}"
		class="field_{$definition.field_id}">
			<xf:option value="" />
			<xf:options source="$definition.field_choices" />
	</xf:select>
</xf:macro>

<xf:macro id="custom_fields_edit_radio" arg-set="!" arg-definition="!" arg-editMode="!" arg-refId="" arg-namePrefix="custom_fields">

	<xf:radio name="{$namePrefix}[{$definition.field_id}]"
		value="{{ $set.{$definition.field_id} === null ? '' : {$set.{$definition.field_id}} }}"
		class="field_{$definition.field_id}"
		role="radiogroup" aria-labelledby="{$refId}"
		listclass="listColumns">
			<xf:if is="!$definition.isRequired($editMode)">
				<xf:option value="">{{ phrase('no_selection') }}</xf:option>
			</xf:if>
			<xf:foreach loop="$definition.field_choices" key="$value" value="$label">
				<xf:option value="{$value}" required="{{ $definition.isRequired($editMode) ? 'required' : '' }}">{$label}</xf:option>
			</xf:foreach>
	</xf:radio>
</xf:macro>

<xf:macro id="custom_fields_edit_checkbox" arg-set="!" arg-definition="!" arg-editMode="!" arg-refId="" arg-namePrefix="custom_fields">

	<xf:checkbox name="{$namePrefix}[{$definition.field_id}]" value="{$set.{$definition.field_id}}"
		required="{{ $definition.isRequired($editMode) ? 'required' : '' }}"
		role="group" aria-labelledby="{$refId}"
		listclass="field_{$definition.field_id} listColumns">
			<xf:options source="$definition.field_choices" />
	</xf:checkbox>
</xf:macro>

<xf:macro id="custom_fields_edit_multiselect" arg-set="!" arg-definition="!" arg-editMode="!" arg-refId="" arg-namePrefix="custom_fields">

	<xf:macro id="custom_fields_edit_select"
		arg-set="{$set}"
		arg-definition="{$definition}"
		arg-editMode="{$editMode}"
		arg-refId="{$refId}"
		arg-multi="1"
		arg-namePrefix="{$namePrefix}" />
</xf:macro>

<xf:macro id="custom_fields_edit_stars" arg-set="!" arg-definition="!" arg-editMode="!" arg-refId="" arg-namePrefix="custom_fields">
	<xf:macro id="rating_macros::rating"
		arg-name="{$namePrefix}[{$definition.field_id}]"
		arg-controlId="{$refId}"
		arg-currentRating="{$set.{$definition.field_id}}"
		arg-deselectable="{{ $definition.isRequired($editMode) ? 'false' : 'true' }}"
		arg-row="{{ false }}" />
</xf:macro>]]></template>
  <template type="public" title="debug_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="debug" arg-controller="!" arg-action="!" arg-template="!" arg-link="{{ true }}" arg-classInfo="{{ true }}">
	<xf:if is="{$xf.debug}">
		<ul class="listInline listInline--bullet listInline--selfInline">
			<li><dl class="pairs pairs--inline debugResolution" title="{{ phrase('responsive_width')|for_attr }}">
				<dt class="debugResolution-label">{{ phrase('width') }}</dt>
				<dd class="debugResolution-output"></dd>
			</dl></li>
			<li><dl class="pairs pairs--inline">
				<dt>{{ phrase('total_queries') }}</dt>
				<dd><!--XF:QUERIES--></dd>
			</dl></li>
			<li><dl class="pairs pairs--inline">
				<xf:if is="$link">
					<dt>{{ phrase('total_time') }}</dt>
					<dd><a href="{{ debug_url() }}" rel="nofollow"><!--XF:PAGE_TIME-->s</a></dd>
				<xf:else />
					<dt>{{ phrase('total_time') }}</dt>
					<dd><!--XF:PAGE_TIME-->s</dd>
				</xf:if>
			</dl></li>
			<li><dl class="pairs pairs--inline">
				<dt>{{ phrase('max_memory') }}</dt>
				<dd><!--XF:MEMORY_PEAK--></dd>
			</dl></li>
			<xf:if is="$classInfo">
				<li class="cog-info">
					<xf:macro id="class_info"
						arg-controller="{$controller}"
						arg-action="{$action}"
						arg-template="{$template}" />
				</li>
			</xf:if>
		</ul>
	</xf:if>
</xf:macro>

<xf:macro id="class_info" arg-controller="!" arg-action="!" arg-template="!">
	<a data-xf-init="tooltip" data-click-hide="false"
		data-trigger="hover focus click"
		title="{$controller} :: {$action} &middot; {$template}"
		role="button" tabindex="0" aria-label="{{ phrase('class_information')|for_attr }}"><xf:fa icon="fa-cog" /></a>
</xf:macro>

<xf:macro id="debug_resolution">
	<xf:if is="{$xf.debug}">
		<span class="debugResolution" title="{{ phrase('responsive_width')|for_attr }}">
			<span class="debugResolution-label">{{ phrase('responsive_width:') }}</span>
			<span class="debugResolution-output"></span>
		</span>
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="delete_confirm" version_id="2020670" version_string="2.2.6"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{$confirmUrl}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_delete_following:') }}
				<xf:if is="$contentUrl">
					<strong><a href="{$contentUrl}">{$contentTitle}</a></strong>
				<xf:else />
					<strong>{$contentTitle}</strong>
				</xf:if>
				<xf:if is="$deletionImportantPhrase">
					<div class="blockMessage blockMessage--important blockMessage--iconic">
						{{ phrase_dynamic($deletionImportantPhrase) }}
					</div>
				</xf:if>
			</xf:inforow>
		</div>
		<xf:submitrow rowtype="simple" icon="delete" />
	</div>
</xf:form>]]></template>
  <template type="public" title="deletion_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="notice" arg-log="!" arg-message="">
	<ul class="listInline listInline--bullet listInline--selfInline">
		<xf:if is="$message is not empty">
			<li>{$message}</li>
		</xf:if>
		<li>{{ phrase('deleted_by_x', {'name': $log.delete_username ?: phrase('n_a')}) }}</li>
		<xf:if is="{$log}">
			<li><xf:date time="{$log.delete_date}" /></li>
			<xf:if is="{$log.delete_reason}">
				<li>{{ phrase('reason:') }} {$log.delete_reason}</li>
			</xf:if>
		</xf:if>
	</ul>
</xf:macro>]]></template>
  <template type="public" title="diff.less" version_id="2010270" version_string="2.1.2"><![CDATA[.diffListContainer
{
	overflow: auto;
	max-height: 400px;
	max-height: 80vh;
}

.diffList
{
	margin: 0;
	padding: 0;
	list-style: none;

	&.diffList--code
	{
		display: table;
		width: 100%;
		direction: ltr;

		.diffList-line
		{
			font-family: @xf-fontFamilyCode;
			white-space: pre;
			word-wrap: normal;
		}

		textarea
		{
			font-family: @xf-fontFamilyCode;
		}

		&.diffList--wrapped .diffList-line
		{
			white-space: pre-wrap;
			word-wrap: break-word;
		}
	}

	&.diffList--editable
	{
		.diffList-line--u,
		.diffList-conflict.is-resolved .is-chosen
		{
			cursor: pointer;
		}
	}
}

.diffList-line
{
	line-height: 1.5;
	min-height: 8px;
	padding: 0 @xf-paddingSmall;

	&.diffList-line--u
	{
		background-color: #F0F8FF;
		border: 1px solid #D0D8DF;
		color: #4040A0;
	}

	&.diffList-line--d
	{
		background-color: #FAE4E4;
		border: 1px solid #C86060;
		color: #882020;
	}

	&.diffList-line--i
	{
		background-color: #E4FBE4;
		border: 1px solid #60C860;
		color: #208820;
	}

	&.diffList-line--d + .diffList-line--i,
	&.diffList-line--i + .diffList-line--d
	{
		border-top: none;
	}

	textarea
	{
		box-sizing: border-box;
		width: 100%;
	}
}

.diffList-conflict
{
	background-color: #FFFADD;
	border: 1px solid #ddcaad;
	color: #4F4A2D;
}

.diffList-resolve
{
	border-bottom: 1px solid #ddcaad;
	border-top: 1px solid #ddcaad;
	padding: 5px 0;
	text-align: center;
}

.diffList
{
	.diffLine
	{
		line-height: 1.5;
		min-height: 8px;
		padding: 0 @xf-paddingSmall 0 @xf-paddingSmall;
	}
	
	.diff_d
	{
		background-color: #FAE4E4;
		border: 1px solid #C86060;
		color: #882020;
	}
	
	.diff_d+.diff_i
	{
		border-top: none;
	}
	
	.diff_i+.diff_d
	{
		border-top: none;
	}
	
	.diff_i
	{
		background-color: #E4FBE4;
		border: 1px solid #60C860;
		color: #208820;
	}
	
	.diff_u
	{
		background-color: #F0F8FF;
		border: 1px solid #D0D8DF;
		color: #4040A0;
	}
	
	.conflict
	{
		background-color: #FFFADD;
		border: 1px solid #ddcaad;
		color: #4F4A2D;
		
		.resolve
		{
			border-bottom: 1px solid #ddcaad;
			border-top: 1px solid #ddcaad;
			padding: 5px 0;
			text-align: center;
		}
	}
	
	textarea.editor
	{
		box-sizing: border-box;
		margin-top: 5px;
		margin: 0;
		width: 100%;
	}
}
]]></template>
  <template type="public" title="dragula.less" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[.gu-mirror {
	position: fixed !important;
	margin: 0 !important;
	z-index: 9999 !important;
	opacity: 0.8;
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
	filter: alpha(opacity=80);
}
.gu-hide {
	display: none !important;
}
.gu-unselectable {
	-webkit-user-select: none !important;
	-moz-user-select: none !important;
	-ms-user-select: none !important;
	user-select: none !important;
}
.gu-transit {
	opacity: 0.2;
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";
	filter: alpha(opacity=20);
}]]></template>
  <template type="public" title="edit_history_compare" version_id="2001170" version_string="2.0.11"><![CDATA[<xf:title>{$title} - {{ phrase('version_comparison') }}</xf:title>

<xf:breadcrumb source="$breadcrumbs" />

<xf:css src="public:diff.less" />

<div class="block">
	<div class="block-container">
		<div class="block-body block-row">
			<ul class="diffList">
				<xf:foreach loop="$diffs" value="$diff">
					<xf:set var="$diffHtml">{{ $diff.1|join('<br />') }}</xf:set>
					<li class="diffList-line diffList-line--{$diff.0}">{{ trim($diffHtml) !== '' ? $diffHtml : '&nbsp;' }}</li>
				</xf:foreach>
			</ul>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="edit_history_index" version_id="2000170" version_string="2.0.1"><![CDATA[<xf:title>{$title} - {{ phrase('edit_history') }}</xf:title>

<xf:breadcrumb source="$breadcrumbs" />

<xf:form action="{{ link('edit-history') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:datalist>
				<xf:datarow rowtype="header">
					<xf:cell class="dataList-cell--min">{{ phrase('old') }}</xf:cell>
					<xf:cell class="dataList-cell--min">{{ phrase('new') }}</xf:cell>
					<xf:cell width="30%">{{ phrase('edit_date') }}</xf:cell>
					<xf:cell colspan="2">{{ phrase('member') }}</xf:cell>
				</xf:datarow>
				<xf:datarow rowclass="dataList-row--noHover">
					<xf:cell class="dataList-cell--min dataList-cell--alt dataList-cell--action">
						&nbsp;
					</xf:cell>
					<xf:cell class="dataList-cell--min dataList-cell--alt dataList-cell--action">
						<label><input type="radio" name="new" value="0" checked="true" /></label>
					</xf:cell>
					<xf:cell colspan="3">
						<em>{{ phrase('current_version') }}</em>
					</xf:cell>
				</xf:datarow>
				<xf:foreach loop="$editHistory" key="$historyId" value="$history">
					<xf:datarow rowclass="dataList-row--noHover">
						<xf:cell class="dataList-cell--min dataList-cell--alt dataList-cell--action">
							<label><input type="radio" name="old" value="{$historyId}" {{ $oldId == $historyId ? "checked" : "" }} /></label>
						</xf:cell>
						<xf:cell class="dataList-cell--min dataList-cell--alt dataList-cell--action">
							<label><input type="radio" name="new" value="{$historyId}" /></label>
						</xf:cell>
						<xf:cell>
							<xf:date time="{$history.edit_date}" />
						</xf:cell>
						<xf:cell>
							<xf:username user="{$history.User}" />
						</xf:cell>
						<xf:action href="{{ link('edit-history/view', $history) }}" overlay="true" >
							{{ phrase('view') }}
						</xf:action>
					</xf:datarow>
				</xf:foreach>
				<xf:if is="$editCount && $editCount > $editHistory.count()">
					<xf:datarow>
						<xf:cell class="dataList-cell--alt" colspan="5">
							{{ phrase('this_content_edited_total_of_x_times_old_records_removed', {'count': $editCount|number}) }}
						</xf:cell>
					</xf:datarow>
				</xf:if>
			</xf:datalist>
		</div>
		<div class="block-footer">
			<span class="block-footer-controls">
				<xf:button type="submit" name="compare" value="1" class="button--primary">{{ phrase('compare_versions') }}</xf:button>
			</span>
		</div>
	</div>
	<xf:hiddenval name="content_type">{$contentType}</xf:hiddenval>
	<xf:hiddenval name="content_id">{$contentId}</xf:hiddenval>
</xf:form>]]></template>
  <template type="public" title="edit_history_view" version_id="2001170" version_string="2.0.11"><![CDATA[<xf:title>{$title} - {{ phrase('content_history') }}</xf:title>

<xf:breadcrumb source="$breadcrumbs" />

<div class="block">
	<div class="block-container">
		<h2 class="block-tabHeader tabs" data-xf-init="tabs" role="tablist">
			<a class="tabs-tab is-active" role="tab" tabindex="0" aria-controls="{{ unique_id('ehFormatted') }}">{{ phrase('formatted') }}</a>
			<a class="tabs-tab" role="tab" tabindex="0" aria-controls="{{ unique_id('ehRaw') }}">{{ phrase('raw') }}</a>
		</h2>
		<ul class="tabPanes block-body">
			<li class="block-row is-active" role="tabpanel" id="{{ unique_id('ehFormatted') }}">
				{$handler.getHtmlFormattedContent({$editHistory.old_text}, $content)|raw}
			</li>
			<li class="block-row" role="tabpanel" id="{{ unique_id('ehRaw') }}">
				<xf:textarea rows="10" readonly="readonly" value="{$editHistory.old_text}" />
			</li>
		</ul>
		<xf:form action="{{ link('edit-history/revert', $editHistory) }}" class="block-footer" ajax="true">
			<span class="block-footer-controls">
				<xf:checkbox>
					<xf:option name="confirm" value="1">
						<xf:dependent>
							<xf:button type="submit" name="revert" value="1" class="button--primary">
								{{ phrase('revert') }}
							</xf:button>
						</xf:dependent>
					</xf:option>
				</xf:checkbox>
			</span>
		</xf:form>
	</div>
</div>]]></template>
  <template type="public" title="editor" version_id="2020035" version_string="2.2.0 Beta 5"><![CDATA[<xf:if is="is_editor_capable()">
	<xf:css src="editor.less" />

	<xf:if is="$fullEditorJs">
		<xf:js src="vendor/froala/froala-compiled.full.js, xf/editor.js" />
	<xf:else />
		<xf:js prod="xf/editor-compiled.js" dev="vendor/froala/froala-compiled.js, xf/editor.js" />
	</xf:if>
	<!--[XF:include_js]-->

	<script class="js-editorToolbars" type="application/json">{$editorToolbars|json|raw}</script>
	<script class="js-editorToolbarSizes" type="application/json">{$editorToolbarSizes|json|raw}</script>
	<script class="js-editorDropdowns" type="application/json">{$editorDropdowns|json|raw}</script>
	<script class="js-editorLanguage" type="application/json">
		{
			"Align Center": "{{ phrase('align_center')|escape('json') }}",
			"Align Left": "{{ phrase('align_left')|escape('json') }}",
			"Align Right": "{{ phrase('align_right')|escape('json') }}",
			"Align Justify": "{{ phrase('justify_text')|escape('json') }}",
			"Align": "{{ phrase('alignment')|escape('json') }}",
			"Alignment": "{{ phrase('alignment')|escape('json') }}",
			"Back": "{{ phrase('back')|escape('json') }}",
			"Bold": "{{ phrase('weight_bold')|escape('json') }}",
			"By URL": "{{ phrase('by_url')|escape('json') }}",
			"Clear Formatting": "{{ phrase('remove_formatting')|escape('json') }}",
			"Code": "{{ phrase('code')|escape('json') }}",
			"Text Color": "{{ phrase('text_color')|escape('json') }}",
			"Decrease Indent": "{{ phrase('outdent')|escape('json') }}",
			"Delete Draft": "{{ phrase('delete_draft')|escape('json') }}",
			"Drafts": "{{ phrase('drafts')|escape('json') }}",
			"Drop image": "{{ phrase('drop_image')|escape('json') }}",
			"Drop video": "{{ phrase('drop_video')|escape('json') }}",
			"Edit Link": "{{ phrase('edit_link')|escape('json') }}",
			"Font Family": "{{ phrase('font_family')|escape('json') }}",
			"Font Size": "{{ phrase('font_size')|escape('json') }}",
			"Normal": "{{ phrase('paragraph_normal')|escape('json') }}",
			"Heading 1": "{{ phrase('heading_1')|escape('json') }}",
			"Heading 2": "{{ phrase('heading_2')|escape('json') }}",
			"Heading 3": "{{ phrase('heading_3')|escape('json') }}",
			"Increase Indent": "{{ phrase('indent')|escape('json') }}",
			"Inline Code": "{{ phrase('inline_code')|escape('json') }}",
			"Insert GIF": "{{ phrase('insert_gif') }}",
			"Insert Horizontal Line": "{{ phrase('insert_horizontal_line')|escape('json') }}",
			"Inline Spoiler": "{{ phrase('inline_spoiler')|escape('json') }}",
			"Insert Image": "{{ phrase('insert_image')|escape('json') }}",
			"Insert Link": "{{ phrase('insert_link')|escape('json') }}",
			"Insert": "{{ phrase('insert')|escape('json') }}",
			"Italic": "{{ phrase('italic')|escape('json') }}",
			"List": "{{ phrase('list')|escape('json') }}",
			"Loading image": "{{ phrase('loading_image')|escape('json') }}",
			"Media": "{{ phrase('media')|escape('json') }}",
			"More Text": "{{ phrase('more_options...')|escape('json') }}",
			"More Paragraph": "{{ phrase('more_options...')|escape('json') }}",
			"More Rich": "{{ phrase('more_options...')|escape('json') }}",
			"More Misc": "{{ phrase('more_options...')|escape('json') }}",
			"Open Link": "{{ phrase('open_link')|escape('json') }}",
			"or click": "{{ phrase('or_click_here')|escape('json') }}",
			"Ordered List": "{{ phrase('ordered_list')|escape('json') }}",
			"Paragraph Format": "{{ phrase('paragraph_format')|escape('json') }}",
			"Preview": "{{ phrase('preview')|escape('json') }}",
			"Quote": "{{ phrase('quote')|escape('json') }}",
			"Redo": "{{ phrase('redo')|escape('json') }}",
			"Remove": "{{ phrase('remove')|escape('json') }}",
			"Replace": "{{ phrase('replace')|escape('json') }}",
			"Save Draft": "{{ phrase('save_draft')|escape('json') }}",
			"Smilies": "{{ phrase('smilies')|escape('json') }}",
			"Something went wrong. Please try again.": "{{ phrase('something_went_wrong_please_try_again')|escape('json') }}",
			"Spoiler": "{{ phrase('spoiler')|escape('json') }}",
			"Strikethrough": "{{ phrase('strike_through')|escape('json') }}",
			"Text": "{{ phrase('text')|escape('json') }}",
			"Toggle BB Code": "{{ phrase('toggle_bb_code')|escape('json') }}",
			"Underline": "{{ phrase('underline')|escape('json') }}",
			"Undo": "{{ phrase('undo')|escape('json') }}",
			"Unlink": "{{ phrase('unlink')|escape('json') }}",
			"Unordered List": "{{ phrase('unordered_list')|escape('json') }}",
			"Update": "{{ phrase('update')|escape('json') }}",
			"Upload Image": "{{ phrase('upload_image')|escape('json') }}",
			"Uploading": "{{ phrase('uploading')|escape('json') }}",
			"URL": "{{ phrase('url')|escape('json') }}",
			"Insert Table": "{{ phrase('insert_table')|escape('json') }}",
			"Table Header": "{{ phrase('table_header')|escape('json') }}",
			"Remove Table": "{{ phrase('remove_table')|escape('json') }}",
			"Row": "{{ phrase('row')|escape('json') }}",
			"Column": "{{ phrase('column')|escape('json') }}",
			"Insert row above": "{{ phrase('insert_row_above')|escape('json') }}",
			"Insert row below": "{{ phrase('insert_row_below')|escape('json') }}",
			"Delete row": "{{ phrase('delete_row')|escape('json') }}",
			"Insert column before": "{{ phrase('insert_column_before')|escape('json') }}",
			"Insert column after": "{{ phrase('insert_column_after')|escape('json') }}",
			"Delete column": "{{ phrase('delete_column')|escape('json') }}",
			"Ctrl": "{{ phrase('ctrl')|escape('json') }}",
			"Shift": "{{ phrase('shift')|escape('json') }}",
			"Alt": "{{ phrase('alt')|escape('json') }}",
			"Insert Video": "{{ phrase('insert_video')|escape('json') }}",
			"Upload Video": "{{ phrase('upload_video')|escape('json') }}",
			"Width": "{{ phrase('width')|escape('json') }}",
			"Height": "{{ phrase('height')|escape('json') }}",
			"Change Size": "{{ phrase('change_size')|escape('json') }}",
			"None": "{{ phrase('none')|escape('json') }}",
			"Alternative Text": "{{ phrase('alt_text')|escape('json') }}",
			"__lang end__": ""
		}
	</script>

	<script class="js-editorCustom" type="application/json">
		{$customIcons|json|raw}
	</script>

	<script class="js-xfEditorMenu" type="text/template">
		<div class="menu" data-menu="menu" aria-hidden="true"
			data-href="{{ mustache('href') }}"
			data-load-target=".js-xfEditorMenuBody">
			<div class="menu-content">
				<div class="js-xfEditorMenuBody">
					<div class="menu-row">{{ phrase('loading...') }}</div>
				</div>
			</div>
		</div>
	</script>

	<textarea name="{$htmlName}"
		class="input js-editor u-jsOnly"
		data-xf-init="editor"
		data-original-name="{$name}"
		data-buttons-remove="{$removeButtons|join(',')}"
		style="visibility: hidden; height: {{ $height + 37 }}px; {$styleAttr}"
		aria-label="{{ phrase('rich_text_box')|for_attr }}"
		{$attrsHtml|raw}>{$htmlValue}</textarea>

	<xf:comment>37, above, refers to the total height of the editor toolbar</xf:comment>

	<input type="hidden" value="{$value}" data-bb-code="{$name}" />

	<noscript>
		<textarea name="{$name}" class="input" aria-label="{{ phrase('rich_text_box')|for_attr }}">{$value}</textarea>
	</noscript>

<xf:else />

	<textarea name="{$name}" class="input input--fitHeight js-editor" style="min-height: {$height}px; {$styleAttr}" data-xf-init="textarea-handler user-mentioner emoji-completer draft-trigger" aria-label="{{ phrase('rich_text_box')|for_attr }}" {$attrsHtml|raw}>{$value}</textarea>

</xf:if>]]></template>
  <template type="public" title="editor.less" version_id="2030070" version_string="2.3.0"><![CDATA[/* XF-RTL:disable */
{{ include('editor_base.less') }}
/* XF-RTL:enable */

@_editorBorderRadius: xf-default(@xf-input--border-radius, @xf-borderRadiusMedium);
@_editorBorderColor: var(--input-border-heavy) var(--input-border-light) var(--input-border-light) var(--input-border-heavy);
//@_editorFocusBorderColor: xf-default(@xf-inputFocus--border-top-color, @xf-borderColorHeavy) xf-default(@xf-inputFocus--border-right-color, @xf-borderColorLight) xf-default(@xf-inputFocus--border-bottom-color, @xf-borderColorLight) xf-default(@xf-inputFocus--border-left-color, @xf-borderColorHeavy);
@_editorButtonGroupHPadding: 12px;
@_editorButtonGroupHPaddingSmall: 6px;

.fr-box.fr-basic
{
	background: @xf-editorBg;
	border: solid 1px @xf-borderColor;
	border-color: @_editorBorderColor;
	.border-radius(@_editorBorderRadius);

	.fr-toolbar.fr-top
	{
		background: @xf-editorToolsBg;
	}

	&.is-focused
	{
		background: @xf-editorFocusBg;
		//border-color: @_editorFocusBorderColor;

		.fr-element
		{
			color: @xf-editorFocusColor;
		}

		.fr-toolbar.fr-top
		{
			background: @xf-editorToolsFocusBg;
		}
	}

	// regular border instead of an 'input' border
	&.is-preview,
	&.is-preview .fr-toolbar .fr-btn-grp.rte-tab--preview
	{
		background: @xf-contentBg;
		border-color: @xf-borderColor;
	}

	.fr-wrapper
	{
		border: none;
	}

	.fr-element
	{
		.m-inputZoomFix();
		padding-top: (@editor-padding / 2);
	}
}

.fr-toolbar
{
	@_more-spacer: 4px;

	display: flex;
	flex-wrap:  wrap;
	border: none;
	background: transparent;
	.border-radius(@_editorBorderRadius @_editorBorderRadius 0 0);

	.fr-command.fr-btn
	{
		display: inline-flex;
		align-items: center;
		justify-content: center;

		// context sensitivity for toolbar buttons (highlight [B] when cursor is on bold text etc.)
		&.fr-active:not(.fr-disabled)
		{
			color: @xf-editorButtonActiveColor;
		}

		// de-emphasize the 'more' buttons slightly
		&[data-cmd^="more"]
		{
			opacity: 0.5;

			&.fr-open
			{
				opacity: 1
			}

			i
			{
				width: 16px;
			}
		}

		&.fr-dropdown
		{
			margin-right: 8px;

			&:last-of-type
			{
				margin-right: 2px;
			}
		}
	}

	// BUTTON GROUP HANDLING
	.fr-btn-grp
	{
		// using CSS variables here but we have a fallback for older browsers (for now)
		--hpadding: @_editorButtonGroupHPadding;

		display: inline-flex;

		border-style: solid;
		border-width: 0px;
		border-color: @_editorBorderColor;

		margin: 0;
		padding: @_more-spacer 0 0 @_editorButtonGroupHPadding; // basic padding for older browsers
		padding: @_more-spacer 0 0 var(--hpadding);

		// hide empty groups completely, just in case we have alternative padding specified later on
		&:empty
		{
			padding: 0 !important;
		}

		//&:nth-child(even)
		//{
		//	background: rgba(0,0,0,.05);
		//}

		&.fr-float-left
		{
			+ .fr-btn-grp.fr-float-right:not(.rte-tab--preview)
			{
				flex: 1 1 0;
				justify-content: flex-end;
			}
		}

		&.rte-tab--beforePreview
		{
			padding-right: @_editorButtonGroupHPadding;
			padding-right: var(--hpadding);

			&.fr-float-left
			{
				// make sure this expands to fill the space so the preview border is correct
				flex-grow: 1;
			}
		}

		// tabify inactive groups
		&.rte-tab--inactive
		{
			border-bottom-width: 1px;
		}

		&.rte-tab--preview
		{
			border-left-width: 1px;
			.border-radius(0 @_editorBorderRadius 0 0);

			// pad the button to make it fill the tab
			// normally padding: 4px, 17px, 0, 22px; margin: 0;
			padding: 0 !important;

			.fr-command.fr-btn
			{
				padding: 4px (@_editorButtonGroupHPadding + 5px) 0px (@_editorButtonGroupHPadding + 5px);
				padding: 4px ~'calc(var(--hpadding) + 5px)' 0px ~'calc(var(--hpadding) + 5px)';
				height: 36px;
				.border-radius(0 @_editorBorderRadius 0 0);

				&:hover
				{
					background: transparent;
				}
			}
		}
	}

	.fr-newline
	{
		margin: 0;
	}

	// 'more' toolbar stuff
	.fr-command.fr-btn.fr-open
	{
		margin-top: @btn-margin;
		padding-bottom: @_more-spacer;
		height: (@btn-height + @_more-spacer);
	}

	.fr-more-toolbar
	{
		position: absolute;
		bottom: 0;

		&[style*="padding-left: 0px"]
		{
			// Padding is used on the more toolbar for button alignment. If it's 0 then we don't want
			// the buttons to be jammed up against the edge.
			padding-left: @_editorButtonGroupHPaddingSmall !important;
		}
	}
}

.fr-separator
{
	float: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: @xf-editorButtonDisabledColor;

	&.fr-vs
	{
		height: (@btn-height - @btn-margin * 2);
		margin: 4px;
	}

	.fr-toolbar > &
	{
		// hide separators directly under the toolbar rather in groups - this only happens as
		// a resize quirk
		display: none;
	}
}

// RTE disabled (BB code mode) styling
.fr-box textarea.input
{
	border: none;
	background: none;
}

// some adjustments for different screen resolutions
.fr-box.fr-basic
{
	&[data-size="XL"],
	&[data-size="LG"],
	&[data-size="MD"]
	{
		.fr-btn-grp
		{
			padding-right: @_editorButtonGroupHPadding;
		}
	}

	// shrink the 'Preview' padding at smaller resolutions
	&[data-size="SM"],
	&[data-size="XS"]
	{
		.fr-btn-grp
		{
			--hpadding: @_editorButtonGroupHPaddingSmall;
		}
	}

	// show the 'Preview' text on the preview tab at larger resolutions
	// this width is defined by the width of the page 50px larger than the size at which quick reply turns on the full-size toolbar
	@media (min-width: 1132px)
	{
		&[data-size="XL"] .rte-tab--preview span.fr-sr-only
		{
			font-size: 13px;

			// undo the original class
			position: static;
			width: auto;
			height: auto;
			clip: auto;
			overflow: visible;
			margin: 0;
		}
	}
}



.fr-toolbar,
.fr-popup,
.fr-modal
{
	// make FontAwesome iconography respect btn-font-size
	.fr-command.fr-btn i
	{
		font-size: @xf-editorButtonSize;

		// fix svg nested in i
		svg
		{
			margin: 0;
			width: inherit;
		}
	}

	// improve positioning of FA buttons
	.fr-tabs .fr-command.fr-btn i
	{
		margin: ((@popup-tab-button-height - @popup-btn-svg-size) / 2) ((@popup-tab-button-width - @popup-btn-svg-size) / 2);

		// fix svg nested in i
		svg
		{
			height: 1em;
			margin: unset;
		}
	}

	.fr-command.fr-btn svg path
	{
		fill: currentColor;
		.m-transition(none);
	}

	// adjust separator height in this scenario to match button height
	.fr-tabs .fr-separator.fr-vs
	{
		margin-top: 2px;
		margin-bottom: 2px;
	}

	// some elements briefly flash through dropdowns on transition
	z-index: 3;
}

.fr-command.fr-btn + .fr-dropdown-menu .fr-dropdown-wrapper .fr-dropdown-content
{
	ul.fr-dropdown-list li a i
	{
		font-size: @xf-editorButtonSize;
		margin: 8px 7px;

		// fix svg nested in i
		svg
		{
			width: 1em;
			height: 1em;
			margin: unset;
		}
	}
}

// setup visuals in the editor match visuals in messages
.fr-view
{
	img.fr-draggable:not(.smilie),
	.bbImage
	{
		max-width: 100%;
		height: auto;
	}

	.fr-video
	{
		position: relative;

		video
		{
			width: 560px;
			max-width: 100%;
		}
	}

	.fr-audio
	{
		-webkit-user-select: none;
		-moz-user-select: none;
		-ms-user-select: none;
		user-select: none;

		audio
		{
			width: 560px;
			max-width: 100%;
		}
	}

	p
	{
		margin-bottom: 0;
		margin-top: 0;
	}

	&.fr-element
	{
		.fr-disabled
		{
			.xf-inputDisabled() !important;
		}

		@attach-margin: @xf-bbCodeImgFloatMargin;
		@attach-margin-after: @xf-bbCodeImgFloatMarginAfter;

		img.fr-dii
		{
			display: inline-block;
			float: none;
			margin: 0;
			max-width: 100%;

			&.fr-fil
			{
				float: left;
				margin: @attach-margin @attach-margin-after @attach-margin-after 0;
				max-width: calc(~'100% - @{attach-margin}');
			}

			&.fr-fir
			{
				float: right;
				margin: @attach-margin 0 @attach-margin-after @attach-margin-after;
				max-width: calc(~'100% - @{attach-margin}');
			}
		}

		.fr-video.fr-dvi
		{
			display: inline-block;
			float: none;
			margin-left: @attach-margin;
			margin-right: @attach-margin;
			max-width: calc(~'100% - (2 * @{attach-margin})');
			outline: @xf-borderSize solid @xf-borderColorLight;

			&.fr-fvl
			{
				float: left;
				margin: @attach-margin @attach-margin-after @attach-margin-after 0;
				max-width: calc(~'100% - @{attach-margin}');
			}

			&.fr-fvr
			{
				float: right;
				margin: @attach-margin 0 @attach-margin-after @attach-margin-after;
				max-width: calc(~'100% - @{attach-margin}');
			}
		}
	}

	.m-tableBase();

	h2,
	h3,
	h4
	{
		margin: .5em 0;
		clear: both;
	}

	h2 { font-size: @xf-fontSizeLargest; }
	h3 { font-size: @xf-fontSizeLarger; }
	h4 { font-size: @xf-fontSizeLarge; }

	hr
	{
		border: none;
		border-top: @xf-borderSize solid @xf-borderColorHeavy;
		clear: both;
	}

	code
	{
		margin: 0;
		.xf-bbCodeInlineCode();
		font-family: @xf-fontFamilyCode;
		line-height: @xf-lineHeightDefault;
		box-decoration-break: clone;
		-webkit-box-decoration-break: clone;
		white-space: pre-wrap;
	}

	// quote tag emulation
	blockquote
	{
		.xf-bbCodeBlock();
		margin: .5em 0;
		padding: @xf-paddingMedium @xf-paddingLarge;
		font-size: @xf-fontSizeSmall;
		display: flow-root;

		.m-tableBase();

		&:first-child
		{
			margin-top: 0;
		}

		&:last-child
		{
			margin-bottom: 0;
		}

		&[data-quote]
		{
			&:before
			{
				display: block;
				content: attr(data-quote) "{$xf.language.label_separator}";
				.xf-bbCodeBlockTitle();
				padding: @xf-paddingMedium @xf-paddingLarge;
				margin: -@xf-paddingMedium -@xf-paddingLarge @xf-paddingMedium -@xf-paddingLarge;
				// this margin combination makes the attribution take the full width and have bottom padding
			}
		}
	}
}

// try to make Froala inputs look like ours
.fr-popup
{
	.fr-input-line
	{
		padding: 18px 0 8px;

		input[type="text"],
		textarea
		{
			.xf-input();
			margin: 0;
			line-height: @xf-lineHeightDefault;
			.m-transition(background, color;);
			height: auto;

			&:hover
			{
				.xf-input(border);
			}

			&:focus
			{
				.xf-input(border);
				.xf-input(padding);
				.xf-inputFocus();
			}

			.m-inputZoomFix();
		}

		input + label,
		textarea + label
		{
			line-height: 1.2;
			font-size: 12px;
			color: fade(xf-default(@xf-input--color, @xf-textColor), 40%);
			background: transparent;
			top: 28px;
		}

		input.fr-not-empty + label,
		textarea.fr-not-empty + label
		{
			color: @xf-textColorMuted;
			top: 2px;
		}
	}

	.fr-action-buttons
	{
		height: auto;
		.m-frCommandStyle();
	}

	// fix FA selected color indicator
	.fr-color-set > span .fr-selected-color
	{
		.m-faIcon(@fa-var-check);
		height: 100%;
		margin: 0 auto;
	}
}

.fr-popup .fr-table-size .fr-select-table-size > span.hover > span
{
	background: fade(@ui-color, 0.3);
}

.fr-quick-insert
{
	padding-right: 0;
	margin-left: (@editor-padding / 2);

	// bring this into our z-index levels
	z-index: @zIndex-2;
}

// this toolbar is redundant and annoying
.fr-second-toolbar
{
	display: none;
}

.m-frCommandStyle()
{
	button.fr-command
	{
		.m-buttonBase();
		.xf-buttonPrimary();
		.m-buttonBlockColorVariationSimple(xf-default(@xf-buttonPrimary--background-color, transparent));

		height: auto;
		min-width: 0;
		line-height: @xf-lineHeightDefault;

		&:hover,
		&:active,
		&:focus
		{
			// overriding Froala's hover
			color: @xf-buttonPrimary--color;
		}
	}
}

// Fix for broken CSS in ui/popup.scss, plugin/image.scss, plugin/video.scss
// See: https://github.com/froala/wysiwyg-editor/issues/3878
.fr-popup textarea { resize: none; }

.fr-image-resizer
{
	&.fr-active { display: block; }

	.fr-handler
	{
		&.fr-hnw { cursor: nw-resize; }
		&.fr-hne { cursor: ne-resize; }
		&.fr-hsw { cursor: sw-resize; }
		&.fr-hse { cursor: se-resize; }
	}
}

.fr-box .fr-video-resizer
{
	&.fr-active { display: block; }

	.fr-handler
	{
		&.fr-hnw { cursor: nw-resize; }
		&.fr-hne { cursor: ne-resize; }
		&.fr-hsw { cursor: sw-resize; }
		&.fr-hse { cursor: se-resize; }
	}
}

// #### Smilies, emoji and GIF popup

@_menu-padding: @xf-paddingMedium;
@_menu-padding-large: @xf-paddingLarge;

.menu--emoji
{
	width: 412px;
}

.menu--gif
{
	width: 500px;
}

.menu--emoji,
.menu--gif
{
	max-width: calc(~'100% - @{xf-pageEdgeSpacer}');

	.menu-content
	{
		position: relative;
	}

	.menu-scroller
	{
		max-height: 250px;
		border-top: 0;
	}

	.menu-row
	{
		padding: @_menu-padding @_menu-padding;

		&.menu-row--insertedMessage
		{
			.m-hiddenEl(true);
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			border-bottom: @xf-borderSize solid @xf-borderColorLight;
		}

		&.menu-row--search
		{
			border-bottom: @xf-borderSize solid @xf-borderColor;
		}
	}

	.menu-emojiInsertedMessage
	{
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 35px;
		font-size: @xf-fontSizeNormal;

		img { max-height: 32px; }
		span { margin-left: .5em }
	}

	.menu-header
	{
		background: none;
		.xf-formSectionHeader();
		background-color: @xf-contentBg;
		z-index: @zIndex-1;
		font-size: @xf-fontSizeNormal;
		position: -webkit-sticky;
		position: sticky;
		padding: @_menu-padding @_menu-padding-large;
		top: 0;
	}

	.block-body--emoji
	{
		border-top: @xf-borderSize solid @xf-borderColorLight;
	}

	.is-hidden
	{
		display: none;
	}
}

.emojiList
{
	.m-listPlain();

	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;

	margin-right: -3px;
	margin-bottom: -3px;

	> li
	{
		min-width: 32px;
		margin-right: 3px;
		margin-bottom: 3px;

		.border-radius(@xf-borderRadiusMedium);
		cursor: pointer;

		&:hover,
		&:focus
		{
			background-color: @xf-paletteColor2;
		}

		a
		{
			min-width: 32px;
			height: 32px;
			font-size: 24px;

			display: flex;
			justify-content: center;
			align-items: center;
			cursor: pointer;
			overflow: hidden;

			&:hover,
			&:focus
			{
				text-decoration: none;
			}

			img
			{
				max-height: 32px;
			}

			.smilie.smilie--emoji
			{
				width: 22px;
			}

			.smilie--lazyLoad
			{
				visibility: hidden;
			}
		}
	}
}

// ### Editor placeholder system (where the editor is hidden until clicked)

.editorPlaceholder
{
	.is-hidden
	{
		display: none;
	}

	cursor: text;

	.editorPlaceholder-placeholder
	{
		.input
		{
			padding: @xf-paddingLarge;

			span
			{
				&:before
				{
					.m-faBase();
					.m-faContent(@fa-var-pen);
				}
			}
		}
	}
}

// ### Editor draft saving indicator

.editorDraftIndicator
{
	.m-transition();
	opacity: 0;
	position: absolute;
	bottom: 6px;
	right: 8px;
	width: 8px;
	height: 8px;
	border-radius: 4px;
	background: rgb(127, 185, 0);

	&.is-active
	{
		opacity: 1;
	}
}

.xfPreview
{
	.m-clearFix();
}]]></template>
  <template type="public" title="editor_base.less" version_id="2030033" version_string="2.3.0 Beta 3"><![CDATA[/***** froala.less *****/

/***** variables.less *****/


// Theme Name.
@theme: 'theme';

// Generic.
@white: #FFF;
@light-black: #333333;
@black: #000;
@gray: #CCCCCC;
@dark-grey: #999999;
@font-family: Arial, Helvetica, sans-serif;
@border-radius: 2px;
@transition-timing: 0.2s ease 0s;
@bg-color: #f5f5f5;

// UI colors
@ui-color: #0098f7;
@ui-text: #222222;
@ui-hover-light-color: mix(@white, #999, 90%);
@ui-hover-color: mix(@white, #999, 80%);
@ui-focused-color: mix(@white, #999, 60%);
@ui-disabled-color: mix(@white, #000, 74%);
@ui-active-color: #d6d6d6;
@ui-bg: @white;
@ui-font-size: 14px;
@ui-border-color: @ui-text;
@ui-border-top: 5px solid @ui-border-color;
@ui-border-hover-color:#515151;
@ui-bg-color: #efefef;
@ui-svg-size: 24px;
@ui-box-shadow: 0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 1px 5px 0 rgba(0,0,0,.12);
@ui-bg-color-more: @bg-color;

// Separator
@separator-size: 1px;
@separator-color: mix(@white, #999, 80%);
@separator-margin: 8px 4px;

// Toolbar
@toolbar-transition-timing: 0.5s;
@toolbar-newline-margin: 9px;
@toolbar-newline-height: 1px;
@toolbar-newline-color: @ui-bg-color;
@btn-more-open-margin-top: 10px;
@btn-more-open-margin-bottom: -1px;
@btn-size: 36px;

// Logo
@logo-svg-height: 20px;
@logo-svg-width: 47px;
@logo-svg-margin: 7px 0;
@logo-transition-timing: 0.3s;
@logo-span-padding: 11px 5px 10px 15px;
@logo-span-font-size: 12px;
@logo-color: #b1b2b7;

// Screen sizes.
@screen-xs: 480px;
@screen-sm: 768px;
@screen-md: 992px;
@screen-lg: 1200px;
@screen-xs-max: (@screen-sm - 1);
@screen-sm-max: (@screen-md - 1);
@screen-md-max: (@screen-lg - 1);
@screen-lg-max: 'auto';

// Tooltip
@tooltip-bg: @ui-text;
@tooltip-text: @white;
@tooltip-font-size: 11px;
@tooltip-line-height: 22px;

// Editor properties.
@editor-padding: 20px;
@editor-bg: @white;
@editor-font-family: sans-serif;
@editor-font-color: #414141;
@editor-font-size: 14px;
@editor-line-height: 1.6;
@editor-shadow-level: 1;
@editor-border: 1px solid @gray;
@editor-border-radius: 10px;
@editor-align: left;

// Text selection colors.
@selection-bg: rgba(181, 214, 253, 0.8);
@selection-text: #000;

// Placeholder properties.
@placeholder-size: @editor-font-size;
@placeholder-font-family: @editor-font-family;
@placeholder-color: #AAA;

// Button colors.
@btn-text: @light-black;
@btn-hover-text: @light-black;
@btn-hover-bg: #ebebeb;

@btn-active-text: @ui-color;
@btn-active-bg: @ui-active-color;
@btn-active-hover-text: @btn-active-text;

@btn-selected-text: @btn-text;
@btn-selected-bg: @ui-focused-color;

@btn-disabled-color: @ui-disabled-color;
@btn-disabled-opacity: 0.3;

// Button size.
@btn-width: 38px;
@btn-height: 40px;
@btn-margin: 4px;
@btn-font-size: 24px;
@btn-more-toolbar-height: 34px;
@btn-border-radius: 4px;
@btn-dropdown-border-radius: 0 @btn-border-radius @btn-border-radius 0;
@btn-hover-border-radius: @btn-border-radius 0 0 @btn-border-radius;
@btn-svg-size: @ui-svg-size;
@btn-tab-border-radius: 6px 6px 0 0;

// Second toolbar.
@more-toolbar-margin: 0 17px 0 12px;
@more-toolbar-margin-sm: 0 7px 0 6px;
@more-toolbar-btn-height: calc(@btn-height + (@btn-margin * 2));

// Image.
@image-margin: 5px;
@image-padding: 0 1px;

// Image and Video
@handler-size: 12px;
@handler-size-lg: 10px;

// Code View
@code-view-bg: @white;
@code-view-text: @black;

// Table properties.
@table-border: 1px solid #DDD;
@table-resizer: 1px solid @ui-color;

// Insert table grid.
@insert-table-grid: @table-border;

// Quick insert.
@floating-btn-bg: @white;
@floating-btn-text: @light-black;
@floating-btn-hover-bg: @btn-hover-bg;
@floating-btn-hover-text: @floating-btn-text;
@floating-btn-size: 40px;
@floating-btn-font-size: 14px;
@floating-btn-border: none;
@floating-svg-btn-size: @ui-svg-size;
@floating-svg-btn-margin: 8px;
@floating-btn-padding: 6px 10px 10px 10px;
@floating-btn-box-shadow: @ui-box-shadow;

@quick-insert-padding-right: 10px;

// List menu.
@dropdown-arrow-width: 4px;
@dropdown-max-height: 275px;
@dropdown-options-width: 16px;
@dropdown-options-margin-left: -5px;
@dropdown-options-border-left: solid 1px #FAFAFA;
@dropdown-transition-timing: 0.3s;
@dropdown-border-radius: 4px;
@dropdown-list-padding: 8px 0;
@dropdown-list-min-width: 72px;
@dropdown-list-item-font-size: 15px;
@dropdown-menu-box-shadow: @ui-box-shadow;

// Image manager.
@modal-bg: @white;
@modal-overlay-color: @black;
@modal-head-height: 56px;
@modal-head-padding: 0 10px;
@modal-btn-padding: (@floating-btn-size - @floating-svg-btn-size) / 2;
@modal-btn-margin-top: 10px;
@modal-tags-border-radius: 32px;
@modal-tags-padding: 0 20px;
@modal-link-tags-padding: 6px 12px;
@modal-link-tags-margin: 8px 0 8px 8px;
@modal-selected-tag-bg: #EcF5Ff;
@modal-wrapper-border-radius: 10px;
@modal-wrapper-margin-lg: 20px auto;
@modal-wrapper-margin-md: 50px auto;
@modal-wrapper-margin-sm: 30px auto;
@modal-wrapper-box-shadow: 0 3px 5px -1px rgba(0,0,0,.2), 0 6px 10px 0 rgba(0,0,0,.14), 0 1px 18px 0 rgba(0,0,0,.12);
@modal-head-min-height: 42px;
@modal-close-margin: 10px;
@modal-heading-font-size: 20px;
@modal-heading-padding: 19px 10px;
@modal-body-min-width: 150px;
@modal-body-btn-height: @btn-size;
@modal-body-btn-padding: 10px;
@modal-body-padding-bottom: 20px;
@modal-head-line-height: 18px;
@modal-wrapper-min-width: 300px;
@modal-overlay-opacity: 0.5;

// Destroy buttons (delete in image manager).
@modal-destroy-btn-bg: #B8312F;
@modal-destroy-btn-text: @white;
@modal-destroy-btn-hover-bg: mix(contrast(@modal-destroy-btn-bg, @black, @white), @modal-destroy-btn-bg, 10%);
@modal-destroy-btn-hover-text: @white;

// Popups
@popup-layer-width: 260px;
@popup-border-radius: 6px;
@popup-min-width: 276px;
@popup-container-max-height: 200px;
@popup-icon-size: @ui-svg-size;
@popup-tab-button-width: 46px;
@popup-tab-button-height: @btn-height;
@popup-box-shadow: 0 3px 5px -1px rgba(0,0,0,.2), 0 6px 10px 0 rgba(0,0,0,.14), 0 1px 18px 0 rgba(0,0,0,.12);
@popup-action-btn-spacing: 10px;
@popup-margin-top: @popup-action-btn-spacing;
@popup-layer-margin: 20px;
@popup-action-button-font-size: 16px;
@popup-only-btn-padding: 6px 10px;
@popup-btn-svg-size: @ui-svg-size;
@popup-border-margin: 20px;
@popup-border-padding: 20px;
@popup-icon-font-size: 20px;
@popup-padding: 5px;
@popup-icon-padding: 6px;
@popup-emoticon-container-width: 368px;
@popup-sc-container-width: @popup-emoticon-container-width;
@popup-fa-container-width: 506px;
@popup-sm-ie-width: 236px;
@popup-fa-icon-size: 18px;
@popup-fa-icon-padding: 8px;
@popup-fa-icon-margin: 6px;
@popup-fa-icon-font-size: 16px;
@popup-fa-grid-icon-size: 45px;

// Inputs.
@input-border-color: @dark-grey;
@input-label-color: mix(@white, #000, 50%);
@input-line-padding: 15px 0;
@input-border-radius: 2px;
@input-border-width: 1px;
@input-focus-border-width: 2px;
@input-padding-left-right: 12px;
@input-padding-top-bottom: 4px;
@input-padding: @input-padding-top-bottom @input-padding-left-right;
@input-focus-padding: (@input-padding-top-bottom - @input-focus-border-width + @input-border-width) (@input-padding-left-right - @input-focus-border-width + @input-border-width);
@input-height: 46px;
@input-label-font-size: 14px;
@input-label-font-size-after: 11px;
@input-label-top: 29px;
@input-label-top-after: 9px;
@input-label-left: 12px;
@input-label-left-after: 4px;
@input-label-padding: 4px;
@input-margin-bottom: 1px;

// Checkbox
@checkbox-size: 18px;
@checkbox-padding: 10px;
@checkbox-margin: 2px;
@checbox-svg-size: 10px;
@checkbox-line-margin-top: 10px;
@checkbox-line-font-size: 14px;
@checkbox-line-label-margin: 0 5px;
@checkbox-line-height: 1.4px;
@checbox-active-bg: #EcF5Ff;
@checkbox-opacity: 0.8;

// Quote.
@blockquote-level1-color: #5E35B1;
@blockquote-level2-color: #00BCD4;
@blockquote-level3-color: #43A047;

// Char counter.
@char-counter-text-color: @dark-grey;
@char-counter-font-size: 14px;
@char-counter-font-family: sans-serif;
@char-counter-padding: 10px;

@drag-helper-border: solid 1px @ui-color;
@drag-helper-bg: @ui-color;

// Document ready.
@document-ready-padding: 30px;
@document-ready-bg-color: @ui-bg-color;

// Colors
@color-input-line-padding: 15px 0 0;
@color-action-button-padding: 17px 0 0;
@color-span-size: 32px;
@color-remove-svg-margin: 4px;
@color-line-height: 32px;
@color-font-size: 13px;

// Emoticons
@emoticon-tab-padding: 6px;
@emoticon-tab-btn-padding: 0 0 0 14px;

// Image Manager
@image-manager-list-margin: 0 20px;
@image-manager-not-available-padding: 12px 0;

//Special Character
@special-char-btn-padding: 10px 15px;


// ################# CUSTOM OVERRIDES ################
{{ include('editor_override.less') }}


/***** mixins.less *****/

.resize(@val) {
  resize: @val;
  -moz-resize: @val;
  -webkit-resize: @val;
}

.opacity(@opacity: 0.5) {
	-webkit-opacity: 	@opacity;
	-moz-opacity: 		@opacity;
	opacity: 		@opacity;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
}

.transition(@transition...) {
	-webkit-transition: @transition;
	-moz-transition:    @transition;
	-ms-transition:     @transition;
	-o-transition:      @transition;
}

.transform(@string) {
	-webkit-transform: @string;
	-moz-transform: 	 @string;
	-ms-transform: 		 @string;
	-o-transform: 		 @string;
}

.box-sizing(@type: border-box) {
	-webkit-box-sizing: @type;
	-moz-box-sizing:    @type;
	box-sizing:         @type;
}

.border-radius(@radius: 0) {
  border-radius: @radius;
  -moz-border-radius: @radius;
  -webkit-border-radius: @radius;

  -moz-background-clip:    padding;
	-webkit-background-clip: padding-box;
	background-clip:         padding-box;
}

.user-select(@select) {
  user-select: @select;
  -o-user-select:@select;
  -moz-user-select: @select;
  -khtml-user-select: @select;
  -webkit-user-select: @select;
  -ms-user-select: @select;
}

.box-shadow(@shadow) {
  -webkit-box-shadow: @shadow;
  -moz-box-shadow: @shadow;
  box-shadow: @shadow;
}

.fr-clearfix {
  &::after {
    clear: both;
    display: block;
    content: "";
    height: 0;
  }
}

.fr-clearfix {
  &::after {
    clear: both;
    display: block;
    content: "";
    height: 0;
  }
}

.column-count(@count) {
  column-count: @count;
  -moz-column-count: @count;
  -webkit-column-count: @count;
}

.column-gap(@gap) {
  column-gap: @gap;
  -moz-column-gap: @gap;
  -webkit-column-gap: @gap;
}

.animation(@val) {
	-webkit-animation: @val;
  -moz-animation: @val;
  -o-animation: @val;
  animation: @val;
}

.handler-size(@size) {
  .fr-handler {
    width: @size;
    height: @size;

    &.fr-hnw {
      left: (-@size / 2);
      top: (-@size / 2);
    }

    &.fr-hne {
      right: (-@size / 2);
      top: (-@size / 2);
    }

    &.fr-hsw {
      left: (-@size / 2);
      bottom: (-@size / 2);
    }

    &.fr-hse {
      right: (-@size / 2);
      bottom: (-@size / 2);
    }
  }
}

.font-smoothing() {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.fr-hide-by-clipping {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  border: 0;
}

.fr-hide-by-clipping {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  border: 0;
}

.display-inline-flex() {

  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
}

.keyframes(@animation-name, @rules) {
  @-webkit-keyframes @animation-name {
    @rules();
  }
  @-moz-keyframes @animation-name {
    @rules();
  }
  @-o-keyframes @animation-name {
    @rules();
  }
  @keyframes @animation-name {
    @rules();
  }
}

/***** core/element.less *****/

.fr-element, .fr-element:focus {
  outline: 0 solid transparent;
}

.fr-view.fr-element-scroll-visible {
  overflow-x: visible !important;
}

.fr-box.fr-basic {
  .border-radius(@editor-border-radius);

  .fr-element {
    font-family: @editor-font-family;
    color: @editor-font-color;
    font-size: @editor-font-size;
    line-height: @editor-line-height;

    padding: @editor-padding;
    .box-sizing(border-box);
    overflow-x: auto;
    min-height: (20px + (2 * @editor-padding));
    text-align: @editor-align;
  }

  &.fr-rtl {
    .fr-element {
      text-align: right;
    }
  }
}

.fr-element {
  background: transparent;
  position: relative;
  z-index: 2;

  // CSS rule for iPad not being able to select sometimes.
  -webkit-user-select: auto;

  // Fix bootstrap select.
  a {
    .user-select(auto);
  }

  &.fr-disabled {
    .user-select(none);
  }

  [contenteditable="true"] {
    outline: 0 solid transparent;
  }
}

.fr-box {
  a.fr-floating-btn {
    .box-shadow(@floating-btn-box-shadow);
    .border-radius(100%);
    height: @floating-btn-size;
    width: @floating-btn-size;
    text-align: center;
    background: @floating-btn-bg;
    color: @floating-btn-text;
    .transition(background @transition-timing, color @transition-timing, transform @transition-timing);
    outline: none;
    left: 0;
    top: 0;
    line-height: (@floating-btn-size);
    .transform(scale(0));
    text-align: center;
    display: block;
    .box-sizing(border-box);
    border: @floating-btn-border;

    svg {
      .transition(transform @transition-timing);
      fill: @floating-btn-text;
    }

    i, svg {
      font-size: @floating-btn-font-size;
      line-height: @floating-btn-size;
    }

    &.fr-btn + .fr-btn {
      margin-left: 10px;
    }

    &:hover {
      background: @floating-btn-hover-bg;
      cursor: pointer;

      svg {
        fill: @floating-btn-hover-text;
      }
    }
  }

  .fr-visible {
    a.fr-floating-btn {
      .transform(scale(1));
    }
  }
}



/***** core/iframe.less *****/

iframe.fr-iframe {
  width: 100%;
  border: none;
  position: relative;
  display: block;
  z-index: 2;
  .box-sizing(border-box);
}

/***** core/wrapper.less *****/


.fr-wrapper {
  position: relative;
  z-index: 1;

  .fr-clearfix();

  .fr-placeholder {
    position: absolute;
    font-size: @placeholder-size;
    color: @placeholder-color;
    font-family: @placeholder-font-family;
    z-index: 1;
    display: none;
    top: 0;
    left: 0;
    right: 0;
    overflow: hidden;
  }

  &.show-placeholder {
    .fr-placeholder {
      display: block;
      white-space: nowrap;
      text-overflow: ellipsis;
    }
  }

  ::-moz-selection {
    background: @selection-bg;
    color: @selection-text;
  }

  ::selection {
    background: @selection-bg;
    color: @selection-text;
  }
}

.fr-box.fr-basic {
  .fr-wrapper {
    background: @editor-bg;
    border: @editor-border;
    border-bottom-color: @ui-bg-color;
    top: 0;
    left: 0;
  }
}

.fr-box.fr-basic {
  &.fr-top .fr-wrapper {
    border-top: 0;
  }

  &.fr-bottom .fr-wrapper {
    border-bottom: 0;
    .border-radius(@editor-border-radius @editor-border-radius 0 0);
  }
}

@media (min-width: @screen-md) {
  .fr-box.fr-document {
    min-width: 21cm;

    .fr-wrapper {
      text-align: left;
      padding: @document-ready-padding;
      min-width: 21cm;
      background: @document-ready-bg-color;

      .fr-element {
        text-align: left;
        background: @white;
        width: 21cm;
        margin: auto;
        min-height: 26cm !important;
        padding: 1cm 2cm;
        overflow: visible;
        z-index: auto;

        hr {
          margin-left: -2cm;
          margin-right: -2cm;
          background: @document-ready-bg-color;
          height: 1cm;
          outline: none;
          border: none;
        }

        img {
          z-index: 1;
        }
      }
    }
  }
}


/***** tooltip.less *****/

.fr-tooltip {
  position: absolute;
  top: 0;
  left: 0;
  padding: 0 8px;
  .border-radius(@border-radius);
  background: @tooltip-bg;
  color: @tooltip-text;
  font-size: @tooltip-font-size;
  line-height: @tooltip-line-height;
  font-family: @font-family;
  .transition(opacity @transition-timing);
  .opacity(0);
  left: -3000px;
  .user-select(none);
  z-index: 2147483647;
  text-rendering: optimizelegibility;
  .font-smoothing();

  &.fr-visible {
    .opacity(1);
  }
}

/***** ui/buttons.less *****/

// Command button.

.fr-toolbar, .fr-popup, .fr-modal {
  .fr-btn-wrap {
    float: left;
    white-space: nowrap;
    position: relative;

    &.fr-hidden {
      display: none;
    }
  }

  .fr-command.fr-btn {
    background: transparent;
    color: @btn-text;
  	-moz-outline: 0;
  	outline: none;
    border: 0;
    line-height: 1;
  	cursor: pointer;
    text-align: left;
    margin: @btn-margin (@btn-margin / 2);
    padding: 0;
    .transition(all @toolbar-transition-timing);
    .border-radius(@btn-border-radius);
    z-index: 2;
    position: relative;
    .box-sizing(border-box);
    text-decoration: none;
    .user-select(none);
    float: left;
    height: @btn-height;

    &.fr-dropdown.fr-options {
      .border-radius(@btn-dropdown-border-radius);
    }

    &.fr-btn-hover {
      .border-radius(@btn-hover-border-radius);
    }

    &::-moz-focus-inner {
      border: 0;
      padding: 0
    }

    &.fr-btn-text {
      width: auto;
    }

    i, svg {
      display: block;
      text-align: center;
      float: none;
      margin: ((@btn-height - @btn-svg-size) / 2) ((@btn-width - @btn-svg-size) / 2);
      width: @btn-svg-size;
    }

    svg.fr-svg {
      height: @btn-svg-size;
    }

    svg path {
      .transition(all @toolbar-transition-timing);
      fill: @btn-text;
    }

    // Used for accessibility instead of aria-label.
    span.fr-sr-only {
      .fr-hide-by-clipping();
    }

    span {
      font-size: @ui-font-size;
      display: block;
      line-height:  (@ui-font-size + 3px);
      min-width: (@btn-width - 2 * @btn-margin);
      float: left;
      text-overflow: ellipsis;
      overflow: hidden;
      white-space: nowrap;
      height: (@ui-font-size + 3px);
      font-weight: bold;
      padding: 0 @btn-margin;
    }

    img {
      margin: ((@btn-height - @btn-font-size) / 2) ((@btn-width - @btn-font-size) / 2);
      width: @btn-font-size;
    }

    &.fr-btn-active-popup {
      background: @btn-active-bg;
    }

    &.fr-dropdown {
      &.fr-selection {

        span {
          font-weight: normal;
        }
      }

      i, span, img, svg {
        margin-left: (((@btn-width - @btn-svg-size) / 2) - @dropdown-arrow-width);
        margin-right: (((@btn-width - @btn-svg-size) / 2) + @dropdown-arrow-width);
      }

      &:after {
        position: absolute;
        width: 0;
        height: 0;
        border-left: @dropdown-arrow-width solid transparent;
        border-right: @dropdown-arrow-width solid transparent;
        border-top: @dropdown-arrow-width solid @btn-text;
        right: ceil((((@btn-width - @btn-svg-size) / 2 - @dropdown-arrow-width) / 2));
        top: ((@btn-height - @dropdown-arrow-width) / 2);
        .transition(all @dropdown-transition-timing);
        content: "";
      }

      // Dropdown is visible.
      &.fr-active {
        fill: @btn-text;
        background: @btn-active-bg;
        .transition(@toolbar-transition-timing ease);

        &:hover {
          background: @btn-hover-bg;
          fill: @btn-selected-text;

          &::after {
            border-top-color: @btn-selected-text;
          }
        }

        &:after {
          border-top: 0;
          border-bottom: 4px solid @ui-text;
        }
      }
    }

    &.fr-disabled {
      color: @btn-disabled-color;
      cursor: default;
      .opacity(@btn-disabled-opacity);

      &::after {
        border-top-color: @btn-disabled-color;
      }
    }

    &.fr-hidden {
      display: none;
    }
  }

  .fr-tabs {
    .fr-command.fr-btn {
      margin: 0;
      width: @popup-tab-button-width;
      height: @popup-tab-button-height;
      .border-radius(0);

      &:not(:hover):not(:focus) {
        &.fr-active, &.fr-active-tab {
          background: @ui-bg;
        }
      }

      span {
        height: (@btn-font-size + 3);
      }

      img, svg {
        margin: ((@popup-tab-button-height - @popup-btn-svg-size) / 2) ((@popup-tab-button-width - @popup-btn-svg-size) / 2);
        width: @popup-btn-svg-size;
        height: @popup-btn-svg-size;
      }
    }
  }

  .fr-btn-grp, .fr-more-toolbar, .fr-buttons:not(.fr-tabs) {
    .fr-command.fr-btn {
      &.fr-active:not(.fr-dropdown) {
        svg path {
          fill: @btn-active-text;
        }
      }
    }
  }

  &.fr-disabled {
    .fr-btn, .fr-btn.fr-active {
      color: @btn-disabled-color;
      .opacity(@btn-disabled-opacity);

      &.fr-dropdown::after {
        border-top-color: @btn-disabled-color;
      }
    }
  }

  &.fr-rtl {
    .fr-btn-grp {
      &.fr-float-left {
        float: right;
      }

      &.fr-float-right {
        float: left;
      }
    }
    .fr-command.fr-btn, .fr-btn-wrap {
      float: right;

      &.fr-dropdown.fr-options {
        .border-radius(@btn-hover-border-radius);
      }
  
      &.fr-btn-hover {
        .border-radius(@btn-dropdown-border-radius);
      }
    }
  }
}

.fr-toolbar.fr-inline {
  > .fr-command.fr-btn:not(.fr-hidden), > .fr-btn-wrap:not(.fr-hidden) {
    .display-inline-flex();
    float: none;
  }
}

.fr-desktop {
  .fr-command {
    // Hover.
    &:hover, &:focus, &.fr-btn-hover, &.fr-expanded {
      outline: 0;
      color: @btn-hover-text;

      &:not(.fr-table-cell) {
        background: @btn-hover-bg;
      }

      &::after {
        border-top-color: @btn-hover-text;
      }
    }

    // Button is selected.
    &.fr-selected:not(.fr-table-cell), &:active {
      color: @btn-selected-text;
      background: @btn-selected-bg;
    }

    &.fr-active {
      &:hover, &:focus, &.fr-btn-hover, &.fr-expanded {
        background: @btn-hover-bg;
      }

      &:active {
        background: @btn-active-bg;
      }
    }

    &.fr-disabled {
      &:hover, &:focus, &.fr-selected {
        background: transparent;
      }
    }
  }

  &.fr-disabled {
    .fr-command {
      &:hover, &:focus, &.fr-selected {
        background: transparent;
      }
    }
  }
}

.fr-toolbar.fr-mobile, .fr-popup.fr-mobile {
  .fr-command.fr-blink {
    background: @btn-active-bg;
  }
}



/***** ui/dropdown.less *****/

.fr-command.fr-btn {
  &.fr-options {
    width: @dropdown-options-width;
    margin-left: @dropdown-options-margin-left;

    &.fr-btn-hover, &:hover, &:focus {
      border-left: @dropdown-options-border-left;
      .transition(border-left 0s, background-color 0.5s);
    }
  }

  + .fr-dropdown-menu {
    background: @ui-bg;
    display: inline-block;
    position: absolute;
    right: auto;
    bottom: auto;
    height: auto;
    z-index: 4;
    .border-radius(@dropdown-border-radius);
    -webkit-overflow-scrolling: touch;
    overflow: hidden;
    zoom: 1;
    .box-shadow(@dropdown-menu-box-shadow);

    &.test-height {
      .fr-dropdown-wrapper {
        .transition(none);
        height: auto;
        max-height: @dropdown-max-height;
      }
    }

    .fr-dropdown-wrapper {
      padding: 0;
      margin: auto;
      display: inline-block;
      text-align: left;
      position: relative;
      .box-sizing(border-box);
      .transition(height @dropdown-transition-timing);
      margin-top: 0;
      float: left;
      height: 0;
      margin-top: 0 !important;

      .fr-dropdown-content {
        position: relative;

        ul.fr-dropdown-list {
          list-style-type: none;
          margin: 0;
          padding: @dropdown-list-padding;
          min-width: @dropdown-list-min-width;

          li {
            padding: 0;
            margin: 0;
            font-size: @dropdown-list-item-font-size;

            a {
              padding: 0 (((@dropdown-list-min-width - @floating-svg-btn-size) / 2) - @btn-margin);
              line-height: 200%;
              display: flex;
              cursor: pointer;
              white-space: nowrap;
              color: inherit;
              text-decoration: none;
              .border-radius(0);

              svg {
                width: @floating-svg-btn-size;
                height: @floating-svg-btn-size;
                margin: (@btn-margin - 1) @btn-margin;

                path {
                  fill: @btn-text;
                }
              }

              &.fr-active {
                background: @ui-active-color;
              }

              &.fr-disabled {
                color: @btn-disabled-color;
                cursor: default;
              }

              .fr-shortcut {
                margin-left: 20px;
                font-weight: bold;
                -webkit-opacity: 0.75;
                -moz-opacity: 0.75;
                opacity: 0.75;
              }
            }
          }
        }
      }
    }
  }

  &.fr-active {
    + .fr-dropdown-menu {
      display: inline-block;
      .box-shadow(@dropdown-menu-box-shadow);
    }
  }
}

.fr-bottom > .fr-command.fr-btn {
  + .fr-dropdown-menu {
    .border-radius(@border-radius @border-radius 0 0);
  }
}

.fr-toolbar, .fr-popup {
  &.fr-rtl {
    .fr-dropdown-wrapper {
      text-align: right !important;
    }
  }
}


/***** ui/modal.less *****/

body.fr-prevent-scroll {
  overflow: hidden;

  &.fr-mobile {
    position: fixed;
    -webkit-overflow-scrolling: touch;
  }
}

.fr-modal {
  color: @ui-text;
  font-family: @font-family;
  position: fixed;
  overflow-x: auto;
  overflow-y: scroll;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  z-index: 2147483640;
  text-rendering: optimizelegibility;
  .font-smoothing();
  text-align: center;
  line-height: 1.2;

  &.fr-middle {
    .fr-modal-wrapper {
      margin-top: 0;
      margin-bottom: 0;
      margin-left: auto;
      margin-right: auto;
      top: 50%;
      left: 50%;
      .transform(translate(-50%, -50%));
      position: absolute;
    }
  }

  .fr-modal-wrapper {
    .border-radius(@modal-wrapper-border-radius);
    background-clip: padding-box;
    margin: @modal-wrapper-margin-lg;
    display: inline-block;
    background: @modal-bg;
    min-width: @modal-wrapper-min-width;
    .box-shadow(@modal-wrapper-box-shadow);
    border: 0;
    overflow: hidden;
    width: 90%;
    position: relative;

    @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
      margin: @modal-wrapper-margin-sm;
      width: 70%;
    }

    @media (min-width: @screen-md) {
      margin: @modal-wrapper-margin-md;
      width: 960px;
    }

    .fr-modal-head {
      background: @modal-bg;
      overflow: hidden;
      position: absolute;
      width: 100%;
      min-height: @modal-head-min-height;
      z-index: 3;
      border-bottom: solid @ui-bg-color 1px;
      .transition(all @transition-timing);

      .fr-modal-head-line {
        height: @modal-head-height;
        padding: @modal-head-padding;

      }

      .fr-modal-close {
        margin: @modal-close-margin;
        position: absolute;
        top: 0;
        right: 0;
      }

      h4 {
        font-size: @modal-heading-font-size;
        padding: @modal-heading-padding;
        margin: 0;
        font-weight: 400;
        line-height: @modal-head-line-height;
        display: inline-block;
        float: left;
      }
    }

    div.fr-modal-body {
      height: 100%;
      min-height: @modal-body-min-width;
      overflow-y: auto;
      padding-bottom: @modal-body-padding-bottom;

      &:focus {
        outline: 0;
      }

      button.fr-command {
        height: @modal-body-btn-height;
        line-height: 1;
        color: @ui-color;
        padding: @modal-body-btn-padding;
        cursor: pointer;
        text-decoration: none;
        border: none;
        background: none;
        font-size: 16px;
        outline: none;
        .transition(background @transition-timing);
        .border-radius(@border-radius);

        + button {
          margin-left: 24px;
        }

        &:hover, &:focus {
          background: @btn-hover-bg;
          color: @ui-color;
        }

        &:active {
          background: @btn-active-bg;
          color: @ui-color;
        }
      }

      button::-moz-focus-inner {
        border: 0;
      }
    }
  }
}

.fr-desktop .fr-modal-wrapper {
  .fr-modal-head {
    i:hover {
      background: @ui-hover-color;
    }
  }
}

// Overlay that appears with modal.
.fr-overlay {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: @modal-overlay-color;
  .opacity(@modal-overlay-opacity);
  z-index: 2147483639;
}
ol.decimal_type { counter-reset: item; }
ol.decimal_type > li{ display: block; position: relative; }
ol.decimal_type > li:before { content: counters(item, ".") ". "; counter-increment: item; position: absolute; margin-right: 100%; right: 10px; }

/***** ui/popup.less *****/

.fr-popup {
  position: absolute;
  display: none;
  color: @ui-text;
  background: @ui-bg;
  .box-shadow(@popup-box-shadow);
  font-family: @font-family;
  .box-sizing(border-box);
  .user-select(none);
  margin-top: @popup-margin-top;
  z-index: 2147483635;
  text-align: left;
  .border-radius(@popup-border-radius);
  text-rendering: optimizelegibility;
  .font-smoothing();
  line-height: 1.2;

  .fr-icon {
    text-align: center;
    vertical-align: middle;
    font-size: @popup-icon-font-size;
    line-height: 1;
    cursor: pointer;
    font-weight: 400;
    box-sizing: content-box;
    padding: @popup-icon-padding;
  }

  .fr-icon-container {
    padding: @popup-border-padding;
    max-height: @popup-container-max-height;
    overflow: auto;
    .box-sizing(border-box);
    
    @supports not (-ms-high-contrast: none) { 
      grid-template-columns: repeat(auto-fill, minmax(@btn-size, @btn-size));
      display: grid;
    }

    @media (min-width: @screen-sm) {
      min-width: @popup-min-width; 
    }

    @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
      display: inline-flex;
      -ms-flex-flow: row wrap;
    }

    @media screen and (-ms-high-contrast: active) and (max-width: @screen-sm), (-ms-high-contrast: none) and (max-width: @screen-sm) {
      width: @popup-sm-ie-width;
    }
  }

  .fr-input-focus {
    background: @ui-hover-light-color;
  }

  &.fr-above {
    margin-top: -10px;
    border-top: 0;
  }

  &.fr-active {
    display: block;
  }


  &.fr-hidden {
    display: none !important;
  }

  &.fr-empty {
    display: none !important;
  }

  .fr-hs {
    display: block !important;

    &.fr-hidden {
      display: none !important;
    }
  }

  .fr-input-line {
    position: relative;
    padding: @input-line-padding;

    input[type="text"], input[type="number"], textarea {
      width: 100%;
      margin-bottom: @input-margin-bottom;
      .border-radius(@input-border-radius);
      border: solid @input-border-width @input-border-color;
      color: @ui-text;
      font-size: @input-label-font-size;
      background: @ui-bg;
      position: relative;
      z-index: 2;
      padding: @input-padding;
      .box-sizing(border-box);
      .transition(border @toolbar-transition-timing, padding @toolbar-transition-timing);

      &:hover {
        border: solid @input-border-width @ui-border-hover-color;
      }

      &:focus {
        border: solid @input-focus-border-width @ui-color;
        padding: @input-focus-padding;
      }
    }

    input[type="text"], input[type="number"] {
      height: @input-height;
    }

    input + label, textarea + label {
      position: absolute;
      top: @input-label-top;
      left: @input-label-left;
      font-size: @input-label-font-size;
      color: grey;
      .transition(all @toolbar-transition-timing ease);
      z-index: 3;
      display: block;
      background: @ui-bg;
      padding: 0;
      cursor: text;
    }

    input.fr-not-empty + label, textarea.fr-not-empty + label {
      color: @input-label-color;
      width: auto;
      left: @input-label-left-after;
      padding: 0 @input-label-padding;
      font-size: @input-label-font-size-after;
      top: @input-label-top-after;
    }
  }

  input, textarea {
    .user-select(text);
    .border-radius(0);
    outline: none;
  }

  textarea {
    resize: none,
  }

  .fr-buttons {
    white-space: nowrap;
    line-height: 0;

    .fr-btn {
      margin-left: @btn-margin;
      margin-right: @btn-margin;
      display: inline-block;
      float: none;

      i {
        float: left;
      }
    }

    .fr-separator {
      display: inline-block;
      float: none;
    }

    &.fr-tabs {
      .border-radius(@btn-tab-border-radius);
      background-color: @ui-bg-color-more;
      overflow: hidden;

      &.fr-tabs-scroll {
        @media (max-width: @screen-sm) {
          overflow: scroll;
          overflow-y: hidden;
          width: @popup-min-width;
        }
      }
    }

    &:not(.fr-tabs) {
      padding: @popup-padding;
    }
  }

  .fr-layer {
    .border-radius(@popup-border-radius);
    width: (@popup-layer-width * 0.75);
    @media (min-width: @screen-sm) {
      width: @popup-layer-width;
    }

    .box-sizing(border-box);
    margin: @popup-layer-margin;
    display: none;

    &.fr-active {
      display: inline-block;
    }
  }

  .fr-action-buttons {
    z-index: 7;
    height: @btn-size;
    text-align: right;

    button.fr-command {
      height: @btn-size;
      line-height: 1;
      color: @ui-color;
      padding: @popup-action-btn-spacing;
      cursor: pointer;
      text-decoration: none;
      border: none;
      background: none;
      font-size: @popup-action-button-font-size;
      outline: none;
      .transition(background @transition-timing);
      .border-radius(@border-radius);

      + button {
        margin-left: 24px;
      }

      &:hover, &:focus {
        background: @btn-hover-bg;
        color: @ui-color;
      }

      &:active {
        background: @btn-active-bg;
        color: @ui-color;
      }
    }

    button::-moz-focus-inner {
      border: 0;
    }
  }

  .fr-checkbox {
    position: relative;
    display: inline-block;
    width: @checkbox-size;
    height: @checkbox-size;
    padding: @checkbox-padding;
    border-radius: 100%;
    line-height: 1;
    .box-sizing(content-box);
    vertical-align: middle;

    svg {
      margin-left: @checkbox-margin;
      margin-top: @checkbox-margin;
      display: none;
      width: @checbox-svg-size;
      height: @checbox-svg-size;
    }

    span {
      .border-radius(@border-radius);
      width: @checkbox-size;
      height: @checkbox-size;
      display: inline-block;
      position: relative;
      z-index: 1;
      .box-sizing(border-box);
      .transition(background @transition-timing, border-color @transition-timing);
    }

    input {
      position: absolute;
      z-index: 2;
      .opacity(0);
      border: 0 none;
      cursor: pointer;
      height: @checkbox-size;
      margin: 0;
      padding: 0;
      width: @checkbox-size;
      top: 7px;
      left: 7px;

      &:not(:checked) {

        & + span {
          border: solid 2px @input-border-color;
        }

        &:active + span {
          background-color: @bg-color;
        }

        &:focus + span, &:hover + span {
          border-color: @ui-border-hover-color;
        }
      }

      &:checked {

        & + span {
          background: @ui-color;
          border: solid 2px @ui-color;

          svg {
            display: block;
          }
        }

        &:active + span {
          background-color: @checbox-active-bg;
        }

        &:focus + span, &:hover + span {
          .opacity(@checkbox-opacity);
        }
      }
    }
  }

  .fr-checkbox-line {
    font-size: @checkbox-line-font-size;
    line-height: @checkbox-line-height;
    margin-top: @checkbox-line-margin-top;

    label {
      cursor: pointer;
      margin: @checkbox-line-label-margin;
      vertical-align: middle;
    }
  }

  &.fr-rtl {
    direction: rtl;
    text-align: right;

    .fr-action-buttons {
      text-align: left;
    }

    .fr-input-line {
      input + label, textarea + label {
        left: auto;
        right: 0;
      }
    }

    .fr-buttons .fr-separator.fr-vs {
      float: right;
    }
  }

}

/***** ui/text_edit.less *****/

.fr-text-edit-layer {
  width: 250px;
  .box-sizing(border-box);
  display: block !important;
}


/***** ui/toolbar.less *****/

.fr-toolbar {
  color: @ui-text;
  background: @ui-bg;
  position: relative;
  font-family: @font-family;
  .fr-clearfix();
  .box-sizing(border-box);
  .user-select(none);
  .border-radius(@border-radius);
  text-align: left;
  border: @editor-border;
  text-rendering: optimizelegibility;
  .font-smoothing();
  line-height: 1.2;
  padding-bottom: 0;
  .transition(padding-bottom @toolbar-transition-timing);

  &::after {
    height: 0;
  }

  .fr-newline {
    clear: both;
    display: block;
    content: "";
    margin-left: @toolbar-newline-margin;
    margin-right: @toolbar-newline-margin;
    background: @toolbar-newline-color;
    height: @toolbar-newline-height;
    .transition(height @toolbar-transition-timing);
  }

  &.fr-toolbar-open {
    .fr-newline {
      height: 0;
    }
  }

  .fr-float-right {
    float: right;
  }

  .fr-float-left {
    float: left;
  }

  .fr-more-toolbar {
    float: left;
    .border-radius(0);
    background-color: @ui-bg-color-more;
    .transition(height @toolbar-transition-timing);
    height: 0;
    // 3803 - toolbar hides when track changes toolbar is on or visible 
    // z-index: 2; remove z index for more toolbars so the popover should come over those toolbars
    overflow: hidden;
    .box-sizing(border-box);
    width: 100%;

    &.fr-expanded {
      height: @more-toolbar-btn-height;
    }

    &.fr-overflow-visible {
      overflow: visible;
    }

    & > .fr-command.fr-btn {
      margin-left: @btn-margin;
      margin-right: @btn-margin;
    }
  }

  .fr-btn-grp {
    display: inline-block;
    margin: @more-toolbar-margin;

    @media (max-width: @screen-sm) {
      margin: @more-toolbar-margin-sm;
    }
  }

  .fr-command.fr-btn.fr-open {
    margin-top: @btn-more-open-margin-top;
    margin-bottom: @btn-more-open-margin-bottom;
    .border-radius(@btn-border-radius @btn-border-radius 0 0);

    &:not(:hover):not(:focus):not(:active) {
      background: @ui-bg-color-more;
    }
  }

  &.fr-rtl {
    text-align: right;
  }

  &.fr-inline {
    display: none;
    .box-shadow(@popup-box-shadow);
    border: 0;
    white-space: nowrap;
    position: absolute;
    margin-top: 5px;
    z-index: 2147483630;

    &.fr-above {
      margin-top: -10px;
      border-top: 0;
    }

    .fr-newline {
      height: 0;
    }

    .fr-more-toolbar {
      position: absolute !important;
      &.fr-expanded {
        position: relative !important;
      }
    }
  }

  &.fr-top {
    top: 0;
    border-bottom: 0;
    .border-radius(@editor-border-radius @editor-border-radius 0 0);
  }

  &.fr-bottom {
    bottom: 0;
    border-top: 0;
    padding-bottom: 0;
    .border-radius(0 0 @editor-border-radius @editor-border-radius);

    .fr-newline {
      padding-top: 0;
      .transition(padding-top @toolbar-transition-timing);
    }

    &.fr-toolbar-open .fr-newline {
      padding-top: @more-toolbar-btn-height;
      background: @white;
    }

    .fr-command.fr-btn.fr-open {
      margin-top: @btn-more-open-margin-bottom;
      margin-bottom: @btn-more-open-margin-top;
      .border-radius(0 0 @btn-border-radius @btn-border-radius);
    }
  }

  &.fr-sticky-on {
    .border-radius(0);
  }
}

.fr-separator {
  background: @separator-color;
  display: block;
  vertical-align: top;
  float: left;

  + .fr-separator {
    display: none;
  }

  &.fr-vs {
    height: (@btn-height - 2 * @btn-margin);
    width: @separator-size;
    margin: @separator-margin;
  }

  &.fr-hs {
    clear: both;
    width: calc(~"100% - (2 * @{btn-margin})");
    margin: 0 @btn-margin;
    height: @separator-size;
  }

  &.fr-hidden {
    display: none !important;
  }
}

.fr-rtl .fr-separator {
  float: right;
}
.fr-toolbar.fr-inline .fr-separator.fr-hs {
  float: none;
}

.fr-toolbar.fr-inline .fr-separator.fr-vs {
  display: inline-block;
}

.fr-second-toolbar {
  border: @editor-border;
  border-top: 0;
  background: @editor-bg;
  line-height: 1.4;
  .border-radius(0 0 @editor-border-radius @editor-border-radius);
  .fr-clearfix();
}

.fr-second-toolbar:empty {
  min-height: calc(~"10px");
  position: relative;
  margin-top: calc(~"-1px");
  z-index: 2;
}

#fr-logo {
  float: left;
  outline: none;

  & > span{
    display: inline-block;
    float: left;
    font-family: sans-serif;
    padding: @logo-span-padding;
    font-size: @logo-span-font-size;
    font-weight: 500;
    color: @logo-color;
    .transition(color @logo-transition-timing);
  }

  & > svg {
    height: @logo-svg-height;
    width: @logo-svg-width;
    margin: @logo-svg-margin;
    cursor: pointer;
  }

  & > svg * {
    .transition(fill @logo-transition-timing);
  }

  &:hover, &:focus {
    & > span {
      color: @btn-active-hover-text;
    }

    & > svg .fr-logo {
      fill: @btn-active-hover-text;
    }
  }
}


/***** helpers.less *****/

.fr-visibility-helper {
  display: none;
  margin-left: 0 !important;

  @media (min-width: @screen-sm) {
    margin-left: 1px !important;
  }

  @media (min-width: @screen-md) {
    margin-left: 2px !important;
  }

  @media (min-width: @screen-lg) {
    margin-left: 3px !important;
  }
}

.fr-opacity-0 {
  .opacity(0);
}

.fr-box {
  position: relative;
}

/**
 * Postion sticky hacks.
 */
.fr-sticky {
  position: -webkit-sticky;
	position: -moz-sticky;
	position: -ms-sticky;
	position: -o-sticky;
	position: sticky;
}

.fr-sticky-off {
	position: relative;
}

.fr-sticky-on {
  position: fixed;
  z-index: 10;

  &.fr-sticky-ios {
    position: -webkit-sticky;
    left: 0;
    right: 0;
    width: auto !important;
  }
}

.modal .fr-sticky-on {
  position: sticky;
}

.fr-sticky-dummy {
	display: none;
}

.fr-sticky-on + .fr-sticky-dummy, .fr-sticky-box > .fr-sticky-dummy {
	display: block;
}

// Used for accessibility instead of aria-label.
span.fr-sr-only {
  .fr-hide-by-clipping();
}

// merged conflict from master, kept both changes
.fr-view .fr-highlight-change, .fr-highlight-change > img, .fr-highlight-change > .fr-video > video,
.fr-highlight-change > .fr-video > embed, .fr-highlight-change > .fr-video > iframe, .fr-highlight-change > .fr-embedly > .embedly-card > .embedly-card-hug > iframe,
.fr-highlight-change > p, .fr-view .fr-highlight-change > span:not(.fr-tracking-deleted) {
  background-color: #f3eec3;
  opacity: 0.5;
}

.fr-highlight-change.fr-highlight-change > table td, .fr-highlight-change.fr-highlight-change > hr {
  border-color: #f3eec3;
}

.fr-tracking-deleted.fr-tracking-deleted > table td, .fr-tracking-deleted.fr-tracking-deleted > hr {
  border-color: #dc3545;
}

.fr-tracking-deleted img, .fr-tracking-deleted > .fr-video > video, .fr-tracking-deleted > .fr-video > iframe, .fr-tracking-deleted > .fr-embedly > .embedly-card > .embedly-card-hug > iframe {
  opacity: 0.5;
  background-color: #dc3545;
}

.fr-view .fr-tracking-deleted {
  background-color: #dc3545;
  text-decoration: line-through;
  pointer-events: none;
  user-select: none;
  opacity: 1;
}

.fr-highlight-change > .fr-video > iframe, .fr-tracking-deleted > .fr-video > iframe, .fr-highlight-change > .fr-video > video,.fr-tracking-deleted > .fr-video > video, .fr-highlight-change > .fr-video > embed, .fr-highlight-change > .fr-embedly > .embedly-card > .embedly-card-hug > iframe, .fr-tracking-deleted > .fr-embedly > .embedly-card > .embedly-card-hug > iframe {
  padding: 10px !important;
}

.fr-tracking-deleted  img, .fr-highlight-change  img{
  border: 2px solid #f3eec3;
}


.fr-highlight-change #isPasted *:not(table):not(tbody):not(tr):not(td){
  opacity: 0.5; 
  background-color: #f3eec3;
}

.fr-highlight-change #isPasted > table td{
  opacity: 0.5; 
  border-color: #f3eec3;
}


.fr-track-hide {
  display: none;
}

.fr-track-hide-mobile {
  width: 0;
  height: 0;
  overflow: hidden;
  position: absolute;
}

.fr-ios-mobile-disable-select {
  -webkit-touch-callout : none;
  -webkit-user-select : none;
  user-select: none;
}

.fr-bottom-extended {
  flex-wrap: wrap;
  display: flex;
  box-sizing: border-box;
}

.position-relative {
  position: relative !important;
}
// till here

/***** plugins/colors.less *****/

.fr-popup {
  .fr-layer.fr-color-hex-layer {
    margin: 0;
    padding: @popup-border-padding;
    padding-top: 0;
    float: left;

    .fr-input-line {
      float: left;
      width: calc(~"100% - 50px");
      padding: @color-input-line-padding;
    }

    .fr-action-buttons {
      float: right;
      width: @btn-width;
      height: @btn-height;
      padding: @color-action-button-padding;
      margin: 0;
    }

    .fr-action-buttons {
      button.fr-command {
        .border-radius(@border-radius);
        font-size: @color-font-size;
        height: @btn-height;
        width: @btn-width;
      }
    }
  }

  .fr-separator + .fr-colors-tabs {
    margin-left: 2px;
    margin-right: 2px;
  }

  .fr-color-set {
    line-height: 0;
    display: none;

    &.fr-selected-set {
      display: block;
      padding: @popup-border-padding;
      padding-bottom: 0;
    }

    > span {
      display: inline-block;
      width: @color-span-size;
      height: @color-span-size;
      position: relative;
      z-index: 1;

      > i, > svg {
        text-align: center;
        line-height: @color-line-height;
        height: @ui-svg-size;
        width: @ui-svg-size;
        margin: @color-remove-svg-margin;
        font-size: @color-font-size;
        position: absolute;
        bottom: 0;
        cursor: default;
        left: 0;

        path {
          fill: @ui-text;
        }
      }

      .fr-selected-color {
        color: @white;
        font-family: FontAwesome;
        font-size: @color-font-size;
        font-weight: 400;
        line-height: @color-line-height;
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
        left: 0;
        text-align: center;
        cursor: default;
      }

      &:hover, &:focus {
        outline: 1px solid @ui-text;
        z-index: 2;
      }
    }
  }
}

.fr-rtl .fr-popup {
  .fr-colors-tabs {
    .fr-colors-tab {
      &.fr-selected-tab {
        &[data-param1="text"] ~ [data-param1="background"]::after {
          .transform(translate3d(100%,0,0));
        }
      }
    }
  }
}


/***** plugins/draggable.less *****/

.fr-drag-helper {
  background: @drag-helper-bg;
  height: 2px;
  margin-top: -1px;
  .opacity(0.2);
  position: absolute;
  z-index: 2147483640;
  display: none;

  &.fr-visible {
    display: block;
  }
}

.fr-dragging {
  .opacity(0.4);
}

/***** plugins/file.less *****/

.fr-popup {
  .fr-file-upload-layer {
    border: dashed 2px @ui-disabled-color;
    padding: 25px 0;
    margin: @popup-border-margin;
    position: relative;
    font-size: 14px;
    letter-spacing: 1px;
    line-height: 140%;
    .box-sizing(border-box);
    text-align: center;

    &:hover {
      background: @ui-hover-color;
    }

    &.fr-drop {
      background: @ui-hover-color;
      border-color: @ui-color;
    }

    .fr-form {
      .opacity(0);
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 2147483640;
      overflow: hidden;
      margin: 0 !important;
      padding: 0 !important;
      width: 100% !important;

      input {
        cursor: pointer;
        position: absolute;
        right: 0;
        top: 0;
        bottom: 0;
        width: 500%;
        height: 100%;
        margin: 0;
        font-size: 400px;
      }
    }
  }

  .fr-file-progress-bar-layer {
    .box-sizing(border-box);

    > h3 {
      font-size: 16px;
      margin: 10px 0;
      font-weight: normal;
    }

    > div.fr-action-buttons {
      display: none;
    }

    > div.fr-loader {
      background: mix(@white, @ui-color, 70%);
      height: 10px;
      width: 100%;
      margin-top: 20px;
      overflow: hidden;
      position: relative;

      span {
        display: block;
        height: 100%;
        width: 0%;
        background: @ui-color;
        .transition(width @transition-timing);
      }

      &.fr-indeterminate {
        span {
          width: 30% !important;
          position: absolute;
          top: 0;
          .animation(loading 2s linear infinite);
        }
      }
    }

    &.fr-error {
      > div.fr-loader {
        display: none;
      }

      > div.fr-action-buttons {
        display: block;
      }
    }
  }
}


@keyframes loading {
  from {left: -25%;}
  to {left: 100%}
}

.keyframes(loading, {
  from {left: -25%;}
  to {left: 100%}
});


/***** plugins/image.less *****/

.fr-element img {
  cursor: pointer;
  padding: @image-padding;
}

.fr-image-resizer {
  position: absolute;
  border: solid 1px @ui-color;
  display: none;
  .user-select(none);
  .box-sizing(content-box);

  &.fr-active {
    display: block,
  }

  .fr-handler {
    display: block;
    position: absolute;
    background: @ui-color;
    border: solid 1px @white;
    .border-radius(2px);
    z-index: 4;
    .box-sizing(border-box);

    &.fr-hnw {
      cursor: nw-resize,
    }

    &.fr-hne {
      cursor: ne-resize,
    }

    &.fr-hsw {
      cursor: sw-resize,
    }

    &.fr-hse {
      cursor: se-resize,
    }
  }

  .handler-size(@handler-size);

  @media(min-width: @screen-lg) {
    .handler-size(@handler-size-lg);
  }
}

.fr-image-overlay {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  z-index: 2147483640;
  display: none;
}

.fr-popup {
  .fr-image-upload-layer {
    border: dashed 2px @ui-disabled-color;
    padding: 25px 0;
    margin: @popup-border-margin;
    position: relative;
    font-size: 14px;
    letter-spacing: 1px;
    line-height: 140%;
    text-align: center;

    &:hover {
      background: @ui-hover-color;
    }

    &.fr-drop {
      background: @ui-hover-color;
      border-color: @ui-color;
    }

    .fr-form {
      .opacity(0);
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 2147483640;
      overflow: hidden;
      margin: 0 !important;
      padding: 0 !important;
      width: 100% !important;

      input {
        cursor: pointer;
        position: absolute;
        right: 0;
        top: 0;
        bottom: 0;
        width: 500%;
        height: 100%;
        margin: 0;
        font-size: 400px;
      }
    }
  }

  .fr-image-progress-bar-layer {
    > h3 {
      font-size: 16px;
      margin: 10px 0;
      font-weight: normal;
    }

    > div.fr-action-buttons {
      display: none;
    }

    > div.fr-loader {
      background: mix(@white, @ui-color, 70%);
      height: 10px;
      width: 100%;
      margin-top: 20px;
      overflow: hidden;
      position: relative;

      span {
        display: block;
        height: 100%;
        width: 0%;
        background: @ui-color;
        .transition(width @transition-timing);
      }

      &.fr-indeterminate {
        span {
          width: 30% !important;
          position: absolute;
          top: 0;
          .animation(loading 2s linear infinite);
        }
      }
    }

    &.fr-error {
      > div.fr-loader {
        display: none;
      }

      > div.fr-action-buttons {
        display: block;
      }
    }
  }
}

.fr-image-size-layer {
  .fr-image-group {
    .fr-input-line {
      width: calc(~"50% - 5px");
      display: inline-block;

      + .fr-input-line {
        margin-left: 10px;
      }
    }
  }
}

.fr-uploading {
  .opacity(0.4);
}

.keyframes(loading, {
  from {left: -25%;}
  to {left: 100%}
});

img.fr-draggable {
  user-select: none;
}


/***** plugins/table.less *****/

.fr-element {
  table {
    td.fr-selected-cell, th.fr-selected-cell {
      border: 1px double @ui-color;
    }

    td, th {
      .user-select(text);
    }
  }

  // Prevent Firefox selection.
  .fr-no-selection {
    table {
      td, th {
        .user-select(none);
      }
    }
  }
}

.fr-table-resizer {
  cursor: col-resize;
  position: absolute;
  z-index: 3;
  display: none;

  &.fr-moving {
    z-index: 2;
  }

  div {
    .opacity(0);
    border-right: @table-resizer;
  }
}

.fr-no-selection {
  .user-select(none);
}

// Table popups.
.fr-popup {

  // Insert table.
  .fr-table-size {

    margin: @popup-border-margin;

    .fr-table-size-info {
      text-align: center;
      font-size: 14px;
    }

    .fr-select-table-size {
      line-height: 0;
      padding: 5px;
      white-space: nowrap;

      > span {
        display: inline-block;
        padding: 0 4px 4px 0;
        background: transparent;

        > span {
          display: inline-block;
          width: 18px;
          height: 18px;
          border: @insert-table-grid;
        }

        &.hover {
          background: transparent;

          > span {
            background: rgba(red(@ui-color), green(@ui-color), blue(@ui-color), 0.3);
            border: solid 1px @ui-color;
          }
        }
      }

      .new-line {	
        .fr-clearfix();
      }
    }
  }

  &.fr-above {
    .fr-table-size {
      .fr-select-table-size {
        > span {
          display: inline-block !important;
        }
      }
    }
  }

  // Table colors.
  .fr-table-colors {
    display: block;
    padding: @popup-border-padding;
    padding-bottom: 0;
  }
}

.fr-popup.fr-desktop .fr-table-size .fr-select-table-size > span > span {
  width: 12px;
  height: 12px;
}

.fr-insert-helper {
  position: absolute;
  z-index: 9999;
  white-space: nowrap;
}


/***** plugins/video.less *****/

.fr-element {
  .fr-video {
    .user-select(none);

    &::after {
      position: absolute;
      content: '';
      z-index: 1;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      cursor: pointer;
      display: block;
      background: rgba(0,0,0,0);
    }

    &.fr-active > * {
      z-index: 2;
      position: relative;
    }

    > * {
      .box-sizing(content-box);
      max-width: 100%;
      border: none;
    }
  }
}

.fr-box .fr-video-resizer {
  position: absolute;
  border: solid 1px @ui-color;
  display: none;
  .user-select(none);

  &.fr-active {
    display: block,
  }

  .fr-handler {
    display: block;
    position: absolute;
    background: @ui-color;
    border: solid 1px @white;
    z-index: 4;
    .box-sizing(border-box);

    &.fr-hnw {
      cursor: nw-resize,
    }

    &.fr-hne {
      cursor: ne-resize,
    }

    &.fr-hsw {
      cursor: sw-resize,
    }

    &.fr-hse {
      cursor: se-resize,
    }
  }

  .handler-size(@handler-size);

  @media(min-width: @screen-lg) {
    .handler-size(@handler-size-lg);
  }
}

.fr-popup {
  .fr-video-size-layer {
    .fr-video-group {
      .fr-input-line {
        width: calc(~"50% - 5px");
        display: inline-block;

        + .fr-input-line {
          margin-left: 10px;
        }
      }
    }
  }

  .fr-video-upload-layer {
    border: dashed 2px @ui-disabled-color;
    padding: 25px 0;
    margin: @popup-border-margin;
    position: relative;
    font-size: 14px;
    letter-spacing: 1px;
    line-height: 140%;
    text-align: center;

    &:hover {
      background: @ui-hover-color;
    }

    &.fr-drop {
      background: @ui-hover-color;
      border-color: @ui-color;
    }

    .fr-form {
      .opacity(0);
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 2147483640;
      overflow: hidden;
      margin: 0 !important;
      padding: 0 !important;
      width: 100% !important;

      input {
        cursor: pointer;
        position: absolute;
        right: 0;
        top: 0;
        bottom: 0;
        width: 500%;
        height: 100%;
        margin: 0;
        font-size: 400px;
      }
    }
  }

  .fr-video-progress-bar-layer {
    > h3 {
      font-size: 16px;
      margin: 10px 0;
      font-weight: normal;
    }

    > div.fr-action-buttons {
      display: none;
    }

    > div.fr-loader {
      background: mix(@white, @ui-color, 70%);
      height: 10px;
      width: 100%;
      margin-top: 20px;
      overflow: hidden;
      position: relative;

      span {
        display: block;
        height: 100%;
        width: 0%;
        background: @ui-color;
        .transition(width @transition-timing);
      }

      &.fr-indeterminate {
        span {
          width: 30% !important;
          position: absolute;
          top: 0;
          .animation(loading 2s linear infinite);
        }
      }
    }

    &.fr-error {
      > div.fr-loader {
        display: none;
      }

      > div.fr-action-buttons {
        display: block;
      }
    }
  }
}

.fr-video-overlay {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  z-index: 2147483640;
  display: none;
}

.fr-autoplay-margin{
  margin-top:0px !important;
}

/* Files: froala.less, plugins/colors.less, plugins/draggable.less, plugins/file.less, plugins/image.less, plugins/table.less, plugins/video.less */]]></template>
  <template type="public" title="editor_dialog_code" version_id="2010670" version_string="2.1.6"><![CDATA[<xf:title>{{ phrase('insert_code') }}</xf:title>

<form class="block" id="editor_code_form">
	<div class="block-container">
		<div class="block-body" data-xf-init="code-editor-switcher-container">
			<xf:selectrow id="editor_code_type" class="js-codeEditorSwitcher"
				label="{{ phrase('language_code') }}">

				<xf:optgroup label="{{ phrase('non_language_specific') }}">
					<xf:option value="">{{ phrase('code_language.general') }}</xf:option>
					<xf:option value="rich">{{ phrase('code_language.rich') }}</xf:option>
				</xf:optgroup>

				<xf:optgroup label="{{ phrase('common_languages') }}">
					<xf:foreach loop="$languages" key="$key" value="$language">
						<xf:if is="$language.common">
							<xf:option value="{$key}">{$language.phrase}</xf:option>
						</xf:if>
					</xf:foreach>
				</xf:optgroup>

				<xf:optgroup label="{{ phrase('other_languages') }}">
					<xf:foreach loop="$languages" key="$key" value="$language">
						<xf:option value="{$key}">{$language.phrase}</xf:option>
					</xf:foreach>
				</xf:optgroup>

			</xf:selectrow>

			<xf:codeeditorrow
				id="editor_code_code"
				class="codeEditor--short"
				rowtype="fullWidth noLabel"
				rowclass="js-codeEditorContainer"
				label="{{ phrase('code') }}" />
		</div>
		<xf:submitrow submit="{{ phrase('continue') }}" id="editor_code_submit" />
	</div>
</form>]]></template>
  <template type="public" title="editor_dialog_media" version_id="2020470" version_string="2.2.4"><![CDATA[<xf:title>{{ phrase('insert_media') }}</xf:title>

<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<form class="block" id="editor_media_form">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow id="editor_media_url" type="url"
				label="{{ phrase('enter_media_url') }}"/>

			<xf:formrow
				label="{{ phrase('approved_sites') }}"
				hint="{{ phrase('you_may_insert_media_from_these_sources') }}">

				<ul class="listInline listInline--comma u-smaller">
					<xf:foreach loop="$sites" key="$siteId" value="$site" if="$site.supported">
						<li><a href="{$site.site_url}" target="_blank">{$site.site_title}</a></li>
					</xf:foreach>
				</ul>
				<div class="formRow-explain">
					<a href="{{ link('help', {'page_name': 'bb-codes'}) }}#media" target="_blank">{{ phrase('help') }}</a>
				</div>
			</xf:formrow>
		</div>
		<xf:submitrow submit="{{ phrase('continue') }}" id="editor_media_submit" />
	</div>
</form>
]]></template>
  <template type="public" title="editor_dialog_spoiler" version_id="2000051" version_string="2.0.0 Release Candidate 1"><![CDATA[<xf:title>{{ phrase('insert_spoiler') }}</xf:title>

<form class="block" id="editor_spoiler_form">
	<div class="block-container">
		<div class="block-body">
			<xf:textboxrow id="editor_spoiler_title"
				label="{{ phrase('enter_spoiler_title') }}"
				explain="{{ phrase('enter_spoiler_title_explain') }}" />
		</div>
		<xf:submitrow submit="{{ phrase('continue') }}" id="editor_spoiler_submit" />
	</div>
</form>]]></template>
  <template type="public" title="editor_insert_gif" version_id="2030033" version_string="2.3.0 Beta 3"><![CDATA[<xf:css src="editor_insert_gif.less" />

<div class="menu-row menu-row--alt menu-row--close menu-row--search">
	<div class="inputGroup">
		<xf:textbox class="js-gifSearch" placeholder="{{ phrase('search...') }}" autofocus="autofocus" />
		<xf:button icon="close" class="button--iconOnly button--plain js-gifCloser" title="{{ phrase('close') }}"
			data-no-auto-focus="true" data-menu-closer="true">
			<span class="u-srOnly">{{ phrase('close') }}</span>
		</xf:button>
	</div>
</div>
<div class="menu-scroller">
	<div class="menu-row js-gifFullRow">
		<div class="gifContainer js-gifContainer">
			<xf:foreach loop="$trending" value="$image" key="$id">
				<a class="gifContainer-item js-gif">
					<span class="gifContainer-cover">
						<xf:fa icon="fa-spinner-third fa-3x" />
					</span>
					<img src="{$image.thumb}" data-id="{$id}"
						data-src="{$image.src}"
						data-insert="{$image.insert}"
						alt="{$image.title}" title="{$image.title}" />
				</a>
			</xf:foreach>
			<xf:if is="$trending">
				<a class="gifContainer-item js-gifLoadMore is-loading" data-href="{{ link('editor/insert-gif', null, {'offset': $nextOffset}) }}">
					<span class="gifContainer-cover">
						<xf:fa icon="fa-spinner-third fa-3x" />
					</span>
				</a>
			</xf:if>
		</div>
	</div>
	<div class="menu-row js-gifSearchRow" style="display: none"></div>
</div>
<div class="menu-footer menu-footer--close menu-footer--split">
	<div class="menu-footer-opposite">
		<a href="https://giphy.com" target="_blank">
			<xf:macro id="style_variation_macros::picture_color_scheme"
				arg-light="styles/default/xenforo/giphy.png"
				arg-dark="styles/default/xenforo/giphy_dark.png"
				arg-width="100"
				arg-height="11"
				arg-alt="{{ phrase('powered_by_giphy') }}" />
		</a>
	</div>
</div>]]></template>
  <template type="public" title="editor_insert_gif.less" version_id="2020032" version_string="2.2.0 Beta 2"><![CDATA[@_gifMinSize: 110px;
@_gifBorderRadius: @xf-borderRadiusSmall;

.gifContainer
{
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(@_gifMinSize, 1fr));
	grid-gap: @xf-paddingMedium;
}

.gifContainer-item
{
	position: relative;
	cursor: pointer;

	&:before
	{
		content: "";
		padding-bottom: 100%;
		display: inline-block;
		vertical-align: top;
	}

	img
	{
		position: absolute;
		object-fit: cover;
		width: 100%;
		height: 100%;
	}
}

.gifContainer-cover
{
	opacity: 0;
	text-align: center;
	position: absolute;
	background-color: rgba(0, 0, 0, 0.6);
	.m-textColoredLinks();
	color: white;
	text-shadow: -0.5px -0.5px 0 #000, 0.5px -0.5px 0 #000, -0.5px 0.5px 0 #000, 0.5px 0.5px 0 #000;
	width: 100%;
	height: 100%;
	z-index: 100;

	.m-loadingSpinner();
}]]></template>
  <template type="public" title="editor_insert_gif_search_results" version_id="2020032" version_string="2.2.0 Beta 2"><![CDATA[<xf:css src="editor_insert_gif.less" />

<xf:if is="$results">
	<div class="gifContainer js-gifContainer">
		<xf:foreach loop="$results" value="$image" key="$id">
			<a class="gifContainer-item js-gif">
				<span class="gifContainer-cover">
					<xf:fa icon="fa-spinner-third fa-3x" />
				</span>
				<img src="{$image.thumb}" data-id="{$id}"
					data-src="{$image.src}"
					data-insert="{$image.insert}"
					alt="{$image.title}" title="{$image.title}" />
			</a>
		</xf:foreach>

		<a class="gifContainer-item js-gifLoadMore is-loading" data-href="{{ link('editor/insert-gif/search', null, {'q': $q, 'offset': $nextOffset}) }}">
		<span class="gifContainer-cover">
			<xf:fa icon="fa-spinner-third fa-3x" />
		</span>
		</a>
	</div>
<xf:else />
	{{ phrase('no_results_found') }}
</xf:if>]]></template>
  <template type="public" title="editor_override.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[// Generic
@font-family: @xf-fontFamilyUi; // font family for Froala UI elements // Arial, Helvetica, sans-serif;
@border-radius: @xf-borderRadiusSmall; // used for tooltips, menus... // 2px;
@bg-color: @xf-editorToolsOverflowBg; // used for the background of the 'more' strip? // @bg-color: #f5f5f5;

// UI colors
@ui-color:  @xf-editorImageHandles; // used seemingly randomly for some icons, some borders, some drag handles... // #0098f7;
@ui-text: @xf-textColor; // #222222; // used for 'Drop x here' type buttons
@ui-hover-color: @xf-contentAltBg; // used for the 'drop image' box // mix(@white, #999, 80%);
@ui-disabled-color: @xf-editorButtonDisabledColor; // mix(@white, #000, 74%);
@ui-active-color: @xf-majorHeadingBg; // background for active controls (dropdown deployed etc.)? // #d6d6d6;
@ui-bg: @xf-contentBg; // @white;
@ui-border-color: @xf-textColor; // @ui-text;
@ui-bg-color: @xf-textColor;
@ui-bg-color-more: @xf-editorToolsOverflowBg; // @bg-color;

// Tooltip
@tooltip-bg: xf-default(@xf-tooltip--background-color, fade(@xf-paletteNeutral3, 80%)); // @ui-text;
@tooltip-text: xf-default(@xf-tooltip--color, contrast(@xf-paletteNeutral3)); // @white;
@tooltip-font-size: xf-default(@xf-tooltip--font-size, @xf-fontSizeSmaller); // 11px;
@tooltip-line-height: (@tooltip-font-size * 2.5); // 22px;

// Editor properties.
@editor-padding: 20px; // 20px;
@editor-bg: transparent; // @white
@editor-font-family: @xf-fontFamilyBody; // sans-serif;
@editor-font-color: @xf-editorColor; // #414141;
@editor-font-size: @xf-fontSizeNormal; // 14px;
@editor-line-height: @xf-lineHeightDefault; // 1.6;
@editor-border: solid 1px @xf-borderColor; // 1px solid @gray;
@editor-border-radius: xf-default(@xf-input--border-radius, @xf-borderRadiusMedium); // 10px;
@editor-align: left;

// Text selection colors.
@selection-bg: @xf-editorSelectionBg;
@selection-text: @xf-editorSelectionColor;

// Placeholder properties.
@placeholder-color: fade(xf-default(@xf-input--color, @xf-textColor), 40%); // #AAA;

// Button colors.
@btn-text: @xf-editorButtonColor; // @light-black;
@btn-hover-text: @xf-editorButtonHoverColor; // @light-black;
@btn-hover-bg: @xf-editorButtonHoverBg; // #ebebeb;
@ui-focused-color: @xf-editorButtonSelectedBg; // mix(@white, #999, 60%);

@btn-active-text: @xf-editorButtonActiveColor; // @ui-color;
@btn-active-bg: @xf-majorHeadingBg; // @ui-active-color;
@btn-active-hover-text: @xf-editorButtonActiveColor; // @btn-active-text;

@btn-disabled-color: @xf-editorButtonDisabledColor; // @ui-disabled-color;
@btn-disabled-opacity: 0.95;

// Button size.
@btn-width: 30px;
@btn-height: 32px;
@btn-margin: 2px;
@btn-more-toolbar-height: 26px;

// Table properties.
@table-border: 1px solid @xf-borderColor; // 1px solid #DDD;
@table-resizer: 1px solid @xf-editorButtonActiveColor; // 1px solid @ui-color;

@toolbar-transition-timing: @xf-animationSpeed;

@popup-layer-margin: 10px;]]></template>
  <template type="public" title="editor_smilies_emoji" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<div class="menu-row menu-row--highlighted menu-row--insertedMessage js-emojiInsertedRow">
	<div class="menu-emojiInsertedMessage">
		{{ phrase('inserted:') }} <span class="js-emojiInsert"></span>
	</div>
</div>
<div class="menu-row menu-row--alt menu-row--close">
	<div class="inputGroup">
		<xf:textbox class="js-emojiSearch" placeholder="{{ phrase('search...') }}" autofocus="autofocus" />
		<xf:button icon="close" class="button--iconOnly button--plain js-emojiCloser" title="{{ phrase('close') }}"
			data-no-auto-focus="true" data-menu-closer="true">
			<span class="u-srOnly">{{ phrase('close') }}</span>
		</xf:button>
	</div>
</div>
<div class="menu-scroller js-emojiFullList">
	<h3 class="menu-header js-recentHeader {{ !$recent ? 'is-hidden' : '' }}">{{ phrase('recently_used') }}</h3>
	<div class="menu-row js-recentBlock {{ !$recent ? 'is-hidden' : '' }}">
		<ul class="emojiList js-recentList">
			<xf:foreach loop="$recent" key="$shortname" value="$emoji">
				<li><a class="js-emoji" data-shortname="{$shortname}">
					<xf:if is="$emoji.smilie_id">
						{{ smilie($shortname, 'rte') }}
					<xf:else />
						{$emoji.html|raw}
					</xf:if>
				</a></li>
			</xf:foreach>
		</ul>
	</div>
	<xf:foreach loop="$smilieCategories"
		key="$categoryId"
		value="$category">
		<xf:if contentcheck="true">
			<h3 class="menu-header">{{ $categoryId ? $category.title : phrase('smilies') }}</h3>
			<div class="menu-row">
				<ul class="emojiList js-emojiList">
					<xf:contentcheck>
						<xf:foreach loop="{$groupedSmilies.{$categoryId}}" value="{$smilie}">
							<li><a class="js-emoji" data-shortname="{$smilie.smilie_text_options.0}">{{ smilie($smilie.smilie_text_options.0, 'rte') }}</a></li>
						</xf:foreach>
					</xf:contentcheck>
				</ul>
			</div>
		</xf:if>
	</xf:foreach>
	<xf:foreach loop="$emojiCategories" key="$categoryId" value="$name">
		<h3 class="menu-header">{$name}</h3>
		<div class="menu-row">
			<ul class="emojiList js-emojiList">
				<xf:foreach loop="{$groupedEmoji.{$categoryId}}" value="{$emoji}">
					<li><a class="js-emoji" data-shortname="{$emoji.shortname}">{$emoji.html|raw}</a></li>
				</xf:foreach>
			</ul>
		</div>
	</xf:foreach>
</div>
<div class="menu-scroller js-emojiSearchResults" style="display: none;"></div>]]></template>
  <template type="public" title="editor_smilies_emoji_search_results" version_id="2010033" version_string="2.1.0 Beta 3"><![CDATA[<div class="block-body block-body--emoji js-emojiSearchResults">
	<div class="block-row">
		<xf:if is="$results">
			<ul class="emojiList">
				<xf:foreach loop="$results" value="{$result}">
					<li><a class="js-emoji" data-shortname="{$result.shortname}">{$result.html|raw}</a></li>
				</xf:foreach>
			</ul>
		<xf:else />
			{{ phrase('no_results_found') }}
		</xf:if>
	</div>
</div>]]></template>
  <template type="public" title="email_stop_confirm" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('stop_email_notifications') }}</xf:title>

<xf:head option="robots"><meta name="robots" content="noindex" /></xf:head>

<xf:form action="{{ link('email-stop', $user) }}" class="block">
	<div class="block-container">
		<xf:if is="$actions">
			<div class="block-body">
				<xf:radiorow name="stop" value="{{ $defaultAction ?: 'all' }}" label="{{ phrase('confirm_action') }}">
					<xf:options source="$actions" />
					<xf:option value="all">{{ phrase('stop_all_emails_from_x', {'title': $xf.options.boardTitle}) }}</xf:option>
				</xf:radiorow>
			</div>
			<xf:submitrow submit="{{ phrase('stop_emails') }}" />
		<xf:else />
			<div class="block-body">
				<xf:inforow rowtype="confirm">
					{{ phrase('you_sure_you_want_to_stop_all_emails_from_x', {'board_title': $xf.options.boardTitle}) }}
				</xf:inforow>
			</div>
			<xf:submitrow rowtype="simple" submit="{{ phrase('stop_emails') }}" icon="notificationsOff" />
			<xf:hiddenval name="stop">all</xf:hiddenval>
		</xf:if>
	</div>

	<xf:hiddenval name="c">{$confirmKey}</xf:hiddenval>
</xf:form>]]></template>
  <template type="public" title="embed_resolver.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[html.p-embed-container
{
	background: transparent;

	.embed
	{
		margin: 0;
		overflow: hidden;
	}
}

.embed
{
	display: flow-root;
	margin: .5em 0;
	width: 100%;
	max-width: 100%;

	border: 1px solid @xf-borderColor;
	border-radius: @xf-borderRadiusMedium;
	text-align: left;

	.m-blockAligner();

	overflow: hidden;
}

.embed-container
{
	padding: @xf-paddingMedium;

	.contentRow-header
	{
		margin: 0;
		font-weight: normal;
		.m-overflowEllipsis();
	}

	.contentRow-faderContainer
	{
		font-size: @xf-fontSizeSmaller;
		margin: .25em 0;
	}

	.contentRow-minor
	{
		font-size: @xf-fontSizeSmaller;

		.listInline
		{
			margin: 0;
		}
	}
}

.embed-cover
{
	padding: 0;
	border-bottom: 1px solid @xf-borderColor;
	overflow: hidden;
	height: 100%;

	img
	{
		display: block;
		width: 100%;
		height: 100%;
		max-height: 200px;
		object-fit: cover;
		object-position: center;
	}
}

.embed-preview
{
	padding: 0 @xf-paddingMedium;
	font-size: @xf-fontSizeSmall;
	font-style: italic;

	.bbCodeBlock
	{
		.bbCodeBlock-title,
		.bbCodeBlock-content
		{
			font-size: @xf-fontSizeSmaller;
			font-style: normal;
		}
	}
}

.embed-footer
{
	padding: @xf-paddingMedium;
	font-size: @xf-fontSizeSmaller;
	color: @xf-textColorMuted;
	//border-top: @xf-borderSize solid @xf-borderColorLight;

	.m-hiddenLinks();
	.m-clearFix();

	&:empty
	{
		display: none;
	}

	ul.listInline,
	ul.reactionSummary
	{
		margin: 0;
	}
}

.embed-footer-main { float: left; }
.embed-footer-opposite { float: right; }]]></template>
  <template type="public" title="embed_resolver_post" version_id="2030053" version_string="2.3.0 Release Candidate 3"><![CDATA[<div class="embed-container contentRow contentRow--alignMiddle">
	<div class="contentRow-figure">
		<xf:avatar user="$content.User" size="s" defaultname="{$content.username}"/>
	</div>
	<div class="contentRow-main">
		<h3 class="contentRow-header">
			<xf:if is="$content.Thread.prefix_id">
				{{ prefix('thread', $content.Thread, 'html', '') }}
			</xf:if>
			<a href="{$content.getContentUrl()}" class="fauxBlockLink-blockLink u-cloaked">{$content.getContentTitle()}</a>
		</h3>

		<div class="contentRow-minor contentRow-minor--hideLinks">
			<xf:date time="{$content.post_date}"/>
		</div>
	</div>
</div>

<div class="embed-preview">
	{{ bb_code_snippet($content.message, 'post', $content, 600, {'withinEmbedResolver': true}) }}
</div>

<div class="embed-footer">
	<div class="embed-footer-main">
		<ul class="listInline listInline--bullet">
			<li>
				<xf:username user="{$content.User}" defaultname="{$content.username}"/>
			</li>
		</ul>
	</div>
	<div class="embed-footer-opposite">
		<xf:reactions summary="true" reactions="{$content.reactions}"/>
	</div>
</div>]]></template>
  <template type="public" title="embed_resolver_profile_post" version_id="2030053" version_string="2.3.0 Release Candidate 3"><![CDATA[<div class="embed-container contentRow contentRow--alignMiddle">
	<div class="contentRow-figure">
		<xf:avatar user="$content.User" size="s" defaultname="{$content.username}"/>
	</div>
	<div class="contentRow-main">
		<h3 class="contentRow-header">
			<a href="{$content.getContentUrl()}" class="fauxBlockLink-blockLink u-cloaked">
				<xf:if is="$content.user_id == $content.ProfileUser.user_id">
					{{ $content.getContentTitle() }}
				<xf:else />
					{{ phrase('xs_message_on_ys_profile', {
						'usernamePoster': $content.User.username,
						'usernameReceiver': $content.ProfileUser.username
					}) }}
				</xf:if>
			</a>
		</h3>

		<div class="contentRow-minor contentRow-minor--hideLinks">
			<xf:date time="{$content.post_date}"/>
		</div>
	</div>
</div>

<div class="embed-preview">
	{{ snippet($content.message, 300, {"stripQuote": true, 'withinEmbedResolver': true}) }}
</div>

<div class="embed-footer">
	<div class="embed-footer-main">
		<ul class="listInline listInline--bullet">
			<li>
				<xf:username user="{$content.User}" defaultname="{$content.username}"/>
			</li>
			<li>
				{{ phrase('comments:') }} {$content.comment_count|number}
			</li>
		</ul>
	</div>
	<div class="embed-footer-opposite">
		<xf:reactions summary="true" reactions="{$content.reactions}"/>
	</div>
</div>]]></template>
  <template type="public" title="embed_resolver_thread" version_id="2030053" version_string="2.3.0 Release Candidate 3"><![CDATA[<xf:css src="help_page_smilies.less" />

<div class="embed-container contentRow contentRow--alignMiddle">
	<div class="contentRow-figure">
		<xf:avatar user="$content.User" size="s" defaultname="{$content.username}" />
	</div>
	<div class="contentRow-main">
		<h3 class="contentRow-header">
			<xf:if is="$content.prefix_id">
				{{ prefix('thread', $content, 'html', '') }}
			</xf:if>
			<a href="{$content.getContentUrl()}" class="fauxBlockLink-blockLink u-cloaked">{$content.getContentTitle()}</a>
		</h3>

		<div class="contentRow-minor contentRow-minor--hideLinks">
			<xf:date time="{$content.post_date}" />
		</div>
	</div>
</div>

<div class="embed-preview">
	{{ bb_code_snippet($content.FirstPost.message, 'post', $content.FirstPost, 600, {'withinEmbedResolver': true}) }}
</div>

<xf:comment>
<xf:if is="$content.cover_image_data.src">
	<div class="embed-cover">
		<img src="{$content.cover_image_data.src}" width="{$content.cover_image_data.width}" height="{$content.cover_image_data.height}" loading="lazy" />
	</div>
</xf:if>
</xf:comment>

<div class="embed-footer">
	<div class="embed-footer-main">
		<ul class="listInline listInline--bullet">
			<li><xf:username user="{$content.User}" defaultname="{$content.username}" /></li>
			<xf:if is="$xf.options.enableTagging && $content.tags">
				<li>
					<xf:macro template="tag_macros" name="simple_list"
						arg-tags="{$content.tags}" />
				</li>
			</xf:if>
			<li>{{ phrase('replies:') }} {$content.reply_count|number}</li>
			<li>{{ phrase('forum:') }} <a href="{{ link('forums', $content.Forum) }}">{$content.Forum.title}</a></li>
		</ul>
	</div>
	<div class="embed-footer-opposite">
		<xf:reactions summary="true" reactions="{$content.first_post_reactions}" />
	</div>
</div>]]></template>
  <template type="public" title="embed_view" version_id="2030170" version_string="2.3.1"><![CDATA[<xf:css src="embed_resolver.less" />

<div class="embed fauxBlockLink" data-embed-content="{$content.getEntityContentTypeId()}" data-embed-content-url="{$contentUrl}">
	{$content.renderEmbed()|raw}
</div>

<script{{ $xf.request.isRocketLoaderDisabled() ? ' data-cfasync="false"' : ''}}>
	window.addEventListener('message', receiveMessage, false);

	function receiveMessage(event)
	{
		if (event.data.type !== 'getHeight')
		{
			return;
		}

		let allImages = document.querySelectorAll('img');

		if (allImages.length)
		{
			let loaded = 0;

			for (let i = 0; i < allImages.length; i++)
			{
				// remove lazy loading in a lazy way...
				allImages[i].removeAttribute('loading');

				if (allImages[i].complete)
				{
					loaded++;
					if (loaded === allImages.length)
					{
						const height = document.body.scrollHeight;
						event.source.postMessage({ messageId: event.data.messageId, height: height }, event.origin);
					}
				}
				else
				{
					allImages[i].onload = function()
					{
						loaded++;
						if (loaded === allImages.length)
						{
							const height = document.body.scrollHeight;
							event.source.postMessage({ messageId: event.data.messageId, height: height }, event.origin);
						}
					}
				}
			}
		}
		else
		{
			const height = document.body.scrollHeight;
			event.source.postMessage({ messageId: event.data.messageId, height: height }, event.origin);
		}
	}
</script>]]></template>
  <template type="public" title="embed_view_error" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<div>{{ phrase('oops_we_ran_into_some_problems') }}</div>
<div>{$error}</div>]]></template>
  <template type="public" title="error" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('oops_we_ran_into_some_problems') }}</xf:title>

<div class="blockMessage">
	<xf:if is="$error">
		{$error|raw}
	<xf:else />
		<ul>
		<xf:foreach loop="$errors" value="$error">
			<li>{$error|raw}</li>
		</xf:foreach>
		</ul>
	</xf:if>
</div>]]></template>
  <template type="public" title="extra.less" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[]]></template>
  <template type="public" title="fa.css" version_id="2030036" version_string="2.3.0 Beta 6"><![CDATA[.fa--xf{display:inline-block;line-height:1}.fa--xf svg{width:1em;height:1em;vertical-align:-0.125em;color:currentColor}.fa--xf:empty{display:none}.fa-primary{opacity:1}.fa-secondary{opacity:.4}.fa--xf.fa-lg svg{font-size:1.33333333em;line-height:.75em;vertical-align:-.0667em}.fa--xf.fa-xs svg{font-size:.75em}.fa--xf.fa-sm svg{font-size:.875em}.fa--xf.fa-1x svg{font-size:1em}.fa--xf.fa-2x svg{font-size:2em}.fa--xf.fa-3x svg{font-size:3em}.fa--xf.fa-4x svg{font-size:4em}.fa--xf.fa-5x svg{font-size:5em}.fa--xf.fa-6x svg{font-size:6em}.fa--xf.fa-7x svg{font-size:7em}.fa--xf.fa-8x svg{font-size:8em}.fa--xf.fa-9x svg{font-size:9em}.fa--xf.fa-10x svg{font-size:10em}.fa--xf.fa-fw svg{text-align:center;width:1.25em}.fa--xf.fa-ul svg{list-style-type:none;margin-left:2.5em;padding-left:0}.fa--xf.fa-ul svg>li{position:relative}.fa--xf.fa-li svg{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa--xf.fa-border svg{border-radius:.1em;border:solid .08em #eee;padding:.2em .25em .15em}.fa--xf.fa-pull-left svg{float:left}.fa--xf.fa-pull-right svg{float:right}.fa.fa--xf.fa-pull-left svg,.fas.fa--xf.fa-pull-left svg,.far.fa--xf.fa-pull-left svg,.fal.fa--xf.fa-pull-left svg,.fab.fa--xf.fa-pull-left svg{margin-right:.3em}.fa.fa--xf.fa-pull-right svg,.fas.fa--xf.fa-pull-right svg,.far.fa--xf.fa-pull-right svg,.fal.fa--xf.fa-pull-right svg,.fab.fa--xf.fa-pull-right svg{margin-left:.3em}.fa--xf.fa-spin svg{animation:fa-spin 2s infinite linear}.fa--xf.fa-pulse svg{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.fa--xf.fa-rotate-90 svg{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa--xf.fa-rotate-180 svg{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa--xf.fa-rotate-270 svg{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa--xf.fa-flip-horizontal svg{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scale(-1, 1)}.fa--xf.fa-flip-vertical svg{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scale(1, -1)}.fa--xf.fa-flip-both svg,.fa--xf.fa-flip-horizontal.fa-flip-vertical svg{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scale(-1, -1)}:root .fa--xf.fa-rotate-90 svg,:root .fa--xf.fa-rotate-180 svg,:root .fa--xf.fa-rotate-270 svg,:root .fa--xf.fa-flip-horizontal svg,:root .fa--xf.fa-flip-vertical svg,:root .fa--xf.fa-flip-both svg{filter:none}.fa--xf.fa-stack svg{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2em}.fa--xf.fa-stack-1x svg,.fa--xf.fa-stack-2x svg{left:0;position:absolute;text-align:center;width:100%}.fa--xf.fa-stack-1x svg{line-height:inherit}.fa--xf.fa-stack-2x svg{font-size:2em}.fa--xf.fa-inverse svg{color:#fff}.sr-only{border:0;clip:rect(0, 0, 0, 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}]]></template>
  <template type="public" title="fancybox.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[/** core fancybox css **/
:root
{
	--f-spinner-width: 36px;
	--f-spinner-height: 36px;
	--f-spinner-color-1: rgba(0, 0, 0, 0.1);
	--f-spinner-color-2: rgba(17, 24, 28, 0.8);
	--f-spinner-stroke: 2.75
}

.f-spinner
{
	margin: auto;
	padding: 0;
	width: var(--f-spinner-width);
	height: var(--f-spinner-height)
}

.f-spinner svg
{
	width: 100%;
	height: 100%;
	vertical-align: top;
	animation: f-spinner-rotate 2s linear infinite
}

.f-spinner svg *
{
	stroke-width: var(--f-spinner-stroke);
	fill: none
}

.f-spinner svg *:first-child
{
	stroke: var(--f-spinner-color-1)
}

.f-spinner svg *:last-child
{
	stroke: var(--f-spinner-color-2);
	animation: f-spinner-dash 2s ease-in-out infinite
}

@keyframes f-spinner-rotate
{
	100%
	{
		transform: rotate(360deg)
	}
}

@keyframes f-spinner-dash
{
	0%
	{
		stroke-dasharray: 1, 150;
		stroke-dashoffset: 0
	}
	50%
	{
		stroke-dasharray: 90, 150;
		stroke-dashoffset: -35
	}
	100%
	{
		stroke-dasharray: 90, 150;
		stroke-dashoffset: -124
	}
}

.f-throwOutUp
{
	animation: .175s ease-out both f-throwOutUp
}

.f-throwOutDown
{
	animation: .175s ease-out both f-throwOutDown
}

@keyframes f-throwOutUp
{
	to
	{
		transform: translate3d(0, -150px, 0);
		opacity: 0
	}
}

@keyframes f-throwOutDown
{
	to
	{
		transform: translate3d(0, 150px, 0);
		opacity: 0
	}
}

.f-zoomInUp
{
	animation: var(--f-transition-duration, 0.2s) ease-out .1s both f-zoomInUp
}

.f-zoomOutDown
{
	animation: var(--f-transition-duration, 0.2s) ease-out both f-zoomOutDown
}

@keyframes f-zoomInUp
{
	from
	{
		transform: scale(0.975) translate3d(0, 16px, 0);
		opacity: 0
	}
	to
	{
		transform: scale(1) translate3d(0, 0, 0);
		opacity: 1
	}
}

@keyframes f-zoomOutDown
{
	to
	{
		transform: scale(0.975) translate3d(0, 16px, 0);
		opacity: 0
	}
}

.f-fadeIn
{
	animation: var(--f-transition-duration, 0.2s) ease both f-fadeIn;
	z-index: 2
}

.f-fadeOut
{
	animation: var(--f-transition-duration, 0.2s) ease both f-fadeOut;
	z-index: 1
}

@keyframes f-fadeIn
{
	0%
	{
		opacity: 0
	}
	100%
	{
		opacity: 1
	}
}

@keyframes f-fadeOut
{
	100%
	{
		opacity: 0
	}
}

.f-fadeSlowIn
{
	animation: var(--f-transition-duration, 0.5s) ease both f-fadeSlowIn;
	z-index: 2
}

.f-fadeSlowOut
{
	animation: var(--f-transition-duration, 0.5s) ease both f-fadeSlowOut;
	z-index: 1
}

@keyframes f-fadeSlowIn
{
	0%
	{
		opacity: 0
	}
	100%
	{
		opacity: 1
	}
}

@keyframes f-fadeSlowOut
{
	100%
	{
		opacity: 0
	}
}

.f-fadeFastIn
{
	animation: var(--f-transition-duration, 0.2s) ease-out both f-fadeFastIn;
	z-index: 2
}

.f-fadeFastOut
{
	animation: var(--f-transition-duration, 0.2s) ease-out both f-fadeFastOut;
	z-index: 2
}

@keyframes f-fadeFastIn
{
	0%
	{
		opacity: .75
	}
	100%
	{
		opacity: 1
	}
}

@keyframes f-fadeFastOut
{
	100%
	{
		opacity: 0
	}
}

.f-crossfadeIn
{
	animation: var(--f-transition-duration, 0.2s) ease-out both f-crossfadeIn;
	z-index: 2
}

.f-crossfadeOut
{
	animation: calc(var(--f-transition-duration, 0.2s) * .5) linear .1s both f-crossfadeOut;
	z-index: 1
}

@keyframes f-crossfadeIn
{
	0%
	{
		opacity: 0
	}
	100%
	{
		opacity: 1
	}
}

@keyframes f-crossfadeOut
{
	100%
	{
		opacity: 0
	}
}

.f-slideIn.from-next
{
	animation: var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-slideInNext
}

.f-slideIn.from-prev
{
	animation: var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-slideInPrev
}

.f-slideOut.to-next
{
	animation: var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-slideOutNext
}

.f-slideOut.to-prev
{
	animation: var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-slideOutPrev
}

@keyframes f-slideInPrev
{
	0%
	{
		transform: translateX(100%)
	}
	100%
	{
		transform: translate3d(0, 0, 0)
	}
}

@keyframes f-slideInNext
{
	0%
	{
		transform: translateX(-100%)
	}
	100%
	{
		transform: translate3d(0, 0, 0)
	}
}

@keyframes f-slideOutNext
{
	100%
	{
		transform: translateX(-100%)
	}
}

@keyframes f-slideOutPrev
{
	100%
	{
		transform: translateX(100%)
	}
}

.f-classicIn.from-next
{
	animation: var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-classicInNext;
	z-index: 2
}

.f-classicIn.from-prev
{
	animation: var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-classicInPrev;
	z-index: 2
}

.f-classicOut.to-next
{
	animation: var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-classicOutNext;
	z-index: 1
}

.f-classicOut.to-prev
{
	animation: var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-classicOutPrev;
	z-index: 1
}

@keyframes f-classicInNext
{
	0%
	{
		transform: translateX(-75px);
		opacity: 0
	}
	100%
	{
		transform: translate3d(0, 0, 0);
		opacity: 1
	}
}

@keyframes f-classicInPrev
{
	0%
	{
		transform: translateX(75px);
		opacity: 0
	}
	100%
	{
		transform: translate3d(0, 0, 0);
		opacity: 1
	}
}

@keyframes f-classicOutNext
{
	100%
	{
		transform: translateX(-75px);
		opacity: 0
	}
}

@keyframes f-classicOutPrev
{
	100%
	{
		transform: translateX(75px);
		opacity: 0
	}
}

:root
{
	--f-button-width: 40px;
	--f-button-height: 40px;
	--f-button-border: 0;
	--f-button-border-radius: 0;
	--f-button-color: #374151;
	--f-button-bg: #f8f8f8;
	--f-button-hover-bg: #e0e0e0;
	--f-button-active-bg: #d0d0d0;
	--f-button-shadow: none;
	--f-button-transition: all 0.15s ease;
	--f-button-transform: none;
	--f-button-svg-width: 20px;
	--f-button-svg-height: 20px;
	--f-button-svg-stroke-width: 1.5;
	--f-button-svg-fill: none;
	--f-button-svg-filter: none;
	--f-button-svg-disabled-opacity: 0.65
}

.f-button
{
	display: flex;
	justify-content: center;
	align-items: center;
	box-sizing: content-box;
	position: relative;
	margin: 0;
	padding: 0;
	width: var(--f-button-width);
	height: var(--f-button-height);
	border: var(--f-button-border);
	border-radius: var(--f-button-border-radius);
	color: var(--f-button-color);
	background: var(--f-button-bg);
	box-shadow: var(--f-button-shadow);
	pointer-events: all;
	cursor: pointer;
	transition: var(--f-button-transition)
}

@media (hover: hover)
{
	.f-button:hover:not([disabled])
	{
		color: var(--f-button-hover-color);
		background-color: var(--f-button-hover-bg)
	}
}

.f-button:active:not([disabled])
{
	background-color: var(--f-button-active-bg)
}

.f-button:focus:not(:focus-visible)
{
	outline: none
}

.f-button:focus-visible
{
	outline: none;
	box-shadow: inset 0 0 0 var(--f-button-outline, 2px) var(--f-button-outline-color, var(--f-button-color))
}

.f-button svg
{
	width: var(--f-button-svg-width);
	height: var(--f-button-svg-height);
	fill: var(--f-button-svg-fill);
	stroke: currentColor;
	stroke-width: var(--f-button-svg-stroke-width);
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: opacity .15s ease;
	transform: var(--f-button-transform);
	filter: var(--f-button-svg-filter);
	pointer-events: none
}

.f-button[disabled]
{
	cursor: default
}

.f-button[disabled] svg
{
	opacity: var(--f-button-svg-disabled-opacity)
}

.f-carousel__nav .f-button.is-prev, .f-carousel__nav .f-button.is-next, .fancybox__nav .f-button.is-prev, .fancybox__nav .f-button.is-next
{
	position: absolute;
	z-index: 1
}

.is-horizontal .f-carousel__nav .f-button.is-prev, .is-horizontal .f-carousel__nav .f-button.is-next, .is-horizontal .fancybox__nav .f-button.is-prev, .is-horizontal .fancybox__nav .f-button.is-next
{
	top: 50%;
	transform: translateY(-50%)
}

.is-horizontal .f-carousel__nav .f-button.is-prev, .is-horizontal .fancybox__nav .f-button.is-prev
{
	left: var(--f-button-prev-pos)
}

.is-horizontal .f-carousel__nav .f-button.is-next, .is-horizontal .fancybox__nav .f-button.is-next
{
	right: var(--f-button-next-pos)
}

.is-horizontal.is-rtl .f-carousel__nav .f-button.is-prev, .is-horizontal.is-rtl .fancybox__nav .f-button.is-prev
{
	left: auto;
	right: var(--f-button-next-pos)
}

.is-horizontal.is-rtl .f-carousel__nav .f-button.is-next, .is-horizontal.is-rtl .fancybox__nav .f-button.is-next
{
	right: auto;
	left: var(--f-button-prev-pos)
}

.is-vertical .f-carousel__nav .f-button.is-prev, .is-vertical .f-carousel__nav .f-button.is-next, .is-vertical .fancybox__nav .f-button.is-prev, .is-vertical .fancybox__nav .f-button.is-next
{
	top: auto;
	left: 50%;
	transform: translateX(-50%)
}

.is-vertical .f-carousel__nav .f-button.is-prev, .is-vertical .fancybox__nav .f-button.is-prev
{
	top: var(--f-button-next-pos)
}

.is-vertical .f-carousel__nav .f-button.is-next, .is-vertical .fancybox__nav .f-button.is-next
{
	bottom: var(--f-button-next-pos)
}

.is-vertical .f-carousel__nav .f-button.is-prev svg, .is-vertical .f-carousel__nav .f-button.is-next svg, .is-vertical .fancybox__nav .f-button.is-prev svg, .is-vertical .fancybox__nav .f-button.is-next svg
{
	transform: rotate(90deg)
}

html.with-fancybox
{
	width: auto;
	overflow: visible;
	scroll-behavior: auto
}

html.with-fancybox body
{
	touch-action: none
}

html.with-fancybox body.hide-scrollbar
{
	width: auto;
	margin-right: calc(var(--fancybox-body-margin, 0px) + var(--fancybox-scrollbar-compensate, 0px));
	overflow: hidden !important;
	overscroll-behavior-y: none
}

.fancybox__container
{
	--fancybox-color: #dbdbdb;
	--fancybox-hover-color: #fff;
	--fancybox-bg: rgba(24, 24, 27, 0.98);
	--fancybox-slide-gap: 10px;
	--f-spinner-width: 50px;
	--f-spinner-height: 50px;
	--f-spinner-color-1: rgba(255, 255, 255, 0.1);
	--f-spinner-color-2: #bbb;
	--f-spinner-stroke: 3.65;
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	direction: ltr;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	color: #f8f8f8;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
	overflow: visible;
	z-index: 1050;
	outline: none;
	transform-origin: top left;
	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: none;
	-ms-text-size-adjust: 100%;
	text-size-adjust: 100%;
	overscroll-behavior-y: contain
}

.fancybox__container *, .fancybox__container *::before, .fancybox__container *::after
{
	box-sizing: inherit
}

.fancybox__backdrop
{
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	z-index: -1;
	background: var(--fancybox-bg);
	opacity: var(--fancybox-opacity, 1);
	will-change: opacity
}

.fancybox__carousel
{
	position: relative;
	box-sizing: border-box;
	flex: 1;
	min-height: 0;
	z-index: 10;
	overflow-y: visible;
	overflow-x: clip
}

.fancybox__viewport
{
	width: 100%;
	height: 100%
}

.fancybox__track
{
	display: flex;
	margin: 0 auto;
	height: 100%
}

.fancybox__slide
{
	flex: 0 0 auto;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	height: 100%;
	margin: 0 var(--fancybox-slide-gap) 0 0;
	padding: 4px;
	overflow: auto;
	transform: translate3d(0, 0, 0);
	backface-visibility: hidden
}

.fancybox__container:not(.is-compact) .fancybox__slide.has-close-btn
{
	padding-top: 40px
}

.fancybox__slide.has-iframe, .fancybox__slide.has-video, .fancybox__slide.has-html5video
{
	overflow: hidden
}

.fancybox__slide.has-image
{
	overflow: hidden
}

.fancybox__slide.has-image.is-animating, .fancybox__slide.has-image.is-selected
{
	overflow: visible
}

.fancybox__slide::before, .fancybox__slide::after
{
	content: "";
	flex: 0 0 0;
	margin: auto
}

.fancybox__content
{
	align-self: center;
	display: flex;
	flex-direction: column;
	position: relative;
	margin: 0;
	padding: 2rem;
	max-width: 100%;
	color: var(--fancybox-content-color, #374151);
	background: var(--fancybox-content-bg, #fff);
	cursor: default;
	border-radius: 0;
	z-index: 20
}

.is-loading .fancybox__content
{
	opacity: 0
}

.is-draggable .fancybox__content
{
	cursor: move;
	cursor: grab
}

.can-zoom_in .fancybox__content
{
	cursor: zoom-in
}

.can-zoom_out .fancybox__content
{
	cursor: zoom-out
}

.is-dragging .fancybox__content
{
	cursor: move;
	cursor: grabbing
}

.fancybox__content [data-selectable], .fancybox__content [contenteditable]
{
	cursor: auto
}

.fancybox__slide.has-image > .fancybox__content
{
	padding: 0;
	background: rgba(0, 0, 0, 0);
	min-height: 1px;
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center center;
	transition: none;
	transform: translate3d(0, 0, 0);
	backface-visibility: hidden
}

.fancybox__slide.has-image > .fancybox__content > picture > img
{
	width: 100%;
	height: auto;
	max-height: 100%
}

.is-zooming-in .fancybox__viewport:not(.is-dragging) .fancybox__slide:not(.is-selected) .fancybox__content, .is-zooming-out .fancybox__slide:not(.is-selected) .fancybox__content
{
	visibility: hidden
}

.is-animating .fancybox__content, .is-dragging .fancybox__content
{
	filter: blur(0px);
	will-change: transform, width, height
}

.fancybox-image
{
	margin: auto;
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	object-fit: contain;
	user-select: none
}

.fancybox__caption
{
	align-self: center;
	max-width: 100%;
	flex-shrink: 0;
	margin: 0;
	padding: 14px 0 4px 0;
	overflow-wrap: anywhere;
	line-height: 1.375;
	color: var(--fancybox-color, currentColor);
	opacity: var(--fancybox-opacity, 1);
	cursor: auto;
	visibility: visible
}

.is-loading .fancybox__caption, .is-closing .fancybox__caption
{
	opacity: 0;
	visibility: hidden
}

.is-compact .fancybox__caption
{
	padding-bottom: 0
}

.f-button.is-close-btn
{
	--f-button-svg-stroke-width: 2;
	position: absolute;
	top: 0;
	right: 8px;
	z-index: 40
}

.fancybox__content > .f-button.is-close-btn
{
	--f-button-width: 34px;
	--f-button-height: 34px;
	--f-button-border-radius: 4px;
	--f-button-color: var(--fancybox-color, #fff);
	--f-button-hover-color: var(--fancybox-color, #fff);
	--f-button-bg: transparent;
	--f-button-hover-bg: transparent;
	--f-button-active-bg: transparent;
	--f-button-svg-width: 22px;
	--f-button-svg-height: 22px;
	position: absolute;
	top: -38px;
	right: 0;
	opacity: .75
}

.is-loading .fancybox__content > .f-button.is-close-btn
{
	visibility: hidden
}

.is-zooming-out .fancybox__content > .f-button.is-close-btn
{
	visibility: hidden
}

.fancybox__content > .f-button.is-close-btn:hover
{
	opacity: 1
}

.fancybox__footer
{
	padding: 0;
	margin: 0;
	position: relative
}

.fancybox__footer .fancybox__caption
{
	width: 100%;
	padding: 24px;
	opacity: var(--fancybox-opacity, 1);
	transition: all .25s ease
}

.is-compact .fancybox__footer
{
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 20;
	background: rgba(24, 24, 27, .5)
}

.is-compact .fancybox__footer .fancybox__caption
{
	padding: 12px
}

.is-compact .fancybox__content > .f-button.is-close-btn
{
	--f-button-border-radius: 50%;
	--f-button-color: #fff;
	--f-button-hover-color: #fff;
	--f-button-outline-color: #000;
	--f-button-bg: rgba(0, 0, 0, 0.6);
	--f-button-active-bg: rgba(0, 0, 0, 0.6);
	--f-button-hover-bg: rgba(0, 0, 0, 0.6);
	--f-button-svg-width: 18px;
	--f-button-svg-height: 18px;
	--f-button-svg-filter: none;
	top: 5px;
	right: 5px
}

.fancybox__nav
{
	--f-button-width: 50px;
	--f-button-height: 50px;
	--f-button-border: 0;
	--f-button-border-radius: 50%;
	--f-button-color: var(--fancybox-color);
	--f-button-hover-color: var(--fancybox-hover-color);
	--f-button-bg: transparent;
	--f-button-hover-bg: rgba(24, 24, 27, 0.3);
	--f-button-active-bg: rgba(24, 24, 27, 0.5);
	--f-button-shadow: none;
	--f-button-transition: all 0.15s ease;
	--f-button-transform: none;
	--f-button-svg-width: 26px;
	--f-button-svg-height: 26px;
	--f-button-svg-stroke-width: 2.5;
	--f-button-svg-fill: none;
	--f-button-svg-filter: drop-shadow(1px 1px 1px rgba(24, 24, 27, 0.5));
	--f-button-svg-disabled-opacity: 0.65;
	--f-button-next-pos: 1rem;
	--f-button-prev-pos: 1rem;
	opacity: var(--fancybox-opacity, 1)
}

.fancybox__nav .f-button:before
{
	position: absolute;
	content: "";
	top: -30px;
	right: -20px;
	left: -20px;
	bottom: -30px;
	z-index: 1
}

.is-idle .fancybox__nav
{
	animation: .15s ease-out both f-fadeOut
}

.is-idle.is-compact .fancybox__footer
{
	pointer-events: none;
	animation: .15s ease-out both f-fadeOut
}

.fancybox__slide > .f-spinner
{
	position: absolute;
	top: 50%;
	left: 50%;
	margin: var(--f-spinner-top, calc(var(--f-spinner-width) * -0.5)) 0 0 var(--f-spinner-left, calc(var(--f-spinner-height) * -0.5));
	z-index: 30;
	cursor: pointer
}

.fancybox-protected
{
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 40;
	user-select: none
}

.fancybox-ghost
{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	min-height: 0;
	object-fit: contain;
	z-index: 40;
	user-select: none;
	pointer-events: none
}

.fancybox-focus-guard
{
	outline: none;
	opacity: 0;
	position: fixed;
	pointer-events: none
}

.fancybox__container:not([aria-hidden])
{
	opacity: 0
}

.fancybox__container.is-animated[aria-hidden=false] > *:not(.fancybox__backdrop,.fancybox__carousel), .fancybox__container.is-animated[aria-hidden=false] .fancybox__carousel > *:not(.fancybox__viewport), .fancybox__container.is-animated[aria-hidden=false] .fancybox__slide > *:not(.fancybox__content)
{
	animation: .25s ease .1s backwards f-fadeIn
}

.fancybox__container.is-animated[aria-hidden=false] .fancybox__backdrop
{
	animation: .35s ease backwards f-fadeIn
}

.fancybox__container.is-animated[aria-hidden=true] > *:not(.fancybox__backdrop,.fancybox__carousel), .fancybox__container.is-animated[aria-hidden=true] .fancybox__carousel > *:not(.fancybox__viewport), .fancybox__container.is-animated[aria-hidden=true] .fancybox__slide > *:not(.fancybox__content)
{
	animation: .15s ease forwards f-fadeOut
}

.fancybox__container.is-animated[aria-hidden=true] .fancybox__backdrop
{
	animation: .35s ease forwards f-fadeOut
}

.has-iframe .fancybox__content, .has-map .fancybox__content, .has-pdf .fancybox__content, .has-youtube .fancybox__content, .has-vimeo .fancybox__content, .has-html5video .fancybox__content
{
	max-width: 100%;
	flex-shrink: 1;
	min-height: 1px;
	overflow: visible
}

.has-iframe .fancybox__content, .has-map .fancybox__content, .has-pdf .fancybox__content
{
	width: 100%;
	height: 100%
}

.fancybox__container:not(.is-compact) .has-iframe .fancybox__content, .fancybox__container:not(.is-compact) .has-map .fancybox__content, .fancybox__container:not(.is-compact) .has-pdf .fancybox__content
{
	width: calc(100% - 120px);
	height: 90%
}

.has-youtube .fancybox__content, .has-vimeo .fancybox__content, .has-html5video .fancybox__content
{
	width: 960px;
	height: 540px;
	max-width: 100%;
	max-height: 100%
}

.has-map .fancybox__content, .has-pdf .fancybox__content, .has-youtube .fancybox__content, .has-vimeo .fancybox__content, .has-html5video .fancybox__content
{
	padding: 0;
	background: rgba(24, 24, 27, .9);
	color: #fff
}

.has-map .fancybox__content
{
	background: #e5e3df
}

.fancybox__html5video, .fancybox__iframe
{
	border: 0;
	display: block;
	height: 100%;
	width: 100%;
	background: rgba(0, 0, 0, 0)
}

.fancybox-placeholder
{
	border: 0 !important;
	clip: rect(1px, 1px, 1px, 1px) !important;
	-webkit-clip-path: inset(50%) !important;
	clip-path: inset(50%) !important;
	height: 1px !important;
	margin: -1px !important;
	overflow: hidden !important;
	padding: 0 !important;
	position: absolute !important;
	width: 1px !important;
	white-space: nowrap !important
}

.f-carousel__thumbs
{
	--f-thumb-width: 96px;
	--f-thumb-height: 72px;
	--f-thumb-outline: 0;
	--f-thumb-outline-color: #5eb0ef;
	--f-thumb-opacity: 1;
	--f-thumb-hover-opacity: 1;
	--f-thumb-selected-opacity: 1;
	--f-thumb-border-radius: 2px;
	--f-thumb-offset: 0px;
	--f-button-next-pos: 0;
	--f-button-prev-pos: 0
}

.f-carousel__thumbs.is-classic
{
	--f-thumb-gap: 8px;
	--f-thumb-opacity: 0.5;
	--f-thumb-hover-opacity: 1;
	--f-thumb-selected-opacity: 1
}

.f-carousel__thumbs.is-modern
{
	--f-thumb-gap: 4px;
	--f-thumb-extra-gap: 20px;
	--f-thumb-clip-width: 46px
}

.f-thumbs
{
	position: relative;
	flex: 0 0 auto;
	margin: 0;
	overflow: hidden;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
	user-select: none;
	perspective: 1000px;
	transform: translateZ(0)
}

.f-thumbs .f-spinner
{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border-radius: 2px;
	background-image: linear-gradient(#ebeff2, #e2e8f0);
	z-index: -1
}

.f-thumbs .f-spinner svg
{
	display: none
}

.f-thumbs.is-vertical
{
	height: 100%
}

.f-thumbs__viewport
{
	width: 100%;
	height: auto;
	overflow: hidden
}

.f-thumbs__track
{
	display: flex;
	will-change: transform
}

.f-thumbs__slide
{
	position: relative;
	flex: 0 0 auto;
	box-sizing: content-box;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	margin: 0;
	width: var(--f-thumb-width);
	min-width: var(--f-thumb-width);
	height: var(--f-thumb-height);
	overflow: visible;
	cursor: pointer
}

.f-thumbs__slide.is-loading img
{
	opacity: 0
}

.is-classic .f-thumbs__viewport
{
	height: 100%
}

.is-modern .f-thumbs__track
{
	width: max-content
}

.is-modern .f-thumbs__track::before
{
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: calc(var(--left, 0) * 1px);
	width: calc(100% - var(--width, 0) * 1px);
	cursor: pointer
}

.is-modern .f-thumbs__slide
{
	--clip-path: inset(0 calc((var(--f-thumb-width, 0) - var(--f-thumb-clip-width, 0)) * 0.5 * (1 - var(--progress, 0))) round var(--f-thumb-border-radius, 0));
	transform: translate3d(calc(var(--shift, 0) * -1px), 0, 0);
	transition: none;
	pointer-events: none
}

.is-modern .f-thumbs__slide:focus-within:not(.is-selected)
{
	filter: drop-shadow(-1px 0px 0px var(--f-thumb-outline-color)) drop-shadow(2px 0px 0px var(--f-thumb-outline-color)) drop-shadow(0px -1px 0px var(--f-thumb-outline-color)) drop-shadow(0px 2px 0px var(--f-thumb-outline-color))
}

.is-modern .f-thumbs__slide > *
{
	clip-path: var(--clip-path)
}

.is-modern.in-touch .f-thumbs__slide
{
	filter: none
}

.is-modern.is-resting .f-thumbs__slide
{
	transition: all .33s ease
}

.is-modern.is-resting .f-thumbs__slide > *
{
	transition: all .33s ease
}

.f-thumbs__slide__button
{
	appearance: none;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	position: relative;
	border-radius: var(--f-thumb-border-radius);
	overflow: hidden;
	background: rgba(0, 0, 0, 0);
	outline: none;
	cursor: pointer;
	pointer-events: auto;
	touch-action: manipulation;
	opacity: var(--f-thumb-opacity);
	transition: opacity .2s ease
}

.f-thumbs__slide__button:hover
{
	opacity: var(--f-thumb-hover-opacity)
}

.f-thumbs__slide__button:focus:not(:focus-visible)
{
	outline: none
}

.f-thumbs__slide__button:focus-visible
{
	outline: none;
	opacity: var(--f-thumb-selected-opacity)
}

.is-nav-selected .f-thumbs__slide__button
{
	opacity: var(--f-thumb-selected-opacity)
}

.is-nav-selected .f-thumbs__slide__button::after
{
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: auto;
	bottom: 0;
	border: var(--f-thumb-outline, 0) solid var(--f-thumb-outline-color, transparent);
	border-radius: var(--f-thumb-border-radius);
	animation: f-fadeIn .2s ease-out;
	z-index: 10
}

.f-thumbs__slide__img
{
	position: absolute;
	overflow: hidden;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	padding: var(--f-thumb-offset);
	box-sizing: border-box;
	pointer-events: none;
	object-fit: cover
}

.f-thumbs.is-horizontal .f-thumbs__track
{
	margin: 0 auto;
	padding: 8px 0 12px 0
}

.f-thumbs.is-horizontal .f-thumbs__slide
{
	margin: 0 var(--f-thumb-gap) 0 0
}

.f-thumbs.is-vertical .f-thumbs__track
{
	flex-wrap: wrap;
	margin: auto 0;
	padding: 0 8px
}

.f-thumbs.is-vertical .f-thumbs__slide
{
	margin: 0 0 var(--f-thumb-gap) 0
}

.fancybox__thumbs
{
	--f-thumb-width: 96px;
	--f-thumb-height: 72px;
	--f-thumb-border-radius: 2px;
	--f-thumb-outline: 2px;
	--f-thumb-outline-color: #ededed;
	position: relative;
	opacity: var(--fancybox-opacity, 1);
	transition: max-height .35s cubic-bezier(0.23, 1, 0.32, 1)
}

.fancybox__thumbs.is-classic
{
	--f-thumb-gap: 8px;
	--f-thumb-opacity: 0.5;
	--f-thumb-hover-opacity: 1
}

.fancybox__thumbs.is-classic .f-spinner
{
	background-image: linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05))
}

.fancybox__thumbs.is-modern
{
	--f-thumb-gap: 4px;
	--f-thumb-extra-gap: 20px;
	--f-thumb-clip-width: 46px;
	--f-thumb-opacity: 1;
	--f-thumb-hover-opacity: 1
}

.fancybox__thumbs.is-modern .f-spinner
{
	background-image: linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05))
}

.fancybox__thumbs.is-horizontal
{
	padding: 0 var(--f-thumb-gap)
}

.fancybox__thumbs.is-vertical
{
	padding: var(--f-thumb-gap) 0
}

.is-compact .fancybox__thumbs
{
	--f-thumb-width: 64px;
	--f-thumb-clip-width: 32px;
	--f-thumb-height: 48px;
	--f-thumb-extra-gap: 10px
}

.fancybox__thumbs.is-masked
{
	max-height: 0px !important
}

.is-closing .fancybox__thumbs
{
	transition: none !important
}

.fancybox__toolbar
{
	--f-progress-color: var(--fancybox-color, rgba(255, 255, 255, 0.94));
	--f-button-width: 46px;
	--f-button-height: 46px;
	--f-button-color: var(--fancybox-color);
	--f-button-hover-color: var(--fancybox-hover-color);
	--f-button-bg: rgba(24, 24, 27, 0.65);
	--f-button-hover-bg: rgba(70, 70, 73, 0.65);
	--f-button-active-bg: rgba(90, 90, 93, 0.65);
	--f-button-border-radius: 0;
	--f-button-svg-width: 24px;
	--f-button-svg-height: 24px;
	--f-button-svg-stroke-width: 1.5;
	--f-button-svg-filter: drop-shadow(1px 1px 1px rgba(24, 24, 27, 0.15));
	--f-button-svg-fill: none;
	--f-button-svg-disabled-opacity: 0.65;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	margin: 0;
	padding: 0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI Adjusted", "Segoe UI", "Liberation Sans", sans-serif;
	color: var(--fancybox-color, currentColor);
	opacity: var(--fancybox-opacity, 1);
	text-shadow: var(--fancybox-toolbar-text-shadow, 1px 1px 1px rgba(0, 0, 0, 0.5));
	pointer-events: none;
	z-index: 20
}

.fancybox__toolbar :focus-visible
{
	z-index: 1
}

.fancybox__toolbar.is-absolute, .is-compact .fancybox__toolbar
{
	position: absolute;
	top: 0;
	left: 0;
	right: 0
}

.is-idle .fancybox__toolbar
{
	pointer-events: none;
	animation: .15s ease-out both f-fadeOut
}

.fancybox__toolbar__column
{
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-content: flex-start
}

.fancybox__toolbar__column.is-left, .fancybox__toolbar__column.is-right
{
	flex-grow: 1;
	flex-basis: 0
}

.fancybox__toolbar__column.is-right
{
	display: flex;
	justify-content: flex-end;
	flex-wrap: nowrap
}

.fancybox__infobar
{
	padding: 0 5px;
	line-height: var(--f-button-height);
	text-align: center;
	font-size: 17px;
	font-variant-numeric: tabular-nums;
	-webkit-font-smoothing: subpixel-antialiased;
	cursor: default;
	user-select: none
}

.fancybox__infobar span
{
	padding: 0 5px
}

.fancybox__infobar:not(:first-child):not(:last-child)
{
	background: var(--f-button-bg)
}

[data-fancybox-toggle-slideshow]
{
	position: relative
}

[data-fancybox-toggle-slideshow] .f-progress
{
	height: 100%;
	opacity: .3
}

[data-fancybox-toggle-slideshow] svg g:first-child
{
	display: flex
}

[data-fancybox-toggle-slideshow] svg g:last-child
{
	display: none
}

.has-slideshow [data-fancybox-toggle-slideshow] svg g:first-child
{
	display: none
}

.has-slideshow [data-fancybox-toggle-slideshow] svg g:last-child
{
	display: flex
}

[data-fancybox-toggle-fullscreen] svg g:first-child
{
	display: flex
}

[data-fancybox-toggle-fullscreen] svg g:last-child
{
	display: none
}

:fullscreen [data-fancybox-toggle-fullscreen] svg g:first-child
{
	display: none
}

:fullscreen [data-fancybox-toggle-fullscreen] svg g:last-child
{
	display: flex
}

.f-progress
{
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	transform: scaleX(0);
	transform-origin: 0;
	transition-property: transform;
	transition-timing-function: linear;
	background: var(--f-progress-color, var(--f-carousel-theme-color, #0091ff));
	z-index: 30;
	user-select: none;
	pointer-events: none
}]]></template>
  <template type="public" title="featured_content_create" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('feature_content') }}</xf:title>

<xf:breadcrumb source="$breadcrumbs" />

<xf:form action="{$confirmUrl}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('you_sure_you_want_to_feature_this_content') }}
			</xf:inforow>

			<xf:if is="$showVisibilityToggle">
				<xf:checkboxrow>
					<xf:option name="always_visible" 
						label="{{ phrase('always_visible') }}"
						hint="{{ phrase('if_selected_feature_will_be_visible_even_if_member_does_not_have') }}" />
				</xf:checkboxrow>
			</xf:if>
		</div>

		<h3 class="block-formSectionHeader">
			<span class="collapseTrigger collapseTrigger--block"
				data-xf-click="toggle" data-target="< :up:next">

				<span class="block-formSectionHeader-aligner">{{ phrase('customize') }}</span>
			</span>
		</h3>

		<div class="block-body block-body--collapsible">
			<xf:formrow>
				{{ phrase('if_you_leave_these_values_blank_feature_will_automatically_derive_them') }}
			</xf:formrow>

			<xf:textboxrow name="title"
				maxlength="{{ max_length('XF:FeaturedContent', 'title') }}"
				label="{{ phrase('feature_title') }}" />

			<xf:textarearow name="snippet"
				rows="2" autosize="true"
				maxlength="{{ max_length('XF:FeaturedContent', 'snippet') }}"
				label="{{ phrase('feature_snippet') }}" />

			<xf:uploadrow name="image" accept=".gif,.jpeg,.jpg,.jpe,.png"
				label="{{ phrase('feature_image') }}"
				explain="{{ phrase('it_is_recommended_that_you_use_image_that_is_at_least_x_pixels', {
					'width': 640,
					'height': 640
				}) }}" />
		</div>

		<xf:redirect />

		<xf:submitrow fa="fa-award" submit="{{ phrase('feature') }}" />
	</div>
</xf:form>]]></template>
  <template type="public" title="featured_content_delete" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('unfeature_content') }}</xf:title>

<xf:breadcrumb source="$breadcrumbs" />

<xf:form action="{$confirmUrl}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('you_sure_you_want_to_unfeature_this_content') }}
			</xf:inforow>
		</div>

		<xf:redirect />

		<xf:submitrow rowtype="simple" submit="{{ phrase('unfeature') }}" icon="delete" />
	</div>
</xf:form>]]></template>
  <template type="public" title="featured_content_edit" version_id="2030170" version_string="2.3.1"><![CDATA[<xf:title>{{ phrase('manage_content_feature') }}</xf:title>

<xf:breadcrumb source="$breadcrumbs"/>

<xf:form action="{$confirmUrl}" class="block" ajax="true">
	<div class="block-container">
		<xf:if contentcheck="true">
			<div class="block-body">
				<xf:contentcheck>
					<xf:if is="$showVisibilityToggle">
						<xf:checkboxrow>
							<xf:option name="always_visible" checked="{$feature.always_visible}"
								label="{{ phrase('always_visible') }}"
								hint="{{ phrase('if_selected_feature_will_be_visible_even_if_member_does_not_have') }}"/>
						</xf:checkboxrow>
					</xf:if>
				</xf:contentcheck>
			</div>
		</xf:if>

		<h3 class="block-formSectionHeader">
			<span class="collapseTrigger collapseTrigger--block {{ $feature.isCustomized() ? 'is-active' : '' }}"
				data-xf-click="toggle" data-target="< :up:next">

				<span class="block-formSectionHeader-aligner">{{ phrase('customize') }}</span>
			</span>
		</h3>

		<div class="block-body block-body--collapsible {{ $feature.isCustomized() ? 'is-active' : '' }}">
			<xf:formrow>
				{{ phrase('if_you_leave_these_values_blank_feature_will_automatically_derive_them') }}
			</xf:formrow>

			<xf:textboxrow name="title" value="{$feature.title_}"
				maxlength="{{ max_length('XF:FeaturedContent', 'title') }}"
				label="{{ phrase('feature_title') }}"/>

			<xf:textarearow name="snippet" value="{$feature.snippet_}"
				rows="2" autosize="true"
				maxlength="{{ max_length('XF:FeaturedContent', 'snippet') }}"
				label="{{ phrase('feature_snippet') }}"/>

			<xf:formrow label="{{ phrase('feature_image') }}">
				<xf:upload name="image" accept=".gif,.jpeg,.jpg,.jpe,.png,.webp"/>

				<div class="formRow-explain">
					{{ phrase('it_is_recommended_that_you_use_image_that_is_at_least_x_pixels', {
					'width': 640,
					'height': 640
					}) }}
				</div>

				<xf:if is="$feature.image_date">
					<xf:checkbox standalone="true">
						<xf:option name="delete_image" label="{{ phrase('delete_current_image') }}"/>
					</xf:checkbox>
				</xf:if>
			</xf:formrow>

			<xf:datetimeinputrow name="date" value="{$feature.feature_date}"
				label="{{ phrase('featured_date') }}"
				explain="{{ phrase('featured_content_is_ordered_by_feature_date_from_newest_to_oldest') }}"/>
		</div>

		<xf:redirect/>

		<xf:submitrow icon="save">
			<xf:html>
				<xf:button href="{$deleteUrl}" icon="delete" overlay="true">{{ phrase('unfeature') }}...</xf:button>
			</xf:html>
		</xf:submitrow>
	</div>
</xf:form>]]></template>
  <template type="public" title="featured_content_filters" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:form action="{{ link('featured/filters') }}">
	<!--[XF:above_content_type]-->
	<div class="menu-row menu-row--separated">
		<label for="ctrl_content_type">{{ phrase('content_type:') }}</label>
		<div class="u-inputSpacer">
			<xf:select name="content_type" value="{$filters.content_type}" id="ctrl_content_type">
				<xf:option value="">{{ phrase('(any)') }}</xf:option>

				<xf:foreach loop="$contentTypes" value="$contentType">
					<xf:option value="{$contentType}">
						{{ $xf.app.getContentTypePhrase($contentType) }}
					</xf:option>
				</xf:foreach>
			</xf:select>
		</div>
	</div>

	<xf:hiddenval name="apply">1</xf:hiddenval>

	<div class="menu-footer">
		<span class="menu-footer-controls">
			<xf:button type="submit" class="button--primary">{{ phrase('filter') }}</xf:button>
		</span>
	</div>
</xf:form>]]></template>
  <template type="public" title="featured_content_item" version_id="2030055" version_string="2.3.0 Release Candidate 5"><![CDATA[<xf:macro id="article" extends="content_display_macros::article"
	arg-feature="!"
	arg-content="!"
	arg-snippetLength="{{ 0 }}">

	<xf:extension id="image">
		<xf:extensionparent />

		<xf:if is="$feature.image">
			<a href="{$feature.content_link}" class="articlePreview-image" tabindex="-1">
				<img src="{$feature.image}" alt="{$feature.title}" loading="lazy" />
			</a>
		</xf:if>
	</xf:extension>

	<xf:extension id="title">
		<xf:extensionparent />
		<a href="{$feature.content_link}">{$feature.title}</a>
	</xf:extension>

	<xf:extension id="snippet">
		<xf:extensionparent />

		<div class="bbWrapper">
			<xf:if is="$snippetLength">
				{{ snippet($feature.snippet, $snippetLength) }}
			<xf:else />
				{$feature.snippet}
			</xf:if>
		</div>
	</xf:extension>

	<xf:extension id="meta">
		<xf:extensionparent />

		<xf:set var="$username"><xf:username user="{$feature.ContentUser}" defaultname="{$feature.content_username}" class="u-concealed" /></xf:set>

		<li><xf:avatar user="{$feature.ContentUser}" size="xxs" defaultname="{$feature.content_username}"/></li>
		<li class="articlePreview-by">{{ phrase('by_user_x', {'name': $username}) }}</li>
		<li><a href="{$feature.content_link}" class="u-concealed" rel="nofollow"><xf:date time="{$feature.content_date}"/></a></li>
		<li><span data-xf-init="tooltip" title="{{ phrase('featured_on_x', {'date': date($feature.feature_date)}) }}"><xf:fa icon="fa-award" /></li>
	</xf:extension>

	<xf:extension id="metadata">
		<xf:extensionparent />

		<xf:set var="$ldJson" value="{{ $feature.getStructuredData() }}" />
		<xf:if is="$ldJson">
			<script type="application/ld+json">
				{{ $ldJson|json(true)|raw }}
			</script>
		</xf:if>
	</xf:extension>
</xf:macro>

<xf:macro id="simple" extends="content_display_macros::simple"
	arg-feature="!"
	arg-content="!"
	arg-snippetLength="{{ 0 }}">

	<xf:extension id="image">
		<xf:extensionparent />
		<xf:avatar user="$feature.ContentUser" size="xxs" defaultname="{$feature.content_username}" />
	</xf:extension>

	<xf:extension id="title">
		<xf:extensionparent />
		<a href="{$feature.content_link}">{$feature.title}</a>
	</xf:extension>

	<xf:extension id="meta">
		<xf:extensionparent />

		<li>{{ $feature.ContentUser.username ?: $feature.content_username }}</li>
		<li><xf:date time="{$feature.content_date}" /></li>
		<li><span data-xf-init="tooltip" title="{{ phrase('featured_on_x', {'date': date($feature.feature_date)}) }}"><xf:fa icon="fa-award" /></li>
	</xf:extension>
</xf:macro>

<xf:macro id="carousel" extends="content_display_macros::carousel"
	arg-feature="!"
	arg-content="!"
	arg-snippetLength="{{ 0 }}">

	<xf:extension id="image">
		<xf:extensionparent />
		<xf:avatar user="$feature.ContentUser" size="m" defaultname="{$feature.content_username}" notooltip="true" />
	</xf:extension>

	<xf:extension id="title">
		<xf:extensionparent />
		<a href="{$feature.content_link}">{$feature.title}</a>
	</xf:extension>

	<xf:extension id="snippet">
		<xf:extensionparent />

		<xf:if is="$snippetLength">
			{{ snippet($feature.snippet, $snippetLength) }}
		<xf:else />
			{$feature.snippet}
		</xf:if>
	</xf:extension>

	<xf:extension id="meta">
		<xf:extensionparent />

		<li><xf:username user="{$feature.ContentUser}" defaultname="{$feature.content_username}" /></li>
		<li><xf:date time="{$feature.content_date}" /></li>
		<li><span data-xf-init="tooltip" title="{{ phrase('featured_on_x', {'date': date($feature.feature_date)}) }}"><xf:fa icon="fa-award" /></li>
	</xf:extension>
</xf:macro>]]></template>
  <template type="public" title="featured_content_item_thread" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:macro id="article" extends="featured_content_item::article"
	arg-feature="!"
	arg-content="!"
	arg-snippetLength="{{ 0 }}">

	<xf:extension id="links">
		<xf:extensionparent />
		<a href="{$feature.content_link}">{{ phrase('view_full_post') }} &raquo;</a>
	</xf:extension>

	<xf:extension id="meta">
		<xf:extensionparent />

		<xf:set var="$post" value="{$content.FirstPost}" />

		<li>
			<a href="{{ link('threads/post', $content, {'post_id': $post.post_id}) }}" class="u-concealed" rel="nofollow"
				aria-label="{{ phrase('share')|for_attr }}"
				data-xf-init="share-tooltip" data-href="{{ link('posts/share', $post) }}">

				<xf:fa icon="fa-share-alt" />
			</a>
		</li>

		<xf:if is="$xf.options.embedCodeShare AND method_exists($post, 'getEmbedCodeHtml')">
			<li class="u-hidden js-embedCopy">
				<xf:macro id="share_page_macros::share_clipboard_text"
					arg-class="u-concealed"
					arg-text="{$content.getEmbedCodeHtml()}"
					arg-successText="{{ phrase('embed_code_html_copied_to_clipboard') }}" />
			</li>
		</xf:if>

		<xf:if is="$content.reply_count">
			<li class="articlePreview-replies">
				<a href="{$feature.content_link}" title="{{ phrase('replies:')|for_attr }} {$content.reply_count|number}">
					<xf:fa icon="fa-comment" class="u-spaceAfter" /><span class="articlePreview-repliesLabel">{{ phrase('replies:') }} </span>{$content.reply_count|number}
				</a>
			</li>
		</xf:if>
	</xf:extension>
</xf:macro>

<xf:macro id="simple" extends="featured_content_item::simple"
	arg-feature="!"
	arg-content="!"
	arg-snippetLength="{{ 0 }}">

	<xf:extension id="extra">
		<xf:extensionparent />

		<div class="contentRow-minor contentRow-minor--hideLinks">
			{{ phrase('replies:') }} {$content.reply_count|number_short}
		</div>
	</xf:extension>
</xf:macro>

<xf:macro id="carousel" extends="featured_content_item::carousel"
	arg-feature="!"
	arg-content="!"
	arg-snippetLength="{{ 0 }}">

	<xf:extension id="meta">
		<xf:extensionparent />

		<li>{{ phrase('replies:') }} {$content.reply_count|number}</li>
	</xf:extension>
</xf:macro>]]></template>
  <template type="public" title="featured_content_list" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:title page="{$page}">{{ phrase('featured_content') }}</xf:title>

<xf:css src="message.less" />

<xf:head option="rss">
	<link rel="alternate" type="application/rss+xml"
		title="{{ phrase('rss_feed_for_x', {'title': phrase('featured_content')})|for_attr }}"
		href="{{ link('featured/index.rss') }}" />
</xf:head>

<xf:wrap template="whats_new_wrapper">
	<xf:set var="$pageSelected">featured</xf:set>
</xf:wrap>

<xf:widgetpos id="featured_content_list_above_features" />

<xf:if is="$features is not empty">
	<div class="block block--articles block--messages block--previews">
		<xf:if contentcheck="true">
			<div class="block-outer">
				<xf:contentcheck>
					<xf:pagenav link="featured" params="{$filters}"
						page="{$page}" perpage="{$perPage}" total="{$total}"
						wrapperclass="block-outer-main" />
				</xf:contentcheck>
			</div>
		</xf:if>

		<div class="block-container">
			<xf:if is="$displayFilters">
				<div class="block-filterBar">
					<div class="filterBar">
						<ul class="filterBar-filters">
							<xf:if is="$filters.content_type">
								<li>
									<a href="{{ link('featured', null, $filters|replace({'content_type': null})) }}"
										class="filterBar-filterToggle"
										data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">

										<span class="filterBar-filterToggle-label">{{ phrase('content_type:') }}</span>
										{{ $xf.app.getContentTypePhrase($filters.content_type) ?: $filters.content_type }}
									</a>
								</li>
							</xf:if>
						</ul>

						<a class="filterBar-menuTrigger" role="button" tabindex="0"
							data-xf-click="menu" aria-expanded="false" aria-haspopup="true">

							{{ phrase('filters') }}
						</a>

						<div class="menu menu--wide"
							data-menu="menu" aria-hidden="true"
							data-href="{{ link('featured/filters', null, $filters) }}"
							data-load-target=".js-filterMenuBody">

							<div class="menu-content">
								<h4 class="menu-header">{{ phrase('show_only:') }}</h4>
								<div class="js-filterMenuBody">
									<div class="menu-row">{{ phrase('loading...') }}</div>
								</div>
							</div>
						</div>
					</div>
				</div>
			</xf:if>

			<div class="block-body">
				<xf:foreach loop="$features" value="$feature">
					{{ $feature.render()|raw }}
				</xf:foreach>
			</div>
		</div>

		<xf:if contentcheck="true">
			<div class="block-outer block-outer--after">
				<xf:contentcheck>
					<xf:pagenav link="featured" params="{$filters}"
						page="{$page}" perpage="{$perPage}" total="{$total}"
						wrapperclass="block-outer-main" />
				</xf:contentcheck>
			</div>
		</xf:if>
	</div>
<xf:else />
	<div class="blockMessage">
		{{ phrase('there_is_not_currently_any_featured_content') }}
	</div>
</xf:if>

<xf:widgetpos id="featured_content_list_below_features" />

<xf:widgetpos id="featured_content_list_sidebar" position="sidebar" />]]></template>
  <template type="public" title="filter_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="find_new_filter_footer">
	<hr class="menu-separator" />
	<div class="menu-row">
		<xf:checkbox>
			<xf:option name="save"
				label="{{ phrase('save_as_default') }}"
				hint="{{ phrase('these_filters_will_be_used_by_default_whenever_you_return') }}" />
		</xf:checkbox>
	</div>
	<div class="menu-footer">
		<span class="menu-footer-controls">
			<xf:button type="submit" class="button--primary">{{ phrase('filter') }}</xf:button>
		</span>
		<xf:hiddenval name="skip">1</xf:hiddenval>
	</div>
</xf:macro>]]></template>
  <template type="public" title="find_threads_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$pageSelected == 'started'">
	<xf:title page="{$page}">{{ phrase('threads_started_by_x', {'username': $user.username}) }}</xf:title>
<xf:elseif is="$pageSelected == 'contributed'" />
	<xf:title page="{$page}">{{ phrase('threads_with_posts_by_x', {'username': $user.username}) }}</xf:title>
<xf:else />
	<xf:title page="{$page}">{{ phrase('threads_with_no_replies') }}</xf:title>
	<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>
</xf:if>

<xf:macro id="navigation" arg-pageSelected="{$pageSelected}" arg-user="{$user}" />

<xf:if is="$threads is not empty">

	<xf:if is="$canInlineMod">
		<xf:js src="xf/inline_mod.js" min="1" />
	</xf:if>

	<div class="block" data-xf-init="{{ $canInlineMod ? 'inline-mod' : '' }}" data-type="thread" data-href="{{ link('inline-mod') }}">

		<div class="block-outer">
			<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
				link="find-threads/{$pageSelected}" params="{{ {
					'user_id': ($xf.visitor.user_id != $user.user_id ? $user.user_id : '')
				} }}"
				wrapperclass="block-outer-main" />

			<xf:if is="$canInlineMod">
				<div class="block-outer-opposite">
					<div class="buttonGroup">
						<xf:macro id="inline_mod_macros::button" />
					</div>
				</div>
			</xf:if>
		</div>

		<div class="block-container">
			<div class="block-body">
				<div class="structItemContainer">
					<xf:foreach loop="$threads" value="$thread">
						<xf:set var="$extra" value=""/>
						<xf:macro id="thread_list_macros::item"
							arg-thread="{$thread}"
							arg-allowEdit="{{ false }}" />
					</xf:foreach>
				</div>
			</div>
		</div>

		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="find-threads/{$pageSelected}" params="{{ {
				'user_id': ($xf.visitor.user_id != $user.user_id ? $user.user_id : '')
			} }}"
			wrapperclass="block-outer block-outer--after" />
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('there_no_threads_to_display') }}</div>
</xf:if>

<xf:macro id="navigation" arg-pageSelected="!" arg-user="!">
	<xf:if is="property('findThreadsNavStyle') == 'tabs'">
		<div class="tabs tabs--standalone">
			<div class="hScroller" data-xf-init="h-scroller">
				<span class="hScroller-scroll">
					<xf:macro id="links"
						arg-pageSelected="{$pageSelected}"
						arg-baseClass="tabs-tab"
						arg-selectedClass="is-active"
						arg-user="{$user}" />
				</span>
			</div>
		</div>
	<xf:else />
		<xf:sidenav>
			<div class="block">
				<div class="block-container">
					<h3 class="block-header">{{ phrase('thread_lists') }}</h3>
					<div class="block-body">
						<xf:macro id="links"
							arg-pageSelected="{$pageSelected}"
							arg-baseClass="blockLink"
							arg-selectedClass="is-selected"
							arg-user="{$user}" />
					</div>
				</div>
			</div>

			<xf:widgetpos id="find_threads_sidenav" />
		</xf:sidenav>
		<xf:page option="sideNavTitle">{{ phrase('thread_lists') }}</xf:page>
	</xf:if>
</xf:macro>

<xf:macro id="links" arg-pageSelected="!" arg-baseClass="!" arg-selectedClass="!" arg-user="!">
	<a class="{$baseClass} {{ ($pageSelected == 'started' && $xf.visitor.user_id == $user.user_id) ? {$selectedClass} : '' }}"
		href="{{ link('find-threads/started') }}" rel="nofollow">{{ phrase('your_threads') }}</a>
	<a class="{$baseClass} {{ $pageSelected == 'contributed' ? {$selectedClass} : '' }}"
		href="{{ link('find-threads/contributed') }}" rel="nofollow">{{ phrase('threads_with_your_posts') }}</a>
	<a class="{$baseClass} {{ $pageSelected == 'unanswered' ? {$selectedClass} : '' }}"
		href="{{ link('find-threads/unanswered') }}" rel="nofollow">{{ phrase('unanswered_threads') }}</a>
	<a class="{$baseClass} {{ $pageSelected == 'watched' ? {$selectedClass} : '' }}"
		href="{{ link('watched/threads') }}" rel="nofollow">{{ phrase('watched_threads') }}</a>
</xf:macro>]]></template>
  <template type="public" title="forum_filters" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:form action="{{ link('forums/filters', $forum) }}">
	<xf:extension id="start"></xf:extension>

	<div class="menu-row menu-row--separated">
		<xf:checkbox>
			<xf:option name="featured" selected="{$filters.featured}" label="{{ phrase('featured_threads') }}" />
		</xf:checkbox>
	</div>

	<!--[XF:above_prefixes]-->
	<xf:if is="$prefixes is not empty">
		<div class="menu-row menu-row--separated">
			{{ phrase('prefix:') }}
			<div class="u-inputSpacer">
				<xf:macro id="prefix_macros::select"
					arg-prefixes="{$prefixes}"
					arg-type="thread"
					arg-selected="{{ $filters.prefix_id ? $filters.prefix_id : 0 }}"
					arg-name="prefix_id"
					arg-noneLabel="{{ phrase('(any)') }}" />
			</div>
		</div>
	</xf:if>

	<xf:extension id="before_started_by"></xf:extension>

	<!--[XF:above_started_by]-->
	<div class="menu-row menu-row--separated">
		<label for="ctrl_started_by">{{ phrase('started_by:') }}</label>
		<div class="u-inputSpacer">
			<xf:textbox name="starter" value="{{ $starterFilter ? $starterFilter.username : '' }}" ac="single"
				maxlength="{{ max_length($xf.visitor, 'username') }}" id="ctrl_started_by" />
		</div>
	</div>

	<xf:extension id="before_date_limit"></xf:extension>

	<!--[XF:above_last_updated]-->
	<div class="menu-row menu-row--separated">
		<label for="ctrl_last_updated">{{ phrase('last_updated:') }}</label>
		<div class="u-inputSpacer">
			<xf:if is="$filters.no_date_limit">
				<xf:set var="$lastDays" value="" />
			<xf:else />
				<xf:set var="$lastDays" value="{{ $filters.last_days ?: $forum.list_date_limit_days }}" />
			</xf:if>
			<xf:select name="last_days" value="{$lastDays}" id="ctrl_last_updated">
				<xf:option value="-1">{{ phrase('any_time') }}</xf:option>
				<xf:option value="7">{{ phrase('x_days', {'days': '7'}) }}</xf:option>
				<xf:option value="14">{{ phrase('x_days', {'days': '14'}) }}</xf:option>
				<xf:option value="30">{{ phrase('x_days', {'days': '30'}) }}</xf:option>
				<xf:option value="60">{{ phrase('x_months', {'months': '2'}) }}</xf:option>
				<xf:option value="90">{{ phrase('x_months', {'months': '3'}) }}</xf:option>
				<xf:option value="182">{{ phrase('x_months', {'months': '6'}) }}</xf:option>
				<xf:option value="365">{{ phrase('1_year') }}</xf:option>
			</xf:select>
		</div>
	</div>

	<xf:extension id="before_type"></xf:extension>

	<!--[XF:above_allowed_thread_types]-->
	<xf:if is="count($allowedThreadTypes) > 1">
		<div class="menu-row menu-row--separated">
			<label for="ctrl_thread_type">{{ phrase('thread_type_filter:') }}</label>
			<div class="u-inputSpacer">
				<xf:select name="thread_type" value="{$filters.thread_type}" id="ctrl_thread_type">
					<xf:option value="">{{ phrase('(any)') }}</xf:option>
					<xf:foreach loop="$allowedThreadTypes" key="$threadTypeId" value="$threadType">
						<xf:option value="{$threadTypeId}">{{ $threadType.getTypeTitle() }}</xf:option>
					</xf:foreach>
				</xf:select>
			</div>
		</div>
	</xf:if>

	<xf:extension id="before_sort"></xf:extension>

	<!--[XF:above_sort_by]-->
	<div class="menu-row menu-row--separated">
		{{ phrase('sort_by:') }}
		<div class="inputGroup u-inputSpacer">
			<span class="u-srOnly" id="ctrl_sort_by">{{ phrase('sort_order') }}</span>
			<xf:select name="order" value="{{ $filters.order ?: $forum.default_sort_order }}" aria-labelledby="ctrl_sort_by">
				<xf:foreach loop="$sortOptions" key="$sortKey" value="$null">
					<xf:option value="{$sortKey}">{{ phrase_dynamic('forum_sort.' . $sortKey) }}</xf:option>
				</xf:foreach>
			</xf:select>
			<span class="inputGroup-splitter"></span>
			<span class="u-srOnly" id="ctrl_sort_direction">{{ phrase('sort_direction') }}</span>
			<xf:select name="direction" value="{{ $filters.direction ?: $forum.default_sort_direction }}" aria-labelledby="ctrl_sort_direction">
				<xf:option value="desc">{{ phrase('descending') }}</xf:option>
				<xf:option value="asc">{{ phrase('ascending') }}</xf:option>
			</xf:select>
		</div>
	</div>

	<xf:extension id="end"></xf:extension>

	<div class="menu-footer">
		<span class="menu-footer-controls">
			<xf:button type="submit" class="button--primary">{{ phrase('filter') }}</xf:button>
		</span>
	</div>
	<xf:hiddenval name="apply">1</xf:hiddenval>
</xf:form>]]></template>
  <template type="public" title="forum_filters_type_question" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:extends template="forum_filters" />

<xf:extension id="before_date_limit">
	<div class="menu-row menu-row--separated">
		<xf:checkbox>
			<xf:option name="unsolved" selected="{$filters.unsolved}" label="{{ phrase('only_show_unsolved_questions') }}" />
			<xf:option name="unanswered" selected="{$filters.unanswered}" label="{{ phrase('only_show_questions_that_have_received_no_answers') }}" />
			<xf:if is="$xf.visitor.user_id">
				<xf:option name="your_answers" selected="{$filters.your_answers}" label="{{ phrase('only_show_questions_youve_answered') }}" />
			</xf:if>
		</xf:checkbox>
	</div>
</xf:extension>]]></template>
  <template type="public" title="forum_filters_type_suggestion" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:extends template="forum_filters" />

<xf:extension id="before_started_by">
	<xf:if is="$forum.type_config.implemented_prefix_ids OR $forum.type_config.closed_prefix_ids">
		<div class="menu-row menu-row--separated">
			{{ phrase('suggestion_status') }}:
			<div class="u-inputSpacer">
				<xf:select name="suggestion_state" value="{$filters.suggestion_state}">
					<xf:option value="">{{ phrase('any') }}</xf:option>
					<xf:option value="open">{{ phrase('open') }}</xf:option>
					<xf:if is="$forum.type_config.implemented_prefix_ids">
						<xf:option value="implemented">{{ phrase('implemented') }}</xf:option>
					</xf:if>
					<xf:if is="$forum.type_config.closed_prefix_ids">
						<xf:option value="closed">{{ phrase('closed') }}</xf:option>
					</xf:if>
				</xf:select>
			</div>
		</div>
	</xf:if>
</xf:extension>

<xf:extension id="before_date_limit">
	<xf:if is="$xf.visitor.user_id">
		<div class="menu-row menu-row--separated">
			<xf:checkbox>
				<xf:option name="your_votes" selected="{$filters.your_votes}" label="{{ phrase('only_show_suggestions_youve_voted_on') }}" />
			</xf:checkbox>
		</div>
	</xf:if>
</xf:extension>]]></template>
  <template type="public" title="forum_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$xf.options.forumsDefaultPage != 'forums' OR ($xf.options.indexRoute AND $xf.options.indexRoute != 'forums/')">
	<xf:title>{{ phrase('forum_list') }}</xf:title>
<xf:else />
	<xf:h1>{$xf.options.boardTitle}</xf:h1>
</xf:if>

<xf:macro id="metadata_macros::metadata"
	arg-description="{$xf.options.boardDescription}"
	arg-canonicalUrl="{{ link('canonical:' . $selfRoute) }}" />


<xf:wrap template="forum_overview_wrapper">
	<xf:set var="$pageSelected">forums</xf:set>
</xf:wrap>

<xf:widgetpos id="forum_list_sidebar" position="sidebar" />

<xf:widgetpos id="forum_list_above_nodes" />
<xf:macro id="node_list" arg-children="{$nodeTree}" arg-extras="{$nodeExtras}" />
<xf:widgetpos id="forum_list_below_nodes" />

<xf:head option="rss_forum"><link rel="alternate" type="application/rss+xml" title="{{ phrase('rss_feed_for_x', {'title': $xf.options.boardTitle})|for_attr }}" href="{{ link('forums/index.rss', '-') }}" /></xf:head>

<xf:macro id="node_list_entry" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
	<xf:css src="node_list.less" />
	<xf:set var="$nodeTemplate" value="{{ $node.getNodeTemplateRenderer($depth) }}" />
	<xf:if is="$nodeTemplate.macro">
		<xf:macro id="{$nodeTemplate.template}::{$nodeTemplate.macro}"
			arg-node="{$node}"
			arg-extras="{$extras}"
			arg-children="{$children}"
			arg-childExtras="{$childExtras}"
			arg-depth="{$depth}" />
	<xf:elseif is="{$nodeTemplate.template}" />
		<xf:include template="{$nodeTemplate.template}" />
	</xf:if>
</xf:macro>

<xf:macro id="node_list" arg-children="!" arg-extras="!" arg-depth="1">
	<xf:css src="node_list.less" />
	<xf:foreach loop="$children" key="$id" value="$child">
		<xf:macro id="node_list_entry"
			arg-node="{$child.record}"
			arg-extras="{$extras.{$id}}"
			arg-children="{$child.children}"
			arg-childExtras="{$extras}"
			arg-depth="{$depth}" />
	</xf:foreach>
</xf:macro>

<xf:macro id="sub_node_list" arg-children="!" arg-childExtras="!" arg-depth="3">
	<xf:if contentcheck="true">
		<ol>
		<xf:contentcheck>
			<xf:macro id="forum_list::node_list"
				arg-children="{$children}"
				arg-extras="{$childExtras}"
				arg-depth="{{ $depth + 1 }}" />
		</xf:contentcheck>
		</ol>
	</xf:if>
</xf:macro>

<xf:macro id="sub_nodes_flat" arg-children="!" arg-childExtras="!" arg-depth="3">
	<xf:css src="node_list.less" />
	<xf:if contentcheck="true">
		<div class="node-subNodesFlat">
			<span class="node-subNodesLabel">{{ phrase('sub_forums:') }}</span>
			<ol class="node-subNodeFlatList">
			<xf:contentcheck>
				<xf:macro id="forum_list::node_list"
					arg-children="{$children}"
					arg-extras="{$childExtras}"
					arg-depth="{{ $depth + 1 }}" />
			</xf:contentcheck>
			</ol>
		</div>
	</xf:if>
</xf:macro>

<xf:macro id="sub_nodes_menu" arg-children="!" arg-childExtras="!" arg-depth="3">
	<xf:css src="node_list.less" />
	<xf:if contentcheck="true">
		<div class="node-subNodeMenu">
			<a class="menuTrigger" data-xf-click="menu" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{{ phrase('sub_forums') }}</a>
			<div class="menu" data-menu="menu" aria-hidden="true">
				<div class="menu-content">
					<h4 class="menu-header">{{ phrase('sub_forums') }}</h4>
					<ol class="subNodeMenu">
					<xf:contentcheck>
						<xf:macro id="forum_list::node_list"
							arg-children="{$children}"
							arg-extras="{$childExtras}"
							arg-depth="{{ $depth + 1 }}" />
					</xf:contentcheck>
					</ol>
				</div>
			</div>
		</div>
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="forum_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="forum_page_options" arg-forum="!" arg-thread="">
	<xf:page option="forum" value="{$forum}" />

	<xf:if is="{$thread}">
		<xf:page option="searchConstraints" value="{{ {
			phrase('threads'): {'search_type': 'post'},
			phrase('this_forum'): {'search_type': 'post', 'c': {'nodes': [$forum.node_id], 'child_nodes': 1}},
			phrase('this_thread'): {'search_type': 'post', 'c': {'thread': $thread.thread_id}}
		} }}" />
	<xf:else />
		<xf:page option="searchConstraints" value="{{ {
			phrase('threads'): {'search_type': 'post'},
			phrase('this_forum'): {'search_type': 'post', 'c': {'nodes': [$forum.node_id], 'child_nodes': 1}}
		} }}" />
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="forum_mark_read" version_id="2000036" version_string="2.0.0 Beta 6"><![CDATA[<xf:if is="$forum">
	<xf:title>{{ phrase('mark_forum_read') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('mark_forums_read') }}</xf:title>
</xf:if>

<xf:form action="{{ link('forums/mark-read', $forum, {'date': $date}) }}" class="block" ajax="true">
	<div class="block-container">
		<xf:if is="$forum">
			<div class="block-body">
				<xf:inforow rowtype="confirm">
					{{ phrase('you_sure_you_want_to_mark_this_forum_read') }}
					<strong><a href="{{ link('forums', $forum) }}">{$forum.title}</a></strong>
				</xf:inforow>
			</div>
			<xf:submitrow submit="{{ phrase('mark_forum_read') }}" rowtype="simple" icon="markRead" />
		<xf:else />
			<div class="block-body">
				<xf:inforow rowtype="confirm">{{ phrase('you_sure_you_want_to_mark_all_forums_read') }}</xf:inforow>
			</div>
			<xf:submitrow submit="{{ phrase('mark_forums_read') }}" rowtype="simple" icon="markRead" />
		</xf:if>
	</div>
</xf:form>]]></template>
  <template type="public" title="forum_new_posts" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$xf.options.forumsDefaultPage != 'new_posts' OR ($xf.options.indexRoute AND $xf.options.indexRoute != 'forums/')">
	<xf:title page="{$page}">{{ phrase('new_posts') }}</xf:title>
<xf:else />
	<xf:h1>{$xf.options.boardTitle}</xf:h1>
</xf:if>

<xf:macro id="metadata_macros::metadata"
	arg-description="{$xf.options.boardDescription}" />

<xf:if is="$page > 1 OR $originalFindNewId">
	<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>
</xf:if>
<xf:if is="$page <= 1">
	<xf:macro id="metadata_macros::canonical_url" arg-canonicalUrl="{{ link('canonical:' . $selfRoute) }}" />
</xf:if>

<xf:wrap template="forum_overview_wrapper">
	<xf:set var="$pageSelected">new_posts</xf:set>
</xf:wrap>

<xf:widgetpos id="forum_new_posts_sidebar" position="sidebar" />

<xf:if is="$canInlineMod">
	<xf:js src="xf/inline_mod.js" min="1" />
</xf:if>

<div class="block" data-xf-init="{{ $canInlineMod ? 'inline-mod' : '' }}" data-type="thread" data-href="{{ link('inline-mod') }}">
	<xf:if is="$findNew.result_count">
		<div class="block-outer"><xf:trim>
			<xf:pagenav
				page="{$page}" perpage="{$perPage}" total="{$findNew.result_count}"
				link="forums/new-posts" params="{{ {'f': $findNew.find_new_id} }}"
				wrapperclass="block-outer-main" />

			<xf:if contentcheck="true">
				<div class="block-outer-opposite">
					<div class="buttonGroup">
					<xf:contentcheck>
						<xf:macro id="whats_new_posts::buttons"
							arg-findNew="{$findNew}"
							arg-canInlineMod="{$canInlineMod}" />
					</xf:contentcheck>
					</div>
				</div>
			</xf:if>
		</xf:trim></div>
	</xf:if>

	<div class="block-container">
		<xf:macro id="whats_new_posts::filter_bar"
			arg-findNew="{$findNew}"
			arg-rerunRoute="forums/new-posts"
			arg-rerunQuery="{{ {'f': $findNew.find_new_id} }}"
			arg-filterRoute="forums/new-posts" />

		<xf:macro id="whats_new_posts::results"
			arg-findNew="{$findNew}"
			arg-threads="{$threads}"
			arg-latestRoute="forums/new-posts" />
	</div>

	<xf:if is="$findNew.result_count">
		<div class="block-outer block-outer--after">
			<xf:pagenav
				page="{$page}" perpage="{$perPage}" total="{$findNew.result_count}"
				link="forums/new-posts" params="{{ {'f': $findNew.find_new_id} }}"
				wrapperclass="block-outer-main" />

			<xf:showignored wrapperclass="block-outer-opposite" />
		</div>
	</xf:if>
</div>]]></template>
  <template type="public" title="forum_overview_wrapper" version_id="2020670" version_string="2.2.6"><![CDATA[<xf:ad position="forum_overview_top" />
<xf:widgetpos id="forum_overview_top" />

<xf:pageaction>
	<xf:if is="$pageSelected == 'new_posts' ">
		<xf:button href="{{ link('forums/list') }}" icon="list">
			{{ phrase('forum_list') }}
		</xf:button>
	<xf:else />
		<xf:button href="{{ $xf.options.forumsDefaultPage == 'new_posts' ? link('forums/new-posts') : link('whats-new/posts') }}" icon="bolt">
			{{ phrase('new_posts') }}
		</xf:button>
	</xf:if>
	<xf:if is="$xf.visitor.canCreateThread() OR $xf.visitor.canCreateThreadPreReg()">
		<xf:button href="{{ link('forums/create-thread') }}" class="button--cta" icon="write" overlay="true" rel="nofollow">
			{{ phrase('post_thread...') }}
		</xf:button>
	</xf:if>
</xf:pageaction>

{$innerContent|raw}

<xf:ad position="forum_overview_bottom" />
<xf:widgetpos id="forum_overview_bottom" />]]></template>
  <template type="public" title="forum_post_quick_thread" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:form action="{{ link('forums/post-thread', $forum) }}" draft="{{ link('forums/draft', $forum) }}">

	<div class="js-quickThreadFields" data-xf-init="attachment-manager">

		<xf:if is="$forum.draft_thread.exists()">
			<xf:formrow rowtype="fullWidth noGutter noLabel mergeNext">
				<div class="block-rowMessage block-rowMessage--important block-rowMessage--small">
					<a href="{{ link('forums/post-thread', $forum) }}">{{ phrase('you_have_saved_draft_click_to_load') }}</a>
				</div>
			</xf:formrow>
		</xf:if>

		<xf:macro id="forum_post_thread::type_chooser"
			arg-thread="{$thread}"
			arg-forum="{$forum}"
			arg-creatableThreadTypes="{$creatableThreadTypes}"
			arg-defaultThreadType="{$defaultThreadType}"
			arg-rowType="fullWidth noGutter noBottomPadding noLabel mergeNext" />

		<xf:editorrow name="message" value="{$post.message}" rows="3" rowtype="fullWidth noGutter noLabel mergeNext"
			data-min-height="100"
			data-max-height="300"
			placeholder="{{ phrase('message...') }}"
			label="{{ phrase('message') }}"
			data-preview-url="{{ link('forums/thread-preview', $forum) }}" />

		<xf:macro id="forum_post_thread::type_fields"
			arg-thread="{$thread}"
			arg-forum="{$forum}"
			arg-creatableThreadTypes="{$creatableThreadTypes}"
			arg-defaultThreadType="{$defaultThreadType}"
			arg-subContext="quick"
			arg-formRowSepVariant="formRowSep--noGutter" />

		<xf:macro id="custom_fields_macros::custom_fields_edit"
			arg-type="threads"
			arg-set="{$thread.custom_fields}"
			arg-editMode="{{ $thread.getFieldEditMode(true) }}"
			arg-onlyInclude="{$forum.field_cache}"
			arg-rowType="fullWidth noGutter"
			arg-requiredOnly="{{ $inlineMode ? true : false }}" />

		<xf:if is="$canEditTags && $forum.min_tags">
			<hr class="formRowSep" />
			<xf:tokeninputrow name="tags"
				href="{{ link('misc/tag-auto-complete') }}"
				min-length="{$xf.options.tagLength.min}"
				max-length="{$xf.options.tagLength.max}"
				max-tokens="{$xf.options.maxContentTags}"
				rowtype="fullWidth noGutter"
				label="{{ phrase('tags') }}">

				<xf:explain>
					{{ phrase('multiple_tags_may_be_separated_by_commas') }}
					<xf:if is="$forum.min_tags">
						{{ phrase('this_content_must_have_at_least_x_tags', {'min': $forum.min_tags}) }}
					</xf:if>
				</xf:explain>
			</xf:tokeninputrow>
		</xf:if>

		<xf:if is="!$xf.visitor.user_id && !$forum.canCreateThreadPreReg()">
			<xf:textboxrow name="_xfUsername" data-xf-init="guest-username" rowtype="fullWidth noGutter"
				autocomplete="username"
				maxlength="{{ max_length($xf.visitor, 'username') }}"
				label="{{ phrase('name') }}" />
		<xf:elseif is="$xf.visitor.user_id" />
			<xf:macro id="helper_thread_options::watch_input"
				arg-thread="{$thread}"
				arg-rowType="fullWidth noGutter noLabel"
				arg-visible="{{ false }}" />
		</xf:if>

		<xf:captcharow label="{{ phrase('verification') }}" rowtype="fullWidth noGutter noLabel" context="xf_post_quick_thread" />

		<xf:if is="$attachmentData">
			<xf:macro id="helper_attach_upload::uploaded_files_list"
				arg-attachments="{$attachmentData.attachments}" />
		</xf:if>

		<div class="formButtonGroup">
			<div class="formButtonGroup-primary">
				<xf:button type="submit" class="button--primary" icon="write">
					{{ $forum.TypeHandler.getTypeActionPhrase('submit') ?: phrase('post_thread') }}
				</xf:button>

				<xf:button type="submit" formnovalidate="formnovalidate" name="more-options" value="1"
					title="{{ phrase('show_full_post_thread_editor') }}"
					data-prevent-ajax="true"
					data-xf-init="tooltip">{{ phrase('more_options...') }}</xf:button>

				<xf:button type="reset" class="button--iconOnly" icon="cancel"
					title="{{ phrase('button.cancel') }}"
					data-xf-init="tooltip">
					<span class="u-srOnly">{{ phrase('button.cancel') }}</span>
				</xf:button>
			</div>
			<xf:if contentcheck="true">
				<div class="formButtonGroup-extra">
					<xf:contentcheck>
						<xf:if is="$attachmentData">
							<xf:macro id="helper_attach_upload::upload_link_from_data"
								arg-attachmentData="{$attachmentData}" />
						</xf:if>

						<xf:if is="$xf.options.multiQuote">
							<xf:macro id="multi_quote_macros::button"
								arg-href="{{ link('threads/multi-quote', $thread) }}"
								arg-messageSelector=".js-post"
								arg-storageKey="multiQuoteThread" />
						</xf:if>
					</xf:contentcheck>
				</div>
			</xf:if>
		</div>
	</div>
</xf:form>]]></template>
  <template type="public" title="forum_post_thread" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:title>{{ $forum.TypeHandler.getTypeActionPhrase('title') ?: phrase('post_thread') }}</xf:title>

<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<xf:breadcrumb source="$forum.getBreadcrumbs()" />

<xf:form action="{{ link('forums/post-thread', $forum) }}" ajax="true" class="block" data-xf-init="attachment-manager"
	draft="{{ link('forums/draft', $forum) }}">

	<div class="block-container">
		<div class="block-body">

			<xf:set var="$titleFinalHtml"><!--[XF:title_final_html]--></xf:set>

			<xf:prefixinputrow
				label="{{ phrase('title') }}"
				prefixes="{$prefixes}"
				type="thread"
				rows="1"
				prefix-value="{{ $forum.draft_thread.prefix_id ?: ($thread.prefix_id ?: $forum.default_prefix_id) }}"
				textbox-value="{{ $title ?: $thread.title ?: $forum.draft_thread.title }}"
				textbox-class="input--title"
				placeholder="{$forum.thread_prompt}"
				rowtype="fullWidth noLabel"
				autofocus="autofocus"
				maxlength="{{ max_length('XF:Thread', 'title') }}"
				help-href="{{ link('forums/prefix-help', $forum) }}"
				finalhtml="{$titleFinalHtml}" />

			<!--[XF:after_title]-->

			<xf:macro id="type_chooser"
				arg-thread="{$thread}"
				arg-forum="{$forum}"
				arg-creatableThreadTypes="{$creatableThreadTypes}"
				arg-defaultThreadType="{$defaultThreadType}" />

			<div class="js-inlineNewPostFields">
				<xf:editorrow name="message"
					value="{{ $post.message ?: $forum.draft_thread.message }}"
					attachments="{{ $attachmentData ? $attachmentData.attachments : [] }}"
					rowtype="fullWidth noLabel mergePrev"
					label="{{ phrase('message') }}"
					data-preview-url="{{ link('forums/thread-preview', $forum) }}" />

				<xf:formrow rowtype="fullWidth noLabel mergePrev noTopPadding">
					<xf:if is="$attachmentData">
						<xf:macro id="helper_attach_upload::upload_block"
							arg-attachmentData="{$attachmentData}"
							arg-forceHash="{$forum.draft_thread.attachment_hash}" />
					</xf:if>

					<xf:if is="$xf.options.multiQuote">
						<xf:macro id="multi_quote_macros::button"
							arg-href="{{ link('threads/multi-quote', $thread) }}"
							arg-messageSelector=".js-post"
							arg-storageKey="multiQuoteThread" />
					</xf:if>
				</xf:formrow>

				<xf:macro id="type_fields"
					arg-thread="{$thread}"
					arg-forum="{$forum}"
					arg-creatableThreadTypes="{$creatableThreadTypes}"
					arg-defaultThreadType="{$defaultThreadType}"
					arg-draftOverride="{$typeDataDraftOverride}"
					arg-subContext="full" />

				<xf:if contentcheck="true">
					<hr class="formRowSep" />
					<xf:contentcheck>
						<xf:macro id="custom_fields_macros::custom_fields_edit"
							arg-type="threads"
							arg-set="{$thread.custom_fields}"
							arg-editMode="{{ $thread.getFieldEditMode(true) }}"
							arg-onlyInclude="{$forum.field_cache}"
							arg-requiredOnly="{{ $inlineMode ? true : false }}" />
					</xf:contentcheck>
				</xf:if>

				<xf:if is="$canEditTags">
					<hr class="formRowSep" />
					<xf:tokeninputrow name="tags" value="{{ $thread.tags ? $thread.tags|join(', ') : $forum.draft_thread.tags ?: $tags }}"
						href="{{ link('misc/tag-auto-complete') }}"
						min-length="{$xf.options.tagLength.min}"
						max-length="{$xf.options.tagLength.max}"
						max-tokens="{$xf.options.maxContentTags}"
						label="{{ phrase('tags') }}">

						<xf:explain>
							{{ phrase('multiple_tags_may_be_separated_by_commas') }}
							<xf:if is="$forum.min_tags">
								{{ phrase('this_content_must_have_at_least_x_tags', {'min': $forum.min_tags}) }}
							</xf:if>
						</xf:explain>
					</xf:tokeninputrow>
				</xf:if>

				<hr class="formRowSep" />
				<xf:if is="!$xf.visitor.user_id AND !$forum.canCreateThreadPreReg()">
					<xf:textboxrow name="_xfUsername" data-xf-init="guest-username"
						autocomplete="username"
						maxlength="{{ max_length($xf.visitor, 'username') }}"
						label="{{ phrase('name') }}" />
				<xf:elseif is="$xf.visitor.user_id" />
					<xf:macro id="helper_thread_options::watch_input" arg-thread="{$thread}" />
					<xf:macro id="helper_thread_options::thread_status" arg-thread="{$thread}" />
				</xf:if>

				<xf:captcharow label="{{ phrase('verification') }}" context="xf_post_thread" />
			</div>
		</div>

		<xf:submitrow submit="{{ $forum.TypeHandler.getTypeActionPhrase('submit') ?: phrase('post_thread') }}" icon="write" sticky="true" />
	</div>
</xf:form>

<xf:macro id="type_chooser"
	arg-thread="!"
	arg-forum="!"
	arg-creatableThreadTypes="!"
	arg-defaultThreadType="!"
	arg-rowType="fullWidth noLabel noTopPadding noBottomPadding mergeNext mergePrev">

	<xf:if is="count($creatableThreadTypes) > 1">
		<xf:css src="input_extended.less" />
		<xf:formrow rowtype="{$rowType}">
			<div class="hScroller inputTypesScroller" data-xf-init="h-scroller">
				<div class="hScroller-scroll">
					<ul class="inputTypes" role="radiogroup" aria-label="{{ phrase('thread_type')|for_attr }}">
						<xf:foreach loop="$creatableThreadTypes" key="$threadTypeId" value="$threadType">
							<li role="none">
								<label class="inputTypes-type">
									<input type="radio" name="discussion_type" value="{$threadTypeId}"
										class="inputTypes-input"
										data-xf-init="disabler"
										data-hide="true"
										data-optional="true"
										data-autofocus="false"
										data-container=".js-threadTypeData[data-type-id='{$threadTypeId}']"
										{{ $threadTypeId == $defaultThreadType ? 'checked="checked"' : '' }}
									/>
									<span class="inputTypes-display inputTypes-display--type_{$threadTypeId}">
										<span class="inputTypes-icon" aria-hidden="true">
											<xf:set var="$typeIcon" value="{{ $threadType.getTypeIconClass() }}" />
											<xf:if is="$typeIcon">
												<xf:fa icon="{$typeIcon}" />
											<xf:else />
												<i class="inputTypes-defaultIcon"></i>
											</xf:if>
										</span>
										<span class="inputTypes-title">{{ $threadType.getTypeTitle() }}</span>
									</span>
								</label>
							</li>
						</xf:foreach>
					</ul>
				</div>
			</div>
		</xf:formrow>
	<xf:else />
		<xf:hiddenval name="discussion_type" value="{$defaultThreadType}" />
	</xf:if>

</xf:macro>

<xf:macro id="type_fields"
	arg-thread="!"
	arg-forum="!"
	arg-creatableThreadTypes="!"
	arg-defaultThreadType="!"
	arg-subContext="!"
	arg-extraOptions="{{ [] }}"
	arg-draftOverride="{{ null }}"
	arg-formRowSepVariant="">

	<xf:if contentcheck="true">
		<ul class="listPlain">
		<xf:contentcheck>
			<xf:foreach loop="$creatableThreadTypes" key="$threadTypeId" value="$threadType">
				<xf:if contentcheck="true">
					<li class="js-threadTypeData" data-type-id="{$threadTypeId}" style="{{ $threadTypeId != $defaultThreadType ? 'display:none;' : ''}}">
						<hr class="formRowSep {$formRowSepVariant}" />
						<xf:contentcheck>
							{{ $threadType.renderExtraDataEdit(
								$thread,
								'create',
								$subContext,
								{
									'draft': $subContext == 'quick' ? null : $forum->draft_thread,
									'draftOverride': $draftOverride
								} + $extraOptions
							)|raw }}
						</xf:contentcheck>
					</li>
				</xf:if>
			</xf:foreach>
		</xf:contentcheck>
		</ul>
	</xf:if>

</xf:macro>]]></template>
  <template type="public" title="forum_post_thread_chooser" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('post_thread_in') }}</xf:title>

<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<xf:macro id="node_list" arg-children="{$nodeTree}" arg-extras="{$nodeExtras}" />

<xf:macro id="node_list" arg-children="!" arg-extras="!"  arg-depth="0">
	<xf:foreach loop="$children" key="$id" value="$child">
		<xf:macro id="node_list_entry"
			arg-node="{$child.record}" arg-extras="{$extras.{$id}}"
			arg-children="{$child.children}" arg-childExtras="{$extras}"
			arg-depth="{$depth}" />
	</xf:foreach>
</xf:macro>

<xf:macro id="node_list_entry" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="0">
	<xf:if is="$depth == 0">
		<xf:if is="$node.node_type_id == 'Category'">
			<xf:macro id="node_list_entry_category_level_0"
				arg-node="{$node}"
				arg-extras="{$extras}"
				arg-children="{$children}"
				arg-childExtras="{$childExtras}"
				arg-depth="{$depth}" />
		<xf:elseif is="$node.node_type_id == 'Forum' AND ($node.Data.canCreateThread() OR $node.Data.canCreateThreadPreReg())" />
			<xf:macro id="node_list_entry_forum_level_0"
				arg-node="{$node}"
				arg-extras="{$extras}"
				arg-children="{$children}"
				arg-childExtras="{$childExtras}"
				arg-depth="{$depth}" />
		<xf:else />
			<xf:macro id="node_list_entry_no_posting_level_0"
				arg-node="{$node}"
				arg-extras="{$extras}"
				arg-children="{$children}"
				arg-childExtras="{$childExtras}"
				arg-depth="{$depth}" />
		</xf:if>
	<xf:else />
		<xf:if is="$node.node_type_id == 'Forum' AND ($node.Data.canCreateThread() OR $node.Data.canCreateThreadPreReg())">
			<xf:macro id="node_list_entry_forum"
				arg-node="{$node}"
				arg-extras="{$extras}"
				arg-children="{$children}"
				arg-childExtras="{$childExtras}"
				arg-depth="{$depth}" />
		<xf:else />
			<xf:macro id="node_list_entry_no_posting"
				arg-node="{$node}"
				arg-extras="{$extras}"
				arg-children="{$children}"
				arg-childExtras="{$childExtras}"
				arg-depth="{$depth}" />
		</xf:if>
	</xf:if>
</xf:macro>

<xf:macro id="node_list_entry_category_level_0"
	arg-node="!"
	arg-extras="!"
	arg-children="!"
	arg-childExtras="!"
	arg-depth="0">

	<div class="block block--treeEntryChooser">
		<div class="block-container">
			<h2 class="block-header">
				{$node.title}
				<xf:if is="$node.description">
					<span class="block-desc">
						{$node.description|raw}
					</span>
				</xf:if>
			</h2>
			<div class="block-body">
				<xf:macro id="node_list"
					arg-children="{$children}" arg-extras="{$childExtras}" arg-depth="{{ $depth + 1 }}" />
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="node_list_entry_forum_level_0"
	arg-node="!"
	arg-extras="!"
	arg-children="!"
	arg-childExtras="!"
	arg-depth="0">

	<div class="block block--treeEntryChooser">
		<div class="block-container">
			<xf:macro id="node_list_entry_forum"
				arg-node="{$node}"
				arg-extras="{$extras}"
				arg-children="{$children}"
				arg-childExtras="{$childExtras}"
				arg-depth="{$depth}" />
		</div>
	</div>
</xf:macro>

<xf:macro id="node_list_entry_no_posting_level_0"
	arg-node="!"
	arg-extras="!"
	arg-children="!"
	arg-childExtras="!"
	arg-depth="0">

	<div class="block block--treeEntryChooser">
		<div class="block-container">
			<xf:macro id="node_list_entry_no_posting"
				arg-node="{$node}"
				arg-extras="{$extras}"
				arg-children="{$children}"
				arg-childExtras="{$childExtras}"
				arg-depth="{$depth}" />
		</div>
	</div>
</xf:macro>

<xf:macro id="node_list_entry_forum"
	arg-node="!"
	arg-extras="!"
	arg-children="!"
	arg-childExtras="!"
	arg-depth="0">

	<div class="block-row block-row--clickable block-row--separated fauxBlockLink">
		<div class="contentRow contentRow--alignMiddle{{ $depth > 1 ? ' u-depth' . ($depth - 1) : '' }}">
			<div class="contentRow-main">
				<h2 class="contentRow-title">
					<a href="{{ link('forums/post-thread', $node) }}" class="fauxBlockLink-blockLink" rel="nofollow">
						{$node.title}
					</a>
				</h2>
				<xf:if is="$node.description">
					<div class="contentRow-minor contentRow-minor--singleLine">
						{$node.description|raw}
					</div>
				</xf:if>
			</div>
			<div class="contentRow-suffix">
				<dl class="pairs pairs--rows pairs--rows--centered">
					<dt>{{ phrase('threads') }}</dt>
					<dd>{$extras.discussion_count|number_short}</dd>
				</dl>
			</div>
		</div>
	</div>
	<xf:macro id="node_list"
		arg-children="{$children}" arg-extras="{$childExtras}" arg-depth="{{ $depth + 1 }}" />
</xf:macro>

<xf:macro id="node_list_entry_no_posting"
	arg-node="!"
	arg-extras="!"
	arg-children="!"
	arg-childExtras="!"
	arg-depth="0">

	<div class="block-row block-row--separated">
		<div class="contentRow contentRow--alignMiddle{{ $depth > 1 ? ' u-depth' . ($depth - 1) : '' }} is-disabled">
			<div class="contentRow-main">
				<h2 class="contentRow-title">
					{$node.title}
				</h2>
				<xf:if is="$node.node_type_id == 'Forum'">
					<div class="contentRow-minor contentRow-minor--singleLine">
						{{ phrase('no_permission_to_post') }}
					</div>
				</xf:if>
			</div>
			<div class="contentRow-suffix">
				<dl class="pairs pairs--rows pairs--rows--centered">
					<dt>{{ phrase('threads') }}</dt>
					<dd>{{ $node.node_type_id == 'Forum' ? $extras.discussion_count|number_short : phrase('n_a') }}</dd>
				</dl>
			</div>
		</div>
	</div>
	<xf:macro id="node_list"
		arg-children="{$children}"
		arg-extras="{$childExtras}"
		arg-depth="{{ $depth + 1 }}" />
</xf:macro>]]></template>
  <template type="public" title="forum_prefixes" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="prefix_macros::select"
	arg-name="na"
	arg-prefixes="{$prefixes}"
	arg-type="thread" />
]]></template>
  <template type="public" title="forum_view" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title page="{$page}">{$forum.Node.title}</xf:title>
<xf:description>{$forum.Node.description|raw}</xf:description>

<xf:css src="structured_list.less" />

<xf:if is="!$forum.isSearchEngineIndexable()">
	<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>
</xf:if>

<xf:macro id="metadata_macros::canonical_url"
	arg-canonicalUrl="{{ link('canonical:forums', $forum, $canonicalFilters + {'page': $page}) }}" />

<xf:head option="rss_forum"><link rel="alternate" type="application/rss+xml" title="{{ phrase('rss_feed_for_x', {'title': $forum.title})|for_attr }}" href="{{ link('forums/index.rss', $forum) }}" /></xf:head>

<xf:macro id="forum_macros::forum_page_options" arg-forum="{$forum}" />
<xf:breadcrumb source="$forum.getBreadcrumbs(false)" />

<xf:pageaction if="$forum.canCreateThread() OR $forum.canCreateThreadPreReg()">
	<xf:button href="{{ link('forums/post-thread', $forum) }}" class="button--cta" icon="write" rel="nofollow">
		{{ $forum.TypeHandler.getTypeActionPhrase('cta') ?: phrase('post_thread') }}
	</xf:button>
</xf:pageaction>

<xf:if is="$pendingApproval">
	<div class="blockMessage blockMessage--important">{{ phrase('content_submitted_displayed_pending_approval') }}</div>
</xf:if>

<xf:extension id="above_node_list"></xf:extension>

<xf:if is="$nodeTree">
	<xf:ad position="forum_view_above_node_list" arg-forum="{$forum}" />
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:macro id="forum_list::node_list"
					arg-children="{$nodeTree}"
					arg-extras="{$nodeExtras}"
					arg-depth="2" />
			</div>
		</div>
	</div>
	<xf:ad position="forum_view_below_node_list" arg-forum="{$forum}" />
</xf:if>

<xf:if is="$canInlineMod">
	<xf:js src="xf/inline_mod.js" min="1" />
</xf:if>

<xf:extension id="above_thread_list"></xf:extension>
<xf:ad position="forum_view_above_thread_list" arg-forum="{$forum}" />

<xf:extension id="thread_list_block_classes" value="" />
<div class="block {{ extension_value('thread_list_block_classes') }}" data-xf-init="{{ $canInlineMod ? 'inline-mod' : '' }}" data-type="thread" data-href="{{ link('inline-mod') }}">

	<div class="block-outer"><xf:trim>
		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="forums" data="{$forum}" params="{$filters}"
			wrapperclass="block-outer-main" />
		<xf:if contentcheck="true">
			<div class="block-outer-opposite">
				<div class="buttonGroup">
				<xf:contentcheck>
					<xf:if is="$canInlineMod">
						<xf:macro id="inline_mod_macros::button" />
					</xf:if>
					<xf:if is="$xf.visitor.user_id">
						<xf:button href="{{ link('forums/mark-read', $forum, {'date': $xf.time}) }}"
							class="button--link" overlay="true">
							{{ phrase('mark_read') }}
						</xf:button>
					</xf:if>
					<xf:if is="$forum.canWatch()">
						<xf:button href="{{ link('forums/watch', $forum) }}" class="button--link"
							data-xf-click="switch-overlay"
							data-sk-watch="{{ phrase('watch') }}"
							data-sk-unwatch="{{ phrase('unwatch') }}">
							<xf:if is="{$forum.Watch.{$xf.visitor.user_id}}">{{ phrase('unwatch') }}<xf:else />{{ phrase('watch') }}</xf:if>
						</xf:button>
					</xf:if>
				</xf:contentcheck>
				</div>
			</div>
		</xf:if>
	</xf:trim></div>

	<div class="block-container">

		<xf:extension id="thread_list_header">
			<div class="block-filterBar">
				<div class="filterBar">
					<xf:if contentcheck="true">
						<ul class="filterBar-filters">
						<xf:contentcheck>
							<xf:extension id="filters">
								<xf:macro id="filters"
									arg-forum="{$forum}"
									arg-filters="{$filters}"
									arg-starterFilter="{$starterFilter}"
									arg-threadTypeFilter="{$threadTypeFilter}" />
							</xf:extension>
						</xf:contentcheck>
						</ul>
					</xf:if>

					<a class="filterBar-menuTrigger" data-xf-click="menu" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{{ phrase('filters') }}</a>
					<div class="menu menu--wide" data-menu="menu" aria-hidden="true"
						data-href="{{ link('forums/filters', $forum, $filters) }}"
						data-load-target=".js-filterMenuBody">
						<div class="menu-content">
							<h4 class="menu-header">{{ phrase('show_only:') }}</h4>
							<div class="js-filterMenuBody">
								<div class="menu-row">{{ phrase('loading...') }}</div>
							</div>
						</div>
					</div>
				</div>
			</div>
		</xf:extension>

		<xf:set var="$qtPos">{{ ($sortInfo.order == 'last_post_date' && $sortInfo.direction == 'asc') ? 'bottom' : 'top' }}</xf:set>

		<div class="block-body">
			<xf:extension id="thread_list">
				<div class="structItemContainer">
					<xf:macro id="{{ $templateOverrides.quick_thread_macro ?: 'thread_list_macros::quick_thread' }}"
						arg-forum="{$forum}"
						arg-page="{$page}"
						arg-order="{$sortInfo.order}"
						arg-direction="{$sortInfo.direction}"
						arg-prefixes="{$quickThreadPrefixes}"
						args="{$templateOverrides.quick_thread_macro_args}" />

					<xf:if is="$stickyThreads is not empty OR $threads is not empty">
						<xf:if is="$stickyThreads is not empty">
							<div class="structItemContainer-group structItemContainer-group--sticky">
								<xf:foreach loop="$stickyThreads" value="$thread">
									<xf:macro id="{{ $templateOverrides.thread_list_macro ?: 'thread_list_macros::item' }}"
										arg-thread="{$thread}"
										arg-forum="{$forum}"
										args="{$templateOverrides.thread_list_macro_args}" />
								</xf:foreach>
							</div>

							<xf:ad position="forum_view_below_stickies" arg-forum="{$forum}" />
						</xf:if>

						<div class="structItemContainer-group js-threadList">
							<xf:if is="$threads is not empty">
								<xf:foreach loop="$threads" value="$thread">
									<xf:macro id="{{ $templateOverrides.thread_list_macro ?: 'thread_list_macros::item' }}"
										arg-thread="{$thread}"
										arg-forum="{$forum}"
										args="{$templateOverrides.thread_list_macro_args}"  />
								</xf:foreach>
								<xf:if is="$showDateLimitDisabler">
									<xf:macro id="date_limit_disabler" arg-forum="{$forum}" arg-page="{$page}" arg-filters="{$filters}" />
								</xf:if>
							</xf:if>
						</div>
					<xf:elseif is="$filters" />
						<div class="structItemContainer-group js-threadList">
							<div class="structItem js-emptyThreadList">
								<div class="structItem-cell">{{ phrase('there_no_threads_matching_your_filters') }}</div>
							</div>
							<xf:if is="$showDateLimitDisabler">
								<xf:macro id="date_limit_disabler" arg-forum="{$forum}" arg-page="{$page}" arg-filters="{$filters}" />
							</xf:if>
						</div>
					<xf:else />
						<div class="structItemContainer-group js-threadList">
							<xf:if is="$showDateLimitDisabler">
								<div class="structItem js-emptyThreadList">
									<div class="structItem-cell">{{ phrase('there_no_threads_to_display') }}</div>
								</div>
								<xf:macro id="date_limit_disabler" arg-forum="{$forum}" arg-page="{$page}" arg-filters="{$filters}" />
							<xf:else />
								<div class="structItem js-emptyThreadList">
									<div class="structItem-cell">{{ phrase('there_no_threads_in_this_forum') }}</div>
								</div>
							</xf:if>
						</div>
					</xf:if>
				</div>
			</xf:extension>
		</div>
	</div>

	<div class="block-outer block-outer--after">
		<xf:pagenav
			page="{$page}" perpage="{$perPage}" total="{$total}"
			link="forums" data="{$forum}" params="{$filters}"
			wrapperclass="block-outer-main" />
		<xf:showignored wrapperclass="block-outer-opposite" />
		<xf:if is="!$forum.canCreateThread() AND !$forum.canCreateThreadPreReg()">
			<div class="block-outer-opposite">
				<xf:if is="$xf.visitor.user_id">
					<span class="button button--wrap is-disabled">
						{{ phrase('no_permission_to_post') }}
						<!-- this is not interactive so shouldn't be a button element -->
					</span>
				<xf:else />
					<xf:button href="{{ link('login') }}" class="button--link button--wrap" overlay="true">
						{{ phrase('log_in_or_register_to_post') }}
					</xf:button>
				</xf:if>
			</div>
		</xf:if>
	</div>
</div>

<xf:ad position="forum_view_below_thread_list" arg-forum="{$forum}" />
<xf:extension id="below_thread_list"></xf:extension>

<xf:widgetpos id="forum_view_sidebar" context-forum="{$forum}" position="sidebar" />

<xf:macro id="filters" arg-forum="!" arg-filters="!" arg-starterFilter="{{ null }}" arg-threadTypeFilter="{{ null }}">
	<xf:set var="$dateLimits" value="{{ {
		'-1': phrase('any_time'),
		'7': phrase('x_days', {'days': '7'}),
		'14': phrase('x_days', {'days': '14'}),
		'30': phrase('x_days', {'days': '30'}),
		'60': phrase('x_months', {'months': '2'}),
		'90': phrase('x_months', {'months': '3'}),
		'182': phrase('x_months', {'months': '6'}),
		'365': phrase('1_year')
	} }}" />

	<xf:extension id="start"></xf:extension>

	<xf:extension id="featured">
		<xf:if is="$filters.featured">
			<li><a href="{{ link('forums', $forum, $filters|replace('featured', null)) }}"
				class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
				<span class="filterBar-filterToggle-label">{{ phrase('show_only:') }}</span>
				{{ phrase('featured_threads') }}</a></li>
		</xf:if>
	</xf:extension>

	<xf:extension id="prefix_id">
		<xf:if is="$filters.prefix_id">
			<li><a href="{{ link('forums', $forum, $filters|replace('prefix_id', null)) }}"
				class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
				<span class="filterBar-filterToggle-label">{{ phrase('prefix:') }}</span>
				{{ prefix_title('thread', $filters.prefix_id) }}</a></li>
		</xf:if>
	</xf:extension>

	<xf:extension id="starter_id">
		<xf:if is="$filters.starter_id AND $starterFilter">
			<li><a href="{{ link('forums', $forum, $filters|replace('starter_id', null)) }}"
				class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
				<span class="filterBar-filterToggle-label">{{ phrase('started_by:') }}</span>
				{$starterFilter.username}</a></li>
		</xf:if>
	</xf:extension>

	<xf:extension id="thread_type">
		<xf:if is="$filters.thread_type && $threadTypeFilter">
			<li><a href="{{ link('forums', $forum, $filters|replace('thread_type', null)) }}"
				class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
				<span class="filterBar-filterToggle-label">{{ phrase('thread_type_filter:') }}</span>
				{{ $threadTypeFilter.getTypeTitle() }}</a></li>
		</xf:if>
	</xf:extension>

	<xf:extension id="last_days">
		<xf:if is="$filters.last_days AND {$dateLimits.{$filters.last_days}}">
			<li><a href="{{ link('forums', $forum, $filters|replace('last_days', null)) }}"
				class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
				<span class="filterBar-filterToggle-label">{{ phrase('last_updated:') }}</span>
				{$dateLimits.{$filters.last_days}}</a></li>
		</xf:if>
	</xf:extension>

	<xf:extension id="order">
		<xf:if is="$filters.order">
			<li><a href="{{ link('forums', $forum, $filters|replace({'order': null, 'direction': null})) }}"
				class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('return_to_default_order')|for_attr }}">
				<span class="filterBar-filterToggle-label">{{ phrase('sort_by:') }}</span>
				{{ phrase_dynamic('forum_sort.' . $filters.order) }}
				<xf:fa icon="{{ $filters.direction == 'asc' ? 'fa-angle-up' : 'fa-angle-down' }}" />
				<span class="u-srOnly"><xf:if is="$filters.direction == 'asc'">{{ phrase('ascending') }}<xf:else />{{ phrase('descending') }}</xf:if></span>
			</a></li>
		</xf:if>
	</xf:extension>

	<xf:extension id="end"></xf:extension>
</xf:macro>

<xf:macro id="date_limit_disabler" arg-forum="!" arg-page="!" arg-filters="!">
	<div class="structItem structItem--note">
		<div class="structItem-cell">
			<a href="{{ link('forums', $forum, {'page': $page, 'no_date_limit': 1} + $filters) }}">
				{{ phrase('show_older_items') }}
			</a>
		</div>
	</div>
</xf:macro>]]></template>
  <template type="public" title="forum_view_type_article" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:extends template="forum_view" />

<xf:extension id="thread_list_block_classes" value="block--articles
	{{ ($forum.type_config.display_style != 'full' AND $forum.canViewThreadContent()) ? 'block--messages' : '' }}
	{{ ($forum.type_config.display_style == 'preview' AND $forum.canViewThreadContent()) ? 'block--previews' : '' }}
	{{ ($forum.type_config.display_style == 'expanded' AND $forum.canViewThreadContent()) ? 'block--expanded' : '' }}" />

<xf:extension id="thread_list">

	<xf:if is="$forum.type_config.display_style != 'full' AND $forum.canViewThreadContent()">
		<xf:css src="message.less" />

		<xf:if is="$stickyThreads is not empty OR $threads is not empty">
			<xf:if is="$stickyThreads is not empty">
				<xf:foreach loop="$stickyThreads" value="$thread">
					<xf:macro id="article_helper"
						arg-thread="{$thread}"
						arg-post="{$thread.FirstPost}"
						arg-forum="{$forum}"
						args="{$templateOverrides.thread_list_macro_args}"  />
				</xf:foreach>
			</xf:if>

			<xf:if is="$threads is not empty">
				<xf:foreach loop="$threads" value="$thread">
					<xf:macro id="article_helper"
						arg-thread="{$thread}"
						arg-post="{$thread.FirstPost}"
						arg-forum="{$forum}"
						args="{$templateOverrides.thread_list_macro_args}"  />
				</xf:foreach>

				<xf:if is="$showDateLimitDisabler">
					<div class="structItem structItem--note">
						<div class="structItem-cell">
							<a href="{{ link('forums', $forum, {'page': $page, 'no_date_limit': 1} + $filters) }}">
								{{ phrase('show_older_items') }}
							</a>
						</div>
					</div>
				</xf:if>
			</xf:if>
		<xf:elseif is="$filters" />
			<div class="message js-emptyThreadList">
				<div class="message-inner">
					<div class="message-cell message-cell--main">
						{{ phrase('there_no_threads_matching_your_filters') }}
					</div>
				</div>
			</div>
		<xf:elseif is="$showDateLimitDisabler" />
			<div class="message js-emptyThreadList">
				<div class="message-inner">
					<div class="message-cell message-cell--main">
						{{ phrase('there_no_threads_to_display') }}

						<div style="margin-top: 1em">
							<a href="{{ link('forums', $forum, {'page': $page, 'no_date_limit': 1} + $filters) }}">
								{{ phrase('show_older_items') }}
							</a>
						</div>
					</div>
				</div>
			</div>
		<xf:else />
			<div class="message js-emptyThreadList">
				<div class="message-inner">
					<div class="message-cell message-cell--main">
						{{ phrase('there_no_threads_in_this_forum') }}
					</div>
				</div>
			</div>
		</xf:if>
	<xf:else />
		<xf:extensionparent />
	</xf:if>
</xf:extension>

<xf:macro id="article_helper"
	arg-thread="!"
	arg-post="!"
	arg-forum="!"
	arg-allowInlineMod="{{ true }}">

	<xf:if is="$forum.type_config.display_style == 'expanded'">
		<xf:macro id="post_article_macros::article"
			arg-thread="{$thread}"
			arg-post="{$thread.FirstPost}"
			arg-forum="{$forum}"
			arg-isListItem="{{ true }}"
			args="{$templateOverrides.thread_list_macro_args}"  />
	<xf:else />
		<xf:macro id="post_article_macros::article_preview"
			arg-thread="{$thread}"
			arg-post="{$thread.FirstPost}"
			arg-forum="{$forum}"
			args="{$templateOverrides.thread_list_macro_args}"  />
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="forum_view_type_question" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:extends template="forum_view" />

<xf:extension id="thread_list_header">
	<h2 class="block-tabHeader tabs">
		<div class="hScroller" data-xf-init="h-scroller">
			<span class="hScroller-scroll">
				<!--[XF:type_tabs:start]-->
				<a href="{{ link('forums', $forum, $questionTabs.latest.filters) }}" class="tabs-tab {{ $questionTabs.latest.selected ? 'is-active' : '' }}">{{ phrase('latest_updates') }}</a>
				<a href="{{ link('forums', $forum, $questionTabs.popular.filters) }}" class="tabs-tab {{ $questionTabs.popular.selected ? 'is-active' : '' }}" rel="nofollow">{{ phrase('popular') }}</a>
				<a href="{{ link('forums', $forum, $questionTabs.newest.filters) }}" class="tabs-tab {{ $questionTabs.newest.selected ? 'is-active' : '' }}" rel="nofollow">{{ phrase('newest') }}</a>
				<a href="{{ link('forums', $forum, $questionTabs.unanswered.filters) }}" class="tabs-tab {{ $questionTabs.unanswered.selected ? 'is-active' : '' }}" rel="nofollow">{{ phrase('unanswered') }}</a>
				<a href="{{ link('forums', $forum, $questionTabs.unsolved.filters) }}" class="tabs-tab {{ $questionTabs.unsolved.selected ? 'is-active' : '' }}" rel="nofollow">{{ phrase('unsolved') }}</a>
				<xf:if is="$questionTabs.yourQuestions">
					<a href="{{ link('forums', $forum, $questionTabs.yourQuestions.filters) }}" class="tabs-tab {{ $questionTabs.yourQuestions.selected ? 'is-active' : '' }}" rel="nofollow">{{ phrase('your_questions') }}</a>
				</xf:if>
				<xf:if is="$questionTabs.yourAnswers">
					<a href="{{ link('forums', $forum, $questionTabs.yourAnswers.filters) }}" class="tabs-tab {{ $questionTabs.yourAnswers.selected ? 'is-active' : '' }}" rel="nofollow">{{ phrase('your_answers') }}</a>
				</xf:if>
				<!--[XF:type_tabs:end]-->
			</span>
		</div>

		<div class="tabs-extra tabs-extra--minor">
			<a class="menuTrigger" data-xf-click="menu" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{{ phrase('filters') }}</a>
			<div class="menu menu--wide" data-menu="menu" aria-hidden="true"
				data-href="{{ link('forums/filters', $forum, $filters) }}"
				data-load-target=".js-filterMenuBody">
				<div class="menu-content">
					<h4 class="menu-header">{{ phrase('show_only:') }}</h4>
					<div class="js-filterMenuBody">
						<div class="menu-row">{{ phrase('loading...') }}</div>
					</div>
				</div>
			</div>
		</div>
	</h2>

	<xf:if contentcheck="true">
		<div class="block-filterBar">
			<div class="filterBar">
				<ul class="filterBar-filters">
				<xf:contentcheck>
					<xf:extension id="filters">
						<xf:macro id="filters"
							arg-forum="{$forum}"
							arg-filters="{$filters}"
							arg-starterFilter="{$starterFilter}"
							arg-questionTabs="{$questionTabs}" />
					</xf:extension>
				</xf:contentcheck>
				</ul>
			</div>
		</div>
	</xf:if>
</xf:extension>

<xf:macro id="filters" extends="forum_view::filters" arg-questionTabs="!">
	<xf:extension id="order">
		<xf:if is="
			$questionTabs.latest.selected
			OR $questionTabs.popular.selected
			OR $questionTabs.newest.selected
		"><xf:else />
			<xf:extensionparent />
		</xf:if>
	</xf:extension>
</xf:macro>]]></template>
  <template type="public" title="forum_view_type_suggestion" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:extends template="forum_view" />

<xf:extension id="thread_list_header">
	<h2 class="block-tabHeader tabs">
		<div class="hScroller" data-xf-init="h-scroller">
			<span class="hScroller-scroll">
				<!--[XF:type_tabs:start]-->
				<a href="{{ link('forums', $forum, $suggestionTabs.latest.filters) }}" class="tabs-tab {{ $suggestionTabs.latest.selected ? 'is-active' : '' }}">{{ phrase('latest_updates') }}</a>
				<a href="{{ link('forums', $forum, $suggestionTabs.popular.filters) }}" class="tabs-tab {{ $suggestionTabs.popular.selected ? 'is-active' : '' }}" rel="nofollow">{{ phrase('popular') }}</a>
				<a href="{{ link('forums', $forum, $suggestionTabs.newest.filters) }}" class="tabs-tab {{ $suggestionTabs.newest.selected ? 'is-active' : '' }}" rel="nofollow">{{ phrase('newest') }}</a>
				<xf:if is="$suggestionTabs.implemented">
					<a href="{{ link('forums', $forum, $suggestionTabs.implemented.filters) }}" class="tabs-tab {{ $suggestionTabs.implemented.selected ? 'is-active' : '' }}" rel="nofollow">{{ phrase('implemented') }}</a>
				</xf:if>
				<xf:if is="$suggestionTabs.yourSuggestions">
					<a href="{{ link('forums', $forum, $suggestionTabs.yourSuggestions.filters) }}" class="tabs-tab {{ $suggestionTabs.yourSuggestions.selected ? 'is-active' : '' }}" rel="nofollow">{{ phrase('your_suggestions') }}</a>
				</xf:if>
				<xf:if is="$suggestionTabs.yourVotes">
					<a href="{{ link('forums', $forum, $suggestionTabs.yourVotes.filters) }}" class="tabs-tab {{ $suggestionTabs.yourVotes.selected ? 'is-active' : '' }}" rel="nofollow">{{ phrase('your_votes') }}</a>
				</xf:if>
				<!--[XF:type_tabs:end]-->
			</span>
		</div>

		<div class="tabs-extra tabs-extra--minor">
			<a class="menuTrigger" data-xf-click="menu" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{{ phrase('filters') }}</a>
			<div class="menu menu--wide" data-menu="menu" aria-hidden="true"
				data-href="{{ link('forums/filters', $forum, $filters) }}"
				data-load-target=".js-filterMenuBody">
				<div class="menu-content">
					<h4 class="menu-header">{{ phrase('show_only:') }}</h4>
					<div class="js-filterMenuBody">
						<div class="menu-row">{{ phrase('loading...') }}</div>
					</div>
				</div>
			</div>
		</div>
	</h2>

	<xf:if contentcheck="true">
		<div class="block-filterBar">
			<div class="filterBar">
				<ul class="filterBar-filters">
				<xf:contentcheck>
					<xf:extension id="filters">
						<xf:macro id="filters"
							arg-forum="{$forum}"
							arg-filters="{$filters}"
							arg-starterFilter="{$starterFilter}"
							arg-suggestionTabs="{$suggestionTabs}" />
					</xf:extension>
				</xf:contentcheck>
				</ul>
			</div>
		</div>
	</xf:if>
</xf:extension>

<xf:macro id="filters" extends="forum_view::filters" arg-suggestionTabs="!">
	<xf:extension id="prefix_id">
		<xf:extensionparent />

		<xf:if is="
			$filters.suggestion_state
			AND ($filters.suggestion_state != 'implemented' OR !$suggestionTabs.implemented.selected)
		">
			<li><a href="{{ link('forums', $forum, $filters|replace('suggestion_state', null)) }}"
				class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
				<span class="filterBar-filterToggle-label">{{ phrase('suggestion_status') }}:</span>
				<xf:if is="$filters.suggestion_state == 'open'">{{ phrase('open') }}
				<xf:elseif is="$filters.suggestion_state == 'closed'" />{{ phrase('closed') }}
				<xf:elseif is="$filters.suggestion_state == 'implemented'" />{{ phrase('implemented') }}</xf:if></a></li>
		</xf:if>
	</xf:extension>

	<xf:extension id="order">
		<xf:if is="
			$suggestionTabs.latest.selected
			OR $suggestionTabs.popular.selected
			OR $suggestionTabs.newest.selected
		"><xf:else />
			<xf:extensionparent />
		</xf:if>
	</xf:extension>
</xf:macro>]]></template>
  <template type="public" title="forum_watch" version_id="2000036" version_string="2.0.0 Beta 6"><![CDATA[<xf:if is="$isWatched">
	<xf:title>{{ phrase('unwatch_forum') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('watch_forum') }}</xf:title>
</xf:if>

<xf:breadcrumb source="{$forum.getBreadcrumbs()}" />

<xf:form action="{{ link('forums/watch', $forum) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$isWatched">
				<xf:inforow rowtype="confirm">
					{{ phrase('you_sure_you_want_to_unwatch_this_forum') }}
				</xf:inforow>
				<xf:hiddenval name="stop">1</xf:hiddenval>
			<xf:else />
				<xf:if is="$forum.allowed_watch_notifications != 'none'">
					<xf:radiorow name="notify" value="thread"
						label="{{ phrase('send_notifications_for') }}">

						<xf:option value="thread">{{ phrase('new_threads') }}</xf:option>
						<xf:if is="$forum.allowed_watch_notifications == 'all'">
							<xf:option value="message">{{ phrase('new_messages') }}</xf:option>
						</xf:if>
						<xf:option value="" hint="{{ phrase('no_notifications_forum_watch_description') }}">{{ phrase('dont_send_notifications') }}</xf:option>
					</xf:radiorow>

					<xf:checkboxrow label="{{ phrase('send_notifications_via') }}">
						<xf:option name="send_alert" value="1" selected="true">{{ phrase('alerts') }}</xf:option>
						<xf:option name="send_email" value="1">{{ phrase('emails') }}</xf:option>
					</xf:checkboxrow>
				</xf:if>
			</xf:if>
		</div>
		<xf:if is="$isWatched">
			<xf:submitrow submit="{{ phrase('unwatch') }}" rowtype="simple" icon="notificationsOff" />
		<xf:else />
			<xf:submitrow submit="{{ phrase('watch') }}" icon="notificationsOn" />
		</xf:if>
	</div>
</xf:form>]]></template>
  <template type="public" title="google_analytics" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$xf.cookieConsent.isThirdPartyConsented('google_analytics') && $xf.options.googleAnalyticsWebPropertyId">
	<script async src="https://www.googletagmanager.com/gtag/js?id={$xf.options.googleAnalyticsWebPropertyId}"></script>
	<script>
		window.dataLayer = window.dataLayer || [];
		function gtag(){dataLayer.push(arguments);}
		gtag('js', new Date());
		gtag('config', '{$xf.options.googleAnalyticsWebPropertyId|escape("js")}', {
			// <!--[XF:ga:config_start]-->
			<xf:if is="$xf.cookie.domain">
				'cookie_domain': '{$xf.cookie.domain}',
			</xf:if>
			<xf:if is="$xf.options.googleAnalyticsAnonymize">
				'anonymize_ip': true,
			</xf:if>
		});
	</script>
</xf:if>]]></template>
  <template type="public" title="help_bb_codes.less" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[.bbCodeDemoBlock
{
	.m-clearFix();
	padding: .25em 0;
}

.bbCodeDemoBlock-item
{
	width: 50%;
	margin: 0;
	padding: 0;
	padding-left: 8px;
	float: left;

	&:first-child
	{
		padding-left: 0;
	}

	> dt
	{
		font-size: @xf-fontSizeSmall;
		color: @xf-textColorMuted;
	}

	> dd
	{
		margin: 0;
		.xf-minorBlockContent();
		padding: @xf-paddingMedium;
		zoom: 1;
	}
}]]></template>
  <template type="public" title="help_bb_codes_example" version_id="2000038" version_string="2.0.0 Beta 8"><![CDATA[<dl class="example">
	<dt>{{ phrase('example:') }}</dt>
	<dd>{{ $bbCodeExampleHtml ? $bbCodeExampleHtml|raw|nl2br : $bbCodeEval|nl2br }}</dd>
</dl>
<dl class="output">
	<dt>{{ phrase('output:') }}</dt>
	<dd>{{ bb_code($bbCodeEval, 'help', null) }}</dd>
</dl>]]></template>
  <template type="public" title="help_index" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('help') }}</xf:title>

<xf:macro id="metadata_macros::canonical_url" arg-canonicalUrl="{{ link('canonical:help') }}" />

<xf:wrap template="help_wrapper" />

<xf:if is="$pages is not empty">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:foreach loop="$pages" value="$page">
					<xf:if is="($page.page_id == 'trophies' AND $xf.options.enableTrophies) OR $page.page_id != 'trophies'">
						<div class="block-row block-row--separated">
							<h3 class="block-textHeader">
								<a href="{$page.public_url}">{$page.title}</a>
							</h3>
							{$page.description}
						</div>
					</xf:if>
				</xf:foreach>
			</div>
		</div>
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_items_have_been_created_yet') }}</div>
</xf:if>]]></template>
  <template type="public" title="help_page" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{$page.title}</xf:title>

<xf:macro id="metadata_macros::metadata"
	arg-canonicalUrl="{{ link('canonical:help', $page) }}"
	arg-description="{$page.description}" />

<xf:breadcrumb href="{{ link('help') }}">{{ phrase('help') }}</xf:breadcrumb>

<xf:wrap template="help_wrapper" />

<xf:if is="$page.advanced_mode">
	{$templateHtml|raw}
<xf:else />
	<div class="block">
		<div class="block-container">
			<div class="block-body block-row">
				{$templateHtml|raw}
			</div>
		</div>
	</div>
</xf:if>]]></template>
  <template type="public" title="help_page_smilies.less" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[.smilieText
{
	display: inline-block;
	padding: 2px 3px;
	min-width: 16px;
	text-align: center;
	vertical-align: text-bottom;
	border-radius: @xf-borderRadiusMedium;
	font-size: @xf-fontSizeSmallest;
	.xf-chip();

	&:hover
	{
		.xf-chipHover();
	}
}]]></template>
  <template type="public" title="help_wrapper" version_id="2001070" version_string="2.0.10"><![CDATA[<xf:if is="$pages is not empty">
	<xf:sidenav>
		<div class="block">
			<div class="block-container">
				<h2 class="block-header">{{ phrase('help') }}</h2>
				<div class="block-body">
					<xf:foreach loop="$pages" value="$page">
						<xf:if is="($page.page_id == 'trophies' AND $xf.options.enableTrophies) OR $page.page_id != 'trophies'">
							<a href="{$page.public_url}" class="blockLink {{ $pageSelected == $page.page_name ? 'is-selected' : '' }}">{$page.title}</a>
						</xf:if>
					</xf:foreach>
				</div>
			</div>
		</div>
	</xf:sidenav>
	<xf:page option="sideNavTitle">{{ phrase('help_pages') }}</xf:page>
</xf:if>

<xf:widgetpos id="help_page_sidenav" position="sidenav" />

{$innerContent|raw}]]></template>
  <template type="public" title="helper_account" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="dob_privacy_row" arg-hint="">
	<xf:checkboxrow hint="{{ $hint ? $hint : ''  }}">
		<xf:option value="1" name="option[show_dob_date]" checked="{$xf.visitor.Option.show_dob_date}"
			label="{{ phrase('show_day_and_month_of_birth') }}">

			<xf:checkbox>
				<xf:option value="1" name="option[show_dob_year]" checked="{$xf.visitor.Option.show_dob_year}"
					label="{{ phrase('show_year_of_birth') }}"
					hint="{{ phrase('this_will_allow_people_to_see_your_age') }}" />
			</xf:checkbox>
		</xf:option>
	</xf:checkboxrow>
</xf:macro>

<xf:macro id="activity_privacy_row">
	<xf:checkboxrow label="{{ phrase('privacy_options') }}">
		<xf:option name="user[visible]" checked="{$xf.visitor.visible}"
			label="{{ phrase('show_your_online_status') }}"
			hint="{{ phrase('this_will_allow_other_people_to_see_when_you_online') }}">

			<xf:checkbox>
				<xf:option name="user[activity_visible]" checked="{$xf.visitor.activity_visible}"
					label="{{ phrase('show_your_current_activity') }}"
					hint="{{ phrase('this_will_allow_other_people_to_see_what_page_you_currently_viewing') }}" />
			</xf:checkbox>
		</xf:option>
	</xf:checkboxrow>
</xf:macro>

<xf:macro id="email_options_row" arg-showExplain="{{ false }}" arg-showConversationOption="{{ false }}">
	<xf:checkboxrow label="{{ phrase('email_options') }}">
		<xf:option name="option[receive_admin_email]" selected="$xf.visitor.Option.receive_admin_email"
			label="{{ phrase('receive_site_mailings_option') }}"
			hint="{{ phrase('receive_site_mailings_hint') }}" />

		<xf:if is="$xf.options.activitySummaryEmail.enabled">
			<xf:option name="enable_activity_summary_email"
				selected="$xf.visitor.last_summary_email_date !== null"
				label="{{ phrase('receive_summary_activity_email') }}"
				hint="{{ phrase('we_will_keep_you_updated_new_content_when_not_visited') }}" />
		</xf:if>

		<xf:if is="$showConversationOption">
			<xf:option name="option[email_on_conversation]" selected="$xf.visitor.Option.email_on_conversation"
				label="{{ phrase('receive_email_when_new_direct_message_is_received') }}" />
		</xf:if>

		<xf:explain><xf:if is="$showExplain">{{ phrase('email_options_row_explain', {'preferencesLink': link('account/preferences')}) }}</xf:if></xf:explain>
	</xf:checkboxrow>

	<xf:if is="!$xf.options.activitySummaryEmail.enabled">
		<xf:if is="$xf.visitor.last_summary_email_date !== null">
			<xf:hiddenval name="enable_activity_summary_email">1</xf:hiddenval>
		</xf:if>
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="helper_action" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="edit_type" arg-canEditSilently="{{ false }}" arg-silentName="silent" arg-clearEditName="clear_edit" arg-silentEdit="{{ false }}" arg-clearEdit="{{ false }}">
	<xf:if is="$canEditSilently">
		<xf:checkbox>
			<xf:option name="{$silentName}" checked="{$silentEdit}"
				label="{{ phrase('edit_silently') }}"
				hint="{{ phrase('if_selected_no_last_edited_note_will_be_added_for_this_edit') }}">

				<xf:checkbox>
					<xf:option name="{$clearEditName}" checked="{$clearEdit}"
						label="{{ phrase('clear_last_edit_information') }}"
						hint="{{ phrase('if_selected_any_existing_last_edited_note_will_be_removed') }}" />
				</xf:checkbox>
			</xf:option>
		</xf:checkbox>
	</xf:if>
</xf:macro>

<xf:macro id="delete_type" arg-canHardDelete="{{ false }}" arg-typeName="hard_delete" arg-reasonName="reason">
	<xf:if is="$canHardDelete">
		<xf:radiorow name="{$typeName}" value="0"
			label="{{ phrase('deletion_type') }}">

			<xf:option value="0"
				label="{{ phrase('remove_from_public_view') }}">

				<xf:textbox name="{$reasonName}" placeholder="{{ phrase('reason...') }}"
					maxlength="{{ max_length('XF:DeletionLog', 'delete_reason') }}" />
			</xf:option>

			<xf:option value="1"
				label="{{ phrase('permanently_delete') }}"
				hint="{{ phrase('selecting_this_option_will_permanently_and_irreversibly_delete_item') }}" />
		</xf:radiorow>
	<xf:else />
		<xf:textboxrow name="{$reasonName}" maxlength="{{ max_length('XF:DeletionLog', 'delete_reason') }}"
			label="{{ phrase('reason_for_deletion') }}" />

		<xf:hiddenval name="{$typeName}">0</xf:hiddenval>
	</xf:if>
</xf:macro>

<xf:macro id="author_alert" arg-selected="{{ false }}" arg-alertName="author_alert" arg-reasonName="author_alert_reason" arg-row="{{ true }}">
	<xf:set var="$checkbox">
		<xf:checkbox>
			<xf:option name="{$alertName}" selected="{$selected}"
				label="{{ phrase('notify_author_of_this_action') }} {{ phrase('reason:') }}">

				<xf:textbox name="{$reasonName}" placeholder="{{ phrase('optional') }}" />
				<xf:afterhint>{{ phrase('note_that_author_will_see_alert_even_no_longer_view_content') }}</xf:afterhint>
			</xf:option>
		</xf:checkbox>
	</xf:set>
	<xf:if is="$row">
		<xf:formrow>
			{$checkbox|raw}
		</xf:formrow>
	<xf:else />
		{$checkbox|raw}
	</xf:if>
</xf:macro>

<xf:macro id="thread_alert" arg-selected="{{ false }}" arg-alertName="starter_alert" arg-reasonName="starter_alert_reason">
	<xf:checkboxrow>
		<xf:option name="{$alertName}" selected="{$selected}"
			label="{{ phrase('notify_thread_starter_of_this_action') }} {{ phrase('reason:') }}">

			<xf:textbox name="{$reasonName}" placeholder="{{ phrase('optional') }}" />
			<xf:afterhint>{{ phrase('note_thread_starter_see_alert_even_no_longer_view_thread') }}</xf:afterhint>
		</xf:option>
	</xf:checkboxrow>
</xf:macro>

<xf:macro id="thread_redirect" arg-label="!">
	<xf:radiorow name="redirect_type" value="none"
		label="{{ phrase('redirection_notice') }}">

		<xf:option value="none">{{ phrase('do_not_leave_redirect') }}</xf:option>
		<xf:option value="permanent">{{ phrase('leave_permanent_redirect') }}</xf:option>
		<xf:option value="temporary" label="{{ phrase('leave_redirect_that_expires_after:') }}">
			<xf:dependent>
				<div class="inputGroup">
					<xf:numberbox name="redirect_length[amount]" value="1" min="0" />
					<span class="inputGroup-splitter"></span>
					<xf:select name="redirect_length[unit]" value="days" class="input--inline">
						<xf:option value="hours">{{ phrase('hours') }}</xf:option>
						<xf:option value="days">{{ phrase('days') }}</xf:option>
						<xf:option value="weeks">{{ phrase('weeks') }}</xf:option>
						<xf:option value="months">{{ phrase('months') }}</xf:option>
					</xf:select>
				</div>
			</xf:dependent>
		</xf:option>
	</xf:radiorow>
</xf:macro>]]></template>
  <template type="public" title="helper_attach_upload" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:macro id="upload_link"
	arg-type="!"
	arg-hash="!"
	arg-context="!"
	arg-constraints="!"
	arg-hiddenName="attachment_hash">

	<xf:js prod="xf/attachment_manager-compiled.js" dev="vendor/flow.js/flow.min.js, vendor/exif-reader/exif-reader.js, xf/attachment_manager.js" />

	<xf:button href="{{ link('attachments/upload', null, {'type': $type, 'context': $context, 'hash': $hash}) }}"
		target="_blank" class="button--link js-attachmentUpload" icon="attach"
		data-accept=".{$constraints.extensions|join(',.')}"
		data-video-size="{$constraints.video_size}" />
	<xf:hiddenval name="{$hiddenName}">{$hash}</xf:hiddenval>
	<xf:hiddenval name="{$hiddenName}_combined">{{ {'type': $type, 'context': $context, 'hash': $hash}|json }}</xf:hiddenval>
</xf:macro>

<xf:macro id="upload_link_from_data" arg-attachmentData="!" arg-forceHash="" arg-hiddenName="attachment_hash">
	<xf:macro id="upload_link"
		arg-type="{$attachmentData.type}"
		arg-hash="{{ $forceHash ? $forceHash : $attachmentData.hash }}"
		arg-context="{$attachmentData.context}"
		arg-constraints="{$attachmentData.constraints}"
		arg-hiddenName="{$hiddenName}" />
</xf:macro>



<xf:macro id="uploaded_files_list" arg-attachments="{{ [] }}" arg-class="">
	<xf:css src="attachments.less" />
	<div class="attachmentUploads js-attachmentUploads {$class} {{ $attachments is not empty ? 'is-active' : '' }}">
		<div class="hScroller" data-xf-init="h-scroller">
			<div class="hScroller-scroll">
				<ul class="attachUploadList js-attachmentFiles">
				<xf:foreach loop="$attachments" value="$attachment">
					<xf:macro id="uploaded_file" arg-attachment="{$attachment}" />
				</xf:foreach>
				</ul>
			</div>
		</div>

		<div class="attachmentUploads-banner js-attachmentInsertMultiRow u-hidden">
			<xf:button class="button--link js-attachmentSelect" data-toggle="{{ phrase('button.cancel') }}">
				{{ phrase('insert_multiple...') }}
			</xf:button>
			<ul class="attachmentUploads-selectActions js-attachmentSelectActions">
				<li>
					<span class="button button--link selectAll">
						<span class="button-text">
							<xf:checkbox standalone="true">
								<xf:option check-all="< .attachmentUploads" label="{{ phrase('select_all') }}" />
							</xf:checkbox>
						</span>
					</span>
				</li>
				<li class="js-attachmentSelectInsertActions">
					<span class="insert-label">{{ phrase('insert:') }}</span>
					<span class="buttonGroup">
						<xf:button class="button--link js-attachmentSelectAction" data-action="thumbnail">
							{{ phrase('thumbnail') }}
						</xf:button>
						<xf:button class="button--link js-attachmentSelectAction" data-action="full">
							{{ phrase('full_image') }}
						</xf:button>
					</span>
				</li>
				<li>
					<xf:button class="button--link button--iconOnly js-attachmentSelectAction" fa="fa-trash-alt" data-action="delete">
						<span class="u-srOnly">{{ phrase('button.delete') }}</span>
					</xf:button>
				</li>
			</ul>
		</div>

	</div>
	<xf:macro id="uploaded_file_template" />
</xf:macro>



<xf:macro id="uploaded_file" arg-attachment="!" arg-noJsFallback="{{ false }}">
	<li class="js-attachmentFile file" data-attachment-id="{$attachment.attachment_id}">
		<xf:if is="$attachment.has_thumbnail">
			<a class="file-preview js-attachmentView" href="{$attachment.direct_url}" target="_blank">
				<img src="{{ base_url($attachment.thumbnail_url) }}" class="js-attachmentThumb" alt="{$attachment.filename}"
					width="{$attachment.thumbnail_width}" height="{$attachment.thumbnail_height}" loading="lazy" />
			</a>
		<xf:elseif is="$attachment.is_video" />
			<a class="file-preview js-attachmentView" href="{$attachment.direct_url}" target="_blank">
				<video title="{$attachment.filename}" data-xf-init="video-init">
					<source src="{$attachment.direct_url}" />
				</video>
			</a>
		<xf:else />
			<a class="file-preview js-attachmentView" href="{$attachment.direct_url}" target="_blank">
				<span class="file-typeIcon">
					<xf:fa icon="{$attachment.icon}" title="{$attachment.filename}" />
				</span>
			</a>
		</xf:if>

		<div class="file-content">

			<xf:if is="!$noJsFallback">
				<xf:if is="$attachment.has_thumbnail">
					<div class="file-insert js-attachmentInsert">
						<a class="file-insertLink"
							data-xf-click="toggle"
							data-target="< .js-attachmentInsert"
							role="button"
							tabindex="0">
							{{ phrase('insert...') }}
						</a>
						<div class="file-menuOptions">
							<a class="js-attachmentAction" data-action="thumbnail" role="button" tabindex="0"
								data-xf-click="toggle" data-target="< .js-attachmentInsert">{{ phrase('thumbnail') }}</a>
							<a class="js-attachmentAction" data-action="full" role="button" tabindex="0"
								data-xf-click="toggle" data-target="< .js-attachmentInsert">{{ phrase('full_image') }}</a>
						</div>
					</div>
				<xf:elseif is="$attachment.is_video" />
					<div class="file-insert js-attachmentInsert">
						<a class="file-insertLink js-attachmentAction" data-action="full" data-type="video" role="button" tabindex="0">
							{{ phrase('insert') }}
						</a>
					</div>
				<xf:elseif is="$attachment.is_audio" />
					<div class="file-insert js-attachmentInsert">
						<a class="file-insertLink js-attachmentAction" data-action="full" data-type="audio" role="button" tabindex="0">
							{{ phrase('insert') }}
						</a>
					</div>
				</xf:if>

				<div class="file-checkbox">
					<xf:checkbox standalone="true">
						<xf:option value="" />
					</xf:checkbox>
				</div>
			</xf:if>

			<span class="file-delete">
				<xf:if is="$noJsFallback">
					<xf:button type="submit" class="button--small button--link" name="delete" value="{$attachment.attachment_id}">
						<xf:fa icon="fa-trash-alt" />
						<span class="u-srOnly">{{ phrase('button.delete') }}</span>
					</xf:button>
				<xf:else />
					<a class="file-deleteLink js-attachmentAction"
						data-action="delete"
						data-type="{$attachment.type_grouping}"
						role="button"
						tabindex="0">
						<xf:fa icon="fa-trash-alt" />
						<span class="u-srOnly">{{ phrase('button.delete') }}</span>
					</a>
				</xf:if>
			</span>

			<a class="file-info"
				href="{$attachment.direct_url}"
				target="_blank">

				<span class="file-name">{$attachment.filename}</span>

				<div class="file-meta">
					<xf:if is="$attachment.Data.width">{$attachment.Data.width} x {$attachment.Data.height} &middot; </xf:if>
					{$attachment.file_size|file_size}
				</div>
			</a>
		</div>
	</li>
</xf:macro>



<xf:macro id="uploaded_file_template">
	<script type="text/template" class="js-attachmentUploadTemplate">
		<li class="file js-attachmentFile" {{ mustache('#attachment_id', 'data-attachment-id="{{attachment_id}}"') }}>
			<xf:mustache name="#uploading">
				<div class="file-preview">
					<div class="file-progress js-attachmentProgress"></div>
					<span class="file-error js-attachmentError"></span>
				</div>
			</xf:mustache>
			<xf:mustache name="^uploading">
				<xf:mustache name="#thumbnail_url">
					<a class="file-preview js-attachmentView" href="{{ mustache('link') }}" target="_blank">
						<img src="{{ mustache('thumbnail_url') }}" class="js-attachmentThumb" alt="{{ mustache('filename') }}" />
					</a>
				</xf:mustache>
				<xf:mustache name="^thumbnail_url">
					<xf:mustache name="#is_video">
						<a class="file-preview js-attachmentView" href="{{ mustache('link') }}" target="_blank">
							<video data-xf-init="video-init">
								<source src="{{ mustache('link') }}" />
							</video>
						</a>
					</xf:mustache>
					<xf:mustache name="^is_video">
						<a class="file-preview js-attachmentView" href="{{ mustache('link') }}" target="_blank">
							<span class="file-typeIcon">
								<i class="fa--xf fa{{ fa_weight() }} {{ mustache('icon') }}">
									<svg xmlns="http://www.w3.org/2000/svg" role="img">
										<title>{{ mustache('filename') }}</title>
										<use href="{{ icon_url(null, mustache('icon_name')) }}"></use>
									</svg>
								</i>
							</span>
						</a>
					</xf:mustache>
				</xf:mustache>
			</xf:mustache>

			<div class="file-content">

				<xf:mustache name="#thumbnail_url">
					<div class="file-insert js-attachmentInsert">
						<a class="file-insertLink"
							data-xf-click="toggle"
							data-target="< .js-attachmentInsert"
							role="button"
							tabindex="0">
							{{ phrase('insert...') }}
						</a>
						<div class="file-menuOptions">
							<a class="js-attachmentAction" data-action="thumbnail" role="button" tabindex="0"
								data-xf-click="toggle" data-target="< .js-attachmentInsert">{{ phrase('thumbnail') }}</a>
							<a class="js-attachmentAction" data-action="full" role="button" tabindex="0"
								data-xf-click="toggle" data-target="< .js-attachmentInsert">{{ phrase('full_image') }}</a>
						</div>
					</div>
				</xf:mustache>
				<xf:mustache name="^thumbnail_url">
					<xf:mustache name="#is_video">
						<div class="file-insert js-attachmentInsert">
							<a class="file-insertLink js-attachmentAction" data-action="full" data-type="video" role="button" tabindex="0">
								{{ phrase('insert') }}
							</a>
						</div>
					</xf:mustache>
					<xf:mustache name="#is_audio">
						<div class="file-insert js-attachmentInsert">
							<a class="file-insertLink js-attachmentAction" data-action="full" data-type="audio" role="button" tabindex="0">
								{{ phrase('insert') }}
							</a>
						</div>
					</xf:mustache>
				</xf:mustache>

				<div class="file-checkbox">
					<xf:checkbox standalone="true">
						<xf:option value="" />
					</xf:checkbox>
				</div>

				<span class="file-delete">
					<xf:mustache name="#uploading">
						<a class="file-deleteLink js-attachmentAction"
							data-action="cancel"
							role="button"
							tabindex="0">
							<xf:fa icon="fa-trash-alt" />
							<span class="u-srOnly">{{ phrase('button.cancel') }}</span>
						</a>
					</xf:mustache>
					<xf:mustache name="^uploading">
						<a class="file-deleteLink js-attachmentAction"
							data-action="delete"
							data-type="{{ mustache('type_grouping') }}"
							role="button"
							tabindex="0">
							<xf:fa icon="fa-trash-alt" />
							<span class="u-srOnly">{{ phrase('button.delete') }}</span>
						</a>
					</xf:mustache>
				</span>

				<a class="file-info" href="{{ mustache('link') }}" target="_blank">
					<span class="file-name">{{ mustache('filename') }}</span>

					<div class="file-meta">
						<xf:mustache name="#thumbnail_url">{{ mustache('width') }} x {{ mustache('height') }} &middot; </xf:mustache>
						{{ mustache('file_size_printable') }}
					</div>
				</a>

			</div>
		</li>
	</script>
</xf:macro>




<xf:macro id="upload_block" arg-attachmentData="!" arg-forceHash="" arg-hiddenName="attachment_hash">
	<xf:macro id="uploaded_files_list" arg-attachments="{$attachmentData.attachments}" />

	<xf:macro id="upload_link_from_data"
		arg-attachmentData="{$attachmentData}"
		arg-forceHash="{$forceHash}"
		arg-hiddenName="{$hiddenName}" />
</xf:macro>]]></template>
  <template type="public" title="helper_ip" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="ip_block" arg-ip="!" arg-user="{{ null }}" arg-heading="">
<div class="block">
	<div class="block-container">
		<xf:if is="$heading is not empty">
			<div class="block-header">
				{$heading}
			</div>
		</xf:if>
		<div class="block-body">
			<xf:formrow label="{{ phrase('content_ip') }}">
				<strong><a class="ip" href="{{ link('misc/ip-info', null, {'ip': $ip|ip}) }}" target="_blank">{$ip|ip}</a></strong> {$ip|host|parens}
			</xf:formrow>

			<xf:if is="$user">
				<xf:set var="$registerIp" value="{$user.getIp('register')}" />
				<xf:if is="$registerIp">
					<xf:formrow label="{{ phrase('user_registration_ip') }}">
						<strong><a class="ip" href="{{ link('misc/ip-info', null, {'ip': $registerIp|ip}) }}" target="_blank">{$registerIp|ip}</a></strong> {$registerIp|host|parens}
					</xf:formrow>
				</xf:if>
			</xf:if>
		</div>
	</div>
</div>
</xf:macro>]]></template>
  <template type="public" title="helper_js_global" version_id="2030170" version_string="2.3.1"><![CDATA[<xf:macro id="head" arg-app="!">
	<xf:set var="$cssUrls" value="{{ ['public:normalize.css', 'public:fa.css'] }}" />
	<xf:if is="$xf.style.isVariationsEnabled()">
		<xf:set var="$cssUrls" value="{{ array_merge($cssUrls, ['public:variations.less']) }}" />
	</xf:if>
	<xf:set var="$cssUrls" value="{{ array_merge($cssUrls, ['public:core.less', $app . ':app.less']) }}" />

	<link rel="stylesheet" href="{{ css_url($cssUrls) }}" />

	<!--XF:CSS-->

	<xf:if is="$xf.fullJs">
		<script{{ $xf.request.isRocketLoaderDisabled() ? ' data-cfasync="false"' : ''}} src="{{ js_url('xf/preamble.js') }}"></script>
	<xf:else />
		<script{{ $xf.request.isRocketLoaderDisabled() ? ' data-cfasync="false"' : ''}} src="{{ js_url('xf/preamble.min.js') }}"></script>
	</xf:if>

	<xf:corejs />

	<script{{ $xf.request.isRocketLoaderDisabled() ? ' data-cfasync="false"' : ''}}>
		window.addEventListener('DOMContentLoaded', function() {
			XF.extendObject(true, XF.config, {
				// <!--[XF:js_global:xf_extend_start]-->
				userId: {$xf.visitor.user_id},
				enablePush: {{ $xf.options.enablePush ? 'true' : 'false' }},
				pushAppServerKey: '{$xf.options.pushKeysVAPID.publicKey}',
				url: {
					fullBase: '{{ base_url(null, true)|escape("js") }}',
					basePath: '{{ base_url(null, false)|escape("js") }}',
					css: '{{ css_url(["__SENTINEL__"], false)|escape("js") }}',
					js: '{{ js_url("__SENTINEL__")|escape("js") }}',
					icon: '{{ icon_url("__VARIANT__", "__NAME__")|escape("js") }}',
					iconInline: '{{ icon_url("__VARIANT__", "__NAME__", true)|escape("js") }}',
					keepAlive: '{{ link_type($app, "login/keep-alive")|escape("js") }}'
				},
				cookie: {
					path: '{{ $xf.cookie.path|escape("js") }}',
					domain: '{{ $xf.cookie.domain|escape("js") }}',
					prefix: '{{ $xf.cookie.prefix|escape("js") }}',
					secure: {{ $xf.cookie.secure ? 'true' : 'false' }},
					consentMode: '{{ $xf.cookieConsent.getMode() }}',
					consented: {{ $xf.cookieConsent.getConsentedGroups()|json|raw }}
				},
				cacheKey: '{{ cache_key()|escape("js") }}',
				csrf: '{{ csrf_token()|escape("js") }}',
				js: {'<!--XF:JS:JSON-->'},
				fullJs: {{ $xf.fullJs ? 'true' : 'false' }},
				css: {'<!--XF:CSS:JSON-->'},
				time: {
					now: {$xf.time},
					today: {$xf.timeDetails.today},
					todayDow: {$xf.timeDetails.todayDow},
					tomorrow: {$xf.timeDetails.tomorrow},
					yesterday: {$xf.timeDetails.yesterday},
					week: {$xf.timeDetails.week},
					month: {$xf.timeDetails.month},
					year: {$xf.timeDetails.year}
				},
				style: {
					light: '{{ $xf.style.isVariationsEnabled() ? $xf.style.getStyleTypeVariation("light")|escape("js") : "" }}',
					dark: '{{ $xf.style.isVariationsEnabled() ? $xf.style.getStyleTypeVariation("dark")|escape("js") : "" }}',
					defaultColorScheme: '{{ property_variation('styleType', 'default')|escape("js") }}'
				},
				borderSizeFeature: '{{ property('borderSizeFeature') }}',
				fontAwesomeWeight: '{{ fa_weight() }}',
				enableRtnProtect: {{ $xf.enableRtnProtect ? 'true' : 'false' }},
				<xf:if is="$xf.serviceWorkerPath !== null">
					serviceWorkerPath: '{{ $xf.serviceWorkerPath|escape("js") }}',
				</xf:if>
				enableFormSubmitSticky: {{ property('formSubmitSticky') ? 'true' : 'false' }},
				imageOptimization: '{$xf.options.imageOptimization}',
				imageOptimizationQuality: {{ $xf.app.config.maxImageResizeQuality / 100 }},
				uploadMaxFilesize: {$xf.uploadMaxFilesize},
				uploadMaxWidth: {{ $xf.options.attachmentMaxDimensions.width ?: 0 }},
				uploadMaxHeight: {{ $xf.options.attachmentMaxDimensions.height ?: 0 }},
				allowedVideoExtensions: {$xf.allowedVideoExtensions|json|raw},
				allowedAudioExtensions: {$xf.allowedAudioExtensions|json|raw},
				shortcodeToEmoji: {{ $xf.options.shortcodeToEmoji ? 'true' : 'false' }},
				visitorCounts: {
					conversations_unread: '{$xf.visitor.conversations_unread|number}',
					alerts_unviewed: '{$xf.visitor.alerts_unviewed|number}',
					total_unread: '{{ ($xf.visitor.conversations_unread + $xf.visitor.alerts_unviewed)|number }}',
					title_count: {{ in_array($xf.options.displayVisitorCount, ['title_count', 'title_and_icon']) ? 'true' : 'false' }},
					icon_indicator: {{ in_array($xf.options.displayVisitorCount, ['icon_indicator', 'title_and_icon']) ? 'true' : 'false' }}
				},
				jsMt: {{ js_mt()|json|raw }},
				jsState: {{ $jsState ? $jsState|json|raw : '{}' }},
				publicMetadataLogoUrl: '{{ property('publicMetadataLogoUrl') ? base_url(property('publicMetadataLogoUrl'), true) : '' }}',
				publicPushBadgeUrl: '{{ property('publicPushBadgeUrl') ? base_url(property('publicPushBadgeUrl'), true) : '' }}'
			});

			XF.extendObject(XF.phrases, {
				// <!--[XF:js_global:xf_phrase_start]-->
				date_x_at_time_y:     "{{ phrase('date_x_at_time_y')|escape('js') }}",
				day_x_at_time_y:      "{{ phrase('day_x_at_time_y')|escape('js') }}",
				yesterday_at_x:       "{{ phrase('yesterday_at_x')|escape('js') }}",
				x_minutes_ago:        "{{ phrase('x_minutes_ago')|escape('js') }}",
				one_minute_ago:       "{{ phrase('one_minute_ago')|escape('js') }}",
				a_moment_ago:         "{{ phrase('a_moment_ago')|escape('js') }}",
				today_at_x:           "{{ phrase('today_at_x')|escape('js') }}",
				in_a_moment:          "{{ phrase('in_a_moment')|escape('js') }}",
				in_a_minute:          "{{ phrase('in_a_minute')|escape('js') }}",
				in_x_minutes:         "{{ phrase('in_x_minutes')|escape('js') }}",
				later_today_at_x:     "{{ phrase('later_today_at_x')|escape('js') }}",
				tomorrow_at_x:        "{{ phrase('tomorrow_at_x')|escape('js') }}",
				short_date_x_minutes: "{{ phrase('short_date_x_minutes')|escape('js') }}",
				short_date_x_hours:   "{{ phrase('short_date_x_hours')|escape('js') }}",
				short_date_x_days:    "{{ phrase('short_date_x_days')|escape('js') }}",

				day0: "{{ phrase('day_sunday')|escape('js') }}",
				day1: "{{ phrase('day_monday')|escape('js') }}",
				day2: "{{ phrase('day_tuesday')|escape('js') }}",
				day3: "{{ phrase('day_wednesday')|escape('js') }}",
				day4: "{{ phrase('day_thursday')|escape('js') }}",
				day5: "{{ phrase('day_friday')|escape('js') }}",
				day6: "{{ phrase('day_saturday')|escape('js') }}",

				dayShort0: "{{ phrase('day_sunday_short')|escape('js') }}",
				dayShort1: "{{ phrase('day_monday_short')|escape('js') }}",
				dayShort2: "{{ phrase('day_tuesday_short')|escape('js') }}",
				dayShort3: "{{ phrase('day_wednesday_short')|escape('js') }}",
				dayShort4: "{{ phrase('day_thursday_short')|escape('js') }}",
				dayShort5: "{{ phrase('day_friday_short')|escape('js') }}",
				dayShort6: "{{ phrase('day_saturday_short')|escape('js') }}",

				month0: "{{ phrase('month_1')|escape('js') }}",
				month1: "{{ phrase('month_2')|escape('js') }}",
				month2: "{{ phrase('month_3')|escape('js') }}",
				month3: "{{ phrase('month_4')|escape('js') }}",
				month4: "{{ phrase('month_5')|escape('js') }}",
				month5: "{{ phrase('month_6')|escape('js') }}",
				month6: "{{ phrase('month_7')|escape('js') }}",
				month7: "{{ phrase('month_8')|escape('js') }}",
				month8: "{{ phrase('month_9')|escape('js') }}",
				month9: "{{ phrase('month_10')|escape('js') }}",
				month10: "{{ phrase('month_11')|escape('js') }}",
				month11: "{{ phrase('month_12')|escape('js') }}",

				active_user_changed_reload_page: "{{ phrase('active_user_changed_reload_page')|escape('js') }}",
				server_did_not_respond_in_time_try_again: "{{ phrase('server_did_not_respond_in_time_try_again')|escape('js') }}",
				oops_we_ran_into_some_problems: "{{ phrase('oops_we_ran_into_some_problems')|escape('js') }}",
				oops_we_ran_into_some_problems_more_details_console: "{{ phrase('oops_we_ran_into_some_problems_more_details_console')|escape('js') }}",
				file_too_large_to_upload: "{{ phrase('file_too_large_to_upload')|escape('js') }}",
				uploaded_file_is_too_large_for_server_to_process: "{{ phrase('uploaded_file_is_too_large_for_server_to_process')|escape('js') }}",
				files_being_uploaded_are_you_sure: "{{ phrase('files_being_uploaded_are_you_sure')|escape('js') }}",
				attach: "{{ phrase('button.attach')|escape('js') }}",
				rich_text_box: "{{ phrase('rich_text_box')|escape('js') }}",
				close: "{{ phrase('close')|escape('js') }}",
				link_copied_to_clipboard: "{{ phrase('link_copied_to_clipboard')|escape('js') }}",
				text_copied_to_clipboard: "{{ phrase('text_copied_to_clipboard')|escape('js') }}",
				loading: "{{ phrase('loading...')|escape('js') }}",
				you_have_exceeded_maximum_number_of_selectable_items: "{{ phrase('you_have_exceeded_maximum_number_of_selectable_items')|escape('js') }}",

				processing: "{{ phrase('processing')|escape('js') }}",
				'processing...': "{{ phrase('processing...')|escape('js') }}",

				showing_x_of_y_items: "{{ phrase('showing_x_of_y_items')|escape('js') }}",
				showing_all_items: "{{ phrase('showing_all_items')|escape('js') }}",
				no_items_to_display: "{{ phrase('no_items_to_display')|escape('js') }}",

				number_button_up: "{{ phrase('number_button_up')|escape('js') }}",
				number_button_down: "{{ phrase('number_button_down')|escape('js') }}",

				push_enable_notification_title: "{{ phrase('push_enable_notification_title', {'boardTitle': $xf.options.boardTitle})|escape('js') }}",
				push_enable_notification_body: "{{ phrase('push_enable_notification_body')|escape('js') }}",

				pull_down_to_refresh: "{{ phrase('pull_down_to_refresh')|escape('js') }}",
				release_to_refresh: "{{ phrase('release_to_refresh')|escape('js') }}",
				refreshing: "{{ phrase('refreshing...')|escape('js') }}"
			});
		});
	</script>

	<!--XF:JS-->
</xf:macro>

<xf:macro id="body" arg-app="!" arg-jsState="{{ null }}">
	<form style="display:none" hidden="hidden">
		<input type="text" name="_xfClientLoadTime" value="" id="_xfClientLoadTime" title="_xfClientLoadTime" tabindex="-1" />
	</form>

	<xf:if is="$xf.visitor.canSearch() && $xf.request.getFullRequestUri() === link('full:index')">
		<script type="application/ld+json">
		{
			"@context": "https://schema.org",
			"@type": "WebSite",
			"url": "{{ link('canonical:index')|escape('js') }}",
			"potentialAction": {
				"@type": "SearchAction",
				"target": {
					"@type": "EntryPoint",
					"urlTemplate": "{{ link('canonical:search/search')|escape('js') . ($xf.options.useFriendlyUrls ? '?' : '&') . 'keywords={search_keywords}' }}"
				},
				"query-input": "required name=search_keywords"
			}
		}
		</script>
	</xf:if>
</xf:macro>
]]></template>
  <template type="public" title="helper_thread_options" version_id="2030170" version_string="2.3.1"><![CDATA[<xf:macro id="watch_input"
	arg-thread="!"
	arg-rowType=""
	arg-label="{{ phrase('options') }}"
	arg-explain=""
	arg-forceWatchChecked="{{ null }}"
	arg-forceWatchEmailChecked="{{ null }}"
	arg-visible="{{ true }}">

	<xf:set var="$threadWatch" value="{$thread.Watch.{$xf.visitor.user_id}}" />
	<xf:set var="$defaultThreadWatch" value="{{
		$thread.isInsert() ? $xf.visitor.Option.creation_watch_state : $xf.visitor.Option.interaction_watch_state
	}}" />

	<xf:if is="$forceWatchChecked !== null">
		<xf:set var="$watchChecked" value="{$forceWatchChecked}" />
	<xf:else />
		<xf:set var="$watchChecked" value="{{ ($thread.thread_id AND $threadWatch is not empty) ?: ($defaultThreadWatch != '') }}" />
	</xf:if>

	<xf:if is="$forceWatchEmailChecked !== null">
		<xf:set var="$watchEmailChecked" value="{$forceWatchEmailChecked}" />
	<xf:else />
		<xf:set var="$watchEmailChecked" value="{{ ($thread.thread_id AND $threadWatch.email_subscribe) ?: ($defaultThreadWatch == 'watch_email') }}" />
	</xf:if>

	<xf:if is="$visible">
		<xf:checkboxrow label="{$label}" rowtype="{$rowType}">
			<xf:option name="watch_thread" value="1" selected="$watchChecked"
				label="{{ phrase('watch_this_thread...') }}">

				<xf:checkbox>
					<xf:option name="watch_thread_email" value="1" selected="$watchEmailChecked"
						label="{{ phrase('and_receive_email_notifications') }}"/>

				</xf:checkbox>
			</xf:option>
			<xf:explain>{$explain}</xf:explain>
		</xf:checkboxrow>
	<xf:else />
		<xf:hiddenval name="watch_thread" value="{$watchChecked}" />
		<xf:hiddenval name="watch_thread_email" value="{$watchEmailChecked}" />
	</xf:if>
	<xf:hiddenval name="_xfSet[watch_thread]" value="1" />
</xf:macro>

<xf:macro id="thread_status"
	arg-thread="!"
	arg-rowType="">

	<xf:checkboxrow hideempty="true" rowtype="{$rowType}"
		label="{{ phrase('set_thread_status') }}">

		<xf:if is="$thread.canLockUnlock()">
			<xf:option name="discussion_open" value="1" selected="{$thread.discussion_open}"
				label="{{ phrase('unlocked') }}"
				hint="{{ phrase('people_may_reply_to_this_thread') }}">

				<xf:afterhtml>
					<xf:hiddenval name="_xfSet[discussion_open]" value="1" />
				</xf:afterhtml>
			</xf:option>
		</xf:if>
		<xf:if is="$thread.canStickUnstick()">
			<xf:option name="sticky" value="1" selected="{$thread.sticky}"
				label="{{ phrase('sticky') }}"
				hint="{{ phrase('sticky_threads_appear_at_top_of_first_page_of_list_of_threads') }}">

				<xf:afterhtml>
					<xf:hiddenval name="_xfSet[sticky]" value="1" />
				</xf:afterhtml>
			</xf:option>
		</xf:if>
	</xf:checkboxrow>

	<xf:if is="$thread.canManageSearchEngineIndexing()">
		<xf:if is="$thread.exists()">
			<xf:set var="$defaultIsIndexed" value="{{ $thread.Forum.doesThreadMeetSearchEngineIndexCriteria($thread) }}" />
			<xf:set var="$defaultThreadIndexStatus">{{ parens($defaultIsIndexed ? phrase('yes') : phrase('no')) }}</xf:set>
		<xf:else />
			<xf:set var="$defaultThreadIndexStatus" value="" />
		</xf:if>

		<xf:radiorow name="index_state" value="{$thread}"
			label="{{ phrase('allow_search_engine_indexing') }}">

			<xf:option value="default"
				label="{{ phrase('default') }} {$defaultThreadIndexStatus}"
				hint="{{ phrase('allows_search_engines_to_index_this_thread_based_on_settings_of') }}" />
			<xf:option value="indexed"
				label="{{ phrase('yes') }}"
				hint="{{ phrase('always_allow_search_engines_to_index_this_thread') }}" />
			<xf:option value="not_indexed"
				label="{{ phrase('no') }}"
				hint="{{ phrase('never_allow_search_engines_to_index_this_thread') }}" />
		</xf:radiorow>

		<xf:hiddenval name="_xfSet[index_state]" value="1" />
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="helper_user_dob_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="dob_edit" arg-dobData="{{ [] }}" arg-row="{{ true }}" arg-labelId="{{ null }}" arg-required="{{ false }}">
	<xf:if is="$row AND !$labelId">
		<xf:set var="$labelId" value="{{ unique_id() }}" />
	</xf:if>
	<xf:set var="$labelAttr"><xf:if is="$labelId"> aria-labelledby="{$labelId}"</xf:if></xf:set>
	<xf:set var="$inputGroup">
		<div class="inputGroup inputGroup--auto" role="group"{$labelAttr}>
			<xf:select name="dob_month" value="{{ $dobData.dob_month ?: 0 }}" aria-label="{{ phrase('month')|for_attr }}">
				<xf:option value="0"></xf:option>
				<xf:option value="1">{{ phrase('month_1') }}</xf:option>
				<xf:option value="2">{{ phrase('month_2') }}</xf:option>
				<xf:option value="3">{{ phrase('month_3') }}</xf:option>
				<xf:option value="4">{{ phrase('month_4') }}</xf:option>
				<xf:option value="5">{{ phrase('month_5') }}</xf:option>
				<xf:option value="6">{{ phrase('month_6') }}</xf:option>
				<xf:option value="7">{{ phrase('month_7') }}</xf:option>
				<xf:option value="8">{{ phrase('month_8') }}</xf:option>
				<xf:option value="9">{{ phrase('month_9') }}</xf:option>
				<xf:option value="10">{{ phrase('month_10') }}</xf:option>
				<xf:option value="11">{{ phrase('month_11') }}</xf:option>
				<xf:option value="12">{{ phrase('month_12') }}</xf:option>
			</xf:select>
			<span class="inputGroup-splitter"></span>
			<xf:textbox name="dob_day" value="{{ $dobData.dob_day ?: '' }}" pattern="\d*" size="4" maxlength="2"
				aria-label="{{ phrase('day')|for_attr }}"
				placeholder="{{ phrase('day') }}" />
			<span class="inputGroup-splitter"></span>
			<xf:textbox name="dob_year" value="{{ $dobData.dob_year ?: '' }}" pattern="\d*" size="6" maxlength="4"
				aria-label="{{ phrase('year')|for_attr }}"
				placeholder="{{ phrase('year') }}" />
		</div>
	</xf:set>
	<xf:if is="$row">
		<xf:formrow rowtype="input"
			label="{{ phrase('date_of_birth') }}"
			labelid="{$labelId}"
			hint="{{ $required ? phrase('required') : '' }}">

			{$inputGroup|raw}
		</xf:formrow>
	<xf:else />
		{$inputGroup|raw}
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="inline_mod_actions" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<div class="inlineModBar">
	<div class="inlineModBar-inner">
		<div class="inlineModBar-close">
			<xf:button class="js-inlineModClose" aria-label="{{ phrase('close')|for_attr }}">X</xf:button>
		</div>

		<ul class="inlineModBar-controls">
			<li class="inlineModBar-title">{$title} {$total|number|parens}</li>
			<li><xf:checkbox standalone="true">
				<xf:option labelclass="iconic--inherit-color" class="js-inlineModSelectAll" label="{{ phrase('select_all') }}" />
			</xf:checkbox></li>
			<li>
				<select class="input input--inline js-inlineModAction">
					<optgroup>
						<option value="" hidden="hidden">{{ phrase('choose_action...') }}</option>
						<xf:foreach loop="$actions" key="$id" value="$action">
							<option value="{$id}">{$action}</option>
						</xf:foreach>
					</optgroup>
					<xf:if is="!$actions.deselect">
						<optgroup>
							<option value="deselect">{{ phrase('deselect_all') }}</option>
						</optgroup>
					</xf:if>
				</select>
			</li>
			<li>
				<xf:button type="submit" class="button--primary inlineModBar-goButton">{{ phrase('go') }}</xf:button>
			</li>
		</ul>
	</div>
</div>]]></template>
  <template type="public" title="inline_mod_conversation_leave" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('leave_direct_messages') }}</xf:title>

<xf:form action="{{ link('inline-mod') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow>
				{{ phrase('leaving_direct_message_will_remove_it_from_your_direct_message_list') }}
			</xf:inforow>

			<xf:radiorow name="recipient_state"
				label="{{ phrase('future_message_handling') }}">

				<xf:option value="deleted" checked="checked"
					label="{{ phrase('accept_future_messages') }}"
					hint="{{ phrase('should_direct_message_receive_responses_restored_to_inbox') }}" />

				<xf:option value="deleted_ignored"
					label="{{ phrase('ignore_future_messages') }}"
					hint="{{ phrase('not_notified_of_responses_direct_message_remain_deleted') }}" />
			</xf:radiorow>
		</div>
		<xf:submitrow icon="save" />
	</div>

	<xf:foreach loop="$conversations" value="$conversation">
		<xf:hiddenval name="ids[]">{$conversation.conversation_id}</xf:hiddenval>
	</xf:foreach>

	<xf:hiddenval name="type">conversation</xf:hiddenval>
	<xf:hiddenval name="action">leave</xf:hiddenval>
	<xf:hiddenval name="confirmed">1</xf:hiddenval>

	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="public" title="inline_mod_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="button"
	arg-buttonClass="button--link"
	arg-variant=""
	arg-label="{{ null }}"
	arg-tooltip="{{ null }}">

	<xf:button class="{$buttonClass} js-inlineModTrigger"
		data-xf-init="{{ $tooltip === false ? '' : 'tooltip' }}"
		title="{{ $tooltip === false ? '' : ($tooltip ?: phrase('selected_for_moderation')) }}">

		<span class="inlineModButton {$variant}">
			<i aria-hidden="true"></i>
			<span class="inlineModButton-label">{{ $label ?: phrase('moderation') }}</span>
			<span class="inlineModButton-count js-inlineModCounter">0</span>
		</span>
	</xf:button>
</xf:macro>]]></template>
  <template type="public" title="inline_mod_post_copy" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('inline_moderation_copy_posts') }}</xf:title>

<xf:form action="{{ link('inline-mod') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body js-prefixListenContainer">
			<xf:inforow rowtype="confirm">{{ phrase('you_sure_you_want_to_copy_x_posts_to_new_thread', {'count': $total}) }}</xf:inforow>

			<xf:radiorow name="thread_type" value="{$type}">
				<xf:option value="new" checked="checked" labelclass="u-featuredText">
					<xf:label>{{ phrase('new_thread') }}</xf:label>
					<xf:dependent>
						<label>{{ phrase('destination_forum:') }}</label>
						<xf:select name="node_id" value="{$first.Thread.node_id}" class="js-nodeList">
							<xf:foreach loop="$nodeTree.getFlattened(0)" value="$treeEntry">
								<xf:option value="{$treeEntry.record.node_id}" disabled="{{ $treeEntry.record.node_type_id != 'Forum' ? 'disabled' : '' }}">{{ repeat_raw('&nbsp; ', $treeEntry.depth) }} {$treeEntry.record.title}</xf:option>
							</xf:foreach>
						</xf:select>
					</xf:dependent>

					<xf:dependent>
						<label>{{ phrase('new_thread_title:') }}</label>
						<xf:prefixinput
							prefixes="{$prefixes}"
							type="thread"
							prefix-value="{$first.Thread.prefix_id}"
							textbox-value="{$first.Thread.title}"
							autofocus="autofocus"
							href="{{ link('forums/prefixes') }}"
							listen-to="< .js-prefixListenContainer | .js-nodeList"
							maxlength="{{ max_length($first.Thread, 'title') }}" />
					</xf:dependent>
				</xf:option>

				<xf:option value="existing" labelclass="u-featuredText">
					<xf:label>{{ phrase('existing_thread') }}</xf:label>
					<xf:dependent>
						<label>{{ phrase('thread_url:') }}</label>
						<xf:textbox name="existing_url" type="url" />
					</xf:dependent>
				</xf:option>
			</xf:radiorow>

			<xf:macro id="helper_action::author_alert" arg-selected="{{ $total == 1 }}" />
		</div>
		<xf:submitrow icon="copy" />
	</div>

	<xf:foreach loop="$posts" value="$post">
		<xf:hiddenval name="ids[]">{$post.post_id}</xf:hiddenval>
	</xf:foreach>

	<xf:hiddenval name="type">post</xf:hiddenval>
	<xf:hiddenval name="action">copy</xf:hiddenval>
	<xf:hiddenval name="confirmed">1</xf:hiddenval>

	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="public" title="inline_mod_post_delete" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('inline_moderation_delete_posts') }}</xf:title>

<xf:form action="{{ link('inline-mod') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">{{ phrase('you_sure_you_want_to_delete_x_posts', {'count': $total}) }}</xf:inforow>

			<xf:if is="$firstPostCount">
				<xf:inforow>
					<div class="blockMessage blockMessage--important"><strong>{{ phrase('note:') }}</strong> {{ phrase('x_threads_will_be_deleted_when_these_posts_deleted', {'count': $firstPostCount|number}) }}</div>
				</xf:inforow>
			</xf:if>

			<xf:macro id="helper_action::delete_type" arg-canHardDelete="{$canHardDelete}" />

			<xf:macro id="helper_action::author_alert" />
		</div>
		<xf:submitrow icon="delete" />
	</div>

	<xf:foreach loop="$posts" value="$post">
		<xf:hiddenval name="ids[]">{$post.post_id}</xf:hiddenval>
	</xf:foreach>

	<xf:hiddenval name="type">post</xf:hiddenval>
	<xf:hiddenval name="action">delete</xf:hiddenval>
	<xf:hiddenval name="confirmed">1</xf:hiddenval>

	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="public" title="inline_mod_post_merge" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('inline_moderation_merge_posts') }}</xf:title>

<xf:form action="{{ link('inline-mod') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">{{ phrase('you_sure_you_want_to_merge_x_posts_together', {'count': $total}) }}</xf:inforow>

			<xf:selectrow name="target_post_id" value="{$first.post_id}"
				label="{{ phrase('merge_into_post') }}">

				<xf:foreach loop="$posts" key="$postId" value="$post">
					<xf:option value="{$postId}">{{ $post.User.username ?: $post.username }} &middot; {{ date_time($post.post_date) }}</xf:option>
				</xf:foreach>
			</xf:selectrow>

			<xf:textarearow name="message" value="{$message}" rows="5" autosize="true"
				label="{{ phrase('preview') }}"
				maxlength="{$xf.options.messageMaxLength}" />

			<xf:macro id="helper_action::author_alert" arg-selected="{{ $total == 1 }}" />
		</div>
		<xf:submitrow icon="merge" />
	</div>

	<xf:foreach loop="$posts" value="$post">
		<xf:hiddenval name="ids[]">{$post.post_id}</xf:hiddenval>
	</xf:foreach>

	<xf:hiddenval name="type">post</xf:hiddenval>
	<xf:hiddenval name="action">merge</xf:hiddenval>
	<xf:hiddenval name="confirmed">1</xf:hiddenval>

	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="public" title="inline_mod_post_move" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('inline_moderation_move_posts') }}</xf:title>

<xf:form action="{{ link('inline-mod') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body js-prefixListenContainer">
			<xf:inforow rowtype="confirm">{{ phrase('you_sure_you_want_to_move_x_posts_to_new_thread', {'count': $total}) }}</xf:inforow>

			<xf:radiorow name="thread_type" value="{$type}">
				<xf:option value="new" checked="checked" labelclass="u-featuredText">
					<xf:label>{{ phrase('new_thread') }}</xf:label>
					<xf:dependent>
						<label>{{ phrase('destination_forum:') }}</label>
						<xf:select name="node_id" value="{$first.Thread.node_id}" class="js-nodeList">
							<xf:foreach loop="$nodeTree.getFlattened(0)" value="$treeEntry">
								<xf:option value="{$treeEntry.record.node_id}" disabled="{{ $treeEntry.record.node_type_id != 'Forum' ? 'disabled' : '' }}">{{ repeat_raw('&nbsp; ', $treeEntry.depth) }} {$treeEntry.record.title}</xf:option>
							</xf:foreach>
						</xf:select>
					</xf:dependent>

					<xf:dependent>
						<label>{{ phrase('new_thread_title:') }}</label>
						<xf:prefixinput
							prefixes="{$prefixes}"
							type="thread"
							prefix-value="{$first.Thread.prefix_id}"
							textbox-value="{$first.Thread.title}"
							autofocus="autofocus"
							href="{{ link('forums/prefixes') }}"
							listen-to="< .js-prefixListenContainer | .js-nodeList"
							maxlength="{{ max_length($first.Thread, 'title') }}" />
					</xf:dependent>
				</xf:option>

				<xf:option value="existing" labelclass="u-featuredText">
					<xf:label>{{ phrase('existing_thread') }}</xf:label>
					<xf:dependent>
						<label>{{ phrase('thread_url:') }}</label>
						<xf:textbox name="existing_url" type="url" />
					</xf:dependent>
				</xf:option>
			</xf:radiorow>

			<xf:macro id="helper_action::author_alert" arg-selected="{{ $total == 1 }}" />
		</div>
		<xf:submitrow icon="move" />
	</div>

	<xf:foreach loop="$posts" value="$post">
		<xf:hiddenval name="ids[]">{$post.post_id}</xf:hiddenval>
	</xf:foreach>

	<xf:hiddenval name="type">post</xf:hiddenval>
	<xf:hiddenval name="action">move</xf:hiddenval>
	<xf:hiddenval name="confirmed">1</xf:hiddenval>

	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="public" title="inline_mod_profile_post_delete" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('inline_moderation_delete_profile_posts') }}</xf:title>

<xf:form action="{{ link('inline-mod') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">{{ phrase('you_sure_you_want_to_delete_x_profile_posts', {'count': $total}) }}</xf:inforow>

			<xf:macro id="helper_action::delete_type" arg-canHardDelete="{$canHardDelete}" />

			<xf:macro id="helper_action::author_alert" />
		</div>
		<xf:submitrow icon="delete" />
	</div>

	<xf:foreach loop="$profilePosts" value="$profilePost">
		<xf:hiddenval name="ids[]">{$profilePost.profile_post_id}</xf:hiddenval>
	</xf:foreach>

	<xf:hiddenval name="type">profile_post</xf:hiddenval>
	<xf:hiddenval name="action">delete</xf:hiddenval>
	<xf:hiddenval name="confirmed">1</xf:hiddenval>

	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="public" title="inline_mod_thread_apply_prefix" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('inline_moderation_thread_prefix') }}</xf:title>

<xf:form action="{{ link('inline-mod') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">{{ phrase('you_sure_you_want_to_prefix_x_threads', {'count': $total}) }}</xf:inforow>

			<xf:macro id="prefix_macros::row"
				arg-type="thread"
				arg-prefixes="{$prefixes}"
				arg-selected="{$selectedPrefix}"
				arg-explain="{{ ($forumCount > 1) ? phrase('apply_thread_prefix_to_multiple_forums') : '' }}" />
		</div>
		<xf:submitrow icon="confirm" />
	</div>

	<xf:foreach loop="$threads" value="$thread">
		<xf:hiddenval name="ids[]">{$thread.thread_id}</xf:hiddenval>
	</xf:foreach>

	<xf:hiddenval name="type">thread</xf:hiddenval>
	<xf:hiddenval name="action">apply_prefix</xf:hiddenval>
	<xf:hiddenval name="confirmed">1</xf:hiddenval>

	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="public" title="inline_mod_thread_change_type" version_id="2020032" version_string="2.2.0 Beta 2"><![CDATA[<xf:title>{{ phrase('inline_moderation_thread_type') }}</xf:title>

<xf:form action="{{ link('inline-mod') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<div>{{ phrase('you_sure_you_want_to_change_types_x_threads', {'count': $total}) }}</div>

				<div class="block-rowMessage block-rowMessage--warning">
					{{ phrase('changing_threads_type_warning_desc') }}
				</div>
			</xf:inforow>

			<xf:radiorow name="new_thread_type_id" label="{{ phrase('thread_type_filter') }}">
				<xf:options source="$creatableThreadTypes" />
			</xf:radiorow>
		</div>
		<xf:submitrow icon="confirm" />
	</div>

	<xf:foreach loop="$threads" value="$thread">
		<xf:hiddenval name="ids[]">{$thread.thread_id}</xf:hiddenval>
	</xf:foreach>

	<xf:hiddenval name="type">thread</xf:hiddenval>
	<xf:hiddenval name="action">change_type</xf:hiddenval>
	<xf:hiddenval name="confirmed">1</xf:hiddenval>

	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="public" title="inline_mod_thread_delete" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('inline_moderation_delete_threads') }}</xf:title>

<xf:form action="{{ link('inline-mod') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">{{ phrase('you_sure_you_want_to_delete_x_threads', {'count': $total}) }}</xf:inforow>

			<xf:macro id="helper_action::delete_type" arg-canHardDelete="{$canHardDelete}" />

			<xf:macro id="helper_action::thread_alert" />
		</div>
		<xf:submitrow icon="delete" />
	</div>

	<xf:foreach loop="$threads" value="$thread">
		<xf:hiddenval name="ids[]">{$thread.thread_id}</xf:hiddenval>
	</xf:foreach>

	<xf:hiddenval name="type">thread</xf:hiddenval>
	<xf:hiddenval name="action">delete</xf:hiddenval>
	<xf:hiddenval name="confirmed">1</xf:hiddenval>

	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="public" title="inline_mod_thread_merge" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('inline_moderation_merge_threads') }}</xf:title>

<xf:form action="{{ link('inline-mod') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">{{ phrase('you_sure_you_want_to_merge_x_threads', {'count': $total}) }}</xf:inforow>

			<xf:selectrow name="target_thread_id" value="{$first.thread_id}"
				label="{{ phrase('destination_thread') }}"
				explain="{{ phrase('all_posts_from_other_threads_will_be_merged_into_this_thread') }}">

				<xf:foreach loop="$threads" value="$thread">
					<xf:option value="{$thread.thread_id}">{{ prefix('thread', $thread, 'escaped') }}{$thread.title}</xf:option>
				</xf:foreach>
			</xf:selectrow>

			<xf:macro id="helper_action::thread_redirect" arg-label="{{ phrase('leave_redirect_for_merged_threads') }}" />

			<xf:macro id="helper_action::thread_alert" arg-selected="{{ $total == 1 }}" />
		</div>
		<xf:submitrow icon="merge" />
	</div>

	<xf:foreach loop="$threads" value="$thread">
		<xf:hiddenval name="ids[]">{$thread.thread_id}</xf:hiddenval>
	</xf:foreach>

	<xf:hiddenval name="type">thread</xf:hiddenval>
	<xf:hiddenval name="action">merge</xf:hiddenval>
	<xf:hiddenval name="confirmed">1</xf:hiddenval>

	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="public" title="inline_mod_thread_move" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:js src="xf/prefix_menu.js" min="1" />

<xf:title>{{ phrase('inline_moderation_move_threads') }}</xf:title>

<xf:form action="{{ link('inline-mod') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body js-prefixListenContainer">
			<xf:inforow rowtype="confirm">{{ phrase('you_sure_you_want_to_move_x_threads', {'count': $total}) }}</xf:inforow>
			<xf:selectrow name="target_node_id" value="{$first.node_id}" class="js-nodeList"
				label="{{ phrase('destination_forum') }}">

				<xf:foreach loop="$nodeTree.getFlattened(0)" value="$treeEntry">
					<xf:option value="{$treeEntry.record.node_id}" disabled="{{ $treeEntry.record.node_type_id != 'Forum' ? 'disabled' : '' }}">{{ repeat_raw('&nbsp; ', $treeEntry.depth) }} {$treeEntry.record.title}</xf:option>
				</xf:foreach>
			</xf:selectrow>

			<xf:checkboxrow>
				<xf:option name="apply_thread_prefix"
					label="{{ phrase('apply_prefix_to_selected_threads') }}">

					<xf:dependent>
						<xf:macro id="prefix_macros::select"
							arg-type="thread"
							arg-prefixes="{$prefixes}"
							arg-href="{{ link('forums/prefixes') }}"
							arg-listenTo="< .js-prefixListenContainer | .js-nodeList" />
					</xf:dependent>
				</xf:option>
			</xf:checkboxrow>

			<xf:macro id="helper_action::thread_redirect" arg-label="{{ phrase('redirection_notice') }}" />

			<xf:checkboxrow>
				<xf:option name="notify_watchers" value="1" selected="{{ $total == 1 }}">{{ phrase('notify_members_watching_destination_forum') }}</xf:option>
			</xf:checkboxrow>

			<xf:macro id="helper_action::thread_alert" arg-selected="{{ $total == 1 }}" />
		</div>
		<xf:submitrow icon="move" />
	</div>

	<xf:foreach loop="$threads" value="$thread">
		<xf:hiddenval name="ids[]">{$thread.thread_id}</xf:hiddenval>
	</xf:foreach>

	<xf:hiddenval name="type">thread</xf:hiddenval>
	<xf:hiddenval name="action">move</xf:hiddenval>
	<xf:hiddenval name="confirmed">1</xf:hiddenval>

	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="public" title="input_extended.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[// ################## INPUT TYPES LIST ####################

@__borderRadius: @xf-borderRadiusMedium;
@__borderColor: @xf-borderColorHeavy;
@__textColor: @xf-textColorMuted;
@__tabBackground: @xf-contentBg;

.inputTypes
{
	.m-listPlain();

	display: flex;
	flex-wrap: wrap;
	padding: 0 (@xf-paddingLarge * 2);
	border-bottom: solid 1px @__borderColor;
	color: @__textColor;
	font-size: @xf-fontSizeSmall;
}

.inputTypes-title
{
	font-weight: bold;
}

.inputTypes-type
{
	display: block;
}

.inputTypes-input
{
	.m-visuallyHidden();
}

.inputTypes-display
{
	display: flex;
	justify-content: center;
	padding: @xf-paddingMedium @xf-paddingLarge;
	border-radius: @__borderRadius @__borderRadius 0 0;
	border: solid 1px transparent;
	cursor: pointer;
	min-width: 110px;
	position: relative;
	top: 1px;
	margin-right: -1px;
}

.inputTypes-input:checked + .inputTypes-display,
.inputTypes-display:hover
{
	color: @xf-inputTextColor;
	border-color:  @__borderColor;
	background: linear-gradient(180deg, @xf-inputBgColor, @__tabBackground);
}

.inputTypes-input:checked + .inputTypes-display
{
	border-bottom-color: @xf-contentBg;
}

.inputTypes-icon
{
	margin-right: 6px;
}

.inputTypes-defaultIcon
{
	.m-faBase();
	.m-faBefore(@fa-var-comment-dots);
}

.inputTypes--tall
{
	.inputTypes-display
	{
		flex-direction: column;
		align-items: center;
	}

	.inputTypes-icon
	{
		font-size: 40px;
		line-height: 1;
		margin-right: 0;
		padding-bottom: 3px;
	}
}

.inputTypesScroller
{
	.inputTypes
	{
		display: inline-flex;
		min-width: 100%;
		flex-wrap: nowrap;
	}

	.hScroller-action
	{
		.m-hScrollerActionColorVariation(
			@xf-contentBg,
			@xf-linkColor,
			@xf-linkHoverColor
		);
	}
}

@media (max-width: @xf-responsiveMedium)
{
	.inputTypes
	{
		padding-left: 0;
		padding-right: 0;
	}
}]]></template>
  <template type="public" title="language_chooser" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:title>{{ phrase('language_chooser') }}</xf:title>

<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<ul class="listPlain listColumns">
				<xf:foreach loop="$languages" value="$language">
					<li>
						<a href="{{ link('misc/language', null, {'language_id': $language.language_id, '_xfRedirect': $redirect, 't': csrf_token()}) }}"
							class="menu-linkRow {{ $language.language_id == $xf.visitor.language_id ? 'is-selected' : '' }}"
							dir="auto">

							{$language.title}{{ !$language.user_selectable ? ' *' : '' }}
						</a>
					</li>
				</xf:foreach>
			</ul>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="latest_activity" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('latest_activity') }}</xf:title>

<xf:wrap template="whats_new_wrapper">
	<xf:set var="$pageSelected" value="latest_activity" />
</xf:wrap>

<div class="block">
	<div class="block-container">
		<xf:if is="$newsFeedItems is not empty">
			<ul class="block-body js-newsFeedTarget">
				<xf:foreach loop="$newsFeedItems" value="$item">
					<xf:macro id="news_feed_macros::feed_row" arg-item="{$item}" />
				</xf:foreach>
			</ul>
			<div class="block-footer js-newsFeedLoadMore">
				<span class="block-footer-controls"><xf:button href="{{ link('whats-new/latest-activity', null, {'before_id': $oldestItemId}) }}"
					rel="nofollow"
					data-xf-click="inserter"
					data-append=".js-newsFeedTarget"
					data-replace=".js-newsFeedLoadMore">
					{{ phrase('show_older_items') }}
				</xf:button></span>
			</div>
		<xf:elseif is="$beforeId" />
			<div class="block-body js-newsFeedTarget">
				<div class="block-row block-row--separated">{{ phrase('there_no_more_items_to_show') }}</div>
			</div>
		<xf:else />
			<div class="block-body js-newsFeedTarget">
				<div class="block-row">{{ phrase('news_feed_is_currently_empty') }}</div>
			</div>
		</xf:if>
	</div>
</div>]]></template>
  <template type="public" title="lightbox.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[{{ include('fancybox.less') }}

/** XF fancybox overrides **/

.fancybox__caption
{
	padding-bottom: ~"max(10px, env(safe-area-inset-bottom))";
	text-align: center;

	h4, p
	{
		margin: 0;
	}

	a, a:link, a:visited
	{
		color: #ccc;
		text-decoration: none;

		&:hover
		{
			color: #fff;
			text-decoration: underline;
		}
	}
}

body.compensate-for-scrollbar
{
	margin-right: 0 !important;
	// XF handles this
}

.fancybox-container
{
	z-index: @zIndex-7;
}

.fancybox-slide--image .fancybox-content
{
	-ltr-rtl-left: 0;
}

.fancybox-slide--video .fancybox-content
{
	iframe
	{
		background: transparent;
		border: 0;
		display: block;
		height: 100%;
		margin: 0;
		overflow: hidden;
		padding: 0;
		width: 100%;
	}
}

.fancybox-slide--embed .fancybox-content
{
	box-shadow: none;
	background: transparent;
	padding: 0;

	.bbMediaWrapper, .bbMediaJustifier, .bbOembed
	{
		margin-left: auto;
		margin-right: auto;
	}

	.bbMediaWrapper-inner
	{
		position: static;
	}

	iframe
	{
		margin-bottom: 0;
	}
}

.fancybox-progress
{
	background: @xf-globalActionColor;
}

// backdrop filter niceness

.fancybox-inner
{
	.m-backdropFilter(blur(0px));
}

.fancybox-is-open
{
	.fancybox-inner
	{
		.m-backdropFilter(blur(5px));
	}
}

// box shadow for main image

.fancybox-content
{
	box-shadow: 5px 5px 15px rgba(0, 0, 0, .5);
}

// bigger, square thumbs

.fancybox-container
{
	--fancybox-thumb-size: 150px;

	// show smaller thumbs on smaller displays (including landscape orientation)
	@media (max-width: @xf-responsiveNarrow), (max-height: @xf-responsiveNarrow)
	{
		--fancybox-thumb-size: 75px;
	}
}

.fancybox-thumbs__list a
{
	width: var(--fancybox-thumb-size);
	height: var(--fancybox-thumb-size);

	&::before
	{
		border: 2px solid #eee;
		background: radial-gradient(transparent, rgba(0,0,0,0.75));
	}
}

.fancybox-show-thumbs .fancybox-inner
{
	right: 0;
	bottom: var(--fancybox-thumb-size);
}

// custom button icons
.fancybox-button
{
	> i
	{
		.m-faBase();

		display: block;
		height: 100%;
		overflow: visible;
		position: relative;
		width: 100%;
	}

	.fancybox-is-zoomable &.fancybox-button--zoom,
	&.fancybox-button--zoom[disabled]
	{
		> i
		{
			.m-faBefore(@fa-var-search-plus);

			&:nth-child(1)
			{
				display: block;
			}

			&:nth-child(2)
			{
				display: none;
			}
		}
	}

	.fancybox-can-pan &.fancybox-button--zoom
	{
		> i
		{
			.m-faBefore(@fa-var-search-minus);

			&:nth-child(1)
			{
				display: none;
			}

			&:nth-child(2)
			{
				display: block;
			}
		}
	}

	&.fancybox-button--nw
	{
		> i
		{
			.m-faBefore(@fa-var-external-link);
		}
	}

	&.fancybox-button--fsenter
	{
		> i
		{
			.m-faBefore(@fa-var-expand);

			&:nth-child(2)
			{
				display: none;
			}
		}
	}

	&.fancybox-button--fsexit
	{
		> i
		{
			.m-faBefore(@fa-var-compress);

			&:nth-child(1)
			{
				display: none;
			}
		}
	}

	&.fancybox-button--download
	{
		> i
		{
			.m-faBefore(@fa-var-download);
		}
	}

	&.fancybox-button--thumbs
	{
		> i
		{
			.m-faBefore(@fa-var-grip-horizontal);
		}
	}

	&.fancybox-button--close
	{
		> i
		{
			.m-faBefore(@fa-var-times);
		}
	}

	&.fancybox-button--sidebartoggle
	{
		> i
		{
			.m-faBefore(@fa-var-chevron-double-left);

			.fancybox-show-sidebar &
			{
				.m-faBefore(@fa-var-chevron-double-right);
			}
		}
	}

	&.fancybox-button--arrow_left
	{
		> i
		{
			padding: 7px;
			height: 100%;

			&:before
			{
				.m-faContent(@fa-var-chevron-left, false, ltr);
				.m-faContent(@fa-var-chevron-right, false, rtl);
			}
		}
	}

	&.fancybox-button--arrow_right
	{
		> i
		{
			height: 100%;
			padding: 7px;

			&:before
			{
				.m-faContent(@fa-var-chevron-right, false, ltr);
				.m-faContent(@fa-var-chevron-left, false, rtl);
			}
		}
	}

	&.fancybox-button--play
	{
		> i
		{
			.m-faBefore(@fa-var-play);

			&:nth-child(2)
			{
				display: none;
			}
		}
	}

	&.fancybox-button--pause
	{
		> i
		{
			.m-faBefore(@fa-var-pause);

			&:nth-child(1)
			{
				display: none;
			}
		}
	}
}

.fancybox-sidebartoggle
{
	display: none;
	text-align: right;

	.fancybox-has-sidebar &
	{
		display: block;
	}
}

.fancybox-navigation .fancybox-button
{
	background: transparent;
	i { background: rgba(30, 30, 30, 0.6); }
}

// move thumbs to bottom of the page
.fancybox-thumbs
{
	top: auto;
	width: auto;
	bottom: 0;
	left: 0;
	right: 0;
	height: auto;
	padding: 0 10px;
	box-sizing: border-box;
	background: rgba(0, 0, 0, 0.3);
}

.fancybox-show-thumbs
{
	.fancybox-inner
	{
		right: 0;
	}

	.fancybox-inner,
	.fancybox-sidebar
	{
		bottom: var(--fancybox-thumb-size);
		margin-bottom: 4px;
	}
}

// round off some edges

.fancybox-navigation .fancybox-button i,
.fancybox-thumbs__list a,
.fancybox-thumbs__list a:before,
.fancybox-image
{
	border-radius: 5px;
}


// sidebar suppprt
@_sidebarWidth: 360px;

.fancybox-show-sidebar
{
	.fancybox__toolbar,
	.fancybox__footer
	{
		right: @_sidebarWidth;
	}

	.fancybox__carousel
	{
		right: calc(@_sidebarWidth / 2);
	}

	.fancybox__nav
	{
		--f-button-prev-pos: calc(1rem + @_sidebarWidth / 2);
		--f-button-next-pos: calc(1rem + @_sidebarWidth / 2);
	}
}

.fancybox-sidebar
{
	background: @xf-contentBg;
	bottom: 0;
	margin: 0;
	position: absolute;
	right: 0;
	top: 0;
	width: @_sidebarWidth;
	z-index: @zIndex-7;
	overflow-y: auto;

	display: none;

	&.is-active
	{
		display: block;
	}
}

.fancybox-sidebar-loader
{
	opacity: 0;
	position: absolute;
	height: 100%;
	width: 100%;
	left: 0;
	top: 0;
	text-align: center;
	pointer-events: none;

	color: @xf-textColor;
	background: fadeout(@xf-contentBg, 10%);
	z-index: @zIndex-2;

	.m-loadingSpinner();
}

@media (max-width: @xf-responsiveWide)
{
	.fancybox-sidebar
	{
		.block-row
		{
			padding: @xf-paddingSmall @xf-paddingMedium;
		}

		.xfmgInfoBlock-title
		{
			.contentRow-figure
			{
				display: none;
			}

			.contentRow-main
			{
				padding-left: 0;
			}
		}

		.message-responseRow
		{
			.comment-avatar
			{
				display: none;
			}

			.comment-main
			{
				padding-left: 0;
			}
		}
	}
}

@media (max-width: @xf-responsiveEdgeSpacerRemoval)
{
	.fancybox-sidebar
	{
		.block-container
		{
			margin: 0;
		}
	}
}]]></template>
  <template type="public" title="lightbox_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="setup" arg-canViewAttachments="!">
	<xf:if is="$canViewAttachments">
		<xf:css src="lightbox.less" />
		<xf:js prod="xf/lightbox-compiled.js" dev="vendor/fancyapps/fancybox/fancybox.umd.js, xf/lightbox.js" />

		<xf:if is="!page_param('hasLb')">
			<script class="js-extraPhrases" type="application/json">
			{
				"lightbox_close": "{{ phrase('lightbox_close')|escape('js') }}",
				"lightbox_next": "{{ phrase('lightbox_next')|escape('js') }}",
				"lightbox_previous": "{{ phrase('lightbox_previous')|escape('js') }}",
				"lightbox_error": "{{ phrase('lightbox_error')|escape('js') }}",
				"lightbox_start_slideshow": "{{ phrase('lightbox_start_slideshow')|escape('js') }}",
				"lightbox_stop_slideshow": "{{ phrase('lightbox_stop_slideshow')|escape('js') }}",
				"lightbox_full_screen": "{{ phrase('lightbox_full_screen')|escape('js') }}",
				"lightbox_thumbnails": "{{ phrase('lightbox_thumbnails')|escape('js') }}",
				"lightbox_download": "{{ phrase('lightbox_download')|escape('js') }}",
				"lightbox_share": "{{ phrase('lightbox_share')|escape('js') }}",
				"lightbox_zoom": "{{ phrase('lightbox_zoom')|escape('js') }}",
				"lightbox_new_window": "{{ phrase('lightbox_new_window')|escape('js') }}",
				"lightbox_toggle_sidebar": "{{ phrase('lightbox_toggle_sidebar')|escape('js') }}"
			}
			</script>
		</xf:if>
		<xf:page option="hasLb" value="{{ true }}" />
	</xf:if>
</xf:macro>

<xf:macro id="single_image"
	arg-canViewAttachments="!"
	arg-src="!"
	arg-dataUrl=""
	arg-containerZoom="1"
	arg-alt=""
	arg-title=""
	arg-sidebarHref=""
	arg-captionExtraHtml=""
	arg-styleAttr=""
	arg-alignClass=""
	arg-width=""
	arg-height="">

	<xf:macro id="setup" arg-canViewAttachments="{$canViewAttachments}" />

	<div class="bbImageWrapper {$alignClass} js-lbImage" title="{$alt|for_attr}"
		data-src="{$src}" data-lb-sidebar-href="{$sidebarHref}" data-lb-caption-extra-html="{$captionExtraHtml|for_attr}" data-single-image="1">
		<img src="{$src}"
			data-url="{$dataUrl}"
			class="bbImage"
			data-zoom-target="1"
			style="{$styleAttr}"
			alt="{$alt|for_attr}"
			title="{$title|for_attr}"
			width="{$width}" height="{$height}" loading="lazy" />
	</div>
</xf:macro>]]></template>
  <template type="public" title="like_confirm" version_id="2000036" version_string="2.0.0 Beta 6"><![CDATA[<xf:title>{{ $isLiked ? phrase('unlike_content') : phrase('like_content') }}</xf:title>

<xf:form action="{$confirmUrl}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<xf:if is="$isLiked">
					{{ phrase('you_sure_you_want_to_unlike_this_content') }}
				<xf:else />
					{{ phrase('you_sure_you_want_to_like_this_content') }}
					<xf:if is="$contentTitle"><strong>{$contentTitle}</strong></xf:if>
				</xf:if>
			</xf:inforow>
		</div>
		<xf:submitrow icon="confirm" rowtype="simple" />
	</div>
</xf:form>]]></template>
  <template type="public" title="like_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$title">
	<xf:title>{$title}</xf:title>
<xf:else />
	<xf:title>{{ phrase('members_who_liked_this') }}</xf:title>
</xf:if>

<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<xf:if is="$breadcrumbs">
	<xf:breadcrumb source="$breadcrumbs" />
</xf:if>

<div class="block">
	<div class="block-container js-likeList-{$type}{$id}">
		<ol class="block-body">
			<xf:foreach loop="$likes" value="$like">
				<li class="block-row block-row--separated">
					<xf:macro id="member_list_macros::item"
						arg-user="{$like.Liker}"
						arg-extraData="{{ date_dynamic($like.like_date)|preescaped }}" />
				</li>
			</xf:foreach>
		</ol>
		<xf:if is="$hasNext">
			<div class="block-footer">
				<span class="block-footer-controls"><xf:button href="{{ link($linkRoute, $linkData, $linkParams + {'page': $page + 1}) }}"
					data-xf-click="inserter"
					data-replace=".js-likeList-{$type}{$id}"
					data-scroll-target="< .overlay">
					{{ phrase('continue...') }}
				</xf:button></span>
			</div>
		</xf:if>
	</div>
</div>]]></template>
  <template type="public" title="like_list_row" version_id="2000038" version_string="2.0.0 Beta 8"><![CDATA[<i class="likeIcon" title="{{ phrase('likes')|for_attr }}" aria-hidden="true"></i>
<span class="u-srOnly">{{ phrase('likes:') }}</span>
<a href="{$url}" data-xf-click="overlay">{$likes}</a>]]></template>
  <template type="public" title="login" version_id="2030033" version_string="2.3.0 Beta 3"><![CDATA[<xf:js src="xf/login_signup.js" min="1" />
<xf:js src="xf/webauthn.js" min="1" />

<xf:title>{{ phrase('log_in') }}</xf:title>

<xf:head option="robots"><meta name="robots" content="noindex" /></xf:head>

<xf:if is="$xf.session.preRegActionKey">
	<div class="blockMessage blockMessage--highlight">
		{{ phrase('pre_reg_action_notice_login') }}<br />
		<br />
		{{ phrase('dont_have_account_question') }}
		<xf:button class="button--link"
			href="{{ link('register', null, {'_xfRedirect': $redirect}) }}"
			data-xf-click="overlay"
		>{{ phrase('register') }}</xf:button>
	</div>
</xf:if>

<xf:if contentcheck="true">
	<div class="blockMessage blockMessage--error blockMessage--iconic">
		<xf:contentcheck>{$error}</xf:contentcheck>
	</div>
</xf:if>

<div class="blocks">
	<xf:form action="{{ link('login/login') }}" class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:textboxrow name="login" value="{$login}" autofocus="autofocus" autocomplete="username"
					label="{{ phrase('your_name_or_email_address') }}" />

				<xf:passwordboxrow name="password" autocomplete="current-password"
					label="{{ phrase('password') }}">

					<xf:html>
						<a href="{{ link('lost-password') }}" data-xf-click="overlay">{{ phrase('forgot_your_password') }}</a>
					</xf:html>
				</xf:passwordboxrow>

				<xf:if is="$captcha">
					<xf:captcharow label="{{ phrase('verification') }}" force="true" force-visible="true" context="xf_login" />
				</xf:if>

				<xf:checkboxrow>
					<xf:option name="remember" selected="true">{{ phrase('stay_logged_in') }}</xf:option>
				</xf:checkboxrow>

				<xf:hiddenval name="_xfRedirect">{$redirect}</xf:hiddenval>
			</div>
			<xf:submitrow icon="login" />
		</div>
		<xf:if is="$xf.options.registrationSetup.enabled">
			<div class="block-outer block-outer--after">
				<div class="block-outer-middle">
					{{ phrase('dont_have_account_question') }} <xf:button href="{{ link('register') }}">{{ phrase('register_now') }}</xf:button>
				</div>
			</div>
		</xf:if>
	</xf:form>

	<div class="blocks-textJoiner"><span></span><em>{{ phrase('or_separator') }}</em><span></span></div>

	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:formrow rowtype="button"
					label="{{ phrase('log_in_using') }}">

					<ul class="listHeap">
						<li>
							<xf:form action="{{ link('login/login') }}" data-xf-init="webauthn"
								data-type="get"
								data-autotrigger="false"
								data-autosubmit="true"
								data-verifying="{{ phrase('verifying...') }}">

									<xf:button class="button--provider button--provider--passkey js-webauthnStart">
										{{ passkey_icon() }} {{ phrase('passkey') }}
									</xf:button>

								<xf:hiddenval name="webauthn_payload" />
								<xf:hiddenval name="webauthn_challenge">{{ $passkey ? $passkey.getChallenge() : '' }}</xf:hiddenval>
							</xf:form>
						</li>

						<xf:foreach loop="$providers" value="$provider" if="$providers is not empty">
							<li>
								<xf:macro id="connected_account_macros::button"
									arg-provider="{$provider}" />
							</li>
						</xf:foreach>
					</ul>
				</xf:formrow>
			</div>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="login_password_confirm" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('password_confirmation') }}</xf:title>

<xf:form action="{{ link('login/password-confirm') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('to_access_this_page_you_must_first_confirm_your_password') }}
			</xf:inforow>

			<xf:formrow label="{{ phrase('user_name') }}">{$xf.visitor.username}</xf:formrow>

			<xf:passwordboxrow name="password" label="{{ phrase('password') }}" />
		</div>
		<xf:submitrow submit="{{ phrase('confirm') }}" />
	</div>
	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="public" title="login_two_step" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:title>{{ phrase('two_step_verification_required') }}</xf:title>

<xf:if is="$provider.isDeprecated()">
	<div class="blockMessage blockMessage--error blockMessage--iconic">
		{{ phrase('two_step_provider_is_deprecated_user') }}
	</div>
</xf:if>

<xf:form action="{{ link('login/two-step') }}" class="block" ajax="true">

	<div class="block-container">
		<h2 class="block-tabHeader tabs hScroller" data-xf-init="h-scroller">
			<span class="hScroller-scroll">
			<xf:foreach loop="$providers" value="$tabProvider">
				<a href="{{ link('login/two-step', null, {'provider': $tabProvider.provider_id, 'remember': $remember ? 1 : null, '_xfRedirect': $redirect}) }}" class="tabs-tab {{ $tabProvider.provider_id == $providerId ? 'is-active' : '' }}">{$tabProvider.title}</a>
			</xf:foreach>
			</span>
		</h2>

		<div class="block-body">
			<xf:formrow label="{{ phrase('logging_in_as') }}">{$user.username}</xf:formrow>

			{{ $provider.render('login', $user, $providerData, $triggerData)|raw }}

			<xf:checkboxrow>
				<xf:option name="trust" value="1" checked="{$trustChecked}"
					label="{{ phrase('trust_this_device_for_30_days') }}"
					hint="{{ phrase('trust_device_desc') }}" />
			</xf:checkboxrow>
		</div>

		<xf:submitrow submit="{{ phrase('confirm') }}" icon="login" />
	</div>

	<xf:hiddenval name="confirm">1</xf:hiddenval>
	<xf:hiddenval name="provider">{$providerId}</xf:hiddenval>
	<xf:hiddenval name="remember">{{ $remember ? 1 : 0 }}</xf:hiddenval>

	<xf:redirect url="{$redirect}" />
</xf:form>]]></template>
  <template type="public" title="lost_password" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:title>{{ phrase('lost_password') }}</xf:title>

<xf:head option="robots"><meta name="robots" content="noindex" /></xf:head>

<xf:form action="{{ link('lost-password') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow>{{ phrase('if_forgotten_your_password_use_form_to_reset') }}</xf:inforow>

			<xf:textboxrow name="email" type="email" autofocus="autofocus" autocomplete="email"
				maxlength="{{ max_length($xf.visitor, 'email') }}"
				label="{{ phrase('email') }}"
				explain="{{ phrase('email_address_you_registered_with_is_required_to_reset_your_password') }}" />

			<xf:if is="$xf.options.lostPasswordCaptcha">
				<xf:captcharow label="{{ phrase('verification') }}" context="xf_lost_password" />
			</xf:if>
		</div>
		<xf:submitrow submit="{{ phrase('reset') }}" />
	</div>
</xf:form>]]></template>
  <template type="public" title="lost_password_confirm" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('reset_password') }}</xf:title>

<xf:head option="meta_referrer"><meta name="referrer" content="origin" /></xf:head>
<xf:head option="robots"><meta name="robots" content="noindex" /></xf:head>

<xf:form action="{{ link('lost-password/confirm', $user, {'c': $c}) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('your_name') }}">{$user.username}</xf:formrow>

			<xf:passwordboxrow name="password" label="{{ phrase('new_password') }}" autocomplete="new-password" checkstrength="true" />

			<xf:passwordboxrow name="password_confirm" label="{{ phrase('confirm_new_password') }}" autocomplete="new-password" />
		</div>
		<xf:submitrow icon="save" />
	</div>
</xf:form>]]></template>
  <template type="public" title="member.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[@_memberHeader-padding: @xf-paddingLarge;
@_memberHeader-avatarSize: @avatar-l;
@_memberHeader-avatarSizeShrunk: @avatar-m;

.memberHeader
{
	.m-clearFix();
}

.memberHeader-main
{
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	.xf-memberHeader();

	.memberHeader--withBanner &
	{
		min-height: 250px;
	}
}

.memberHeader-mainContent
{
	position: relative;
}

.memberHeader-avatar
{
	position: absolute;
	padding: @_memberHeader-padding;
}

.memberHeader-content
{
	padding: @_memberHeader-padding;
	padding-left: (@_memberHeader-padding * 2 + @_memberHeader-avatarSize);
}

.memberHeader-actionTop
{
	float: right;
}

.memberHeader-name
{
	margin: 0;
	margin-top: -.15em;
	padding: 0;
	font-weight: @xf-fontWeightNormal;
	.xf-memberHeaderName();

	.memberHeader--withBanner &
	{
		.xf-memberHeaderNameBanner();
	}
}

.memberHeader-nameChangeIndicator
{
	color: @xf-textColorMuted;
	font-size: 75%;

	&:hover
	{
		color: @xf-textColorMuted;
	}

	.memberHeader--withBanner &
	{
		color: darken(xf-default(@xf-memberHeaderNameBanner--color, white), 20%);

		&:hover
		{
			color: darken(xf-default(@xf-memberHeaderNameBanner--color, white), 20%);
		}
	}
}

// See XF-197998
@_member-textStroke: 0 #000;

.member-textStroke()
{
	text-shadow:
		-1px -1px @_member-textStroke,
		1px -1px @_member-textStroke,
		-1px 1px @_member-textStroke,
		1px 1px @_member-textStroke;
}

.memberHeader--withBanner
{
	.username
	{
		.member-textStroke();
	}

	.memberHeader-nameChangeIndicator .fa-history
	{
		.member-textStroke();
	}
}

.memberHeader-blurbContainer
{
	.memberHeader--withBanner &
	{
		.xf-memberHeaderBlurbContainerBanner();

		.memberHeader-blurb
		{
			&:first-child
			{
				margin-top: 0;
			}

			.pairs dt, a
			{
				color: darken(xf-default(@xf-memberHeaderBlurbContainerBanner--color, white), 20%);
			}
		}
	}
}

.memberHeader-banners,
.memberHeader-blurb
{
	margin-top: @xf-paddingSmall;
}

.memberHeader-separator
{
	margin: @_memberHeader-padding 0;
	border: none;
	border-top: @xf-borderSize solid @xf-borderColorLight;
}

.memberHeader-stats
{
	font-size: @xf-fontSizeLarge;

	.pairs.pairs--row
	{
		min-width: 100px;
	}
}

@media (max-width: @xf-responsiveMedium)
{
	.memberHeader-avatar .avatar
	{
		.m-avatarSize(@_memberHeader-avatarSizeShrunk);
	}

	.memberHeader-content
	{
		padding-left: (@_memberHeader-padding * 2 + @_memberHeader-avatarSizeShrunk);
	}
}

@media (max-width: @xf-responsiveNarrow)
{
	.memberHeader-avatar
	{
		display: block;
		position: static;
		float: none;
		padding-bottom: 0;
		text-align: center;
	}

	.memberHeader-avatar .avatarWrapper-update
	{
		font-size: @xf-fontSizeSmall;
	}

	.memberHeader-content
	{
		padding-left: @_memberHeader-padding;
	}

	.memberHeader-main .memberHeader-content
	{
		display: flex;
		flex-direction: column;
		padding-top: 0;
		min-height: 0;
		text-align: center;
	}

	.memberHeader-name
	{
		text-align: center;
		margin-top: 0;
	}

	.memberHeader-actionTop
	{
		float: none;
		order: 2;
		margin-top: @xf-paddingSmall;
	}

	.memberHeader-buttons
	{
		text-align: center;
	}

	.memberHeader-banners,
	.memberHeader-blurb
	{
		text-align: inherit;
	}
}

.block-tabHeader.block-tabHeader--memberTabs
{
	border-bottom: none;
}



.memberOverviewBlocks
{
	.m-listPlain();

	display: flex;
	flex-wrap: wrap;
	align-items: stretch;

	> li
	{
		width: 33.3%;
		max-width: 100%;
		padding: @xf-blockPaddingV @xf-blockPaddingH;

		@media (max-width: 1150px)
		{
			width: 50%;
		}

		@media (max-width: 580px)
		{
			width: 100%;
		}
	}
}

.memberOverviewBlock
{
	display: flex;
	flex-direction: column;
}
.memberOverviewBlock-list
{
	.m-listPlain();

	> li
	{
		margin: @xf-paddingMedium 0;
	}
}
.memberOverviewBlock-seeMore
{
	.xf-minorBlockContent();
	padding: @xf-paddingSmall;
	text-align: center;

	// pushes this to the bottom with flex box
	margin-top: auto;
}

@media (min-width: (@xf-responsiveMedium + 1))
{
	.memberHeader
	{
		min-height: (@avatar-l + 20);
	}
}]]></template>
  <template type="public" title="member_about" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:title>{$user.username}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">
		<xf:if contentcheck="true">
		<xf:contentcheck>
			<xf:if is="$user.Profile.about != ''">
				<div class="block-row block-row--separated">
					{{ bb_code($user.Profile.about, 'user:about', $user) }}
				</div>
			</xf:if>

			<xf:if contentcheck="true">
				<div class="block-row block-row--separated">
				<xf:contentcheck>
					<xf:if contentcheck="true">
						<dl class="pairs pairs--columns pairs--fixedSmall">
							<dt>{{ phrase('birthday') }}</dt>
							<dd>
								<xf:contentcheck>
									<xf:if is="$user.Profile.birthday.timeStamp">
										{{ date($user.Profile.birthday.timeStamp, $user.Profile.birthday.format) }}
										<xf:if is="$user.Profile.birthday.age">
											{{ parens(phrase('age:') . ' ' . {$user.Profile.birthday.age}) }}
										</xf:if>
									</xf:if>
								</xf:contentcheck>
							</dd>
						</dl>
					</xf:if>

					<xf:if is="$user.Profile.website">
						<dl class="pairs pairs--columns pairs--fixedSmall">
							<dt>{{ phrase('website') }}</dt>
							<dd>
								<a href="{$user.Profile.website}" rel="nofollow" target="_blank">{$user.Profile.website|url_display}</a>
							</dd>
						</dl>
					</xf:if>

					<xf:if is="$user.Profile.location">
						<dl class="pairs pairs--columns pairs--fixedSmall">
							<dt>{{ phrase('location') }}</dt>
							<dd>
								<xf:if is="$xf.options.geoLocationUrl">
									<a href="{{ link('misc/location-info', '', {'location': $user.Profile.location}) }}" rel="nofollow noreferrer" target="_blank" class="u-concealed">{$user.Profile.location}</a>
								<xf:else />
									{$user.Profile.location}
								</xf:if>
							</dd>
						</dl>
					</xf:if>

					<xf:macro id="custom_fields_macros::custom_fields_view"
						arg-type="users"
						arg-group="personal"
						arg-set="{$user.Profile.custom_fields}"
						arg-additionalFilters="{{ ['profile'] }}" />
				</xf:contentcheck>
				</div>
			</xf:if>

			<xf:if is="$user.canViewIdentities()">
				<xf:if contentcheck="true">
					<div class="block-row block-row--separated">
						<h4 class="block-textHeader">{{ phrase('contact') }}</h4>
						<xf:contentcheck>
							<xf:if is="$xf.visitor.canStartConversationWith($user)">
								<dl class="pairs pairs--columns pairs--fixedSmall">
									<dt>{{ phrase('direct_message') }}</dt>
									<dd><a href="{{ link('direct-messages/add', '', {'to': $user.username}) }}">{{ phrase('send_direct_message') }}</a></dd>
								</dl>
							</xf:if>

							<xf:macro id="custom_fields_macros::custom_fields_view"
								arg-type="users"
								arg-group="contact"
								arg-set="{$user.Profile.custom_fields}"
								arg-additionalFilters="{{ ['profile'] }}" />
						</xf:contentcheck>
					</div>
				</xf:if>
			</xf:if>

			<xf:if is="$user.Profile.signature">
				<div class="block-row block-row--separated">
					<h4 class="block-textHeader">{{ phrase('signature') }}</h4>
					{{ bb_code($user.Profile.signature, 'user:signature', $user) }}
				</div>
			</xf:if>

			<xf:if is="$followingCount">
				<xf:if contentcheck="true">
					<div class="block-row block-row--separated">
						<h4 class="block-textHeader">{{ phrase('member_is_following') }}</h4>
						<ul class="listHeap">
							<xf:contentcheck>
								<xf:foreach loop="$following" value="$followingUser" if="!$xf.visitor.isIgnoring($followingUser.user_id)">
									<li>
										<xf:avatar user="$followingUser" size="s" />
									</li>
								</xf:foreach>
							</xf:contentcheck>
						</ul>
						<xf:if is="$followingCount > count($following)">
							<a href="{{ link('members/following', $user) }}" rel="nofollow" data-xf-click="overlay">{{ phrase('ellipsis_and_x_more', {'count': $followingCount - count($following)}) }}</a>
						</xf:if>
					</div>
				</xf:if>
			</xf:if>

			<xf:if is="$followersCount">
				<xf:if contentcheck="true">
					<div class="block-row block-row--separated">
						<h4 class="block-textHeader">{{ phrase('followers') }}</h4>
						<ul class="listHeap">
							<xf:contentcheck>
								<xf:foreach loop="$followers" value="$followerUser" if="!$xf.visitor.isIgnoring($followerUser.user_id)">
									<li>
										<xf:avatar user="$followerUser" size="s" />
									</li>
								</xf:foreach>
							</xf:contentcheck>
						</ul>
						<xf:if is="$followersCount > count($followers)">
							<a href="{{ link('members/followers', $user) }}" rel="nofollow" data-xf-click="overlay">{{ phrase('ellipsis_and_x_more', {'count': $followersCount - count($followers)}) }}</a>
						</xf:if>
					</div>
				</xf:if>
			</xf:if>

			<xf:if is="$trophies is not empty AND $xf.options.enableTrophies">
				<div class="block-row block-row--separated">
					<h4 class="block-textHeader">{{ phrase('trophies') }}</h4>
					<ol class="listPlain">
						<xf:foreach loop="$trophies" value="$trophy">
							<li class="block-row">
								<div class="contentRow">
									<span class="contentRow-figure contentRow-figure--text contentRow-figure--fixedSmall">{$trophy.Trophy.trophy_points}</span>
									<div class="contentRow-main">
										<span class="contentRow-extra"><xf:date time="{$trophy.award_date}" /></span>
										<h2 class="contentRow-header">{$trophy.Trophy.title}</h2>
										<div class="contentRow-minor">{$trophy.Trophy.description|raw}</div>
									</div>
								</div>
							</li>
						</xf:foreach>
					</ol>
				</div>
			</xf:if>
		</xf:contentcheck>
		<xf:else />
			<div class="block-row block-row--separated">{{ phrase('x_has_not_provided_any_additional_information', {'name': $user.username}) }}</div>
		</xf:if>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="member_ban_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$user.is_banned">
	<xf:title>{{ phrase('edit_ban:') }} {$user.username}</xf:title>
<xf:else />
	<xf:title>{{ phrase('ban_member') }}</xf:title>
</xf:if>

<xf:form action="{{ link('members/ban/save', $user) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$user.is_banned">
				<xf:formrow label="{{ phrase('user_name') }}">{$user.username}</xf:formrow>

				<xf:formrow label="{{ phrase('banned_by') }}">{$userBan.BanUser.username}</xf:formrow>

				<xf:formrow label="{{ phrase('ban_started') }}">{{ date($userBan.ban_date) }}</xf:formrow>

				<xf:formrow label="{{ phrase('ban_ends') }}">
					<xf:if is="$userBan.end_date">
						{{ date($userBan.end_date) }}
					<xf:else />
						{{ phrase('never') }}
					</xf:if>
				</xf:formrow>
			</xf:if>

			<xf:radiorow name="ban_length" value="{{ !$userBan.end_date ? 'permanent' : 'temporary' }}"
				label="{{ phrase('ban_length') }}">

				<xf:option label="{{ phrase('permanent') }}" value="permanent" />
				<xf:option label="{{ phrase('until:') }}" value="temporary">
					<xf:dateinput name="end_date" value="{{ $userBan.end_date ? date($userBan.end_date, 'Y-m-d') : '' }}" />
				</xf:option>
			</xf:radiorow>

			<xf:textboxrow name="user_reason" value="{$userBan}"
				label="{{ phrase('reason_for_banning') }}"
				explain="{{ phrase('this_will_be_shown_to_user_if_provided') }}" />
		</div>
		<xf:submitrow icon="save">
			<xf:html>
				<xf:if is="$user.is_banned">
					<xf:button href="{{ link('members/ban/lift', $userBan) }}" overlay="true">
						{{ phrase('lift_ban') }}
					</xf:button>
				</xf:if>
			</xf:html>
		</xf:submitrow>
	</div>

	<xf:redirect />
</xf:form>]]></template>
  <template type="public" title="member_ban_lift" version_id="2020051" version_string="2.2.0 Release Candidate 1"><![CDATA[<xf:title>{{ phrase('confirm_lifting_of_ban:') }} {$user.username}</xf:title>

<xf:form action="{{ link('members/ban/lift', $user) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_lift_ban_on_following_user:') }}
				<strong><a href="{{ link('members/ban', $user) }}">{$user.username}</a></strong>
			</xf:inforow>

			<xf:formrow label="{{ phrase('banned_by') }}">{$userBan.BanUser.username}</xf:formrow>

			<xf:formrow label="{{ phrase('ban_started') }}">{{ date($userBan.ban_date) }}</xf:formrow>

			<xf:formrow label="{{ phrase('ban_ends') }}">
				<xf:if is="$userBan.end_date">
					{{ date($userBan.end_date) }}
				<xf:else />
					{{ phrase('never') }}
				</xf:if>
			</xf:formrow>

			<xf:if is="$userBan.user_reason">
				<xf:formrow label="{{ phrase('reason_for_ban') }}">{$userBan.user_reason}</xf:formrow>
			</xf:if>
		</div>
		<xf:submitrow submit="{{ phrase('lift_ban') }}" />
	</div>

	<xf:redirect />
</xf:form>]]></template>
  <template type="public" title="member_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('edit_member:') }} {$user.username}</xf:title>

<xf:breadcrumb href="{{ link('members', $user) }}">{$user.username}</xf:breadcrumb>

<xf:form action="{{ link('members/edit', $user) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$user.getAvatarUrl('s')">
				<xf:formrow label="{{ phrase('current_avatar') }}">
					<xf:avatar user="{$user}" size="l" />
					<div><br /><xf:checkbox standalone="true">
						<xf:option name="delete_avatar" label="{{ phrase('delete_current_avatar') }}" />
					</xf:checkbox></div>
				</xf:formrow>
			</xf:if>

			<xf:if is="$user.Profile.banner_date">
				<xf:formrow label="{{ phrase('current_profile_banner') }}">
					<xf:profilebanner user="$user" size="l" class="memberProfileBanner--small" />
					<div><xf:checkbox standalone="true">
						<xf:option name="delete_banner" label="{{ phrase('delete_current_banner') }}" />
					</xf:checkbox></div>
				</xf:formrow>
			</xf:if>

			<xf:textboxrow name="user[custom_title]" value="{$user}" column="custom_title_"
				label="{{ phrase('custom_title') }}" />

			<xf:textboxrow name="profile[location]" value="{$user.Profile}" column="location_"
				label="{{ phrase('location') }}" />

			<xf:textboxrow name="profile[website]" value="{$user.Profile}" column="website_"
				label="{{ phrase('website') }}" />

			<xf:textarearow name="profile[about]" value="{$user.Profile}" column="about_"
				autosize="true"
				label="{{ phrase('about_you') }}" />

			<xf:textarearow name="profile[signature]" value="{$user.Profile}" column="signature_"
				autosize="true"
				label="{{ phrase('signature') }}" />

			<xf:macro id="custom_fields_macros::custom_fields_edit"
				arg-type="users"
				arg-set="{$user.Profile.custom_fields}"
				arg-editMode="moderator" />
		</div>
		<xf:submitrow icon="save" sticky="true" />
	</div>

	<xf:hiddenval name="not_admin">{{ $notAdmin ? 1 : 0 }}</xf:hiddenval>
</xf:form>]]></template>
  <template type="public" title="member_follow" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ $isFollowing ? phrase('stop_following_x', {'name': $user.username}) : phrase('follow_x', {'name': $user.username}) }}</xf:title>

<xf:breadcrumb href="{{ link('members', $user) }}">{$user.username}</xf:breadcrumb>

<xf:form action="{{ link('members/follow', $user) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<xf:if is="$isFollowing">
					{{ phrase('please_confirm_that_you_wish_to_stop_following_this_user:') }}
				<xf:else />
					{{ phrase('please_confirm_that_you_wish_to_start_following_this_user:') }}
				</xf:if>
				<strong><a href="{{ link('members', $user) }}">{$user.username}</a></strong>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ $isFollowing ? phrase('unfollow') : phrase('follow') }}" rowtype="simple" />
	</div>

	<xf:redirect />
</xf:form>]]></template>
  <template type="public" title="member_followers" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:title>{{ phrase('members_following_x', {'name': $user.username}) }}</xf:title>

<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<xf:breadcrumb href="{{ link('members', $user) }}">{$user.username}</xf:breadcrumb>

<div class="block">
	<div class="block-container js-followerList{$user.user_id}">
		<ol class="block-body">
			<xf:foreach loop="$followers" value="$followerUser">
				<li class="block-row block-row--separated">
					<xf:macro id="member_list_macros::item" arg-user="{$followerUser}" />
				</li>
			</xf:foreach>
		</ol>
		<xf:if is="$hasMore">
			<div class="block-footer">
				<span class="block-footer-controls"><xf:button href="{{ link('members/followers', $user, {'page': $page + 1}) }}"
					rel="nofollow"
					data-xf-click="inserter"
					data-replace=".js-followerList{$user.user_id}"
					data-scroll-target="< .overlay">
					{{ phrase('more...') }}
				</xf:button></span>
			</div>
		</xf:if>
	</div>
</div>]]></template>
  <template type="public" title="member_following" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:title>{{ phrase('members_x_is_following', {'name': $user.username}) }}</xf:title>

<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<xf:breadcrumb href="{{ link('members', $user) }}">{$user.username}</xf:breadcrumb>

<div class="block">
	<div class="block-container js-followingList{$user.user_id}">
		<ol class="block-body">
			<xf:foreach loop="$following" value="$followingUser">
				<li class="block-row block-row--separated">
					<xf:macro id="member_list_macros::item" arg-user="{$followingUser}" />
				</li>
			</xf:foreach>
		</ol>
		<xf:if is="$hasMore">
			<div class="block-footer">
				<span class="block-footer-controls"><xf:button href="{{ link('members/following', $user, {'page': $page + 1}) }}"
					rel="nofollow"
					data-xf-click="inserter"
					data-replace=".js-followingList{$user.user_id}"
					data-scroll-target="< .overlay">
					{{ phrase('more...') }}
				</xf:button></span>
			</div>
		</xf:if>
	</div>
</div>]]></template>
  <template type="public" title="member_ignore" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ $isIgnoring ? phrase('stop_ignoring_x', {'name': $user.username}) : phrase('ignore_x', {'name': $user.username}) }}</xf:title>

<xf:breadcrumb href="{{ link('members', $user) }}">{$user.username}</xf:breadcrumb>

<xf:form action="{{ link('members/ignore', $user) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<xf:if is="$isIgnoring">
					{{ phrase('please_confirm_that_you_wish_to_stop_ignoring_this_user:') }}
				<xf:else />
					{{ phrase('please_confirm_that_you_wish_to_start_ignoring_this_user:') }}
				</xf:if>
				<strong><a href="{{ link('members', $user) }}">{$user.username}</a></strong>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ $isIgnoring ? phrase('unignore') : phrase('ignore') }}" rowtype="simple" />
	</div>

	<xf:redirect />
</xf:form>]]></template>
  <template type="public" title="member_ip_list" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('ip_addresses_logged_for_x', {'name': $user.username}) }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:datalist data-xf-init="responsive-data-list">
				<xf:datarow rowtype="header">
					<xf:cell>{{ phrase('ip') }}</xf:cell>
					<xf:cell>{{ phrase('total') }}</xf:cell>
					<xf:cell>{{ phrase('earliest') }}</xf:cell>
					<xf:cell>{{ phrase('latest') }}</xf:cell>
					<xf:cell>&nbsp;</xf:cell>
				</xf:datarow>
				<xf:foreach loop="$ips" value="$ip">
					<xf:datarow rowclass="dataList-row--noHover">
						<xf:cell href="{{ link('misc/ip-info', null, {'ip': $ip.ip|ip}) }}" target="_blank">{$ip.ip|ip}</xf:cell>
						<xf:cell>{$ip.total|number}</xf:cell>
						<xf:cell><xf:date time="{$ip.first_date}" /></xf:cell>
						<xf:cell><xf:date time="{$ip.last_date}" /></xf:cell>
						<xf:action href="{{ link('members/ip-users', null, {'ip': $ip.ip|ip}) }}" overlay="true">{{ phrase('more_users') }}</xf:action>
					</xf:datarow>
				</xf:foreach>
			</xf:datalist>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="member_ip_users_list" version_id="2001070" version_string="2.0.10"><![CDATA[<xf:title>{{ phrase('users_logged_at_ip_x', {'ip': $ipPrintable}) }}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:datalist>
				<xf:foreach loop="$ips" value="$ip" key="$key">
					<xf:set var="$user" value="{$ip.user}" />
					<xf:datarow rowclass="dataList-row--noHover">
						<xf:cell class="dataList-cell--min dataList-cell--alt">
							<xf:avatar user="$user" size="s" href="{{ link('members', $user) }}" />
						</xf:cell>
						<xf:main href="{{ link('members', $user) }}">
							<xf:label><xf:username user="$user" rich="true" notooltip="true" href="" /></xf:label>
							<xf:hint><xf:usertitle user="$user" /></xf:hint>
							<xf:explain>
								<ul class="listInline listInline--bullet">
									<xf:if is="$ip.ip_total > 1">
										<li>{{ phrase('ip_x_and_y_more', {'ip': $ip.ips.0|ip, 'count': $ip.ip_total - 1}) }}</li>
									<xf:else />
										<li>{$ip.ips.0|ip}</li>
									</xf:if>
									<xf:if is="$ip.total > 1">
										<li>{{ phrase('x_times', {'total': $ip.total|number}) }}</li>
										<li><xf:date time="{$ip.first_date}" /> - <xf:date time="{$ip.last_date}" /></li>
									<xf:else />
										<li>{{ phrase('1_time') }}</li>
										<li><xf:date time="{$ip.first_date}" /></li>
									</xf:if>
								</ul>
							</xf:explain>
						</xf:main>
					</xf:datarow>
				</xf:foreach>
			</xf:datalist>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="member_latest_activity" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:title>{{ phrase('xs_latest_activity', {'name': $user.username}) }}</xf:title>

<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<xf:if is="$restricted">
	<div class="blockMessage">
		{{ phrase('x_restricts_who_may_view_their_latest_activity', {'name': $user.username}) }}
	</div>
<xf:else />
	<div class="block">
		<div class="block-container">
			<xf:if is="$newsFeedItems is not empty">
				<ul class="block-body js-newsFeedTarget">
					<xf:foreach loop="$newsFeedItems" value="$item">
						<xf:macro id="news_feed_macros::feed_row" arg-item="{$item}" />
					</xf:foreach>
				</ul>
				<div class="block-footer js-newsFeedLoadMore">
					<span class="block-footer-controls"><xf:button href="{{ link('members/latest-activity', $user, {'before_id': $oldestItemId}) }}"
						rel="nofollow"
						data-xf-click="inserter"
						data-append=".js-newsFeedTarget"
						data-replace=".js-newsFeedLoadMore">
						{{ phrase('show_older_items') }}
					</xf:button></span>
				</div>
			<xf:elseif is="$beforeId" />
				<div class="block-body js-newsFeedTarget">
					<div class="block-row block-row--separated">{{ phrase('there_no_more_items_to_show') }}</div>
				</div>
			<xf:else />
				<div class="block-body js-newsFeedTarget">
					<div class="block-row">{{ phrase('news_feed_is_currently_empty') }}</div>
				</div>
			</xf:if>
		</div>

		<div class="block-outer block-outer--after">
			<div class="block-outer-opposite">
				<xf:showignored />
			</div>
		</div>
	</div>
</xf:if>]]></template>
  <template type="public" title="member_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title page="{$page}">{{ phrase('registered_members') }}</xf:title>

<xf:wrap template="member_wrapper">
	<xf:set var="$pageSelected" value="member_list" />
</xf:wrap>

<xf:macro id="metadata_macros::canonical_url" arg-canonicalUrl="{{ link('canonical:members/list', null, {'page': $page}) }}" />

<div class="block">
	<div class="block-container">
		<ol class="block-body">
			<xf:foreach loop="$users" key="$userId" value="$user">
				<li class="block-row block-row--separated">
					<xf:macro id="member_list_macros::item" arg-user="{$user}" />
				</li>
			</xf:foreach>
		</ol>
	</div>
	<xf:pagenav link="members/list" page="{$page}" perpage="{$perPage}" total="{$total}"
		wrapperclass="block-outer block-outer--after" />
</div>

<xf:widgetpos id="member_list_sidebar" position="sidebar" />]]></template>
  <template type="public" title="member_list_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="item" arg-user="!" arg-extraData="" arg-extraDataBig="{{ false }}">
	<div class="contentRow">
		<div class="contentRow-figure">
			<xf:avatar user="$user" size="s" notooltip="true" />
		</div>
		<div class="contentRow-main">
			<xf:if is="$extraData">
				<div class="contentRow-extra {{ $extraDataBig ? 'contentRow-extra--largest' : '' }}">{$extraData}</div>
			</xf:if>
			<h3 class="contentRow-header"><xf:username user="$user" rich="true" notooltip="true" /></h3>

			<xf:userblurb user="$user" class="contentRow-lesser" />

			<div class="contentRow-minor">
				<ul class="listInline listInline--bullet">
					<!--[XF:stats:start]-->
					<li><dl class="pairs pairs--inline">
						<dt>{{ phrase('messages') }}</dt>
						<dd>{$user.message_count|number}</dd>
					</dl></li>
					<!--[XF:stats:after_messages]-->
					<xf:if is="$user.question_solution_count">
						<li><dl class="pairs pairs--inline">
							<dt>{{ phrase('solutions') }}</dt>
							<dd>{$user.question_solution_count|number}</dd>
						</dl></li>
					</xf:if>
					<!--[XF:stats:after_solutions]-->
					<li><dl class="pairs pairs--inline">
						<dt>{{ phrase('reaction_score') }}</dt>
						<dd>{$user.reaction_score|number}</dd>
					</dl></li>
					<!--[XF:stats:after_likes]-->
					<!--[XF:stats:after_reactions]-->
					<xf:if is="$xf.options.enableTrophies">
						<li><dl class="pairs pairs--inline">
							<dt>{{ phrase('points') }}</dt>
							<dd>{$user.trophy_points|number}</dd>
						</dl></li>
					</xf:if>
					<!--[XF:stats:end]-->
				</ul>
			</div>
		</div>
	</div>
</xf:macro>]]></template>
  <template type="public" title="member_macros" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:macro id="moderator_menu_actions" arg-user="!" arg-context="!">
	<!--[XF:moderator_menu:top]-->
	<xf:if is="$xf.visitor.canCleanSpam() && $user.isPossibleSpammer()">
		<a href="{{ link('spam-cleaner', $user, {'no_redirect': 1}) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('spam') }}</a>
	</xf:if>
	<xf:if is="$user.canWarn()">
		<a href="{{ link('members/warn', $user) }}" class="menu-linkRow">{{ phrase('warn') }}</a>
	</xf:if>
	<xf:if is="$xf.visitor.canViewWarnings() && $user.warning_count AND $context == 'tooltip'">
		<a href="{{ $user.canViewFullProfile() ? link('members', $user) . '#warnings' : link('members/warnings', $user) }}" class="menu-linkRow">{{ phrase('view_warnings_x', {'count': $user.warning_count|number}) }}</a>
	</xf:if>
	<xf:if is="$xf.visitor.canViewIps()">
		<a href="{{ link('members/user-ips', $user) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('ip_addresses') }}</a>
		<a href="{{ link('members/shared-ips', $user) }}" class="menu-linkRow" data-xf-click="overlay">{{ phrase('shared_ips') }}</a>
	</xf:if>
	<xf:if is="$user.canBan()">
		<a href="{{ link('members/ban', $user) }}" class="menu-linkRow" data-xf-click="overlay">
			<xf:if is="$user.is_banned">
				{{ phrase('edit_ban') }}
			<xf:else />
				{{ phrase('ban_member') }}
			</xf:if>
		</a>
	</xf:if>
	<xf:if is="$user.canEdit()">
		<a href="{{ link('members/edit', $user) }}" class="menu-linkRow">{{ phrase('edit') }}</a>
	</xf:if>
	<!--[XF:moderator_menu:bottom]-->
</xf:macro>

<xf:macro id="member_stat_pairs" arg-user="!" arg-context="!">
	<!--[XF:stat_pairs:above_joined]-->
	<!--[XF:stat_pairs:above_messages]-->
	<dl class="pairs pairs--rows pairs--rows--centered fauxBlockLink">
		<dt>{{ phrase('messages') }}</dt>
		<dd>
			<a href="{{ link('search/member', null, {'user_id': $user.user_id}) }}" rel="nofollow" class="fauxBlockLink-linkRow u-concealed">
				{$user.message_count|number}
			</a>
		</dd>
	</dl>
	<xf:if is="$user.question_solution_count">
		<!--[XF:stat_pairs:above_solved]-->
		<dl class="pairs pairs--rows pairs--rows--centered fauxBlockLink">
			<dt>{{ phrase('solutions') }}</dt>
			<dd>
				{$user.question_solution_count|number}
			</dd>
		</dl>
	</xf:if>
	<!--[XF:stat_pairs:above_likes]-->
	<!--[XF:stat_pairs:above_reactions]-->
	<dl class="pairs pairs--rows pairs--rows--centered">
		<dt>{{ phrase('reaction_score') }}</dt>
		<dd>
			{$user.reaction_score|number}
		</dd>
	</dl>
	<!--[XF:stat_pairs:above_trophies]-->
	<xf:if is="$xf.options.enableTrophies">
		<dl class="pairs pairs--rows pairs--rows--centered fauxBlockLink">
			<dt title="{{ phrase('trophy_points')|for_attr }}">{{ phrase('points') }}</dt>
			<dd>
				<a href="{{ link('members/trophies', $user) }}" rel="nofollow" data-xf-click="overlay" class="fauxBlockLink-linkRow u-concealed">
					{$user.trophy_points|number}
				</a>
			</dd>
		</dl>
	</xf:if>
	<!--[XF:stat_pairs:below_trophies]-->
	<xf:if is="$xf.visitor.canViewWarnings() && $user.warning_points">
		<dl class="pairs pairs--rows pairs--rows--centered fauxBlockLink">
			<dt>{{ phrase('warnings') }}</dt>
			<dd>
				<a href="{{ ($context == 'tooltip' && $user.canViewFullProfile()) ? link('members', $user) . '#warnings' : link('members/warnings', $user) }}" data-xf-click="{{ $context == 'tooltip' ? '' : 'overlay' }}" class="fauxBlockLink-linkRow u-concealed">
					{$user.warning_points|number} / {$user.warning_count|number}
				</a>
			</dd>
		</dl>
	</xf:if>
</xf:macro>

<xf:macro id="member_action_buttons" arg-user="!" arg-context="!">
	<!--[XF:action_groups:outer_start]-->
	<xf:if contentcheck="true">
		<!--[XF:action_groups:start]-->
		<div class="buttonGroup">
		<xf:contentcheck>
			<!--[XF:action_group_1:start]-->
			<xf:if is="$xf.visitor.canFollowUser($user)">
				<xf:button href="{{ link('members/follow', $user) }}"
					class="button--link"
					data-xf-click="switch"
					data-sk-follow="{{ phrase('follow') }}"
					data-sk-unfollow="{{ phrase('unfollow') }}">
					{{ $xf.visitor.isFollowing($user) ? phrase('unfollow') : phrase('follow') }}
				</xf:button>
			</xf:if>
			<xf:if is="$xf.visitor.canIgnoreUser($user)">
				<a href="{{ link('members/ignore', $user) }}"
					class="button button--link"
					data-xf-click="switch"
					data-sk-ignore="{{ phrase('ignore')|for_attr }}"
					data-sk-unignore="{{ phrase('unignore')|for_attr }}">
					{{ $xf.visitor.isIgnoring($user) ? phrase('unignore') : phrase('ignore') }}
				</a>
			</xf:if>
			<!--[XF:action_group_1:end]-->
		</xf:contentcheck>
		</div>
	</xf:if>

	<!--[XF:action_groups:middle]-->

	<xf:if contentcheck="true">
		<div class="buttonGroup">
		<xf:contentcheck>
			<!--[XF:action_group_2:start]-->
			<xf:if is="$xf.visitor.canStartConversationWith($user)">
				<xf:button href="{{ link('direct-messages/add', null, {'to': $user.username}) }}" class="button--link">
					{{ phrase('send_direct_message') }}
				</xf:button>
			</xf:if>
			<xf:if is="$xf.visitor.canSearch() AND $context != 'tooltip'">
				<div class="buttonGroup-buttonWrapper">
					<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true">{{ phrase('find') }}</xf:button>
					<div class="menu" data-menu="menu" aria-hidden="true">
						<div class="menu-content">
							<h4 class="menu-header">{{ phrase('find_content') }}</h4>
							<!--[XF:find_menu:top]-->
							<a href="{{ link('search/member', null, {'user_id': $user.user_id}) }}" rel="nofollow" class="menu-linkRow">{{ phrase('find_all_content_by_x', {'name': $user.username}) }}</a>
							<a href="{{ link('search/member', null, {'user_id': $user.user_id, 'content': 'thread'}) }}" rel="nofollow" class="menu-linkRow">{{ phrase('find_all_threads_by_x', {'name': $user.username}) }}</a>
							<!--[XF:find_menu:bottom]-->
						</div>
					</div>
				</div>
			</xf:if>
			<!--[XF:action_group_2:end]-->
		</xf:contentcheck>
		</div>
		<!--[XF:action_groups:end]-->
	</xf:if>
	<!--[XF:action_groups:outer_end]-->
</xf:macro>]]></template>
  <template type="public" title="member_notable" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:title>{{ $active ? $active.title : phrase('notable_members') }}</xf:title>

<xf:wrap template="member_wrapper">
	<xf:set var="$pageSelected" value="{{ $active ? $active.member_stat_key : 'overview' }}" />
</xf:wrap>

<xf:macro id="metadata_macros::canonical_url" arg-canonicalUrl="{{ link('canonical:members', null, {'key': $active ? $active.member_stat_key : null }) }}" />

<xf:css src="member.less" />

<xf:if is="$userNotFound">
	<div class="blockMessage blockMessage--error blockMessage--iconic">{{ phrase('specified_member_cannot_be_found_enter_entire_name') }}</div>
</xf:if>

<xf:if is="$memberStats is empty">
	<div class="blockMessage">{{ phrase('no_notable_members_can_currently_be_shown') }}</div>
<xf:else />
	<section class="block">
		<div class="block-container">
			<xf:if is="$active">
				<ol class="block-body">
					<xf:foreach loop="{$resultsData.{$active.member_stat_key}}" key="$userId" value="$data">
						<li class="block-row block-row--separated">
							<xf:macro id="member_list_macros::item"
								arg-user="{$data.user}"
								arg-extraData="{$data.value}"
								arg-extraDataBig="{{ true }}" />
						</li>
					<xf:else />
						<li class="block-row">{{ phrase('no_users_match_specified_criteria') }}</li>
					</xf:foreach>
				</ol>
			<xf:else />
				<div class="block-body">
					<ol class="memberOverviewBlocks">
						<xf:foreach loop="$memberStats" key="$key" value="$memberStat">
							<xf:macro id="overview_block"
								arg-memberStat="{$memberStat}"
								arg-results="{$resultsData.{$key}}" />
						</xf:foreach>
					</ol>
				</div>
			</xf:if>
		</div>
	</section>
</xf:if>

<xf:macro id="overview_block"
	arg-memberStat="!"
	arg-results="!"
	arg-showTitle="{{ true }}"
	arg-showFooter="{{ true }}">

	<xf:if contentcheck="true">
		<li class="memberOverviewBlock">
			<xf:if is="$showTitle">
				<h3 class="block-textHeader">
					<a href="{{ link('members', null, {'key': $memberStat.member_stat_key}) }}"
						class="memberOverViewBlock-title">{$memberStat.title}</a>
				</h3>
			</xf:if>
			<ol class="memberOverviewBlock-list">
				<xf:contentcheck>
					<xf:foreach loop="$results" key="$userId" value="$data">
						<li>
							<xf:macro id="overview_row" arg-data="{$data}" />
						</li>
					</xf:foreach>
				</xf:contentcheck>
			</ol>
			<xf:if is="$showFooter">
				<div class="memberOverviewBlock-seeMore">
					<a href="{{ link('members', null, {'key': $memberStat.member_stat_key}) }}">{{ phrase('see_more...') }}</a>
				</div>
			</xf:if>
		</li>
	</xf:if>
</xf:macro>

<xf:macro id="overview_row" arg-data="!">
	<div class="contentRow contentRow--alignMiddle">
		<div class="contentRow-figure">
			<xf:avatar user="$data.user" size="xs" />
		</div>
		<div class="contentRow-main">
			<xf:if is="$data.value">
				<div class="contentRow-extra contentRow-extra--large">{$data.value}</div>
			</xf:if>
			<h3 class="contentRow-title"><xf:username user="$data.user" rich="true" /></h3>
		</div>
	</div>
</xf:macro>]]></template>
  <template type="public" title="member_post_new_profile_posts" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$firstUnshownProfilePost">
	<div class="message message--simple">
		<div class="message-inner">
			<div class="message-cell message-cell--alert">
				{{ phrase('there_more_posts_to_display') }} <a href="{{ link('profile-posts', $firstUnshownProfilePost) }}">{{ phrase('view_them') }}</a>
			</div>
		</div>
	</div>
</xf:if>

<xf:foreach loop="$profilePosts" value="$profilePost">
	<xf:if is="$style == 'simple'">
		<div class="block-row">
			<xf:macro id="profile_post_macros::profile_post_simple"
				arg-profilePost="{$profilePost}" />
		</div>
	<xf:else />
		<xf:macro id="profile_post_macros::profile_post"
			arg-attachmentData="{$profilePostAttachData.{$profilePost.profile_post_id}}"
			arg-profilePost="{$profilePost}" />
	</xf:if>
</xf:foreach>
]]></template>
  <template type="public" title="member_recent_content" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('recent_content_by_x', {'name': $user.username}) }}</xf:title>

<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<xf:breadcrumb href="{{ link('members', $user) }}">{$user.username}</xf:breadcrumb>

<xf:css src="search_results.less" />

<xf:if is="$resultCount">
	<div class="block">
		<div class="block-container">
			<ol class="block-body">
				<xf:foreach loop="$results" value="$result">
					{{ $result.render()|raw }}
				</xf:foreach>
			</ol>
			<xf:if is="$xf.visitor.canSearch()">
				<div class="block-footer">
					<span class="block-footer-controls"><xf:button href="{{ link('search/member', null, {'user_id': $user.user_id}) }}" rel="nofollow">
						{{ phrase('see_more') }}
					</xf:button></span>
				</div>
			</xf:if>
		</div>

		<div class="block-outer block-outer--after">
			<div class="block-outer-opposite">
				<xf:showignored />
			</div>
		</div>
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('x_has_not_posted_any_content_recently', {'name': $user.username}) }}</div>
</xf:if>]]></template>
  <template type="public" title="member_shared_ips_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('shared_ips_for_x', {'name': $user.username}) }}</xf:title>

<xf:breadcrumb href="{{ link('full:members', $user) }}">{$user.username}</xf:breadcrumb>

<xf:macro id="shared_block" arg-user="{$user}" arg-shared="{$shared}" />

<xf:macro id="shared_block" arg-user="!" arg-shared="!">
	<div class="block">
		<div class="block-container">
			<xf:if is="$shared">
				<ol class="block-body">
					<xf:foreach loop="$shared" value="$share">
						<li class="block-row block-row--separated">
							<div class="contentRow">
								<div class="contentRow-figure">
									<xf:avatar user="$share.user" size="s" notooltip="true" />
								</div>
								<div class="contentRow-main">
									<xf:if is="$xf.visitor.canCleanSpam() AND $share.user.isPossibleSpammer()">
										<span class="contentRow-extra">
											<xf:button href="{{ link('spam-cleaner', $share.user) }}"
												class="button--link" overlay="true">
												{{ phrase('spam') }}
											</xf:button>
										</span>
									</xf:if>

									<h3 class="contentRow-header"><xf:username user="$share.user" rich="true" notooltip="true" /></h3>

									<xf:userblurb user="$share.user" class="contentRow-lesser" />

									<div class="contentRow-minor">
										<ul class="listInline listInline--bullet">
											<li><dl class="pairs pairs--inline">
												<dt>{{ phrase('joined') }}</dt>
												<dd><xf:date time="{$share.user.register_date}" /></dd>
											</dl></li>
											<li><dl class="pairs pairs--inline">
												<dt>{{ phrase('messages') }}</dt>
												<dd>{$share.user.message_count|number}</dd>
											</dl></li>
											<li><dl class="pairs pairs--inline">
												<dt>{{ phrase('reaction_score') }}</dt>
												<dd>{$share.user.reaction_score|number}</dd>
											</dl></li>
										</ul>
									</div>

									<div class="contentRow-lesser">
										<ol>
											<xf:foreach loop="{$share.ips}" value="$ip">
												<li>
													<ul class="listInline listInline--bullet">
														<li><a href="{{ link('misc/ip-info', '', {'ip': $ip.ip|ip}) }}" target="_blank">{$ip.ip|ip}</a></li>
														<xf:if is="$ip.total > 1">
															<li>{{ phrase('x_times', {'total': $ip.total|number}) }}</li>
															<li><xf:date time="{$ip.first_date}" /> - <xf:date time="{$ip.last_date}" /></li>
														<xf:else />
															<li>{{ phrase('1_time') }}</li>
															<li><xf:date time="{$ip.first_date}" /></li>
														</xf:if>
													</ul>
												</li>
											</xf:foreach>
										</ol>
									</div>
								</div>
							</div>
						</li>
					</xf:foreach>
				</ol>
				<div class="block-footer">
					<span class="block-footer-counter">{{ phrase('matched_x_users', {'count': count($shared)}) }}</span>
				</div>
			<xf:else />
				<div class="block-body block-row">{{ phrase('no_matching_users_were_found') }}</div>
			</xf:if>
		</div>
	</div>
</xf:macro>]]></template>
  <template type="public" title="member_tooltip" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:css src="member_tooltip.less" />

<div class="tooltip-content-inner">
	<div class="memberTooltip {{ $user.Profile.banner_date ? 'memberTooltip--withBanner' : '' }}">
		<xf:profilebanner user="$user" size="m" class="memberTooltip-header" toggle="memberTooltip--withBanner">
			<span class="memberTooltip-avatar">
				<xf:avatar user="{$user}" size="m" notooltip="true" />
			</span>
			<div class="memberTooltip-headerInfo">
				<xf:if contentcheck="true">
					<div class="memberTooltip-headerAction">
						<xf:contentcheck>
						<!--[XF:header_action_start]-->
						<xf:if contentcheck="true">
							<xf:button class="button--link button--small menuTrigger"
								data-xf-click="menu"
								aria-label="{{ phrase('more_options') }}"
								aria-expanded="false"
								aria-haspopup="true">
								<xf:fa icon="fa-cog" />
							</xf:button>

							<div class="menu" data-menu="menu" aria-hidden="true">
								<div class="menu-content">
									<h3 class="menu-header">{{ phrase('moderator_tools') }}</h3>
									<xf:contentcheck>
										<xf:macro id="member_macros::moderator_menu_actions"
											arg-user="{$user}"
											arg-context="tooltip" />
									</xf:contentcheck>
								</div>
							</div>
						</xf:if>
						<!--[XF:header_action_end]-->
						</xf:contentcheck>
					</div>
				</xf:if>

				<h4 class="memberTooltip-name">
					<span class="memberTooltip-nameWrapper">
						<xf:username user="$user" rich="true" notooltip="true" />
					</span>

					<xf:if is="$user.hasViewableUsernameHistory()">
						<a class="memberTooltip-nameChangeIndicator"
							data-xf-click="menu"
							data-xf-init="tooltip"
							title="{{ phrase('username_changed')|for_attr }}"
							role="button"
							tabindex="0"
							aria-expanded="false"
							aria-haspopup="true"
							aria-label="{{ phrase('username_changed')|for_attr }}"><xf:fa icon="fa-history" /></a>
						<div class="menu" data-menu="menu" aria-hidden="true"
							data-href="{{ link('members/username-history', $user, {'menu': 1}) }}"
							data-load-target=".js-usernameHistoryBody">
							<div class="menu-content">
								<h3 class="menu-header">{{ phrase('previous_usernames') }}</h3>
								<div class="js-usernameHistoryBody">
									<div class="menu-row">
										{{ phrase('loading...') }}
									</div>
								</div>
							</div>
						</div>
					</xf:if>
				</h4>

				<xf:if contentcheck="true">
					<div class="memberTooltip-banners">
						<xf:contentcheck><xf:userbanners user="$user" /></xf:contentcheck>
					</div>
				</xf:if>

				<div class="memberTooltip-blurbContainer">
					<xf:if contentcheck="true">
						<div class="memberTooltip-blurb">
						<xf:contentcheck>
							<xf:userblurb user="$user" tag="div" />
						</xf:contentcheck>
						</div>
					</xf:if>

					<div class="memberTooltip-blurb">
						<dl class="pairs pairs--inline">
							<dt>{{ phrase('joined') }}</dt>
							<dd><xf:date time="$user.register_date" /></dd>
						</dl>
					</div>

					<xf:if contentcheck="true">
						<div class="memberTooltip-blurb">
							<dl class="pairs pairs--inline">
								<dt>{{ phrase('last_seen') }}</dt>
								<dd dir="auto">
									<xf:contentcheck><xf:useractivity user="$user" class="pairs--plainLabel" /></xf:contentcheck>
								</dd>
							</dl>
						</div>
					</xf:if>
				</div>
			</div>
		</xf:profilebanner>
		<div class="memberTooltip-info">
			<div class="memberTooltip-stats">
				<div class="pairJustifier">
					<xf:macro id="member_macros::member_stat_pairs"
						arg-user="{$user}"
						arg-context="tooltip" />
				</div>
			</div>
		</div>

		<xf:if contentcheck="true">
			<hr class="memberTooltip-separator" />

			<div class="memberTooltip-actions">
			<xf:contentcheck>
				<xf:macro id="member_macros::member_action_buttons"
					arg-user="{$user}"
					arg-context="tooltip" />
			</xf:contentcheck>
			</div>
		</xf:if>
	</div>
</div>]]></template>
  <template type="public" title="member_tooltip.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[@_memberTooltip-padding: @xf-paddingMedium;
@_memberTooltip-avatarSize: @avatar-m;

.memberTooltip-header
{
	display: table;
	table-layout: fixed;
	width: 100%;
	padding: @_memberTooltip-padding;
	.xf-memberTooltipHeader();
}

.memberTooltip-avatar
{
	display: table-cell;
	width: (@_memberTooltip-padding * 2 + @_memberTooltip-avatarSize);
	vertical-align: top;
}

.memberTooltip-headerInfo
{
	display: table-cell;
	vertical-align: top;
}

.memberTooltip-name
{
	margin: 0;
	margin-top: -.15em;
	padding: 0;
	font-weight: @xf-fontWeightNormal;
	line-height: (@xf-lineHeightDefault * 0.8);
	.xf-memberTooltipName();

	.m-hiddenLinks();

	.memberTooltip-nameChangeIndicator
	{
		color: @xf-textColorMuted;
		font-size: 75%;

		&:hover
		{
			color: @xf-textColorMuted;
		}
	}

	.memberTooltip--withBanner &
	{
		.xf-memberTooltipNameBanner();

		.memberTooltip-nameChangeIndicator
		{
			color: darken(xf-default(@xf-memberTooltipNameBanner--color, white), 20%);

			&:hover
			{
				color: darken(xf-default(@xf-memberTooltipNameBanner--color, white), 20%);
			}
		}
	}
}

// See XF-197998
@_memberTooltip-textStroke: 0 #000;

.memberTooltip-textStroke()
{
	text-shadow:
		-1px -1px @_memberTooltip-textStroke,
		1px -1px @_memberTooltip-textStroke,
		-1px 1px @_memberTooltip-textStroke,
		1px 1px @_memberTooltip-textStroke;
}

.memberTooltip--withBanner
{
	.memberTooltip-nameWrapper
	{
		.username:hover
		{
			text-decoration: none;
		}
	}

	.username
	{
		.memberTooltip-textStroke();
	}

	.memberTooltip-nameChangeIndicator .fa-history
	{
		.memberTooltip-textStroke();
	}
}

.memberTooltip-headerAction
{
	float: right;
}

.memberTooltip-blurbContainer
{
	.memberTooltip--withBanner &
	{
		.xf-memberTooltipBlurbContainerBanner();

		.memberTooltip-blurb
		{
			&:first-child
			{
				margin-top: 0;
			}

			.pairs dt, a
			{
				color: darken(xf-default(@xf-memberTooltipBlurbContainerBanner--color, white), 20%);
			}
		}
	}
}

.memberTooltip-banners,
.memberTooltip-blurb
{
	margin-top: .25em;
}

.memberTooltip-blurb
{
	font-size: @xf-fontSizeSmall;
}

.memberTooltip-stats
{
	font-size: @xf-fontSizeSmall;

	dl.pairs.pairs--rows > dt
	{
		font-size: @xf-fontSizeSmaller;
	}
}

.memberTooltip-info,
.memberTooltip-actions
{
	padding: @_memberTooltip-padding;
}

.memberTooltip-separator
{
	margin: (@xf-borderSize * -1) @_memberTooltip-padding 0;
	border: none;
	border-top: @xf-borderSize solid @xf-borderColorLight;
}

@media (max-width: @xf-responsiveNarrow)
{
	.memberTooltip-avatar
	{
		width: (@_memberTooltip-padding * 2 + @_memberTooltip-avatarSize * 2 / 3);

		.avatar
		{
			.m-avatarSize((@_memberTooltip-avatarSize * 2 / 3));
		}
	}
}]]></template>
  <template type="public" title="member_trophies" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('trophies_awarded_to_x', {'name': $user.username}) }}</xf:title>

<xf:head option="noindex"><meta name="robots" content="noindex" /></xf:head>

<xf:breadcrumb href="{{ link('members', $user) }}">{$user.username}</xf:breadcrumb>

<div class="block">
	<div class="block-container">
		<xf:if is="$trophies is not empty">
			<ol class="block-body">
				<xf:foreach loop="$trophies" value="$trophy">
					<li class="block-row block-row--separated">
						<div class="contentRow">
							<span class="contentRow-figure contentRow-figure--text contentRow-figure--fixedSmall">{$trophy.Trophy.trophy_points}</span>
							<div class="contentRow-main">
								<span class="contentRow-extra"><xf:date time="{$trophy.award_date}" /></span>
								<h2 class="contentRow-header">{$trophy.Trophy.title}</h2>
								<div class="contentRow-minor">{$trophy.Trophy.description|raw}</div>
							</div>
						</div>
					</li>
				</xf:foreach>
			</ol>
		<xf:else />
			<div class="block-body block-row">{{ phrase('x_has_not_been_awarded_any_trophies_yet', {'name': $user.username}) }}</div>
		</xf:if>
		<div class="block-footer block-footer--split">
			<span class="block-footer-counter">{{ phrase('total_points:') }} {{ number($user.trophy_points) }}</span>
			<span class="block-footer-controls">
				<xf:button href="{{ link('help', {'page_name': 'trophies'}) }}">
					{{ phrase('view_all_available_trophies') }}
				</xf:button>
			</span>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="member_username_history" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:title>{{ phrase('previous_usernames:') }} {$user.username}</xf:title>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:datalist data-xf-init="responsive-data-list">
				<xf:datarow rowtype="header">
					<xf:cell>{{ phrase('old_username') }}</xf:cell>
					<xf:cell>{{ phrase('new_username') }}</xf:cell>
					<xf:cell>{{ phrase('date') }}</xf:cell>
				</xf:datarow>

				<xf:foreach loop="$changes" value="$change">
					<xf:datarow rowclass="dataList-row--noHover">
						<xf:cell class="{{ $change.visible ? '' : 'dataList-cell--alt' }}">
							{$change.old_username}
						</xf:cell>
						<xf:cell class="{{ $change.visible ? '' : 'dataList-cell--alt' }}">
							{$change.new_username}
							<xf:if is="$change.change_reason">
								<a role="button"
									tabindex="0"
									data-xf-init="tooltip"
									data-trigger="hover focus click"
									title="{{ phrase('change_reason:') }} {$change.change_reason}"><xf:trim>
									<xf:fa icon="fa-info-circle" />
								</xf:trim></a>
							</xf:if>
						</xf:cell>
						<xf:cell class="{{ $change.visible ? '' : 'dataList-cell--alt' }}">
							<xf:date time="{$change.change_date}" />
						</xf:cell>
					</xf:datarow>
				<xf:else />
					<xf:datarow>
						<xf:cell colspan="4">{{ phrase('no_entries_have_been_logged') }}</xf:cell>
					</xf:datarow>
				</xf:foreach>
			</xf:datalist>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="member_username_history_menu" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:if is="$changes is not empty">
	<ol class="listPlain">
		<xf:foreach loop="$changes" value="$change">
			<li class="menu-row {{ !$change.visible ? 'menu-row--alt' : '' }}">{$change.old_username}</li>
		</xf:foreach>
	</ol>
	<xf:if is="$seeMore">
		<div class="menu-footer menu-footer--split">
			<div class="menu-footer-main">
				<ul class="listInline listInline--bullet">
					<li><a href="{{ link('members/username-history', $user) }}" data-xf-click="overlay" data-menu-closer="true">{{ phrase('see_more') }}</a></li>
				</ul>
			</div>
		</div>
	</xf:if>
<xf:else />
	<div class="menu-row">{{ phrase('no_items_to_display') }}</div>
</xf:if>]]></template>
  <template type="public" title="member_view" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:title page="{$page}">{$user.username}</xf:title>
<xf:h1 hidden="true" />

<xf:if is="!$user.isSearchEngineIndexable()">
	<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>
</xf:if>

<xf:macro id="metadata_macros::metadata"
	arg-shareUrl="{{ link('canonical:members', $user) }}"
	arg-canonicalUrl="{{ link('canonical:members', $user, {'page': $page}) }}"
	arg-imageUrl="{$user.getAvatarUrl('o', null, true)}" />

<xf:page option="ldJsonHtml">
	<script type="application/ld+json">
		{{ $user.getLdStructuredData({
			'followers_count': $followersCount
		})|json(true)|raw }}
	</script>
</xf:page>

<xf:css src="member.less" />

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<div class="memberHeader {{ $user.Profile.banner_date ? 'memberHeader--withBanner' : '' }}">
				<xf:profilebanner user="$user" size="l" class="memberHeader-main" toggle="memberHeader--withBanner">
					<div class="memberHeader-mainContent">
						<span class="memberHeader-avatar">
							<span class="avatarWrapper">
								<xf:avatar user="{$user}" size="l"
									href="{{ $user.getAvatarUrl('o') ?: '' }}" />
								<xf:if is="$user.user_id == $xf.visitor.user_id && $xf.visitor.canUploadAvatar()">
									<a class="avatarWrapper-update" href="{{ link('account/avatar') }}" data-xf-click="overlay"><span>{{ phrase('edit') }}</span></a>
								</xf:if>
							</span>
						</span>
						<div class="memberHeader-content memberHeader-content--info">
						<xf:if contentcheck="true">
							<div class="memberHeader-actionTop">
								<xf:contentcheck>
								<!--[XF:action_top_start]-->
								<xf:if contentcheck="true">
									<div class="buttonGroup">
										<xf:contentcheck>
											<xf:if is="$user.canBeReported()">
												<xf:button href="{{ link('members/report', $user) }}"
													class="button--link" overlay="true">
													{{ phrase('report_verb') }}
												</xf:button>
											</xf:if>
											<xf:if is="$user.user_id == $xf.visitor.user_id && $xf.visitor.canUploadProfileBanner()">
												<xf:button href="{{ link('account/banner') }}"
													class="button--link" overlay="true">
													{{ phrase('edit_profile_banner') }}
												</xf:button>
											</xf:if>
											<xf:if contentcheck="true">
												<div class="buttonGroup-buttonWrapper">
													<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true">{{ phrase('moderator_tools') }}</xf:button>
													<div class="menu" data-menu="menu" aria-hidden="true">
														<div class="menu-content">
															<h3 class="menu-header">{{ phrase('moderator_tools') }}</h3>
															<xf:contentcheck>
																<xf:macro id="member_macros::moderator_menu_actions"
																	arg-user="{$user}"
																	arg-context="profile" />
															</xf:contentcheck>
														</div>
													</div>
												</div>
											</xf:if>
										</xf:contentcheck>
									</div>
								</xf:if>
								<!--[XF:action_top_end]-->
								</xf:contentcheck>
							</div>
						</xf:if>

						<h1 class="memberHeader-name">
							<span class="memberHeader-nameWrapper">
								<xf:username user="{$user}" rich="true" href="" />
							</span>
							<xf:if is="$user.hasViewableUsernameHistory()">
								<a class="memberHeader-nameChangeIndicator"
									data-xf-click="menu"
									data-xf-init="tooltip"
									title="{{ phrase('username_changed')|for_attr }}"
									role="button"
									tabindex="0"
									aria-expanded="false"
									aria-haspopup="true"
									aria-label="{{ phrase('username_changed')|for_attr }}"><xf:fa icon="fa-history" /></a>
								<div class="menu" data-menu="menu" aria-hidden="true"
									data-href="{{ link('members/username-history', $user, {'menu': 1}) }}"
									data-load-target=".js-usernameHistoryBody">
									<div class="menu-content">
										<h3 class="menu-header">{{ phrase('previous_usernames') }}</h3>
										<div class="js-usernameHistoryBody">
											<div class="menu-row">
												{{ phrase('loading...') }}
											</div>
										</div>
									</div>
								</div>
							</xf:if>
						</h1>

						<xf:if contentcheck="true">
							<div class="memberHeader-banners">
								<xf:contentcheck><xf:userbanners user="$user" /></xf:contentcheck>
							</div>
						</xf:if>

						<div class="memberHeader-blurbContainer">
							<xf:userblurb user="$user" tag="div" class="memberHeader-blurb" />

							<div class="memberHeader-blurb">
								<dl class="pairs pairs--inline">
									<dt>{{ phrase('joined') }}</dt>
									<dd><xf:date time="$user.register_date" /></dd>
								</dl>
							</div>

							<xf:if contentcheck="true">
								<div class="memberHeader-blurb">
									<dl class="pairs pairs--inline">
										<dt>{{ phrase('last_seen') }}</dt>
										<dd dir="auto">
											<xf:contentcheck><xf:useractivity user="$user" class="pairs--plainLabel" /></xf:contentcheck>
										</dd>
									</dl>
								</div>
							</xf:if>
						</div>
					</div>
					</div>
				</xf:profilebanner>

				<div class="memberHeader-content">
					<div class="memberHeader-stats">
						<div class="pairJustifier">
							<xf:macro id="member_macros::member_stat_pairs"
								arg-user="{$user}"
								arg-context="profile" />
						</div>
					</div>

					<xf:if contentcheck="true">
						<hr class="memberHeader-separator" />

						<div class="memberHeader-buttons">
							<xf:contentcheck>
								<xf:macro id="member_macros::member_action_buttons"
									arg-user="{$user}"
									arg-context="profile" />
							</xf:contentcheck>
						</div>
					</xf:if>
				</div>

			</div>
		</div>
		<h2 class="block-tabHeader block-tabHeader--memberTabs tabs hScroller"
			data-xf-init="tabs h-scroller"
			data-panes=".js-memberTabPanes"
			data-state="replace"
			role="tablist">
			<span class="hScroller-scroll">
				<!--[XF:tabs:start]-->
				<xf:if is="$user.canViewPostsOnProfile()">
					<a href="{{ link('members', $user) }}"
						class="tabs-tab is-active"
						role="tab"
						aria-controls="profile-posts">{{ phrase('profile_posts') }}</a>
				</xf:if>

				<xf:if is="$user.canViewLatestActivity()">
					<xf:if is="!$user.canViewPostsOnProfile()">
						<a href="{{ link('members', $user) }}"
							class="tabs-tab is-active"
							role="tab"
							aria-controls="latest-activity">{{ phrase('latest_activity') }}</a>
					<xf:else />
						<a href="{{ link('members/latest-activity', $user) }}"
							rel="nofollow"
							class="tabs-tab"
							id="latest-activity"
							role="tab">{{ phrase('latest_activity') }}</a>
					</xf:if>
				</xf:if>

				<a href="{{ link('members/recent-content', $user) }}"
					rel="nofollow"
					class="tabs-tab"
					id="recent-content"
					role="tab">{{ phrase('postings') }}</a>

				<!--[XF:tabs:after_recent_content]-->

				<a href="{{ link('members/about', $user) }}"
					class="tabs-tab"
					id="about"
					role="tab">{{ phrase('about') }}</a>

				<xf:if is="$xf.visitor.canViewWarnings() && $user.warning_count">
					<a href="{{ link('members/warnings', $user) }}"
						class="tabs-tab"
						id="warnings"
						role="tab">{{ phrase('warnings') }}</a>
				</xf:if>
				<!--[XF:tabs:end]-->
			</span>
		</h2>
	</div>
</div>

<xf:ad position="member_view_below_tabs" arg-user="{$user}" />

<ul class="tabPanes js-memberTabPanes">
	<!--[XF:tab_panes:start]-->
	<xf:if is="$user.canViewPostsOnProfile()">
		<li class="is-active" role="tabpanel" id="profile-posts">
			<xf:js src="xf/inline_mod.js" min="1" />

			<xf:macro id="lightbox_macros::setup" arg-canViewAttachments="{$canViewAttachments}" />

			<div class="block block--messages"
				data-xf-init="lightbox inline-mod"
				data-type="profile_post"
				data-href="{{ link('inline-mod') }}">

				<div class="block-container">
					<div class="block-body js-replyNewMessageContainer">
						<xf:if is="$user.canPostOnProfile()">
							<xf:set var="$firstProfilePost" value="{$profilePosts|first}" />
							<xf:macro id="profile_post_macros::quick_post"
								arg-user="{$user}"
								arg-lastDate="{{ $firstProfilePost.post_date ?: 0 }}"
								arg-containerSelector="< .js-replyNewMessageContainer"
								arg-attachmentData="{$attachmentData}" />
						</xf:if>

						<xf:if is="$profilePosts is not empty">
							<xf:foreach loop="$profilePosts" value="$profilePost">
								<xf:macro id="profile_post_macros::{{ $profilePost.message_state == 'deleted' ? 'profile_post_deleted' : 'profile_post' }}"
									arg-attachmentData="{$profilePostAttachData.{$profilePost.profile_post_id}}"
									arg-profilePost="{$profilePost}" />
							</xf:foreach>
						<xf:else />
							<div class="block-row js-replyNoMessages">{{ phrase('there_no_messages_on_xs_profile_yet', {'name': $user.username}) }}</div>
						</xf:if>
					</div>
				</div>

				<div class="block-outer block-outer--after">
					<xf:pagenav
						page="{$page}" perpage="{$perPage}" total="{$total}"
						link="members" data="{$user}"
						wrapperclass="block-outer-main" />
					<div class="block-outer-opposite">
						<xf:showignored />
						<xf:if is="$canInlineMod">
							<xf:macro id="inline_mod_macros::button" />
						</xf:if>
					</div>
				</div>
			</div>
		</li>
	</xf:if>

	<xf:if is="$user.canViewLatestActivity()">
		<xf:if is="!$user.canViewPostsOnProfile()">
			<li class="is-active" role="tabpanel" id="latest-activity">
				<div class="block">
					<div class="block-container">
						<xf:if is="$newsFeedItems is not empty">
							<ul class="block-body js-newsFeedTarget">
								<xf:foreach loop="$newsFeedItems" value="$item">
									<xf:macro id="news_feed_macros::feed_row" arg-item="{$item}" />
								</xf:foreach>
							</ul>
							<div class="block-footer js-newsFeedLoadMore">
								<span class="block-footer-controls"><xf:button href="{{ link('members/latest-activity', $user, {'before_id': $newsFeedOldestItemId}) }}"
									rel="nofollow"
									data-xf-click="inserter"
									data-append=".js-newsFeedTarget"
									data-replace=".js-newsFeedLoadMore">
									{{ phrase('show_older_items') }}
								</xf:button></span>
							</div>
							<xf:else />
							<div class="block-body js-newsFeedTarget">
								<div class="block-row">{{ phrase('news_feed_is_currently_empty') }}</div>
							</div>
						</xf:if>
					</div>

					<div class="block-outer block-outer--after">
						<div class="block-outer-opposite">
							<xf:showignored />
						</div>
					</div>
				</div>
			</li>
		<xf:else />
			<li data-href="{{ link('members/latest-activity', $user) }}" role="tabpanel" aria-labelledby="latest-activity">
				<div class="blockMessage">{{ phrase('loading...') }}</div>
			</li>
		</xf:if>
	</xf:if>

	<li data-href="{{ link('members/recent-content', $user) }}" role="tabpanel" aria-labelledby="recent-content">
		<div class="blockMessage">{{ phrase('loading...') }}</div>
	</li>

	<!--[XF:tab_panes:after_recent_content]-->

	<li data-href="{{ link('members/about', $user) }}" role="tabpanel" aria-labelledby="about">
		<div class="blockMessage">{{ phrase('loading...') }}</div>
	</li>

	<xf:if is="$xf.visitor.canViewWarnings() && $user.warning_count">
		<li data-href="{{ link('members/warnings', $user) }}" role="tabpanel" aria-labelledby="warnings">
			<div class="blockMessage">{{ phrase('loading...') }}</div>
		</li>
	</xf:if>
	<!--[XF:tab_panes:end]-->
</ul>

<xf:widgetpos id="member_view_sidebar" context-user="{$user}" position="sidebar" />]]></template>
  <template type="public" title="member_warn" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('warn_member:') }} {$user.username}</xf:title>

<xf:if is="$breadcrumbs">
	<xf:breadcrumb source="$breadcrumbs" />
</xf:if>

<xf:js src="xf/form_fill.js" min="1" />

<xf:form action="{$warnUrl}" ajax="true" class="block" data-xf-init="form-fill">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('member') }}"><xf:username user="{$user}" /></xf:formrow>

			<xf:formrow label="{{ phrase('content') }}">
				<xf:if is="{$contentUrl}">
					<a href="{$contentUrl}">{$title}</a>
				<xf:else />
					{$title}
				</xf:if>
			</xf:formrow>

			<xf:radiorow name="warning_definition_id" value="0"
				label="{{ phrase('warning_type') }}">

				<xf:foreach loop="$warnings" value="$warning">
					<xf:option value="{$warning.warning_definition_id}" class="js-FormFiller">{$warning.title}</xf:option>
				</xf:foreach>
				<xf:option value="0" class="js-FormFiller"
					label="{{ phrase('custom_warning:') }}">

					<xf:textbox name="custom_title" maxlength="{{ max_length('XF:Warning', 'title') }}" />
				</xf:option>
			</xf:radiorow>

			<div id="WarningEditableContainer">
				<xf:checkboxrow label="{{ phrase('warning_points') }}">
					<xf:option name="points_enable" value="1" selected="true"
						label="{{ phrase('apply_warning_points:') }}">

						<xf:numberbox name="points" value="1" min="0" />
					</xf:option>
				</xf:checkboxrow>

				<xf:checkboxrow label="{{ phrase('points_expiry') }}">
					<xf:option name="expiry_enable" value="1" selected="true"
						label="{{ phrase('points_expire_after:') }}">

						<xf:dependent>
							<div class="inputGroup">
								<xf:numberbox name="expiry_value" value="1" min="0" />
								<span class="inputGroup-splitter"></span>
								<xf:select name="expiry_unit" value="months" class="input--inline">
									<xf:option value="days">{{ phrase('days') }}</xf:option>
									<xf:option value="weeks">{{ phrase('weeks') }}</xf:option>
									<xf:option value="months">{{ phrase('months') }}</xf:option>
									<xf:option value="years">{{ phrase('years') }}</xf:option>
								</xf:select>
							</div>
						</xf:dependent>
					</xf:option>
				</xf:checkboxrow>
			</div>

			<xf:textarearow name="notes" autosize="true"
				label="{{ phrase('notes') }}"
				explain="{{ phrase('this_will_not_be_shown_to_member_receiving_warning') }}" />
		</div>

		<h2 class="block-formSectionHeader"><span class="block-formSectionHeader-aligner">{{ phrase('member_notification') }}</span></h2>
		<div class="block-body">
			<xf:checkboxrow>
				<xf:option name="start_conversation" value="1"
					data-xf-init="disabler"
					data-container="#WarningConversation"
					data-hide="true"
					label="{{ phrase('send_direct_message_to_x', {'name': $user.username}) }}" />
			</xf:checkboxrow>

			<div id="WarningConversation">
				<xf:textboxrow name="conversation_title"
					maxlength="{{ max_length('XF:ConversationMaster', 'title') }}"
					label="{{ phrase('title') }}" />

				<xf:textarearow name="conversation_message" rows="6" autosize="true"
					maxlength="{$xf.options.messageMaxLength}"
					label="{{ phrase('message') }}" />

				<xf:checkboxrow>
					<xf:option name="open_invite" value="1">
						{{ phrase('allow_x_to_invite_others_to_this_direct_message', {'user': $user.username}) }}
					</xf:option>
					<xf:option name="conversation_locked" value="1">
						{{ phrase('lock_direct_message_no_responses_will_be_allowed') }}
					</xf:option>
				</xf:checkboxrow>
			</div>
		</div>

		<xf:if is="$contentActions.delete OR $contentActions.public">
			<h2 class="block-formSectionHeader"><span class="block-formSectionHeader-aligner">{{ phrase('content_action') }}</span></h2>
			<div class="block-body">
				<xf:radiorow name="content_action" value=""
					label="{{ phrase('content_action') }}">

					<xf:option value="">{{ phrase('do_nothing') }}</xf:option>
					<xf:if is="$contentActions.delete">
						<xf:option value="delete"
							label="{{ phrase('delete_the_content') }}"
							hint="{{ phrase('item_will_remain_viewable_by_moderators_and_may_be_restored_at_later') }}">

							<xf:textbox name="action_options[delete_reason]"
								placeholder="{{ phrase('reason_for_deletion...') }}"
								maxlength="{{ max_length('XF:DeletionLog', 'delete_reason') }}" />
						</xf:option>
					</xf:if>
					<xf:if is="$contentActions.public">
						<xf:option value="public"
							label="{{ phrase('post_public_warning') }}"
							hint="{{ phrase('this_will_be_visible_to_anyone_who_can_see_content_for_warning') }}">

							<xf:textbox name="action_options[public_message]" maxlength="255"
								placeholder="{{ phrase('public_warning_text...') }}" />
						</xf:option>
					</xf:if>
				</xf:radiorow>
			</div>
		</xf:if>

		<xf:submitrow submit="{{ phrase('warn') }}" sticky="true" />
	</div>

	<xf:redirect />
	<xf:hiddenval name="filled_warning_definition_id">0</xf:hiddenval>
	<input type="checkbox" id="WarningEditableInput"
		data-xf-init="disabler" data-container="#WarningEditableContainer"
		checked="checked" style="display: none" />
</xf:form>]]></template>
  <template type="public" title="member_warnings" version_id="2001070" version_string="2.0.10"><![CDATA[<xf:title>{{ phrase('warnings:') }} {$user.username}</xf:title>

<xf:breadcrumb href="{{ link('members', $user) }}">{$user.username}</xf:breadcrumb>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:datalist data-xf-init="responsive-data-list">
				<xf:datarow rowtype="header">
					<xf:cell>{{ phrase('warning') }}</xf:cell>
					<xf:cell>{{ phrase('date') }}</xf:cell>
					<xf:cell>{{ phrase('points') }}</xf:cell>
					<xf:cell>{{ phrase('expiry') }}</xf:cell>
				</xf:datarow>
				<xf:foreach loop="$warnings" value="$warning">
					<xf:datarow rowclass="{{ $warning.is_expired ? 'dataList-row--disabled' : '' }}">
						<xf:cell href="{{ link('warnings', $warning) }}" overlay="true">{$warning.title}</xf:cell>
						<xf:cell href="{{ link('warnings', $warning) }}" overlay="true"><xf:date time="{$warning.warning_date} " /></xf:cell>
						<xf:cell href="{{ link('warnings', $warning) }}" overlay="true">{$warning.points|number}</xf:cell>
						<xf:cell href="{{ link('warnings', $warning) }}" overlay="true">
							<xf:if is="$warning.expiry_date">
								<xf:date time="{$warning.expiry_date} " />
							<xf:else />
								{{ phrase('n_a') }}
							</xf:if>
						</xf:cell>
					</xf:datarow>
				</xf:foreach>
			</xf:datalist>
		</div>
		<div class="block-footer">
			<ul class="listInline listInline--bullet">
				<li>{{ phrase('warning_points:') }} {$user.warning_points|number}</li>
				<li>{{ phrase('total_warnings:') }} {{ count($warnings)|number }}</li>
			</ul>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="member_wrapper" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:sidenav>
	<div class="block">
		<div class="block-container">
			<h3 class="block-header">{{ phrase('members') }}</h3>
			<div class="block-body">
				<a class="blockLink {{ $pageSelected == 'overview' ? 'is-selected' : '' }}" href="{{ link('members') }}">{{ phrase('overview') }}</a>
				<xf:foreach loop="$memberStats" key="$key" value="$memberStat">
					<a class="blockLink {{ $pageSelected == $key ? 'is-selected' : '' }}" href="{{ link('members', null, {'key': $memberStat.member_stat_key}) }}">{$memberStat.title}</a>
				</xf:foreach>
				<xf:if is="$xf.options.enableMemberList">
					<a class="blockLink {{ $pageSelected == 'member_list' ? 'is-selected' : '' }}" href="{{ link('members/list') }}">{{ phrase('registered_members') }}</a>
				</xf:if>
			</div>
		</div>
	</div>
</xf:sidenav>
<xf:page option="sideNavTitle">{{ phrase('members') }}</xf:page>

<xf:widgetpos id="member_wrapper_sidenav" position="sidenav" />
{$innerContent|raw}]]></template>
  <template type="public" title="message.less" version_id="2030036" version_string="2.3.0 Beta 6"><![CDATA[@_message-actionColumnWidth: 40px;
@_messageSimple-userColumnWidth: 70px;

//signature-spicy.local/xf23/css.php?css=public%3A
	// attachments.less%2Cpublic%3A
	// editor.less%2Cpublic%3A
	// message.less%2Cpublic%3A
	// share_controls.less%2Cpublic%3A
	// structured_list.less%2Cpublic%3A
	// xfcf_footer.less%2Cpublic%3A
	// extra.less

.message
{
	+ .message,
	&.message--bordered
	{
		border-top: @xf-borderSize solid @xf-borderColor;
	}
}

.message,
.block--messages .message
{
	&.is-mod-selected
	{
		background: @xf-inlineModHighlightColor;

		.message-cell--user,
		.message-cell--vote
		{
			background: @xf-inlineModHighlightColor;
		}

		.message-userArrow:after
		{
			border-right-color: @xf-inlineModHighlightColor;
		}
	}
}

.message-inner
{
	display: flex;

	& + .message-inner
	{
		border-top: @xf-borderSize solid @xf-borderColor;
	}
}

.message-cell

{
	display: block;
	vertical-align: top;
	padding: @xf-messagePadding;

	.message--quickReply &
	{
		//padding-bottom: 35px; // for the submit row

		> .formRow:last-child
		{
			> dd
			{
				padding-bottom: 0;
			}
		}
	}

	&.message-cell--closer
	{
		padding: @xf-messagePaddingSmall;

		&.message-cell--user
		{
			.m-fixedWidthFlex((@xf-messagePaddingSmall * 2 + @xf-messageUserBlockWidth));

			.message--simple &
			{
				.m-fixedWidthFlex((@xf-messagePaddingSmall * 2 + @_messageSimple-userColumnWidth));

			}
		}

		&.message-cell--action
		{
			.m-fixedWidthFlex((@xf-messagePaddingSmall * 2 + @_message-actionColumnWidth));
		}
	}

	&.message-cell--user,
	&.message-cell--action
	{
		position: relative;
		.xf-messageUserBlock(no-border);
		border-right: @xf-messageUserBlock--border-width solid @xf-messageUserBlock--border-color;
		min-width: 0;
	}

	&.message-cell--vote
	{
		position: relative;
		.xf-messageUserBlock(no-border);
		border-left: @xf-messageUserBlock--border-width solid @xf-messageUserBlock--border-color;
		border-right: 0;
		padding-top: 0;
		padding-bottom: 0;

		.message--solution &
		{
			background: @xf-successBg;
		}

		.solutionIcon
		{
			margin-top: @xf-paddingMedium;
		}
	}

	&.message-cell--user
	{
		.m-fixedWidthFlex((@xf-messagePadding * 2 + @xf-messageUserBlockWidth));

		.message--simple &
		{
			.m-fixedWidthFlex((@xf-messagePaddingSmall * 2 + @_messageSimple-userColumnWidth));
		}
	}

	&.message-cell--action
	{
		.m-fixedWidthFlex((@xf-messagePadding * 2 + @_message-actionColumnWidth));
	}

	&.message-cell--main
	{
		flex: 1 1 auto;
		width: 100%;
		min-width: 0;

		&.is-editing
		{
			padding: 0;
		}

		// should really only happen when editing
		.block
		{
			margin: 0;
		}

		.block-container
		{
			margin: 0;
			border: none;
		}
	}

	&.message-cell--alert
	{
		font-size: @xf-fontSizeSmall;
		flex: 1 1 auto;
		width: 100%;
		min-width: 0;
		.xf-contentAccentBase();

		a
		{
			.xf-contentAccentLink();
		}
	}

	&.message-cell--extra
	{
		.m-fixedWidthFlex((@xf-messagePadding * 2 + 180));
		border-left: @xf-messageUserBlock--border-width solid @xf-messageUserBlock--border-color;
		background: @xf-contentAltBg;

		.formRow-explain
		{
			margin: @xf-paddingMedium 0 0;
			.xf-formExplain();
			.m-textColoredLinks();
			font-size: 80%;
		}
	}

	&.message-cell--header,
	&.message-cell--solutionHeader
	{
		flex: 1 1 auto;
		width: 100%;
		min-width: 0;
		padding: @xf-blockPaddingV @xf-blockPaddingH;
		margin: 0;
	}

	&.message-cell--header
	{
		font-weight: @xf-fontWeightNormal;
		text-decoration: none;
		.xf-blockHeader();
		border-bottom: none;

		.m-hiddenLinks();
	}

	&.message-cell--solutionHeader
	{
		color: @xf-successColor;
		font-size: @xf-fontSizeLarge;
		background: @xf-successBg;
		border-left: @xf-borderSizeFeature solid @xf-successFeatureColor;
	}
}

.message-main
{
	height: 100%;
	display: flex;
	flex-direction: column;
}

.message-content
{
	flex: 1 1 auto;

	// IE11 flex bug
	min-height: 1px;
}

.message-footer
{
	margin-top: auto;
}

.message-expandWrapper
{
	position: relative;
	overflow: hidden;
	.m-transition(-xf-height, height);

	.message-expandContent
	{
		max-height: 250px;
		overflow: hidden;
	}
	.message-expandContent--small
	{
		max-height: 160px;
	}

	&.is-expandable
	{
		.message-expandLink
		{
			display: block;
		}
	}

	&.is-expanded
	{
		.message-expandContent
		{
			max-height: none;
		}

		.message-expandLink
		{
			display: none;
		}
	}
}

.message-column
{
	display: flex;
	flex-direction: column;
	align-items: center;
}

.message-expandLink
{
	display: none;
	position: absolute;
	top: 60%;
	bottom: 0;
	left: 0;
	right: 0;
	cursor: pointer;
	z-index: @zIndex-1;

	.m-gradient(
		fade(@xf-contentBase--background-color, 0%),
		xf-default(@xf-contentBase--background-color, transparent),
		transparent,
		0%,
		70%
	);

	&:empty
	{
		cursor: auto;

		.m-gradient(
			fade(@xf-contentBase--background-color, 0%),
			xf-default(@xf-contentBase--background-color, transparent),
			transparent,
			0%,
			100%
		);
	}

	a
	{
		position: absolute;
		bottom: @xf-messagePadding;
		left: 0;
		right: 0;
		text-align: center;
		font-size: @xf-fontSizeSmall;
		color: @xf-textColorAttention;
		text-decoration: none;
	}
}

.message-microdata
{
	display: none;
}

@media (max-width: @xf-messageSingleColumnWidth)
{
	.message:not(.message--forceColumns)
	{
		.message-inner
		{
			display: block;
		}

		.message-cell
		{
			display: block;
			.m-clearFix();

			&.message-cell--user
			{
				width: auto;
				border-right: none;
				border-bottom: @xf-messageUserBlock--border-width solid @xf-messageUserBlock--border-color;
			}

			&.message-cell--vote
			{
				width: auto;
				border-left: none;
				border-top: @xf-messageUserBlock--border-width solid @xf-messageUserBlock--border-color;

				.solutionIcon
				{
					margin-top: 0;
				}
			}

			&.message-cell--main
			{
				padding-left: @xf-messagePadding;
			}

			&.message-cell--extra
			{
				width: auto;
				border-left: none;
				border-top: @xf-messageUserBlock--border-width solid @xf-messageUserBlock--border-color;
			}
		}

		.message-column
		{
			flex-direction: row;
			justify-content: space-evenly;
		}
	}

	.message--simple:not(.message--forceColumns),
	.message--quickReply:not(.message--forceColumns)
	{
		.message-cell.message-cell--user
		{
			display: none;
		}
	}
}

// ######################## USER COLUMN #########################

.message-userArrow
{
	position: absolute;
	top: (@xf-messagePadding * 2);
	right: -1px;

	.m-triangleLeft(xf-default(@xf-messageUserBlock--border-color, transparent), @xf-messagePadding);

	&:after
	{
		position: absolute;
		top: ((@xf-messagePadding - 1px) * -1);
		right: (@xf-messagePadding * -1);
		content: "";

		.m-triangleLeft(@xf-contentBg, (@xf-messagePadding - 1px));
	}
}

.message-avatar
{
	text-align: center;

	.avatar
	{
		vertical-align: bottom;
	}
}

.message-avatar-wrapper
{
	position: relative;
	display: inline-block;
	vertical-align: bottom;
	margin-bottom: .5em;

	.message-avatar-online
	{
		// center bottom position
		position: absolute;
		left: 50%;
		bottom: -.4em;
		margin-left: -.615em;

		height: calc(1em + 4px);
		background: @xf-messageUserBlock--background-color;
		border-radius: 50%;
		padding: 2px;

		&:before
		{
			.m-faIcon(@fa-var-solid-user-circle, 1em);
			color: rgb(127, 185, 0);
			vertical-align: top;
		}
	}
}

.message-name
{
	font-weight: @xf-fontWeightHeavy;
	font-size: inherit;
	text-align: center;
	margin: 0;
}

.message-userTitle
{
	font-size: @xf-fontSizeSmaller;
	font-weight: normal;
	text-align: center;
	margin: 0;
}

.message-userBanner.userBanner
{
	display: block;
	margin-top: 3px;
}

.message-userExtras
{
	margin-top: 3px;
	font-size: @xf-fontSizeSmaller;
}

.message--deleted
{
	.message-userDetails
	{
		display: none;
	}

	.message-avatar .avatar
	{
		.m-avatarSize(@avatar-s);
	}
}

@media (max-width: @xf-messageSingleColumnWidth)
{
	.message:not(.message--forceColumns)
	{
		.message-userArrow
		{
			top: auto;
			right: auto;
			bottom: -1px;
			left: (@avatar-s / 2);

			border: none;
			.m-triangleUp(xf-default(@xf-messageUserBlock--border-color, transparent), @xf-messagePadding);

			&:after
			{
				top: auto;
				right: auto;
				left: ((@xf-messagePadding - 1px) * -1);
				bottom: (@xf-messagePadding * -1);

				border: none;
				.m-triangleUp(@xf-contentBg, (@xf-messagePadding - 1px));
			}
		}

		&.is-mod-selected
		{
			.message-userArrow:after
			{
				border-color: transparent;
				border-bottom-color: @xf-inlineModHighlightColor;
			}
		}

		.message-user
		{
			display: flex;
		}

		.message-avatar
		{
			margin-bottom: 0;

			.avatar
			{
				.m-avatarSize(@avatar-s);

				& + .message-avatar-online
				{
					left: auto;
					right: 0;
				}
			}
		}

		.message-userDetails
		{
			flex: 1;
			min-width: 0;
			padding-left: @xf-messagePadding;
		}

		.message-name
		{
			text-align: left;
		}

		.message-userTitle,
		.message-userBanner.userBanner
		{
			display: inline-block;
			text-align: left;
			margin: 0;
		}

		.message-userExtras
		{
			display: none;
		}

		.message--deleted
		{
			.message-userDetails
			{
				display: block;
			}
		}
	}
}

// ####################### MAIN COLUMN ####################

.message-content
{
	position: relative;

	.js-selectToQuoteEnd
	{
		height: 0;
		font-size: 0;
		overflow: hidden;
	}

	.message--multiQuoteList &
	{
		min-height: 80px;
		max-height: 120px;
		overflow: hidden;

		.message-body
		{
			pointer-events: none;
		}
	}
}

.message-attribution
{
	color: @xf-textColorMuted;
	font-size: @xf-fontSizeSmaller;
	padding-bottom: 3px;
	border-bottom: @xf-borderSize solid @xf-borderColorFaint;
	.m-clearFix();

	&.message-attribution--plain
	{
		border-bottom: none;
		font-size: inherit;
		padding-bottom: 0;
	}

	&.message-attribution--split
	{
		display: flex;
		align-items: flex-end;
		flex-wrap: wrap;

		.message-attribution-opposite
		{
			margin-left: auto;
		}
	}
}

.message-attribution-main
{
	float: left;
}

.message-attribution-opposite
{
	float: right;

	&.message-attribution-opposite--list
	{
		display: flex;
		.m-listPlain();

		> li
		{
			margin-left: 14px;

			&:first-child
			{
				margin-left: 0;
			}
		}
	}

	a
	{
		color: inherit;

		&:hover
		{
			text-decoration: none;
			color: @xf-linkHoverColor;
		}
	}
}

.message-attribution-gadget
{
	display: inline-block;
	margin: -3px -7px;
	padding: 3px 7px;
}

.message-attribution-source
{
	font-size: @xf-fontSizeSmaller;
	margin-bottom: @xf-paddingSmall;
}

.message-attribution-user
{
	font-weight: @xf-fontWeightHeavy;

	.avatar
	{
		display: none;
	}

	.attribution
	{
		display: inline;
		font-size: inherit;
		font-weight: inherit;
		margin: 0;
	}
}

.message-newIndicator,
a.message-newIndicator
{
	.xf-messageNewIndicator();
	white-space: nowrap;
}

a.message-newIndicator:hover
{
	color: @xf-messageNewIndicator--color;
}

.message-minorHighlight
{
	font-size: @xf-fontSizeSmall;
	color: @xf-textColorFeature;
}

.message-fields
{
	margin: @xf-messagePadding 0;

	.message--simple &
	{
		margin-top: @xf-messagePaddingSmall;
		margin-bottom: @xf-messagePaddingSmall;
	}

	&:last-child
	{
		margin-bottom: 0;
	}
}

.message-body
{
	margin: @xf-messagePadding 0;
	font-family: @xf-fontFamilyBody;
	.m-clearFix();

	.message--simple &
	{
		margin-top: @xf-messagePaddingSmall;
		margin-bottom: @xf-messagePaddingSmall;
	}

	&:last-child
	{
		margin-bottom: 0;
	}

	.message-title
	{
		// basically replicates .structItem-title
		font-size: @xf-fontSizeLarge;
		font-weight: @xf-fontWeightNormal;
		margin: 0 0 @xf-messagePadding 0;
		padding: 0;
	}
}

.message-attachments
{
	margin: .5em 0;
}

.message-attachments-list
{
	.m-listPlain();
}

.message-lastEdit
{
	margin-top: .5em;
	color: @xf-textColorMuted;
	font-size: @xf-fontSizeSmallest;
	text-align: right;
}

.message-signature
{
	margin-top: @xf-messagePadding;
	.xf-messageSignature();
}

.message-actionBar .actionBar-set
{
	margin-top: @xf-messagePadding;
	font-size: @xf-fontSizeSmall;

	.message--simple &
	{
		margin-top: @xf-messagePaddingSmall;
	}
}

.message .likesBar
{
	margin-top: @xf-messagePadding;
	padding: @xf-messagePaddingSmall;
}

.message .reactionsBar
{
	margin-top: @xf-messagePadding;
	padding: @xf-messagePaddingSmall;
}

.message-historyTarget
{
	margin-top: @xf-messagePadding;
}

.message-gradient
{
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 60px;

	.m-gradient(fade(@xf-contentBg, 0%), @xf-contentBg, @xf-contentBg, 0%, 90%);
}

.message-responses
{
	margin-top: @xf-messagePaddingSmall;
	font-size: @xf-fontSizeSmall;

	.editorPlaceholder
	{
		.input
		{
			font-size: inherit;
		}
	}
}

.message-responseRow
{
	margin-top: (@xf-minorBlockContent--border-width * -1);
	.xf-minorBlockContent();
	padding: @xf-messagePaddingSmall;

	// note that border radiuses are very difficult to do here due to a lot of dynamic showing/hiding

	&.message-responseRow--likes,
	&.message-responseRow--reactions
	{
		.m-transitionFadeDown(@display: flex);
		align-items: center;
	}
}

@media (max-width: @xf-messageSingleColumnWidth)
{
	.message:not(.message--forceColumns)
	{
		.message-attribution-user .avatar
		{
			display: inline-flex;
			.m-avatarSize((@xf-fontSizeNormal * @xf-lineHeightDefault));
		}

		.message-content
		{
			// this is 1px to workaround an IE11 issue - see #139187
			min-height: 1px;
		}
	}
}

@media (max-width: @xf-responsiveNarrow)
{
	.message-signature
	{
		display: none;
	}
}

// MESSAGE MENU

.message-menuGroup
{
	display: inline-block;
}

.message-menuTrigger
{
	display: inline-block;

	&:after
	{
		.m-menuGadget(); // 1em
		text-align: right;
	}

	&:hover:after
	{
		color: black;
	}
}

.message-menu-section
{
	&--editDelete
	{
		.menu-linkRow
		{
			font-weight: @xf-fontWeightHeavy;
			font-size: @xf-fontSizeNormal;
		}
	}
}

.message-menu-link
{
	&--delete i:after
	{
		.m-faContent(@fa-var-trash-alt);
	}
	&--edit i:after
	{
		.m-faContent(@fa-var-edit);
	}
	&--report i:after
	{
		.m-faContent(@fa-var-frown);
	}
	&--warn i:after
	{
		.m-faContent(@fa-var-exclamation-triangle);
	}
	&--spam i:after
	{
		.m-faContent(@fa-var-ban);
	}
	&--ip i:after
	{
		.m-faContent(@fa-var-sitemap);
	}
	&--history i:after
	{
		.m-faContent(@fa-var-history);
	}
	&--follow i:after
	{
		.m-faContent(@fa-var-user-plus);
	}
	&--ignore i:after
	{
		.m-faContent(@fa-var-user-times);
	}
	&--share i:after
	{
		.m-faContent(@fa-var-share-alt);
	}
}

// ############################# CUSTOM FOR MESSAGE VARIANTS ##############

.message-articleUserInfo
{
	.xf-messageUserBlock(no-border);
	border-top: @xf-messageUserBlock--border-width solid @xf-messageUserBlock--border-color;

	&:last-child
	{
		.m-borderBottomRadius(@block-borderRadius-inner);
	}

	.contentRow-figure
	{
		width: @xf-messageUserBlockWidth;
		text-align: center;
	}

	.contentRow-main
	{
		padding-left: (@xf-messagePadding * 2);
		text-align: left;
	}

	@media (max-width: @xf-messageSingleColumnWidth)
	{
		.contentRow-figure
		{
			width: auto;
		}

		.contentRow-main
		{
			padding-left: @xf-paddingLarge;
		}
	}
}

.message-articleWrittenBy
{
	color: @xf-textColorMuted;
	font-size: @xf-fontSizeSmall;
}

.message-articleUserName
{
	font-weight: @xf-fontWeightHeavy;
	font-size: @xf-fontSizeLarger;
 	margin: 0;
	display: inline;
}

.message-articleUserBlurb,
.message-articleUserBlurb div
{
	font-size: @xf-fontSizeSmall;
	display: inline;
}

.message-articleUserAbout
{
	font-size: @xf-fontSizeSmall;
	margin: .5em 0;
}

.message-articleUserBanners .userBanner
{
	margin-bottom: 3px;
}

.message-articleUserStats
{
	font-size: @xf-fontSizeSmall;
	color: @xf-textColorMuted;
}

@media (max-width: @xf-responsiveNarrow)
{
	.message-articleUserStats
	{
		display: none;
	}
}

// ############################# COMMENTS ###############

.comment
{
}

.comment-inner
{
	display: table;
	table-layout: fixed;
	width: 100%;
}

.comment-avatar
{
	display: table-cell;
	width: 24px;
	vertical-align: top;

	.avatar,
	img
	{
		vertical-align: bottom;
	}
}

.comment-main
{
	display: table-cell;
	padding-left: @xf-messagePadding;
	vertical-align: top;
}

.comment-contentWrapper
{
	margin-bottom: @xf-messagePaddingSmall;
}

.comment-user
{
	font-weight: @xf-fontWeightHeavy;
}

.comment-body
{
	display: inline;
}

.comment-note
{
	color: @xf-textColorMuted;
	font-size: @xf-fontSizeSmallest;
}

.comment-input
{
	display: block;
	height: 2.34em;
	margin-bottom: @xf-messagePaddingSmall;
}

.comment-actionBar .actionBar-set
{
	margin-top: @xf-messagePaddingSmall;
	color: @xf-textColorMuted;
}

.comment-likes,
.comment-reactions
{
	.m-transitionFadeDown(@display: flex);

	margin-top: @xf-messagePaddingSmall;
	font-size: @xf-fontSizeSmaller;
	align-items: center;
}

// ################################## MESSAGE QUICK REPLY ADDITIONS #############

.formSubmitRow.formSubmitRow--messageQr
{
	.formSubmitRow-controls
	{
		text-align: center;
		padding-left: 0;
		padding-right: 0;
		margin-left: @xf-messagePadding;
		margin-right: @xf-messagePadding;

		@media (max-width: @xf-formResponsive)
		{
			text-align: right;
		}
	}
}

// ################################## MESSAGE NOTICES #############################

.messageNotice
{
	margin: @xf-messagePaddingSmall 0;
	padding: @xf-messagePaddingSmall @xf-messagePadding;
	.xf-contentAccentBase();
	font-size: @xf-fontSizeSmaller;
	border-left: @xf-borderSizeMinorFeature solid @xf-borderColorAttention;

	&.messageNotice--nested
	{
		border-left-width: @xf-borderSize;
	}

	&:not(.messageNotice--highlighted)
	{
		a,
		a:hover
		{
			.xf-contentAccentLink();
		}
	}

	&:before
	{
		display: inline-block;
		.m-faBase();
		padding-right: .2em;
		font-size: 125%;
		color: @xf-textColorAttention;
	}

	&.messageNotice--highlighted
	{
		.xf-contentHighlightBase();
		border-left-color: @xf-borderColorFeature;

		&:before
		{
			color: @xf-textColorFeature;
		}
	}

	&.messageNotice--deleted:before { .m-faContent(@fa-var-trash-alt); } // , .88em
	&.messageNotice--moderated:before { .m-faContent(@fa-var-shield); } // , 1em
	&.messageNotice--warning:before { .m-faContent(@fa-var-exclamation-triangle); } // , 1em
	&.messageNotice--ignored:before { .m-faContent(@fa-var-microphone-slash); } // , 1.25em
}

// ##################### MESSAGE VARIANTS/RESPONSIVE ##################

@media (min-width: @xf-responsiveEdgeSpacerRemoval)
{
	.block:not(.block--messages)
	{
		@{block-noStripSel} > .block-body:first-child > .message:first-child,
		.block-topRadiusContent.message,
		.block-topRadiusContent > .message:first-child
		{
			.message-inner:first-of-type .message-cell
			{
				&:first-child { border-top-left-radius: @block-borderRadius-inner; }
				&:last-child { border-top-right-radius: @block-borderRadius-inner; }
			}
		}

		@{block-noStripSel} > .block-body:last-child > .message:last-child,
		.block-bottomRadiusContent.message,
		.block-bottomRadiusContent > .message:last-child
		{
			.message-inner:last-of-type .message-cell
			{
				&:first-child { border-bottom-left-radius: @block-borderRadius-inner; }
				&:last-child { border-bottom-right-radius: @block-borderRadius-inner; }
			}
		}
	}
}

.block--messages
{
	.block-container
	{
		background: none;
		border: none;
	}

	.message,
	.block-row
	{
		.xf-contentBase();
		.xf-blockBorder();
		border-radius: @xf-blockBorderRadius;

		+ .message,
		+ .block-row
		{
			margin-top: @xf-blockPaddingV;
		}
	}

	.block-filterBar
	{
		.xf-blockBorder();
		border-radius: @xf-blockBorderRadius;
		margin-bottom: @xf-blockPaddingV;
	}

	.message-spacer
	{
		+ .message,
		+ .block-row
		{
			margin-top: @xf-blockPaddingV;
		}
	}

	.message-inner .message-cell
	{
		border-radius: 0;
	}

	.message-inner:first-of-type .message-cell
	{
		&:first-child { border-top-left-radius: @block-borderRadius-inner; }
		&:last-child { border-top-right-radius: @block-borderRadius-inner; }
	}

	.message-inner:last-of-type .message-cell
	{
		&:first-child { border-bottom-left-radius: @block-borderRadius-inner; }
		&:last-child { border-bottom-right-radius: @block-borderRadius-inner; }
	}

	@media (max-width: @xf-messageSingleColumnWidth)
	{
		.message-inner
		{
			.message-cell
			{
				border-radius: 0;
			}

			&:first-of-type .message-cell:first-child
			{
				border-top-left-radius: @block-borderRadius-inner;
				border-top-right-radius: @block-borderRadius-inner;
			}

			&:last-of-type .message-cell:last-child
			{
				border-bottom-left-radius: @block-borderRadius-inner;
				border-bottom-right-radius: @block-borderRadius-inner;
			}
		}

		.message--simple .message-cell--user + .message-cell
		{
			border-radius: 0;
			border-top-left-radius: @block-borderRadius-inner;
			border-top-right-radius: @block-borderRadius-inner;
		}
	}

	@media (max-width: @xf-responsiveEdgeSpacerRemoval)
	{
		.message,
		.block-row,
		.block-filterBar
		{
			border-left: none;
			border-right: none;
			border-radius: 0;
		}

		.message .message-inner .message-cell
		{
			border-radius: 0;

			&:first-child,
			&:last-child
			{
				border-radius: 0;
			}
		}

		.message--simple .message-cell--user + .message-cell
		{
			border-radius: 0;
		}
	}
}

.message--article
{
	&.is-moderated
	{
		background: @xf-contentHighlightBg;
	}

	&.is-deleted
	{
		opacity: .65;
	}
}

// article preview view for thread list
.message--articlePreview
{
	display: flex;
	flex-direction: column;
	min-width: 0;
	margin-bottom: @xf-paddingLarge;
	overflow: hidden;

	&:last-child
	{
		margin-bottom: 0;
	}

	.articlePreview-main
	{
		display: flex;
		flex-direction: column;
		flex: 1 1 auto;
	}

	.articlePreview-image
	{
		flex: 0 0 auto;
		width: 100%;
		max-width: 750px;
		text-decoration: none;

		> img
		{
			display: block;
			width: 100%;
			aspect-ratio: 4 / 3;
			object-fit: cover;
		}

		& + .articlePreview-text
		{
			.bbImageWrapper,
			.bbImage
			{
				display: none;
			}
		}
	}

	.articlePreview-text
	{
		flex: 1 1 auto;
		display: flex;
		min-width: 0;
		flex-direction: column;
		padding: @xf-messagePadding;

		.bbWrapper
		{
			.m-fadeOutLines(8, @xf-contentBg);
		}
	}

	.articlePreview-title
	{
		margin: 0;
		font-size: @xf-fontSizeLarge;
	}

	.articlePreview-content
	{
		flex: 1 1 auto;
	}

	.articlePreview-links
	{
		text-align: right;
		padding-top: @xf-blockPaddingV;
	}

	.articlePreview-statuses
	{
		float: left;
		display: flex;
		list-style: none;
		margin: 0;
		padding: 0;

		> li
		{
			margin-right: 8px;
		}

		.message-newIndicator
		{
			font-size: @xf-fontSizeSmall;
		}
	}

	.articlePreview-footer
	{
		padding: 0 @xf-blockPaddingH;
	}

	.articlePreview-meta
	{
		display: flex;
		align-items: center;

		border-top: solid 1px @xf-borderColor;
		padding: @xf-blockPaddingV 0;

		color: @xf-textColorMuted;
		font-size: @xf-fontSizeSmall;

		> li
		{
			margin-right: @xf-blockPaddingH;

			&:last-child
			{
				margin-right: 0;
			}
		}
	}

	.articlePreview-replies
	{
		white-space: nowrap;
	}

	.articlePreview-by,
	.articlePreview-repliesLabel
	{
		display: none;
	}
}

.block--articles.block--messages.block--expanded
{
	.article-title
	{
		// from .p-title-value
		margin: 0 0 5px;
		font-size: @xf-fontSizeLargest;
		font-weight: @xf-fontWeightNormal;
	}

	.message-snippet-link
	{
		margin-top: .5em;
		text-align: center;
	}

	.message + .message
	{
		margin-top: @xf-paddingLargest;
	}
}

// expanded article grid behavior
@supports (display: grid)
{
	@media (min-width: @xf-responsiveMedium)
	{
		.block--previews .block-body
		{
			display: grid;
			gap: @xf-paddingLarge;
			grid-template-rows: auto;
			grid-template-columns: repeat(2, 1fr);
			grid-template-areas: "a a";

			> .message:first-of-type:last-of-type
			{
				grid-area: a;
			}

			> .message--articlePreview
			{
				margin-bottom: 0;

				// first five
				&:nth-of-type(-n+5)
				{
					.articlePreview-title
					{
						font-size: @xf-fontSizeLarger;
					}

					.articlePreview-image
					{
						max-width: none;

						> img
						{
							aspect-ratio: 5 / 3;
						}
					}

					.articlePreview-meta
					{
						.articlePreview-by
						{
							display: block;
						}
					}
				}

				// first
				&:first-of-type
				{
					grid-area: a;

					.articlePreview-title
					{
						font-size: @xf-fontSizeLargest;
					}

					.articlePreview-meta
					{
						border-top: none;
					}

					.articlePreview-main
					{
						flex-direction: row-reverse;
					}

					.articlePreview-image
					{
						width: 50%;
						height: 100%;

						> img
						{
							height: 100%;
						}
					}
				}
			}
		}
	}

	// max width multi-columns
	.m-maxPreviewColumns()
	{
		.block--previews .block-body
		{
			grid-template-columns: repeat(4, 1fr);
			grid-template-areas:
				"a a a a"
				"b_1 b_1 b_2 b_2"
				"b_3 b_3 b_4 b_4";

			> .message:first-of-type:last-of-type
			{
				grid-area: a;
			}

			> .message--articlePreview
			{
				&:nth-of-type(1) { grid-area: a; }
				&:nth-of-type(2) { grid-area: b_1; }
				&:nth-of-type(3) { grid-area: b_2; }
				&:nth-of-type(4) { grid-area: b_3; }
				&:nth-of-type(5) { grid-area: b_4; }
			}
		}
	}

	.p-body-main:not(.p-body-main--withSidebar)
	{
		@media (min-width: @xf-responsiveWide)
		{
			.m-maxPreviewColumns();
		}
	}

	.p-body-main--withSidebar
	{
		@media (min-width: (@xf-responsiveWide + @xf-sidebarWidth))
		{
			.m-maxPreviewColumns();
		}
	}
}]]></template>
  <template type="public" title="message_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="user_info"
	arg-user="!"
	arg-fallbackName=""
	arg-includeMicrodata="{{ true }}"
	arg-itemProp="">

	<section class="message-user"
		{{ $includeMicrodata ? 'itemprop="' . $itemProp . '" itemscope itemtype="https://schema.org/Person" itemid="' . ($user ? link('canonical:members', $user) : '') . '"' : '' }}>

		<xf:if is="$includeMicrodata && $user">
			<meta itemprop="url" content="{{ link('canonical:members', $user) }}" />
		</xf:if>

		<div class="message-avatar {{ ($xf.options.showMessageOnlineStatus && $user && $user.isOnline()) ? 'message-avatar--online' : '' }}">
			<div class="message-avatar-wrapper">
				<xf:avatar user="$user" size="m" defaultname="{$fallbackName}" itemprop="{{ $includeMicrodata ? 'image' : '' }}" />
				<xf:if is="$xf.options.showMessageOnlineStatus && $user && $user.isOnline()">
					<span class="message-avatar-online" tabindex="0" data-xf-init="tooltip" data-trigger="auto" title="{{ phrase('online_now')|for_attr }}"></span>
				</xf:if>
			</div>
		</div>
		<div class="message-userDetails">
			<h4 class="message-name"><xf:username user="$user" rich="true" defaultname="{$fallbackName}" itemprop="{{ $includeMicrodata ? 'name' : '' }}" /></h4>
			<xf:usertitle user="$user" tag="h5" class="message-userTitle" banner="true" itemprop="{{ $includeMicrodata ? 'jobTitle' : '' }}" />
			<xf:userbanners user="$user" tag="div" class="message-userBanner" itemprop="{{ $includeMicrodata ? 'jobTitle' : '' }}" />
		</div>
		<xf:if is="$user.user_id">
			<xf:set var="$extras" value="{{ property('messageUserElements') }}" />
			<xf:if contentcheck="true">
				<div class="message-userExtras">
				<xf:contentcheck>
					<xf:if is="$extras.register_date">
						<dl class="pairs pairs--justified">
							<dt>{{ phrase('joined') }}</dt>
							<dd>{{ date($user.register_date) }}</dd>
						</dl>
					</xf:if>
					<xf:if is="$extras.message_count">
						<dl class="pairs pairs--justified">
							<dt>{{ phrase('messages') }}</dt>
							<dd>{$user.message_count|number}</dd>
						</dl>
					</xf:if>
					<xf:if is="$extras.solutions AND $user.question_solution_count">
						<dl class="pairs pairs--justified">
							<dt>{{ phrase('solutions') }}</dt>
							<dd>{$user.question_solution_count|number}</dd>
						</dl>
					</xf:if>
					<xf:if is="$extras.reaction_score">
						<dl class="pairs pairs--justified">
							<dt>{{ phrase('reaction_score') }}</dt>
							<dd>{$user.reaction_score|number}</dd>
						</dl>
					</xf:if>
					<xf:if is="$extras.trophy_points && $xf.options.enableTrophies">
						<dl class="pairs pairs--justified">
							<dt>{{ phrase('points') }}</dt>
							<dd>{$user.trophy_points|number}</dd>
						</dl>
					</xf:if>
					<xf:if is="$extras.age && $user.Profile.age">
						<dl class="pairs pairs--justified">
							<dt>{{ phrase('age') }}</dt>
							<dd>{$user.Profile.age}</dd>
						</dl>
					</xf:if>
					<xf:if is="$extras.location && $user.Profile.location">
						<dl class="pairs pairs--justified">
							<dt>{{ phrase('location') }}</dt>
							<dd>
								<xf:if is="$xf.options.geoLocationUrl">
									<a href="{{ link('misc/location-info', '', {'location': $user.Profile.location}) }}" rel="nofollow noreferrer" target="_blank" class="u-concealed">{$user.Profile.location}</a>
								<xf:else />
									{$user.Profile.location}
								</xf:if>
							</dd>
						</dl>
					</xf:if>
					<xf:if is="$extras.website && $user.Profile.website">
						<dl class="pairs pairs--justified">
							<dt>{{ phrase('website') }}</dt>
							<dd><a href="{$user.Profile.website}" rel="nofollow" target="_blank">{$user.Profile.website|url_display('host', phrase('visit_site'))}</a></dd>
						</dl>
					</xf:if>
					<xf:if is="$extras.custom_fields">
						<xf:macro id="custom_fields_macros::custom_fields_values"
							arg-type="users"
							arg-group="personal"
							arg-set="{$user.Profile.custom_fields}"
							arg-additionalFilters="{{ ['message'] }}"
							arg-valueClass="pairs pairs--justified" />
						<xf:if is="$user.canViewIdentities()">
							<xf:macro id="custom_fields_macros::custom_fields_view"
								arg-type="users"
								arg-group="contact"
								arg-set="{$user.Profile.custom_fields}"
								arg-additionalFilters="{{ ['message'] }}"
								arg-valueClass="pairs pairs--justified" />
						</xf:if>
					</xf:if>
				</xf:contentcheck>
				</div>
			</xf:if>
		</xf:if>
		<span class="message-userArrow"></span>
	</section>
</xf:macro>

<xf:macro id="user_info_simple" arg-user="!" arg-fallbackName="" arg-includeMicrodata="{{ true }}" arg-itemProp="">
	<header class="message-user"
		{{ $includeMicrodata ? 'itemprop="' . $itemProp . '" itemscope itemtype="https://schema.org/Person" itemid="' . ($user ? link('canonical:members', $user) : '') . '"' : '' }}>

		<xf:if is="$includeMicrodata">
			<meta itemprop="name" content="{{ $user.username ?: $fallbackName }}" />
			<xf:if is="$user">
				<meta itemprop="url" content="{{ link('canonical:members', $user) }}" />
			</xf:if>
		</xf:if>

		<div class="message-avatar">
			<div class="message-avatar-wrapper">
				<xf:avatar user="$user" size="s" defaultname="{$fallbackName}" itemprop="{{ $includeMicrodata ? 'image' : '' }}" />
			</div>
		</div>
		<span class="message-userArrow"></span>
	</header>
</xf:macro>

<xf:macro id="attachments" arg-attachments="!" arg-message="!" arg-canView="!">
	<xf:if contentcheck="true">
		<xf:css src="attachments.less" />
		<section class="message-attachments">
			<h4 class="block-textHeader">{{ phrase('attachments') }}</h4>
			<ul class="attachmentList">
				<xf:contentcheck>
					<xf:foreach loop="$attachments" value="$attachment" if="!$message.isAttachmentEmbedded($attachment)">
						<xf:macro id="attachment_macros::attachment_list_item"
							arg-attachment="{$attachment}"
							arg-canView="{$canView}" />
					</xf:foreach>
				</xf:contentcheck>
			</ul>
		</section>
	</xf:if>
</xf:macro>

<xf:macro id="signature" arg-user="!">
	<xf:if is="$xf.visitor.Option.content_show_signature AND $user.Profile.signature">
		<xf:if contentcheck="true">
			<aside class="message-signature">
			<xf:contentcheck>
				{{ bb_code($user.Profile.signature, 'user:signature', $user) }}
			</xf:contentcheck>
			</aside>
		</xf:if>
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="message_page" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<div class="blockMessage">{$message}</div>]]></template>
  <template type="public" title="metadata_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="metadata"
	arg-siteName=""
	arg-title=""
	arg-description=""
	arg-type=""
	arg-shareUrl=""
	arg-canonicalUrl=""
	arg-imageUrl=""
	arg-twitterCard="summary">

	<xf:if is="$siteName is not empty">
		<xf:macro id="site_name" arg-siteName="{$siteName}" />
	</xf:if>
	<xf:if is="$title is not empty">
		<xf:macro id="title" arg-title="{$title}" />
	</xf:if>
	<xf:if is="$description is not empty">
		<xf:macro id="description" arg-description="{$description}" />
	</xf:if>
	<xf:if is="$type is not empty">
		<xf:macro id="type" arg-type="{$type}" />
	</xf:if>
	<xf:if is="$shareUrl is not empty">
		<xf:macro id="share_url" arg-shareUrl="{$shareUrl}" />
	</xf:if>
	<xf:if is="$canonicalUrl is not empty">
		<xf:macro id="canonical_url" arg-canonicalUrl="{$canonicalUrl}" />
	</xf:if>
	<xf:if is="$imageUrl is not empty">
		<xf:macro id="image_url" arg-imageUrl="{$imageUrl}" arg-twitterCard="{$twitterCard}" />
	</xf:if>
</xf:macro>

<xf:macro id="site_name" arg-siteName="!" arg-output="{{ false }}">
	<xf:set var="$meta"><meta property="og:site_name" content="{$siteName|for_attr}" /></xf:set>
	<xf:macro id="output" arg-option="meta_site_name" arg-meta="{$meta}" arg-output="{$output}" />
</xf:macro>

<xf:macro id="title" arg-title="!" arg-output="{{ false }}">
	<xf:set var="$meta">
		<meta property="og:title" content="{$title|for_attr}" />
		<meta property="twitter:title" content="{{ snippet($title, 70)|for_attr }}" />
	</xf:set>
	<xf:macro id="output" arg-option="meta_title" arg-meta="{$meta}" arg-output="{$output}" />
</xf:macro>

<xf:macro id="description" arg-description="!" arg-output="{{ false }}">
	<xf:set var="$meta">
		<meta name="description" content="{{ snippet($description|strip_tags, 160)|for_attr }}" />
		<meta property="og:description" content="{{ snippet($description|strip_tags, 300)|for_attr }}" />
		<meta property="twitter:description" content="{{ snippet($description|strip_tags, 200)|for_attr }}" />
	</xf:set>
	<xf:macro id="output" arg-option="meta_description" arg-meta="{$meta}" arg-output="{$output}" />
</xf:macro>

<xf:macro id="type" arg-type="!" arg-output="{{ false }}">
	<xf:set var="$meta"><meta property="og:type" content="{$type}" /></xf:set>
	<xf:macro id="output" arg-option="meta_type" arg-meta="{$meta}" arg-output="{$output}" />
</xf:macro>

<xf:macro id="share_url" arg-shareUrl="!" arg-output="{{ false }}">
	<xf:set var="$meta"><meta property="og:url" content="{$shareUrl}" /></xf:set>
	<xf:macro id="output" arg-option="meta_share_url" arg-meta="{$meta}" arg-output="{$output}" />
</xf:macro>

<xf:macro id="canonical_url" arg-canonicalUrl="!" arg-output="{{ false }}">
	<xf:set var="$meta"><link rel="canonical" href="{$canonicalUrl}" /></xf:set>
	<xf:macro id="output" arg-option="meta_canonical_url" arg-meta="{$meta}" arg-output="{$output}" />
</xf:macro>

<xf:macro id="image_url" arg-imageUrl="!" arg-twitterCard="summary" arg-output="{{ false }}">
	<xf:set var="$meta">
		<meta property="og:image" content="{$imageUrl}" />
		<meta property="twitter:image" content="{$imageUrl}" />
		<meta property="twitter:card" content="{$twitterCard}" />
	</xf:set>
	<xf:macro id="output" arg-option="meta_image_url" arg-meta="{$meta}" arg-output="{$output}" />
</xf:macro>

<xf:macro id="output" arg-option="!" arg-meta="!" arg-output="{{ false }}">
	<xf:if is="$output">{$meta|raw}<xf:else /><xf:head option="{$option}">{$meta|raw}</xf:head></xf:if>
</xf:macro>

<xf:macro id="oembed" arg-oembedUrl="!" arg-title="!">
	<xf:if is="$oembedUrl && $xf.options.allowExternalEmbed">
		<link rel="alternate" type="application/json+oembed" href="{$oembedUrl|for_attr}" title="{$title|for_attr}" />
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="misc_cookies" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:title>{{ phrase('cookie_consent_heading') }}</xf:title>

<xf:head option="robots"><meta name="robots" content="noindex" /></xf:head>

<xf:if is="$unconsentedGroups || $unconsentedThirdParties">
	<xf:form action="{{ link('misc/cookies', null, {'update': true, 'add': true}) }}" class="block"
		ajax="true" data-force-flash-message="true"
		data-xf-init="cookie-consent-form">

		<div class="block-container">
			<div class="block-body">
				<xf:inforow>
					{{ phrase('to_access_this_page_we_will_need_your_consent_to_set_some_cookies') }}
				</xf:inforow>

				<xf:formrow rowtype="fullWidth">
					<xf:if is="$unconsentedGroups">
						<xf:foreach loop="$unconsented" value="$group">
							<dl class="pairs">
								<dt>{{ $xf.cookieConsent.getGroupLabel($group) }}</dt>
								<dd>{{ $xf.cookieConsent.getGroupDescription($group) }}</dd>
							</dl>

							<xf:hiddenval name="consent[{$group}]">1</xf:hiddenval>
						</xf:foreach>
					</xf:if>

					<xf:if is="$unconsentedThirdParties">
						<dl class="pairs">
							<dt>{{ $xf.cookieConsent.getGroupLabel('_third_party') }}</dt>
							<dd>{{ $xf.cookieConsent.getGroupDescription('_third_party') }}</dd>
						</dl>

						<xf:hiddenval name="consent[_third_party]">1</xf:hiddenval>
					</xf:if>
				</xf:formrow>
			</div>

			<xf:redirect url="{$redirect}" />

			<xf:submitrow submit="{{ phrase('accept_third_party_cookies') }}" rowtype="simple" />
		</div>
	</xf:form>
<xf:else />
	<div class="block">
		<div class="block-container">
			<div class="block-body block-row">
				<xf:macro name="cookie_consent_form" />
			</div>
		</div>
	</div>
</xf:if>

<xf:macro name="cookie_consent_form">

		<div class="cookies-main">
			<h2>{{ phrase('cookie_consent_heading') }}</h2>
			<p>{{ phrase('cookie_consent_description', {'link':link('help/cookies')}) }}</p>
			<p><a href="#" data-xf-click="toggle" data-target="#cookieConsentConfig">{{ phrase('cookie_consent_configure') }}</a></p>
		</div>

		<div class="cookies-buttons u-inputSpacer _u-alignCenter">
			<xf:button href="{{ link('misc/cookies', null, {'update': true, 'accept': true, 't': csrf_token()}) }}"
				rel="nofollow"
				class="button--notice button--primary"
				data-xf-click="cookie-consent"
				xicon="confirm">

				{{ phrase('accept_all_cookies') }}
			</xf:button>

			<xf:button href="{{ link('misc/cookies', null, {'update': true, 'reject': true, 't': csrf_token()}) }}"
				rel="nofollow"
				class="button--link"
				data-xf-click="cookie-consent"
				xicon="cancel">

				{{ phrase('reject_optional_cookies') }}
			</xf:button>
		</div>

	<xf:form action="{{ link('misc/cookies', null, {'update': true}) }}"
		ajax="true" data-force-flash-message="true"
		data-xf-init="cookie-consent-form"
		id="cookieConsentConfig">

		<div class="cookies-options">

			<xf:checkboxrow rowtype="fullWidth"
				explain="{{ $xf.cookieConsent.getGroupDescription('_required') }}">

				<xf:option selected="{{ true }}" disabled="{{ true }}"
					labelclass="iconic--toggle"
					label="{{ $xf.cookieConsent.getGroupLabel('_required') }}" />
			</xf:checkboxrow>

			<xf:foreach loop="$xf.cookieConsent.getGroups(false, false)" value="$group">
				<xf:checkboxrow rowtype="fullWidth"
					explain="{{ $xf.cookieConsent.getGroupDescription($group) }}">

					<xf:option name="consent[{$group}]" selected="{{ $xf.cookieConsent.isGroupConsented($group)}}"
						class="js-consent_{$group}"
						labelclass="iconic--toggle"
						label="{{ $xf.cookieConsent.getGroupLabel($group) }}" />
				</xf:checkboxrow>
			</xf:foreach>

			<xf:checkboxrow rowtype="fullWidth"
				explain="{{ $xf.cookieConsent.getGroupDescription('_third_party') }}">

				<xf:option name="consent[_third_party]" selected="{{ $xf.cookieConsent.isGroupConsented('_third_party') }}"
					class="js-consent__third_party"
					labelclass="iconic--toggle"
					label="{{ $xf.cookieConsent.getGroupLabel('_third_party') }}" />
			</xf:checkboxrow>

			<xf:formrow rowtype="fullWidth">
				<ul class="listInline listInline--bullet">
					<li><a href="{{ link('help/cookies') }}">{{ phrase('detailed_cookie_usage') }}</a></li>
					<xf:if is="$xf.privacyPolicyUrl">
						<li><a href="{$xf.privacyPolicyUrl}">{{ phrase('privacy_policy') }}</a></li>
					</xf:if>
				</ul>
			</xf:formrow>

		</div>

		<xf:button type="submit" class="button--notice">{{ phrase('save_cookie_preferences') }}</xf:button>
	</xf:form>

</xf:macro>

<xf:macro name="third_party_consent_form"
	arg-unconsented="{{ [] }}"
	arg-embedHtml=""
	arg-siteId=""
	arg-id="">

	<xf:form action="{{ link('misc/cookies', null, {'update': true, 'add': true}) }}" class="bbMediaJustifier"
		ajax="true" data-redirect="off"
		data-media-site-id="{$siteId}" data-media-key="{$id}"
		data-xf-init="cookie-consent-form">

		<div class="block-rowMessage block-rowMessage--alt">
			<div class="u-dimmed u-smaller">
				{{ phrase('to_view_this_content_we_will_need_your_consent_to_set_third_party_cookies', {
					'cookies_link': link('help/cookies')
				}) }}
			</div>
			<div class="u-inputSpacer">
				<xf:button type="submit" class="button--small">{{ phrase('accept_third_party_cookies') }}</xf:button>
			</div>

			<xf:hiddenval name="consent[_third_party]">1</xf:hiddenval>
			<xf:hiddenval name="_xfRedirect">{$redirect}</xf:hiddenval>
		</div>

		<xf:if is="$embedHtml">
			<template class="js-embedHtml">{$embedHtml|raw}</template>
		</xf:if>
	</xf:form>
</xf:macro>]]></template>
  <template type="public" title="moderator_log_moderator_actions" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ $title ? $title . ' - ' : '' }}{{ phrase('moderator_actions') }}</xf:title>

<xf:breadcrumb source="$breadcrumbs" />

<xf:if is="$logs">
	<div class="block">
		<div class="block-container js-logList-{$type}{$id}">
			<div class="block-body">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('moderator') }}</xf:cell>
						<xf:cell>{{ phrase('action') }}</xf:cell>
						<xf:cell>{{ phrase('date') }}</xf:cell>
						<xf:cell>&nbsp;</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$logs" value="$entry">
						<xf:datarow>
							<xf:cell><xf:username user="$entry.User" /></xf:cell>
							<xf:cell>{$entry.action_text}</xf:cell>
							<xf:cell><xf:date time="{$entry.log_date}" /></xf:cell>
							<xf:action href="{{ base_url($entry.content_url) }}">{{ phrase('view') }}</xf:action>
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<div class="block-footer">
				<xf:if is="$hasNext">
					<span class="block-footer-controls"><xf:button href="{{ link($linkRoute, $linkData, $linkParams + {'page': $page + 1}) }}"
						data-xf-click="inserter"
						data-replace=".js-logList-{$type}{$id}"
						data-scroll-target="< .overlay">
						{{ phrase('continue...') }}
					</xf:button></span>
				<xf:else />
					{{ phrase('previous_moderation_action_logs_may_have_been_removed') }}
				</xf:if>
			</div>
		</div>
	</div>
<xf:else />
	<div class="blockMessage">{{ phrase('no_moderator_actions_have_been_logged') }}</div>
</xf:if>]]></template>
  <template type="public" title="multi_quote_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="block"
	arg-quotes="!"
	arg-messages="!"
	arg-containerRelation="!"
	arg-dateKey="!"
	arg-bbCodeContext="!"
	arg-titleKey="title"
	arg-userRelation="User"
	arg-usernameKey="username"
	arg-messageKey="message">

	<xf:macro id="nestable_macros::setup"
		arg-includeLess="{{ false }}" />

	<xf:css src="message.less" />
	<xf:css src="multi_quote_sort.less" />

	<xf:title>{{ phrase('review_selected_messages') }}</xf:title>

	<div class="block">
		<div class="block-container">
			<div class="block-row block-row--minor">
				{{ phrase('drag_icon_to_rearrange_messages') }}
			</div>
			<div class="block-body nestable-container" data-xf-init="nestable" data-max-depth="1" data-value-function="serialize">
				<ol class="nestable-list">
					<xf:foreach loop="array_keys($quotes)" value="$messageId">
						<xf:set var="$message" value="{$messages.{$messageId}}" />
						<xf:if is="$message">
							<xf:foreach loop="{$quotes.{$messageId}}" key="$key" value="$quote">
								<li class="nestable-item" data-id="{$messageId}-{$key}">
									<div class="message message--simple message--bordered message--multiQuoteList message--forceColumns">
										<div class="message-inner">
											<div class="message-cell message-cell--closer message-cell--action">
												<div class="nestable-handle" aria-label="{{ phrase('drag_handle')|for_attr }}">
													<span class="u-muted"><xf:fa icon="fa-bars fa-2x" /></span>
												</div>
											</div>
											<div class="message-cell message-cell--closer message-cell--main">
												<div class="message-content">
													<div class="message-attribution">
														<div class="contentRow contentRow--alignMiddle">
															<div class="contentRow-figure">
																<xf:avatar user="{$message.{$userRelation}}" size="xxs" defaultname="{$message.{$usernameKey}}" href="" />
															</div>
															<div class="contentRow-main contentRow-main--close">
																<ul class="listInline listInline--bullet">
																	<li><xf:username user="{$message.{$userRelation}}" defaultname="{$message.{$usernameKey}}" href="" /></li>
																	<li><xf:date time="{$message.{$dateKey}}" /></li>
																	<li>{$message.{$containerRelation}.{$titleKey}}</li>
																</ul>
															</div>
															<span class="contentRow-extra">
																<xf:button href="javascript:"
																	class="button--small button--link js-removeMessage">
																	{{ phrase('remove') }}
																</xf:button>
															</span>
														</div>
													</div>

													<article class="message-body">
														<xf:if is="$quote === true">
															{{ bb_code($message.{$messageKey}, $bbCodeContext, $message) }}
														<xf:else />
															{{ bb_code($quote, $bbCodeContext, $message) }}
														</xf:if>
													</article>

													<div class="message-gradient"></div>
												</div>
											</div>
										</div>
									</div>
								</li>
							</xf:foreach>
						</xf:if>
					</xf:foreach>
				</ol>
				<xf:hiddenval name="message_ids" value="" />
			</div>
			<div class="block-footer">
				<span class="block-footer-controls"><xf:button class="button--primary button--small u-pullRight js-quoteMessages" icon="quote">
					{{ phrase('quote_messages') }}
				</xf:button></span>
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="button"
	arg-href="!"
	arg-messageSelector="!"
	arg-storageKey="!"
	arg-addMessage="{{ phrase('multiquote_add_message') }}"
	arg-removeMessage="{{ phrase('multiquote_remove_message') }}"
	arg-row="{{ false }}">

	<xf:js src="xf/action.js, xf/message.js" min="1" />
	<xf:set var="$button">
		<xf:button class="button--link button--multiQuote is-hidden"
			data-xf-init="multi-quote"
			data-href="{$href}"
			data-message-selector="{$messageSelector}"
			data-storage-key="{$storageKey}"
			data-add-message="{$addMessage}"
			data-remove-message="{$removeMessage}"
			icon="quote">
			{{ phrase('insert_quotes...') }}
		</xf:button>
	</xf:set>
	<xf:if is="$row">
		<xf:formrow label="">
			{$button|raw}
		</xf:formrow>
	<xf:else />
		{$button|raw}
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="multi_quote_sort.less" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[.nestable-list
{
	.m-listPlain();
}

.nestable-placeholder,
.nestable-empty
{
	opacity: .6;
	background: @xf-contentAltBg;
	border: @xf-borderSize solid @xf-borderColor;
	border-bottom: none;
	margin-left: 0;
}

.nestable-item,
.nestable-empty,
.nestable-placeholder
{
	position: relative;
	vertical-align: middle;
}

.nestable-dragel
{
	position: absolute;
	pointer-events: none;
	z-index: 9999;
	background: @xf-contentBg;
	opacity: 0.9;
}

.nestable-handle
{
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 10000;
	cursor: move;

	display: flex;
	align-items: center;
	justify-content: center;
}]]></template>
  <template type="public" title="nestable.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[.nestable-container
{
	position: relative;

	&:first-child
	{
		padding: 0 @xf-paddingMedium;
	}

	.m-clearFix();
}

.nestable-list
{
	.m-listPlain();

	width: 100%;
	position: relative;

	.nestable-list
	{
		padding-left: 30px;
	}

	.nestable-collapsed
	{
		.nestable-list
		{
			display: none;
		}
	}
}

.nestable-item
{
	.nestable-handle,
	.nestable-content,
	.nestable-button
	{
		border: 1px solid @xf-borderColor;
		border-radius: @xf-borderRadiusSmall;
		padding: @xf-paddingMedium;

		background-color: @xf-contentAltBg;
	}

	.nestable-button
	{
		float: left;

		color: @xf-textColorMuted;
		margin-left: 30px;

		border-radius: 0;
		border-left: none;
		border-right: none;
		outline: none;
	}

	.nestable-handle
	{
		position: absolute;
		margin: 0;
		left: 0;
		top: 0;
		width: 30px;

		text-align: center;
		color: @xf-textColorMuted;
		cursor: move;

		border-right: @xf-borderSize solid @xf-borderColor;
		border-top-right-radius: 0;
		border-bottom-right-radius: 0;

		&.nestable-handle--full
		{
			bottom: 0;
		}
	}

	.nestable-content
	{
		text-overflow: ellipsis;
		overflow: hidden;
		white-space: nowrap;

		color: @xf-textColorMuted;

		margin: @xf-paddingMedium 0;
		margin-left: 30px;

		border-left: none;
		border-top-left-radius: 0;
		border-bottom-left-radius: 0;
	}

	.nestable-label
	{
		font-size: @xf-fontSizeSmaller;

		&.nestable-label--smallest
		{
			font-size: @xf-fontSizeSmallest;
		}
	}
}

.nestable-item,
.nestable-empty,
.nestable-placeholder
{
	position: relative;
	vertical-align: middle;
}

.nestable-placeholder,
.nestable-empty
{
	opacity: .6;
	border: 1px solid @xf-borderColor;
	background: @xf-contentAltBg;
	border-radius: @xf-borderRadiusSmall;
	margin: @xf-paddingMedium 0;
}

.nestable-empty
{
	min-height: floor((@xf-fontSizeNormal * 1.475 + 2 * @xf-paddingMedium + 2 * @xf-borderSize));
}

.nestable-dragel
{
	position: absolute;
	pointer-events: none;
	z-index: 9999;
}]]></template>
  <template type="public" title="nestable_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="setup" arg-includeLess="{{ true }}">
	<xf:if is="$includeLess">
		<xf:css src="public:nestable.less" />
	</xf:if>
	<xf:js src="xf/nestable.js" min="1" />
</xf:macro>]]></template>
  <template type="public" title="news_feed" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('your_news_feed') }}</xf:title>

<xf:wrap template="whats_new_wrapper">
	<xf:set var="$pageSelected" value="news_feed" />
</xf:wrap>

<div class="block">
	<div class="block-container">
		<xf:if is="$newsFeedItems is not empty">
			<ul class="block-body js-newsFeedTarget">
				<xf:foreach loop="$newsFeedItems" value="$item">
					<xf:macro id="news_feed_macros::feed_row" arg-item="{$item}" />
				</xf:foreach>
			</ul>
			<div class="block-footer js-newsFeedLoadMore">
				<span class="block-footer-controls"><xf:button href="{{ link('whats-new/news-feed', null, {'before_id': $oldestItemId}) }}"
					rel="nofollow"
					data-xf-click="inserter"
					data-append=".js-newsFeedTarget"
					data-replace=".js-newsFeedLoadMore">
					{{ phrase('show_older_items') }}
				</xf:button></span>
			</div>
		<xf:elseif is="$beforeId" />
			<div class="block-body js-newsFeedTarget">
				<div class="block-row block-row--separated">{{ phrase('there_no_more_items_to_show') }}</div>
			</div>
		<xf:else />
			<div class="block-body js-newsFeedTarget">
				<div class="block-row">
					{{ phrase('your_news_feed_is_currently_empty') }}
					<a href="{{ link('account/following') }}">{{ phrase('follow_people_to_fill_it') }}</a>
				</div>
			</div>
		</xf:if>
	</div>
</div>]]></template>
  <template type="public" title="news_feed_attached_images" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="attached_images" arg-attachments="!" arg-link="!">
	<xf:if contentcheck="true">
		<ul class="listPlain listInline listInline--block">
			<xf:contentcheck>
				<xf:foreach loop="$attachments" value="$attachment" if="$attachment.has_thumbnail">
					<li>
						<a href="{$link}"><img src="{$attachment.thumbnail_url}" alt="{$attachment.filename}"
							width="{$attachment.thumbnail_width}" height="{$attachment.thumbnail_height}" loading="lazy"/></a>
					</li>
				</xf:foreach>
			</xf:contentcheck>
		</ul>
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="news_feed_item_post_insert" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<div class="contentRow-title">
	{{ phrase('news_feed_post_insert', {
		'username': username_link($user, false, {'defaultname': $newsFeed.username}),
		'threadTitle': '<a href="' . link('posts', $content) . '">' . prefix('thread', $content.Thread) . $content.Thread.title . '</a>'
	}) }}
</div>

<div class="contentRow-snippet">{{ snippet($content.message, $xf.options.newsFeedMessageSnippetLength, {'stripQuote': true}) }}</div>
<xf:if is="{$content.attach_count}">
	<xf:macro id="news_feed_attached_images::attached_images"
		arg-attachments="{$content.Attachments}" arg-link="{{ link('posts', $content) }}" />
</xf:if>

<div class="contentRow-minor"><xf:date time="{$newsFeed.event_date}" /></div>]]></template>
  <template type="public" title="news_feed_item_post_reaction" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="reaction_item_post::reaction_snippet"
	arg-reactionUser="{$user}"
	arg-reactionId="{$extra.reaction_id}"
	arg-post="{$content}"
	arg-date="{$newsFeed.event_date}" />]]></template>
  <template type="public" title="news_feed_item_profile_post_comment_insert" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<div class="contentRow-title">
	{{ phrase('news_feed_profile_post_comment_insert', {
		'usernamePoster': username_link($user, false, {'defaultname': $newsFeed.username}),
		'usernameReceiver': '<a href="' . link('profile-posts/comments', $content) . '">' . $content.ProfilePost.username . '</a>'
	}) }}
</div>

<div class="contentRow-snippet">{{ snippet($content.message, $xf.options.newsFeedMessageSnippetLength, {'stripQuote': true}) }}</div>

<div class="contentRow-minor"><xf:date time="{$newsFeed.event_date}" /></div>]]></template>
  <template type="public" title="news_feed_item_profile_post_comment_reaction" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="reaction_item_profile_post_comment::reaction_snippet"
	arg-reactionUser="{$user}"
	arg-reactionId="{$extra.reaction_id}"
	arg-comment="{$content}"
	arg-date="{$newsFeed.event_date}" />]]></template>
  <template type="public" title="news_feed_item_profile_post_insert" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<div class="contentRow-title">
	<xf:if is="$user.user_id == $content.ProfileUser.user_id">
		{{ phrase('news_feed_profile_post_insert_status', {
			'username': username_link($user, false, {'defaultname': $newsFeed.username}),
			'href': link('profile-posts', $content)
		}) }}
	<xf:else />
		{{ phrase('news_feed_profile_post_insert', {
			'usernamePoster': username_link($user, false, {'defaultname': $newsFeed.username}),
			'usernameReceiver': '<a href="' . link('profile-posts', $content) . '">' . $content.ProfileUser.username . '</a>'
		}) }}
	</xf:if>
</div>

<div class="contentRow-snippet">{{ snippet($content.message, $xf.options.newsFeedMessageSnippetLength, {'stripQuote': true}) }}</div>

<div class="contentRow-minor"><xf:date time="{$newsFeed.event_date}" /></div>]]></template>
  <template type="public" title="news_feed_item_profile_post_reaction" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="reaction_item_profile_post::reaction_snippet"
	arg-reactionUser="{$user}"
	arg-reactionId="{$extra.reaction_id}"
	arg-profilePost="{$content}"
	arg-date="{$newsFeed.event_date}" />]]></template>
  <template type="public" title="news_feed_item_thread_insert" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<div class="contentRow-title">
	{{ phrase('news_feed_thread_insert', {
		'username': username_link($user, false, {'defaultname': $newsFeed.username}),
		'threadTitle': '<a href="' . link('threads', $content) . '">' . prefix('thread', $content) . $content.title . '</a>',
		'forumTitle': '<a href="' . link('forums', $content.Forum) . '">' . $content.Forum.title . '</a>'
	}) }}
</div>

<div class="contentRow-snippet">{{ snippet($content.FirstPost.message, $xf.options.newsFeedMessageSnippetLength, {'stripQuote': true}) }}</div>
<xf:if is="{$content.FirstPost.attach_count}">
	<xf:macro id="news_feed_attached_images::attached_images"
		arg-attachments="{$content.FirstPost.Attachments}" arg-link="{{ link('threads', $content) }}" />
</xf:if>

<div class="contentRow-minor"><xf:date time="{$newsFeed.event_date}" /></div>]]></template>
  <template type="public" title="news_feed_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="feed_row" arg-item="!">
	<li class="block-row block-row--separated {{ $xf.visitor.isIgnoring($item.user_id) ? ' is-ignored' : '' }}" data-author="{{ $item.User ? $item.User.username : $item.username }}">
		<xf:macro id="feed_item" arg-item="{$item}" />
	</li>
</xf:macro>

<xf:macro id="feed_item" arg-item="!">
	<div class="contentRow{{ $item.isVisible() ? '' : ' is-deleted' }}">
		<span class="contentRow-figure">
			<xf:avatar user="$item.User" size="s" defaultname="{$item.username}" />
		</span>
		<div class="contentRow-main">
			{$item.render()|raw}
		</div>
	</div>
</xf:macro>]]></template>
  <template type="public" title="node_list.less" version_id="2030031" version_string="2.3.0 Beta 1"><![CDATA[@_nodeList-statsCellBreakpoint: 1000px;

.node
{
	& + .node
	{
		border-top: @xf-borderSize solid @xf-borderColorFaint;
	}
}

.node-body
{
	display: table;
	table-layout: fixed;
	width: 100%;
}

.node-icon
{
	display: table-cell;
	vertical-align: middle;
	text-align: center;
	width: 46px;
	padding: @xf-paddingLarge 0 @xf-paddingLarge @xf-paddingLarge;

	i
	{
		display: block;
		color: @xf-nodeIconReadColor;
		line-height: 1.125;
		font-size: 36px;

		.node--unread &
		{
			opacity: 1;
			color: @xf-nodeIconUnreadColor;
		}
	}
}

.node-main
{
	display: table-cell;
	vertical-align: middle;
	padding: @xf-paddingLarge;
}

.node-stats
{
	display: table-cell;
	width: 140px;
	vertical-align: middle;
	text-align: center;
	padding: @xf-paddingLarge 0;

	> dl.pairs.pairs--rows
	{
		width: 50%;
		float: left;
		margin: 0;
		padding: 0 (@xf-paddingMedium / 2);

		&:first-child
		{
			padding-left: 0;
		}

		&:last-child
		{
			padding-right: 0;
		}
	}

	&.node-stats--single
	{
		width: 100px;

		> dl.pairs.pairs--rows
		{
			width: 100%;
			float: none;
		}
	}

	&.node-stats--triple
	{
		width: 240px;

		> dl.pairs.pairs--rows
		{
			width: 33.333%;
		}
	}

	@media (max-width: @_nodeList-statsCellBreakpoint)
	{
		display: none;
	}
}

@_nodeExtra-avatarSize: 36px;

.node-extra
{
	display: table-cell;
	vertical-align: middle;
	width: 280px;
	padding: @xf-paddingLarge;

	font-size: @xf-fontSizeSmall;
}

.node-extra-row
{
	.m-overflowEllipsis();
	color: @xf-textColorMuted;
}

.node-extra-icon
{
	padding-right: @xf-paddingLarge;
	float: left;

	.avatar
	{
		.m-avatarSize(@_nodeExtra-avatarSize);
	}
}

.node-title
{
	margin: 0;
	padding: 0;
	font-size: @xf-fontSizeLarge;
	font-weight: @xf-fontWeightNormal;

	.node--unread &
	{
		font-weight: @xf-fontWeightHeavy;
	}
}

.node-description
{
	font-size: @xf-fontSizeSmall;
	color: @xf-textColorDimmed;

	&.node-description--tooltip
	{
		.has-js:not(.has-touchevents) &
		{
			display: none;
		}
	}
}

.node-meta
{
	font-size: @xf-fontSizeSmall;
}

.node-statsMeta
{
	display: none;

	@media (max-width: @_nodeList-statsCellBreakpoint)
	{
		display: inline;
	}
}

.node-bonus
{
	font-size: @xf-fontSizeSmall;
	color: @xf-textColorMuted;
	text-align: right;
}

.node-subNodesFlat
{
	font-size: @xf-fontSizeSmall;
	margin-top: .3em;

	.node-subNodesLabel
	{
		display: none;
	}
}

.node-subNodeMenu
{
	display: inline;

	.menuTrigger
	{
		color: @xf-textColorMuted;
	}
}

@media (max-width: @xf-responsiveMedium)
{
	.node-main
	{
		display: block;
		width: auto;

		.node--link &,
		.node--page &
		{
			// #168882: we only display the title for these types
			// so keep these as table-cells for vertical alignment
			display: table-cell;
		}
	}

	.node-extra
	{
		display: block;
		width: auto;
		// this gives an equivalent of medium padding between main and extra, with main still having large
		margin-top: (@xf-paddingMedium - @xf-paddingLarge);
		padding-top: 0;
	}

	.node-extra-row
	{
		display: inline-block;
		vertical-align: top;
		max-width: 100%;
	}

	.node-extra-icon
	{
		display: none;
	}

	.node-description,
	.node-stats,
	.node-subNodesFlat
	{
		display: none;
	}
}

@media (max-width: @xf-responsiveNarrow)
{
	.node-subNodeMenu
	{
		display: none;
	}
}

.subNodeLink
{
	&:before,
	.subNodeLink-icon
	{
		display: inline-block;
		width: 1.28571429em;
		margin-right: .3em;
		text-decoration: none;
		text-align: center;

		color: @xf-nodeIconReadColor;
	}

	&:before
	{
		.m-faBase();
	}

	&:hover:before
	{
		&:before,
		.subNodeLink-icon
		{
			text-decoration: none;
		}
	}

	&.subNodeLink--unread
	{
		font-weight: @xf-fontWeightHeavy;

		&:before,
		.subNodeLink-icon
		{
			color: @xf-nodeIconUnreadColor;
		}
	}

	&.subNodeLink--category:before
	{
		.m-faContent(@fa-var-comments);
	}

	&.subNodeLink--page:before
	{
		.m-faContent(@fa-var-file-alt);
	}

	&.subNodeLink--link:before
	{
		.m-faContent(@fa-var-link);
	}

	&.subNodeLink--search::before
	{
		.m-faContent(@fa-var-search);
	}
}

.node-subNodeFlatList
{
	.m-listPlain();
	.m-clearFix();

	> li
	{
		display: inline-block;
		margin-right: 1em;

		&:last-child
		{
			margin-right: 0;
		}
	}

	ol,
	ul,
	.node-subNodes
	{
		display: none;
	}
}

.subNodeMenu
{
	.m-listPlain();

	ol,
	ul
	{
		.m-listPlain();
	}

	.subNodeLink
	{
		display: block;
		padding: @xf-blockPaddingV @xf-blockPaddingH;
		text-decoration: none;
		cursor: pointer;

		&:hover
		{
			text-decoration: none;
			background: @xf-contentHighlightBg;
		}
	}

	li li .subNodeLink { padding-left: 1.5em; }
	li li li .subNodeLink { padding-left: 3em; }
	li li li li .subNodeLink { padding-left: 4.5em; }
	li li li li li .subNodeLink { padding-left: 6em; }
	li li li li li li .subNodeLink { padding-left: 7.5em; }
}]]></template>
  <template type="public" title="node_list_category" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="depth1" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
	<div class="block block--category block--category{$node.node_id}">
		<span class="u-anchorTarget" id="{$node.Data.getCategoryAnchor()}"></span>
		<div class="block-container">
			<h2 class="block-header">
				<a href="{{ link('categories', $node) }}">{$node.title}</a>
				<xf:if is="{$node.description}"><span class="block-desc">{$node.description|raw}</span></xf:if>
			</h2>
			<div class="block-body">
				<xf:macro id="forum_list::node_list"
					arg-children="{$children}"
					arg-extras="{$childExtras}"
					arg-depth="{{ $depth + 1 }}" />
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="depth2" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
	<div class="node node--id{$node.node_id} node--depth{$depth} node--category {{ $extras.hasNew ? 'node--unread' : 'node--read' }}">
		<div class="node-body">
			<span class="node-icon" aria-hidden="true">
				<xf:fa icon="fa-comments" />
			</span>
			<div class="node-main js-nodeMain">
				<xf:set var="$descriptionDisplay" value="{{ property('nodeListDescriptionDisplay') }}" />
				<h3 class="node-title">
					<a href="{{ link('categories', $node) }}" data-xf-init="{{ $descriptionDisplay == 'tooltip' ? 'element-tooltip' : '' }}" data-shortcut="node-description">{$node.title}</a>
				</h3>
				<xf:if is="$descriptionDisplay != 'none' && $node.description">
					<div class="node-description {{ $descriptionDisplay == 'tooltip' ? 'node-description--tooltip js-nodeDescTooltip' : '' }}">{$node.description|raw}</div>
				</xf:if>

				<div class="node-meta">
					<xf:if is="!{$extras.privateInfo}">
						<div class="node-statsMeta">
							<dl class="pairs pairs--inline">
								<dt>{{ phrase('threads') }}</dt>
								<dd>{$extras.discussion_count|number_short(1)}</dd>
							</dl>
							<dl class="pairs pairs--inline">
								<dt>{{ phrase('messages') }}</dt>
								<dd>{$extras.message_count|number_short(1)}</dd>
							</dl>
						</div>
					</xf:if>

					<xf:if is="$depth == 2 AND property('nodeListSubDisplay') == 'menu'">
						<xf:macro id="forum_list::sub_nodes_menu"
							arg-children="{$children}"
							arg-childExtras="{$childExtras}"
							arg-depth="{{ $depth + 1 }}" />
					</xf:if>
				</div>

				<xf:if is="$depth == 2 AND property('nodeListSubDisplay') == 'flat'">
					<xf:macro id="forum_list::sub_nodes_flat"
						arg-children="{$children}"
						arg-childExtras="{$childExtras}"
						arg-depth="{{ $depth + 1 }}" />
				</xf:if>
			</div>

			<xf:if is="!{$extras.privateInfo}">
				<div class="node-stats">
					<dl class="pairs pairs--rows">
						<dt>{{ phrase('threads') }}</dt>
						<dd>{$extras.discussion_count|number_short(1)}</dd>
					</dl>
					<dl class="pairs pairs--rows">
						<dt>{{ phrase('messages') }}</dt>
						<dd>{$extras.message_count|number_short(1)}</dd>
					</dl>
				</div>
			</xf:if>

			<div class="node-extra">
				<xf:if is="{$extras.privateInfo}">
					<span class="node-extra-placeholder">{{ phrase('private') }}</span>
				<xf:elseif is="{$extras.LastThread}" />
					<div class="node-extra-icon">
						<xf:if is="$xf.visitor.isIgnoring($extras.last_post_user_id)">
							<xf:avatar user="{{ null }}" size="xs" />
						<xf:else />
							<xf:avatar user="{$extras.LastPostUser}" defaultname="{$extras.last_post_username}" size="xs" />
						</xf:if>
					</div>
					<div class="node-extra-row">
						<xf:if is="$extras.LastThread.isUnread()">
							<a href="{{ link('threads/unread', $extras.LastThread) }}" class="node-extra-title" title="{$extras.LastThread.title}">{{ prefix('thread', $extras.LastThread) }}{$extras.LastThread.title}</a>
						<xf:else />
							<a href="{{ link('threads/post', $extras.LastThread, {'post_id': $extras.last_post_id}) }}" class="node-extra-title" title="{$extras.LastThread.title}">{{ prefix('thread', $extras.LastThread) }}{$extras.LastThread.title}</a>
						</xf:if>
					</div>
					<div class="node-extra-row">
						<ul class="listInline listInline--bullet">
							<li class="node-extra-date"><xf:date time="{$extras.last_post_date}" /></li>
							<xf:if is="$xf.visitor.isIgnoring($extras.last_post_user_id)">
								<li class="node-extra-user">{{ phrase('ignored_member') }}</li>
							<xf:else />
								<li class="node-extra-user"><xf:username user="{$extras.LastPostUser}" defaultname="{$extras.last_post_username}" /></li>
							</xf:if>
						</ul>
					</div>
				<xf:else />
					<span class="node-extra-placeholder">{{ phrase('none') }}</span>
				</xf:if>
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="depthN" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
	<li>
		<a href="{{ link('categories', $node) }}" class="subNodeLink subNodeLink--category {{ $extras.hasNew ? 'subNodeLink--unread' : '' }}">{$node.title}</a>
		<xf:macro id="forum_list::sub_node_list"
			arg-children="{$children}"
			arg-childExtras="{$childExtras}"
			arg-depth="{{ $depth + 1 }}" />
	</li>
</xf:macro>]]></template>
  <template type="public" title="node_list_forum" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="depth1" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:macro id="forum"
					arg-node="{$node}"
					arg-extras="{$extras}"
					arg-children="{$children}"
					arg-childExtras="{$childExtras}"
					arg-depth="{$depth}" />
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="depth2" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
	<xf:macro id="forum"
		arg-node="{$node}"
		arg-extras="{$extras}"
		arg-children="{$children}"
		arg-childExtras="{$childExtras}"
		arg-depth="{$depth}" />
</xf:macro>

<xf:macro id="depthN" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
	<li>
		<a href="{{ link('forums', $node) }}" class="subNodeLink subNodeLink--forum {{ $extras.hasNew ? 'subNodeLink--unread' : '' }}">
			<xf:fa icon="{{ $node.Data.TypeHandler.getTypeIconClass() ?: 'fa-comments' }}" class="subNodeLink-icon" />{$node.title}
		</a>
		<xf:macro id="forum_list::sub_node_list"
			arg-children="{$children}"
			arg-childExtras="{$childExtras}"
			arg-depth="{{ $depth + 1 }}" />
	</li>
</xf:macro>

<xf:macro id="forum"
	arg-node="!"
	arg-extras="!"
	arg-children="!"
	arg-childExtras="!"
	arg-depth="!"
	arg-chooseName=""
	arg-bonusInfo="">

	<div class="node node--id{$node.node_id} node--depth{$depth} node--forum {{ $extras.hasNew ? 'node--unread' : 'node--read' }}">
		<div class="node-body">
			<span class="node-icon" aria-hidden="true">
				<xf:fa icon="{{ $node.Data.TypeHandler.getTypeIconClass() ?: 'fa-comments' }}" />
			</span>
			<div class="node-main js-nodeMain">
				<xf:if is="$chooseName">
					<xf:checkbox standalone="true">
						<xf:option labelclass="u-pullRight" class="js-chooseItem" name="{$chooseName}[]" value="{$node.node_id}" />
					</xf:checkbox>
				</xf:if>

				<xf:set var="$descriptionDisplay" value="{{ property('nodeListDescriptionDisplay') }}" />
				<h3 class="node-title">
					<a href="{{ link('forums', $node) }}" data-xf-init="{{ $descriptionDisplay == 'tooltip' ? 'element-tooltip' : '' }}" data-shortcut="node-description">{$node.title}</a>
				</h3>
				<xf:if is="$descriptionDisplay != 'none' && $node.description">
					<div class="node-description {{ $descriptionDisplay == 'tooltip' ? 'node-description--tooltip js-nodeDescTooltip' : '' }}">{$node.description|raw}</div>
				</xf:if>

				<div class="node-meta">
					<xf:if is="!{$extras.privateInfo}">
						<div class="node-statsMeta">
							<dl class="pairs pairs--inline">
								<dt>{{ phrase('threads') }}</dt>
								<dd>{$extras.discussion_count|number_short(1)}</dd>
							</dl>
							<dl class="pairs pairs--inline">
								<dt>{{ phrase('messages') }}</dt>
								<dd>{$extras.message_count|number_short(1)}</dd>
							</dl>
						</div>
					</xf:if>

					<xf:if is="$depth == 2 AND property('nodeListSubDisplay') == 'menu'">
						<xf:macro id="forum_list::sub_nodes_menu"
							arg-children="{$children}"
							arg-childExtras="{$childExtras}"
							arg-depth="{{ $depth + 1 }}" />
					</xf:if>
				</div>

				<xf:if is="$depth == 2 AND property('nodeListSubDisplay') == 'flat'">
					<xf:macro id="forum_list::sub_nodes_flat"
						arg-children="{$children}"
						arg-childExtras="{$childExtras}"
						arg-depth="{{ $depth + 1 }}" />
				</xf:if>

				<xf:if is="$bonusInfo is not empty">
					<div class="node-bonus">{$bonusInfo}</div>
				</xf:if>
			</div>

			<xf:if is="!{$extras.privateInfo}">
				<div class="node-stats">
					<dl class="pairs pairs--rows">
						<dt>{{ phrase('threads') }}</dt>
						<dd>{$extras.discussion_count|number_short(1)}</dd>
					</dl>
					<dl class="pairs pairs--rows">
						<dt>{{ phrase('messages') }}</dt>
						<dd>{$extras.message_count|number_short(1)}</dd>
					</dl>
				</div>
			</xf:if>

			<div class="node-extra">
				<xf:if is="{$extras.privateInfo}">
					<span class="node-extra-placeholder">{{ phrase('private') }}</span>
				<xf:elseif is="{$extras.LastThread}" />
					<div class="node-extra-icon">
						<xf:if is="$xf.visitor.isIgnoring($extras.last_post_user_id)">
							<xf:avatar user="{{ null }}" size="xs" />
						<xf:else />
							<xf:avatar user="{$extras.LastPostUser}" defaultname="{$extras.last_post_username}" size="xs" />
						</xf:if>
					</div>
					<div class="node-extra-row">
						<xf:if is="$extras.LastThread.isUnread()">
							<a href="{{ link('threads/unread', $extras.LastThread) }}" class="node-extra-title" title="{$extras.LastThread.title}">{{ prefix('thread', $extras.LastThread) }}{$extras.LastThread.title}</a>
						<xf:else />
							<a href="{{ link('threads/post', $extras.LastThread, {'post_id': $extras.last_post_id}) }}" class="node-extra-title" title="{$extras.LastThread.title}">{{ prefix('thread', $extras.LastThread) }}{$extras.LastThread.title}</a>
						</xf:if>
					</div>
					<div class="node-extra-row">
						<ul class="listInline listInline--bullet">
							<li><xf:date time="{$extras.last_post_date}" class="node-extra-date" /></li>
							<xf:if is="$xf.visitor.isIgnoring($extras.last_post_user_id)">
								<li class="node-extra-user">{{ phrase('ignored_member') }}</li>
							<xf:else />
								<li class="node-extra-user"><xf:username user="{$extras.LastPostUser}" defaultname="{$extras.last_post_username}" /></li>
							</xf:if>
						</ul>
					</div>
				<xf:else />
					<span class="node-extra-placeholder">{{ phrase('none') }}</span>
				</xf:if>
			</div>
		</div>
	</div>

	<xf:if is="{$depth} == 1">
		<xf:macro id="forum_list::node_list"
			arg-children="{$children}"
			arg-extras="{$childExtras}"
			arg-depth="{{ $depth + 1 }}" />
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="node_list_link_forum" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="depth1" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:macro id="link_forum"
					arg-node="{$node}"
					arg-extras="{$extras}"
					arg-children="{$children}"
					arg-childExtras="{$childExtras}"
					arg-depth="{$depth}" />
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="depth2" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
	<xf:macro id="link_forum"
		arg-node="{$node}"
		arg-extras="{$extras}"
		arg-children="{$children}"
		arg-childExtras="{$childExtras}"
		arg-depth="{$depth}" />
</xf:macro>

<xf:macro id="depthN" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
	<li>
		<a href="{{ link('link-forums', $node) }}" class="subNodeLink subNodeLink--link">{$node.title}</a>
		<xf:macro id="forum_list::sub_node_list"
			arg-children="{$children}"
			arg-childExtras="{$childExtras}"
			arg-depth="{{ $depth + 1 }}" />
	</li>
</xf:macro>

<xf:macro id="link_forum" arg-node="!" arg-extras="!" arg-children="{$children}" arg-childExtras="{$childExtras}" arg-depth="!">
	<div class="node node--id{$node.node_id} node--depth{$depth} node--link">
		<div class="node-body">
			<span class="node-icon" aria-hidden="true">
				<xf:fa icon="fa-link" />
			</span>
			<div class="node-main js-nodeMain">
				<xf:set var="$descriptionDisplay" value="{{ property('nodeListDescriptionDisplay') }}" />
				<h3 class="node-title">
					 <a href="{{ link('link-forums', $node) }}" data-xf-init="{{ $descriptionDisplay == 'tooltip' ? 'element-tooltip' : '' }}" data-shortcut="node-description">{$node.title}</a>
				</h3>
				<xf:if is="$descriptionDisplay != 'none' && $node.description">
					<div class="node-description {{ $descriptionDisplay == 'tooltip' ? 'node-description--tooltip js-nodeDescTooltip' : '' }}">{$node.description|raw}</div>
				</xf:if>

				<xf:if is="$depth == 2 AND property('nodeListSubDisplay') == 'menu'">
					<div class="node-meta">
						<xf:macro id="forum_list::sub_nodes_menu"
							arg-children="{$children}"
							arg-childExtras="{$childExtras}"
							arg-depth="{{ $depth + 1 }}" />
					</div>
				</xf:if>

				<xf:if is="$depth == 2 AND property('nodeListSubDisplay') == 'flat'">
					<xf:macro id="forum_list::sub_nodes_flat"
						arg-children="{$children}"
						arg-childExtras="{$childExtras}"
						arg-depth="{{ $depth + 1 }}" />
				</xf:if>
			</div>
		</div>
	</div>

	<xf:if is="{$depth} == 1">
		<xf:macro id="forum_list::node_list"
			arg-children="{$children}"
			arg-extras="{$childExtras}"
			arg-depth="{{ $depth + 1 }}" />
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="node_list_page" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="depth1" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:macro id="page"
					arg-node="{$node}"
					arg-extras="{$extras}"
					arg-children="{$children}"
					arg-childExtras="{$childExtras}"
					arg-depth="{$depth}" />
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="depth2" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
	<xf:macro id="page"
		arg-node="{$node}"
		arg-extras="{$extras}"
		arg-children="{$children}"
		arg-childExtras="{$childExtras}"
		arg-depth="{$depth}" />
</xf:macro>

<xf:macro id="depthN" arg-node="!" arg-extras="!" arg-children="!" arg-childExtras="!" arg-depth="1">
	<li>
		<a href="{{ link('pages', $node) }}" class="subNodeLink subNodeLink--page">{$node.title}</a>
		<xf:macro id="forum_list::sub_node_list"
			arg-children="{$children}"
			arg-childExtras="{$childExtras}"
			arg-depth="{{ $depth + 1 }}" />
	</li>
</xf:macro>

<xf:macro id="page" arg-node="!" arg-extras="!" arg-children="{$children}" arg-childExtras="{$childExtras}" arg-depth="!">
	<div class="node node--id{$node.node_id} node--depth{$depth} node--page">
		<div class="node-body">
			<span class="node-icon" aria-hidden="true">
				<xf:fa icon="fa-file-alt" />
			</span>
			<div class="node-main js-nodeMain">
				<xf:set var="$descriptionDisplay" value="{{ property('nodeListDescriptionDisplay') }}" />
				<h3 class="node-title">
					<a href="{{ link('pages', $node) }}" data-xf-init="{{ $descriptionDisplay == 'tooltip' ? 'element-tooltip' : '' }}" data-shortcut="node-description">{$node.title}</a>
				</h3>
				<xf:if is="$descriptionDisplay != 'none' && $node.description">
					<div class="node-description {{ $descriptionDisplay == 'tooltip' ? 'node-description--tooltip js-nodeDescTooltip' : '' }}">{$node.description|raw}</div>
				</xf:if>

				<xf:if is="$depth == 2 AND property('nodeListSubDisplay') == 'menu'">
					<div class="node-meta">
						<xf:macro id="forum_list::sub_nodes_menu"
							arg-children="{$children}"
							arg-childExtras="{$childExtras}"
							arg-depth="{{ $depth + 1 }}" />
					</div>
				</xf:if>

				<xf:if is="$depth == 2 AND property('nodeListSubDisplay') == 'flat'">
					<xf:macro id="forum_list::sub_nodes_flat"
						arg-children="{$children}"
						arg-childExtras="{$childExtras}"
						arg-depth="{{ $depth + 1 }}" />
				</xf:if>
			</div>
		</div>
	</div>

	<xf:if is="{$depth} == 1">
		<xf:macro id="forum_list::node_list"
			arg-children="{$children}"
			arg-extras="{$childExtras}"
			arg-depth="{{ $depth + 1 }}" />
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="node_list_search_forum" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="depth1"
	arg-node="!"
	arg-extras="!"
	arg-children="!"
	arg-childExtras="!"
	arg-depth="1">

	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:macro id="search_forum"
					arg-node="{$node}"
					arg-extras="{$extras}"
					arg-children="{$children}"
					arg-childExtras="{$childExtras}"
					arg-depth="{$depth}" />
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="depth2"
	arg-node="!"
	arg-extras="!"
	arg-children="!"
	arg-childExtras="!"
	arg-depth="1">

	<xf:macro id="search_forum"
		arg-node="{$node}"
		arg-extras="{$extras}"
		arg-children="{$children}"
		arg-childExtras="{$childExtras}"
		arg-depth="{$depth}" />
</xf:macro>

<xf:macro id="depthN"
	arg-node="!"
	arg-extras="!"
	arg-children="!"
	arg-childExtras="!"
	arg-depth="1">

	<li>
		<a href="{{ link('search-forums', $node) }}" class="subNodeLink subNodeLink--search">{$node.title}</a>

		<xf:macro id="forum_list::sub_node_list"
			arg-children="{$children}"
			arg-childExtras="{$childExtras}"
			arg-depth="{{ $depth + 1 }}" />
	</li>
</xf:macro>

<xf:macro id="search_forum"
	arg-node="!"
	arg-extras="!"
	arg-children="{$children}"
	arg-childExtras="{$childExtras}"
	arg-depth="!">

	<div class="node node--id{$node.node_id} node--depth{$depth} node--search">
		<div class="node-body">
			<span class="node-icon" aria-hidden="true">
				<xf:fa icon="fa-search" />
			</span>

			<div class="node-main js-nodeMain">
				<xf:set var="$descriptionDisplay" value="{{ property('nodeListDescriptionDisplay') }}" />

				<h3 class="node-title">
					<a
						href="{{ link('search-forums', $node) }}"
						data-xf-init="{{ $descriptionDisplay == 'tooltip' ? 'element-tooltip' : '' }}"
						data-shortcut="node-description">

						{$node.title}
					</a>
				</h3>

				<xf:if is="$descriptionDisplay != 'none' && $node.description">
					<div class="node-description {{ $descriptionDisplay == 'tooltip' ? 'node-description--tooltip js-nodeDescTooltip' : '' }}">
						{$node.description|raw}
					</div>
				</xf:if>

				<div class="node-meta">
					<div class="node-statsMeta">
						<dl class="pairs pairs--inline">
							<dt>{{ phrase('threads') }}</dt>
							<dd>{$extras.discussion_count|number_short(1)}{{ $extras.discussion_count == $extras.max_results ? '+' : ''}}</dd>
						</dl>

						<dl class="pairs pairs--inline">
							<dt>{{ phrase('messages') }}</dt>
							<dd>{$extras.message_count|number_short(1)}</dd>
						</dl>
					</div>

					<xf:if is="$depth == 2 && property('nodeListSubDisplay') == 'menu'">
						<xf:macro id="forum_list::sub_nodes_menu"
							arg-children="{$children}"
							arg-childExtras="{$childExtras}"
							arg-depth="{{ $depth + 1 }}" />
					</xf:if>
				</div>

				<xf:if is="$depth == 2 && property('nodeListSubDisplay') == 'flat'">
					<xf:macro id="forum_list::sub_nodes_flat"
						arg-children="{$children}"
						arg-childExtras="{$childExtras}"
						arg-depth="{{ $depth + 1 }}" />
				</xf:if>
			</div>

			<div class="node-stats">
				<dl class="pairs pairs--rows">
					<dt>{{ phrase('threads') }}</dt>
					<dd>{$extras.discussion_count|number_short(1)}{{ $extras.discussion_count == $extras.max_results ? '+' : ''}}</dd>
				</dl>

				<dl class="pairs pairs--rows">
					<dt>{{ phrase('messages') }}</dt>
					<dd>{$extras.message_count|number_short(1)}</dd>
				</dl>
			</div>

			<div class="node-extra">
				<xf:if is="$extras.discussion_count">
					<xf:if is="$extras.LastThread">
						<div class="node-extra-icon">
							<xf:if is="$xf.visitor.isIgnoring($extras.last_post_user_id)">
								<xf:avatar user="{{ null }}" size="xs" />
							<xf:else />
								<xf:avatar user="{$extras.LastPostUser}" defaultname="{$extras.last_post_username}" size="xs" />
							</xf:if>
						</div>

						<div class="node-extra-row">
							<xf:if is="$extras.LastThread.isUnread()">
								<a href="{{ link('threads/unread', $extras.LastThread) }}" class="node-extra-title" title="{$extras.LastThread.title}">
									{{ prefix('thread', $extras.LastThread) }}{$extras.LastThread.title}
								</a>
							<xf:else />
								<a href="{{ link('threads/post', $extras.LastThread, {'post_id': $extras.last_post_id}) }}" class="node-extra-title" title="{$extras.LastThread.title}">
									{{ prefix('thread', $extras.LastThread) }}{$extras.LastThread.title}
								</a>
							</xf:if>
						</div>

						<div class="node-extra-row">
							<ul class="listInline listInline--bullet">
								<li><xf:date time="{$extras.last_post_date}" class="node-extra-date" /></li>
								<xf:if is="$xf.visitor.isIgnoring($extras.last_post_user_id)">
									<li class="node-extra-user">{{ phrase('ignored_member') }}</li>
								<xf:else />
									<li class="node-extra-user"><xf:username user="{$extras.LastPostUser}" defaultname="{$extras.last_post_username}" /></li>
								</xf:if>
							</ul>
						</div>
					<xf:else />
						<span class="node-extra-placeholder">{{ phrase('private') }}</span>
					</xf:if>
				<xf:else />
					<span class="node-extra-placeholder">{{ phrase('none') }}</span>
				</xf:if>
			</div>
		</div>
	</div>

	<xf:if is="{$depth} == 1">
		<xf:macro id="forum_list::node_list"
			arg-children="{$children}"
			arg-extras="{$childExtras}"
			arg-depth="{{ $depth + 1 }}" />
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="normalize.css" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
button,hr,input{overflow:visible}progress,sub,sup{vertical-align:baseline}[type=checkbox],[type=radio],legend{box-sizing:border-box;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}details,main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}textarea{overflow:auto}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}[hidden],template{display:none}]]></template>
  <template type="public" title="notice_board_closed" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('forum_is_currently_closed_only_admins_may_access') }}<br />
<a href="{{ link_type('admin', 'options/groups', {'group_id': 'boardActive'}) }}">{{ phrase('reopen_via_admin_control_panel') }}</a>]]></template>
  <template type="public" title="notice_confirm_email" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[{{ phrase('your_account_is_currently_awaiting_confirmation_confirmation_sent_to_x', {'email': $xf.visitor.email|email_display}) }}
<xf:if is="$xf.session.hasPreRegActionPending">
	{{ phrase('once_your_registration_has_been_completed_your_content_will_be_posted') }}
</xf:if><br />
<a href="{{ link('account-confirmation/resend') }}" data-xf-click="overlay">{{ phrase('resend_confirmation_email') }}</a>]]></template>
  <template type="public" title="notice_cookies" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$xf.cookieConsent.getMode() == 'advanced'">
	<div class="u-pageCentered">
		<xf:macro name="misc_cookies::cookie_consent_form" />
	</div>
<xf:else />
	<div class="u-alignCenter">
		{{ phrase('this_site_uses_cookies_notice') }}
	</div>

	<div class="u-inputSpacer u-alignCenter">
		<xf:button icon="confirm" href="{{ link('account/dismiss-notice', null, {'notice_id': $notice.notice_id}) }}" class="js-noticeDismiss button--notice">{{ phrase('accept') }}</xf:button>
		<xf:button href="{{ link('help/cookies') }}" class="button--notice">{{ phrase('learn_more...') }}</xf:button>
	</div>
</xf:if>]]></template>
  <template type="public" title="notice_dismiss" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('dismiss_notice') }}</xf:title>

<xf:form action="{{ link('account/dismiss-notice', null, {'notice_id': $notice.notice_id}) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('confirm_dismiss_notice') }}
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('dismiss') }}" rowtype="simple" />
	</div>
	<xf:redirect />
</xf:form>]]></template>
  <template type="public" title="notice_email_bounce" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[{{ phrase('attempts_to_email_x_have_failed_please_update', {'email': $xf.visitor.email|email_display}) }}<br />
<a href="{{ link('account/email') }}">{{ phrase('update_your_contact_details') }}</a>]]></template>
  <template type="public" title="notice_enable_push" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<a href="javascript:" class="notice-dismiss js-enablePushDismiss" aria-label="{{ phrase('dismiss_notice')|for_attr }}"></a>

<div data-xf-init="push-cta">
	<div class="u-alignCenter">
		<div class="js-initialMessage">
			{{ phrase('x_would_like_your_permission_to_enable_push_notifications', {'boardTitle': $xf.options.boardTitle, 'link': link('account/preferences')}) }}
		</div>
		<div class="js-dismissMessage" style="display: none">
			{{ phrase('we_strongly_recommend_enabling_push_notifications') }}
			<ul class="listInline listInline--bullet" style="margin-top: 5px">
				<li><a href="{{ link('account/preferences') }}" class="js-enablePushLink">{{ phrase('enable_notifications') }}</a></li>
				<li><a href="javascript:" class="js-dismissTemp">{{ phrase('ask_me_another_time') }}</a></li>
				<li><a href="javascript:" class="js-dismissPerm">{{ phrase('never_ask_again') }}</a></li>
			</ul>
		</div>
	</div>
</div>

<xf:js>
	XF.extendObject(true, XF.config, {
		skipPushNotificationSubscription: true
	});
</xf:js>]]></template>
  <template type="public" title="notice_macros" version_id="2030031" version_string="2.3.0 Beta 1"><![CDATA[<xf:macro id="notice_list" arg-type="!" arg-notices="!">
	<xf:if is="{$notices} is not empty">
		<xf:css src="notices.less" />
		<xf:if is="$type == 'scrolling'">
			<xf:macro name="carousel_macros::setup" />
		</xf:if>

		<ul class="notices notices--{$type} {{ count($notices) > 1 ? 'notices--isMulti' : '' }} js-notices"
			data-xf-init="notices"
			data-type="{$type}"
			data-scroll-interval="{{ property('noticeScrollInterval') }}">

			<xf:foreach loop="{$notices}" value="$notice">
				<xf:macro id="notice" arg-notice="{$notice}" arg-type="{$type}" arg-contentHtml="{$notice.message}" />
			</xf:foreach>
		</ul>
	</xf:if>
</xf:macro>

<xf:macro id="notice" arg-notice="!" arg-type="!" arg-contentHtml="!">
	<li class="notice js-notice {{ $notice.display_style == 'custom' ? $notice.css_class : 'notice--' . $notice.display_style }}{{ $notice.display_image ? ' notice--hasImage' : '' }}{{ $notice.visibility ? ' notice--hide' . $notice.visibility : '' }}"
		data-notice-id="{$notice.notice_id}"
		data-delay-duration="{$notice.delay_duration}"
		data-display-duration="{$notice.display_duration}"
		data-auto-dismiss="{$notice.auto_dismiss}"
		data-visibility="{$notice.visibility}">

		<xf:if is="$notice.display_image == 'avatar'">
			<div class="notice-image"><xf:avatar user="$xf.visitor" size="s" href="" /></div>
		<xf:elseif is="$notice.display_image == 'image'" />
			<div class="notice-image"><img src="{{ base_url($notice.image_url) }}" alt="" /></div>
		</xf:if>
		<div class="notice-content">
			<xf:if is="$notice.dismissible AND !$notice.custom_dismissible">
				<a href="{{ link('account/dismiss-notice', null, {'notice_id': $notice.notice_id}) }}" class="notice-dismiss js-noticeDismiss" data-xf-init="tooltip" title="{{ phrase('dismiss_notice')|for_attr }}"></a>
			</xf:if>
			{$contentHtml|raw}
		</div>
	</li>
</xf:macro>]]></template>
  <template type="public" title="notice_moderated" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[{{ phrase('your_account_is_currently_awaiting_approval_by_administrator') }}
<xf:if is="$xf.session.hasPreRegActionPending">
	{{ phrase('once_your_registration_has_been_completed_your_content_will_be_posted') }}
</xf:if>]]></template>
  <template type="public" title="notice_upgrade_pending" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[{{ phrase('upgrade_is_pending_forum_only_accessible_in_debug') }}<br />
<a href="{{ base_url('install/') }}">{{ phrase('complete_upgrade') }}</a>]]></template>
  <template type="public" title="notices.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[@_notice-darkBg: rgb(20, 20, 20);
@_notice-lightBg: #fefefe;
@_notice-floatingFade: 80%;
@_notice-imageSize: 48px;
@_notice-padding: @xf-paddingLarge;

.notices
{
	.m-listPlain();

	&.notices--block
	{
		.notice
		{
			margin-bottom: (@xf-elementSpacer / 2);
		}
	}

	&.notices--floating
	{
		// assumed to be within u-bottomFixer
		margin: 0 20px 0 auto;
		width: 300px;
		max-width: 100%;
		z-index: @zIndex-8;

		@media (max-width: 340px)
		{
			margin-right: 10px;
		}

		.notice
		{
			margin-bottom: 20px;
		}
	}

	&.notices--scrolling
	{
		display: flex;
		align-items: stretch;
		overflow: hidden;
		.xf-blockBorder();
		margin-bottom: (@xf-elementSpacer / 2);

		&.notices--isMulti
		{
			margin-bottom: (@xf-elementSpacer / 2 + 20px);
		}

		.notice
		{
			width: 100%;
			flex-grow: 0;
			flex-shrink: 0;
			border: none;
		}
	}
}

.notice
{
	.m-clearFix();
	position: relative;

	.xf-blockBorder();

	&.notice--primary
	{
		.xf-contentHighlightBase();
	}

	&.notice--accent
	{
		.xf-contentAccentBase();

		a:not(.button--notice)
		{
			.xf-contentAccentLink();
		}
	}

	&.notice--dark
	{
		color: #fefefe;
		border: none;
		background: @_notice-darkBg;

		a:not(.button--notice)
		{
			color: rgb(180, 180, 180);
		}
	}

	&.notice--light
	{
		color: rgb(20, 20, 20);
		background: @_notice-lightBg;

		a:not(.button--notice)
		{
			color: rgb(130, 130, 130);
		}
	}

	&.notice--enablePush
	{
		display: none;

		@media (max-width: @xf-responsiveWide)
		{
			padding: @xf-paddingSmall @xf-paddingSmall @xf-paddingLarge;
			font-size: @xf-fontSizeSmall;
		}
	}

	&.notice--cookie
	{
		@media (max-width: @xf-responsiveWide)
		{
			.notice-content
			{
				padding: @xf-paddingSmall @xf-paddingSmall @xf-paddingLarge;
				font-size: @xf-fontSizeSmaller;

				.button--notice
				{
					font-size: @xf-fontSizeSmaller;
					padding: @xf-paddingSmall @xf-paddingMedium;

					.button-text
					{
						font-size: @xf-fontSizeSmaller;
					}
				}
			}
		}
	}

	&.notice--cookieAdvanced .notice-content
	{
		padding: 1em 0;

		.u-pageCentered
		{
			display: grid;
			grid-template-columns: 1fr @xf-sidebarWidth;
			gap: @xf-sidebarSpacer;
			align-items: end;
		}

		@media (max-width: @xf-responsiveMedium)
		{
			.u-pageCentered
			{
				display: block;
			}
		}

		h2
		{
			margin: 0;
		}

		.button
		{
			width: 100%;
			margin: .5em 0;
			font-weight: bold;
		}

		form.is-active
		{
			display: contents;
			grid-column: span 2;

			.formRow.formRow--fullWidth > dd
			{
				padding-left: 0;
				padding-right: 0;
			}
		}

		form:not(.is-active)
		{
			display: none;
		}
	}

	.notices--block &
	{
		font-size: @xf-fontSizeNormal;
		border-radius: @xf-blockBorderRadius;
	}

	.notices--floating &
	{
		font-size: @xf-fontSizeSmallest;
		border-radius: @xf-borderRadiusMedium;
		box-shadow: 1px 1px 3px rgba(0,0,0, 0.25);

		&.notice--primary
		{
			background-color: fade(@xf-contentHighlightBase--background-color, @_notice-floatingFade);
		}

		&.notice--accent
		{
			background-color: fade(@xf-contentAccentBase--background-color, @_notice-floatingFade);
		}

		&.notice--dark
		{
			background-color: fade(@_notice-darkBg, @_notice-floatingFade);
		}

		&.notice--light
		{
			background-color: fade(@_notice-lightBg, @_notice-floatingFade);
		}

		.has-js &
		{
			display: none;
		}
	}

	&.notice--hasImage
	{
		.notice-content
		{
			margin-left: (@_notice-imageSize + @_notice-padding * 2);
			min-height: (@_notice-imageSize + @_notice-padding * 2);
		}
	}

	// note: visibility hidden is used by the JS to detect when responsiveness is hiding a notice

	@media (max-width: @xf-responsiveWide)
	{
		&.notice--hidewide:not(.is-vis-processed)
		{
			display: none;
			visibility: hidden;
		}
	}
	@media (max-width: @xf-responsiveMedium)
	{
		&.notice--hidemedium:not(.is-vis-processed)
		{
			display: none;
			visibility: hidden;
		}
	}
	@media (max-width: @xf-responsiveNarrow)
	{
		&.notice--hidenarrow:not(.is-vis-processed)
		{
			display: none;
			visibility: hidden;
		}
	}
}

.notice-image
{
	float: left;
	padding: @_notice-padding 0 @_notice-padding @_notice-padding;

	img
	{
		max-width: @_notice-imageSize;
		max-height: @_notice-imageSize;
	}
}

.notice-content
{
	padding: @_notice-padding;

	a.notice-dismiss
	{
		&:before
		{
			.m-faBase();

			.m-faContent(@fa-var-times, .75em);
		}

		float: right;

		color: inherit;
		font-size: 16px;
		line-height: 1;
		height: 1em;
		box-sizing: content-box;
		padding: 0 0 5px 5px;

		opacity: .5;
		.m-transition(opacity);

		cursor: pointer;

		&:hover
		{
			text-decoration: none;
			opacity: 1;
		}

		.notices--floating &
		{
			font-size: 14px;
		}
	}
}]]></template>
  <template type="public" title="notification_opt_out.less" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[.notificationChoices
{
	.m-listPlain();
	.m-clearFix();

	> li
	{
		float: left;
		margin-left: 1em;
		padding: 0 @xf-paddingMedium;

		&:first-child
		{
			margin-left: 0;
		}
	}

	label
	{
		display: block;
		text-align: center;
	}
}]]></template>
  <template type="public" title="oauth.less" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[body
{
	max-width: @xf-pageWidthMax;
	padding: 75px 10vw;
	margin: 0 auto;
}

.application
{
	display: grid;
	grid-template-columns: 100px 1fr;
	grid-template-areas:
		'logo title'
		'logo desc';
	gap: @xf-paddingLarge;
	padding: @xf-paddingLargest;
	background-color: @xf-contentAltBg;
	margin: 1em 0;

	img
	{
		grid-area: logo;
	}

	h2
	{
		grid-area: title;
		margin: 0;
	}

	p
	{
		grid-area: desc;
		margin: 0;
	}
}

h5.app-info
{
	margin-bottom: .5em;
}]]></template>
  <template type="public" title="oauth_authorize" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:page option="template">OAUTH_CONTAINER</xf:page>
<xf:title>{{ phrase('authorize_client_x', {'title': $client.title}) }}</xf:title>
<xf:h1></xf:h1>

<xf:css src="oauth.less" />
<xf:form action="{{ link('oauth2/authorize', null, $linkParams) }}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow>
				{{ phrase('following_application_is_requesting_access_to_your_account:') }}

				<div class="application">
					<xf:if is="$client.image_url">
						<img src="{{ base_url($client.image_url) }}" alt="{{ $client.title }}" />
					</xf:if>
					<xf:if is="$client.homepage_url">
						<h2><a href="{$client.homepage_url}" target="_blank">{{ $client.title }}</a></h2>
					<xf:else />
						<h2>{$client.title}</h2>
					</xf:if>
					<p>{$client.description}</p>
				</div>

				<p class="u-smaller u-dimmed">{{ phrase('logged_in_as') }} <xf:username user="{$xf.visitor}" target="_blank" />. <a href="{{ link('logout', null, {'t': csrf_token()}) }}">{{ phrase('not_you') }}</a></p>

				<h5 class="app-info">{{ phrase('requested_scopes:') }}</h5>
				<ul class="listInline listInline--bullet">
					<xf:foreach loop="$scopes" value="$scope">
						<li>{{ $scope.getDescription() }}</li>
					</xf:foreach>
				</ul>

				<h5 class="app-info">{{ phrase('redirect:') }}</h5>
				<ul class="listInline listInline--bullet u-muted">
					<li>{{ phrase('once_authorized_you_will_be_redirected_to') }} {{ $authRequest.getRedirectUriSnippet() }}</li>
				</ul>
			</xf:inforow>

		</div>
		<xf:submitrow submit="{{ phrase('authorize') }}" rowtype="simple">
			<xf:html>
				<xf:button href="{{ link('oauth2/deny', null, $linkParams) }}">{{ phrase('deny') }}</xf:button>
			</xf:html>
		</xf:submitrow>
	</div>
</xf:form>]]></template>
  <template type="public" title="offline.less" version_id="2020470" version_string="2.2.4"><![CDATA[html
{
	font: @xf-fontSizeNormal / @xf-lineHeightDefault sans-serif;
	font-family: @xf-fontFamilyUi;
	font-weight: @xf-fontWeightNormal;
	color: @xf-textColor;
	margin: 0;
	padding: 0;
	word-wrap: break-word;
	background-color: @xf-pageBg;
}

body
{
	max-width: @xf-pageWidthMax;
	padding: 0 @xf-pageEdgeSpacer;
	margin: 0 auto;
}

a
{
	.xf-link();

	&:hover
	{
		.xf-linkHover();
	}
}

.p-offline-header
{
	padding: 0;
	font-size: @xf-fontSizeLargest;
	font-weight: @xf-fontWeightNormal;

}

.p-offline-main
{
	margin-bottom: @xf-elementSpacer;
	padding: @xf-blockPaddingV @xf-blockPaddingH;
	.xf-contentBase();
	.xf-blockBorder();
	border-radius: @xf-blockBorderRadius;
	background-image: none;

	.m-clearFix();
}

.button,
a.button // needed for specificity over a:link
{
	.m-buttonBase();
	.xf-buttonDefault();
	.m-buttonBlockColorVariationSimple(xf-default(@xf-buttonDefault--background-color, transparent));
}]]></template>
  <template type="public" title="online_guest_ip" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('ip_information_for_online_guest') }}</xf:title>

<xf:breadcrumb href="{{ link('online') }}">{{ phrase('current_visitors') }}</xf:breadcrumb>

<xf:macro id="helper_ip::ip_block" arg-ip="{$ip}" />]]></template>
  <template type="public" title="online_list" version_id="2010670" version_string="2.1.6"><![CDATA[<xf:title page="{$page}">{{ phrase('current_visitors') }}</xf:title>

<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<div class="block">
	<div class="block-container">
		<h2 class="block-tabHeader tabs hScroller" data-xf-init="h-scroller">
			<span class="hScroller-scroll">
				<!--[XF:tabs:start]-->
				<a href="{{ link('online') }}" class="tabs-tab {{ $typeLimit == '' ? 'is-active' : '' }}">{{ phrase('everyone') }}</a>
				<a href="{{ link('online', null, {'type': 'member'}) }}" class="tabs-tab {{ $typeLimit == 'member' ? 'is-active' : '' }}">{{ phrase('members') }}</a>
				<a href="{{ link('online', null, {'type': 'guest'}) }}" class="tabs-tab {{ $typeLimit == 'guest' ? 'is-active' : '' }}">{{ phrase('guests') }}</a>
				<a href="{{ link('online', null, {'type': 'robot'}) }}" class="tabs-tab {{ $typeLimit == 'robot' ? 'is-active' : '' }}">{{ phrase('robots') }}</a>
				<!--[XF:tabs:end]-->
			</span>
		</h2>
		<xf:if is="$activities is not empty">
			<ol class="block-body">
				<xf:foreach loop="$activities" value="$activity">
					<li class="block-row block-row--separated">
						<div class="contentRow">
							<div class="contentRow-figure">
								<xf:avatar user="$activity.User" size="s" />
							</div>
							<div class="contentRow-main">
								<xf:if is="$xf.visitor.canViewIps()">
									<div class="contentRow-extra">
										<a href="{{ $activity.user_id ? link('online/user-ip', null, {'user_id': $activity.user_id}) : link('online/guest-ip', null, {'ip': $activity.ip|hex}) }}" data-xf-click="overlay"><span>{$activity.ip|ip}</span></a>
									</div>
								</xf:if>
								<xf:if is="$activity.User">
									<h3 class="contentRow-header"><xf:username user="$activity.User" rich="true" /></h3>

									<xf:userblurb user="$activity.User" class="contentRow-lesser" />
								<xf:elseif is="$activity.robot_key" />
									<h3 class="contentRow-header">
										{{ phrase('robot:') }} <xf:if is="$activity.robot_link"><a href="{$activity.robot_link}" target="_blank" rel="nofollow">{$activity.robot_title}</a><xf:else />{$activity.robot_title}</xf:if>
									</h3>
								<xf:else />
									<h3 class="contentRow-header">{{ phrase('guest') }}</h3>
								</xf:if>

								<div class="contentRow-minor">
									<ul class="listInline listInline--bullet">
										<xf:if is="!$activity.User || $activity.User.canViewCurrentActivity()">
											<li>
											<xf:if is="$activity.description">
												{$activity.description}<xf:if is="$activity.item_title"> <em><a href="{$activity.item_url}">{$activity.item_title}</a></em></xf:if>
											<xf:elseif is="$xf.visitor.is_admin" />
												<span title="{$activity.controller_name}::{$activity.controller_action}">{{ phrase('viewing_unknown_page') }}</span>
											<xf:else />
												{{ phrase('viewing_unknown_page') }}
											</xf:if>
											</li>
										</xf:if>

										<li><xf:date time="{$activity.view_date}" /></li>

										<xf:if is="$activity.view_state == 'error' && $xf.visitor.canBypassUserPrivacy()">
											<li>
											<xf:fa icon="fa-exclamation-triangle" title="{{ phrase('viewing_an_error')|for_attr }}" />
											<span class="u-srOnly">{{ phrase('viewing_an_error') }}</span>
											</li>
										</xf:if>
									</ul>
								</div>
							</div>
						</div>
					</li>
				</xf:foreach>
			</ol>
		<xf:else />
			<div class="block-row">{{ phrase('no_results_found') }}</div>
		</xf:if>
	</div>

	<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}" link="online" params="{$linkParams}"
		wrapperclass="block-outer block-outer--after" />
</div>

<xf:widgetpos id="online_list_sidebar" position="sidebar" />]]></template>
  <template type="public" title="online_user_ip" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('ip_information_for_online_user', {'user': $user.username}) }}</xf:title>

<xf:breadcrumb href="{{ link('online') }}">{{ phrase('current_visitors') }}</xf:breadcrumb>

<xf:macro id="helper_ip::ip_block" arg-ip="{$activity.ip}" arg-user="{$user}" />]]></template>
  <template type="public" title="page_nav" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<nav class="pageNavWrapper pageNavWrapper--{{ property('pageNavStyle') }} {$variantClass}">

<xf:set var="$hasSkipStart" value="{{ $startInner > 2 }}" />
<xf:set var="$hasSkipEnd" value="{{ $endInner + 1 < $totalPages }}" />
<div class="pageNav {{ $hasSkipStart ? 'pageNav--skipStart' : '' }} {{ $hasSkipEnd ? 'pageNav--skipEnd' : '' }}">
	<xf:if is="$prev">
		<a href="{$prev}" class="pageNav-jump pageNav-jump--prev">{{ phrase('prev') }}</a>
	</xf:if>

	<ul class="pageNav-main">
		<xf:macro id="page_link"
			arg-page="1"
			arg-current="{$current}"
			arg-link="{$link}"
			arg-data="{$data}"
			arg-params="{$params}"
			arg-hash="{$hash}"
			arg-pageParam="{$pageParam}" />

		<xf:if is="$hasSkipStart">
			<xf:if is="$startInner == 3">
				<xf:macro id="page_link"
					arg-page="2"
					arg-current="{$current}"
					arg-link="{$link}"
					arg-data="{$data}"
					arg-params="{$params}"
					arg-hash="{$hash}"
					arg-pageParam="{$pageParam}"
					arg-pageClass="pageNav-page--earlier" />
				<xf:else />
				<li class="pageNav-page pageNav-page--skip pageNav-page--skipStart">
					<a data-xf-init="tooltip" title="{{ phrase('go_to_page')|for_attr }}"
						data-xf-click="menu"
						role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{$xf.language.ellipsis}</a>
					<xf:macro id="page_jump_menu"
						arg-page="{{ $startInner - 1 }}"
						arg-totalPages="{$totalPages}"
						arg-link="{$link}"
						arg-data="{$data}"
						arg-params="{$params}"
						arg-hash="{$hash}"
						arg-pageParam="{$pageParam}" />
				</li>
			</xf:if>
		</xf:if>

		<xf:foreach loop="$innerPages" value="$page">
			<xf:macro id="page_link"
				arg-page="{$page}"
				arg-current="{$current}"
				arg-link="{$link}"
				arg-data="{$data}"
				arg-params="{$params}"
				arg-hash="{$hash}"
				arg-pageParam="{$pageParam}"
				arg-pageClass="{{ $page < $current ? 'pageNav-page--earlier' : ($page > $current ? 'pageNav-page--later' : '' ) }}" />
		</xf:foreach>

		<xf:if is="$hasSkipEnd">
			<xf:if is="$endInner + 2 == $totalPages">
				<xf:macro id="page_link"
					arg-page="{{ $totalPages - 1 }}"
					arg-current="{$current}"
					arg-link="{$link}"
					arg-data="{$data}"
					arg-params="{$params}"
					arg-hash="{$hash}"
					arg-pageParam="{$pageParam}"
					arg-pageClass="pageNav-page--later" />
			<xf:else />
				<li class="pageNav-page pageNav-page--skip pageNav-page--skipEnd">
					<a data-xf-init="tooltip" title="{{ phrase('go_to_page')|for_attr }}"
						data-xf-click="menu"
						role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{$xf.language.ellipsis}</a>
					<xf:macro id="page_jump_menu"
						arg-page="{{ $endInner + 1 }}"
						arg-totalPages="{$totalPages}"
						arg-link="{$link}"
						arg-data="{$data}"
						arg-params="{$params}"
						arg-hash="{$hash}"
						arg-pageParam="{$pageParam}" />
				</li>
			</xf:if>
		</xf:if>

		<xf:macro id="page_link"
			arg-page="{$totalPages}"
			arg-current="{$current}"
			arg-link="{$link}"
			arg-data="{$data}"
			arg-params="{$params}"
			arg-hash="{$hash}"
			arg-pageParam="{$pageParam}" />
	</ul>

	<xf:if is="$next">
		<a href="{$next}" class="pageNav-jump pageNav-jump--next">{{ phrase('next') }}</a>
	</xf:if>
</div>

<div class="pageNavSimple">
	<xf:if is="$current > 1">
		<a href="{{ link($link, $data, $params + {($pageParam): 1}, $hash) }}"
			class="pageNavSimple-el pageNavSimple-el--first"
			data-xf-init="tooltip" title="{{ phrase('first')|for_attr }}">
			<i aria-hidden="true"></i> <span class="u-srOnly">{{ phrase('first') }}</span>
		</a>
		<a href="{{ link($link, $data, $params + {($pageParam): $current - 1}, $hash) }}" class="pageNavSimple-el pageNavSimple-el--prev">
			<i aria-hidden="true"></i> {{ phrase('prev') }}
		</a>
	</xf:if>

	<a class="pageNavSimple-el pageNavSimple-el--current"
		data-xf-init="tooltip" title="{{ phrase('go_to_page')|for_attr }}"
		data-xf-click="menu" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">
		{{ phrase('x_of_y', {'current': $current, 'total': $totalPages}) }}
	</a>
	<xf:macro id="page_jump_menu"
		arg-page="{$current}"
		arg-totalPages="{$totalPages}"
		arg-link="{$link}"
		arg-data="{$data}"
		arg-params="{$params}"
		arg-hash="{$hash}"
		arg-pageParam="{$pageParam}" />

	<xf:if is="$current < $totalPages">
		<a href="{{ link($link, $data, $params + {($pageParam): $current + 1}, $hash) }}" class="pageNavSimple-el pageNavSimple-el--next">
			{{ phrase('next') }} <i aria-hidden="true"></i>
		</a>
		<a href="{{ link($link, $data, $params + {($pageParam): $totalPages}, $hash) }}"
			class="pageNavSimple-el pageNavSimple-el--last"
			data-xf-init="tooltip" title="{{ phrase('last')|for_attr }}">
			<i aria-hidden="true"></i> <span class="u-srOnly">{{ phrase('last') }}</span>
		</a>
	</xf:if>
</div>

</nav>

<xf:macro id="page_link"
	arg-page="!"
	arg-current="!"
	arg-link="!"
	arg-data="!"
	arg-params="!"
	arg-hash=""
	arg-pageParam="!"
	arg-pageClass="">

	<xf:if is="$page == $current">
		<li class="pageNav-page pageNav-page--current {$pageClass}"><a href="{{ link($link, $data, $params + {($pageParam): ($page > 1 ? $page : null)}, $hash) }}">{$page}</a></li>
	<xf:else />
		<li class="pageNav-page {$pageClass}"><a href="{{ link($link, $data, $params + {($pageParam): ($page > 1 ? $page : null)}, $hash) }}">{$page}</a></li>
	</xf:if>
</xf:macro>

<xf:macro id="page_jump_menu"
	arg-page="!"
	arg-totalPages="!"
	arg-link="!"
	arg-data="!"
	arg-params="!"
	arg-hash=""
	arg-pageParam="!">

	<div class="menu menu--pageJump" data-menu="menu" aria-hidden="true">
		<div class="menu-content">
			<h4 class="menu-header">{{ phrase('go_to_page') }}</h4>
			<div class="menu-row" data-xf-init="page-jump" data-page-url="{{ link($link, $data, $params + {($pageParam): '%page%'}, $hash) }}">
				<div class="inputGroup inputGroup--numbers">
					<xf:numberbox class="input input--numberNarrow js-pageJumpPage" value="{$page}" min="1" max="{$totalPages}" data-menu-autofocus="true" />
					<span class="inputGroup-text"><xf:button class="js-pageJumpGo">{{ phrase('go') }}</xf:button></span>
				</div>
			</div>
		</div>
	</div>
</xf:macro>]]></template>
  <template type="public" title="page_view" version_id="2030170" version_string="2.3.1"><![CDATA[<xf:title>{$page.title}</xf:title>
<xf:if is="$page.description">
	<xf:description>{$page.description|raw}</xf:description>
</xf:if>

<xf:if is="!$page.isSearchEngineIndexable()">
	<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>
</xf:if>

<xf:macro id="metadata_macros::canonical_url" arg-canonicalUrl="{{ link('canonical:pages', $page) }}" />

<xf:breadcrumb source="$page.getBreadcrumbs(false)" />

<xf:pageaction><xf:if contentcheck="true">
	<xf:contentcheck>
		<xf:macro id="bookmark_macros::link"
			arg-content="{$page.Node}"
			arg-confirmUrl="{{ link('pages/bookmark', $page) }}"
			arg-class="button button--link" />
	</xf:contentcheck>
</xf:if></xf:pageaction>

<xf:set var="$logVisits">
	<div class="block-outer block-outer--after">
		<ul class="listInline listInline--bullet">
			<li><dl class="pairs pairs--inline">
				<dt>{{ phrase('published') }}</dt>
				<dd>{{ date($page.publish_date) }}</dd>
			</dl></li>
			<li><dl class="pairs pairs--inline">
				<dt>{{ phrase('page_views') }}</dt>
				<dd>{{ number($page.view_count) }}</dd>
			</dl></li>
		</ul>
	</div>
</xf:set>

<xf:if is="$page.advanced_mode">
	<xf:include template="{$page.getTemplateName()}" />

	<xf:if is="$page.log_visits">
		<div class="block">
			{$logVisits|raw}
		</div>
	</xf:if>
<xf:else />
	<div class="block">
		<div class="block-container">
			<div class="block-body block-row">
				<xf:include template="{$page.getTemplateName()}" />
			</div>
		</div>
		<xf:if is="$page.log_visits">
			{$logVisits|raw}
		</xf:if>
	</div>
</xf:if>

<div class="blockMessage blockMessage--none">
	<xf:macro id="share_page_macros::buttons" arg-iconic="{{ true }}" arg-label="{{ phrase('share:') }}" />
</div>

<xf:sidenav mode="prepend">
	<xf:if contentcheck="true">
		<div class="block">
			<div class="block-container">
				<div class="block-body">
					<xf:contentcheck>
						<xf:if is="$page.list_siblings AND $siblings is not empty">
							<xf:if is="$parent">
								<a href="{{ link($parent.getRoute(), $parent) }}" class="blockLink">{$parent.title}</a>
							</xf:if>

							<xf:foreach loop="$siblings" value="$node">
								<a href="{{ link($node.getRoute(), $node) }}" class="blockLink {{ $node.node_id == $page.node_id ? 'is-selected' : '' }}">
									<span class="u-depth{{ $parent ? 1 : 0 }}">{$node.title}</span>
								</a>
								<xf:if is="$node.node_id == $page.node_id AND $page.list_children AND $children is not empty">
									<xf:foreach loop="$children" value="$childNode">
										<a href="{{ link($childNode.getRoute(), $childNode) }}" class="blockLink">
											<span class="u-depth{{ $parent ? 2 : 1 }}">{$childNode.title}</span>
										</a>
									</xf:foreach>
								</xf:if>
							</xf:foreach>
							<xf:elseif is="$page.list_children AND $children is not empty" />
							<xf:foreach loop="$children" value="$childNode">
								<a href="{{ link($childNode.getRoute(), $childNode) }}" class="blockLink">
									{$childNode.title}
								</a>
							</xf:foreach>
						</xf:if>
					</xf:contentcheck>
				</div>
			</div>
		</div>
	</xf:if>
</xf:sidenav>]]></template>
  <template type="public" title="passkeys_macros" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:macro id="your_passkeys" arg-passkeys="!" arg-linkType="{$xf.appType}">
	<xf:js src="xf/webauthn.js" />

	<div class="block">
		<div class="block-container">
			<h3 class="block-header">
				{{ phrase('your_passkeys') }}
				<xf:if is="$xf.request.isSecure()">
					<span class="u-pullRight u-jsOnly">
						<xf:button href="{{ link_type($linkType, 'account/passkey/add') }}" icon="fa-plus" data-xf-click="webauthn-click">{{ phrase('add_passkey') }}</xf:button>
					</span>
				</xf:if>
			</h3>
			<div class="block-body">
				<xf:inforow rowtype="close">
					{{ phrase('passkeys_secure_replacement_for_passwords_allowing_you_to_use') }}
				</xf:inforow>

				<xf:foreach loop="$passkeys" value="$passkey">
					<li class="block-row block-row--separated">
						<div class="contentRow contentRow--alignMiddle">
							<xf:if is="$passkey.hasIcon()">
								<div class="contentRow-figure contentRow-figure--fixedSmall">
									<xf:macro id="style_variation_macros::picture_color_scheme"
										arg-light="{$passkey.getIcon('light')}"
										arg-dark="{$passkey.getIcon('dark')}"
										arg-width="100" arg-height="100"
										arg-alt="{$passkey.getAuthenticatorName()}" />
								</div>
							</xf:if>
							<div class="contentRow-main">
								<div class="contentRow-extra">
									<div class="buttonGroup">
										<xf:button href="{{ link_type($linkType, 'account/passkeys/edit', $passkey) }}" class="button--link button--smaller" overlay="true">{{ phrase('edit') }}</xf:button>
										<xf:button href="{{ link_type($linkType, 'account/passkeys/delete', $passkey) }}" class="button--link button--smaller" overlay="true">{{ phrase('delete') }}</xf:button>
									</div>
								</div>

								<h2 class="contentRow-title">{$passkey.name}</h2>

								<div class="contentRow-minor contentRow-minor--hideLinks">
									<ul class="listInline listInline--bullet">
										<li>
											{{ phrase('created:') }}
											<xf:date time="{$passkey.create_date}"/>
										</li>
										<xf:if is="$passkey.last_use_date">
											<li>
												{{ phrase('last_used:') }}
												<xf:date time="{$passkey.last_use_date}"/>
											</li>
										</xf:if>
									</ul>
								</div>
							</div>
						</div>
					</li>
				</xf:foreach>
			</div>
		</div>
	</div>
</xf:macro>]]></template>
  <template type="public" title="password_box" version_id="2010131" version_string="2.1.1 Beta 1"><![CDATA[<xf:if is="$checkStrength">
	<xf:js prod="xf/password_box-compiled.js" dev="vendor/dropbox/zxcvbn.min.js, xf/password_box.js" />
</xf:if>

<xf:set var="$input">
	<input type="password" name="{$name}" value="{$value}"
		class="input js-password {{ $hideShow ? 'input--passwordHideShow' : '' }}" {$attrsHtml|raw} />
</xf:set>

<div data-xf-init="{{ $checkStrength ? 'password-strength' : null }} {{ $hideShow ? 'password-hide-show' : '' }}"
	data-show-text="{{ phrase('button.show')|for_attr }}" data-hide-text="{{ phrase('button.hide')|for_attr }}">
	<xf:if is="$hideShow">
		<div class="inputGroup inputGroup--joined">
			{$input|raw}
			{$afterInputHtml|raw}
			<div class="inputGroup-text">
				<xf:checkbox standalone="true">
					<xf:option labelclass="iconic--hideShow js-hideShowContainer">{{ phrase('button.show') }}</xf:option>
				</xf:checkbox>
			</div>
		</div>
	<xf:else />
		{$input|raw}
	</xf:if>

	<xf:if is="$checkStrength">
		<meter min="0" max="100" class="meterBar js-strengthMeter" low="40" high="80" optimum="100"></meter>
		<span class="js-strengthText meterBarLabel">{{ phrase('entering_password_is_required') }}</span>
		<script class="js-zxcvbnLanguage" type="application/json">
			{
				"Straight rows of keys are easy to guess": "{{ phrase('straight_rows_of_keys_easy_to_guess')|escape('json') }}",
				"Short keyboard patterns are easy to guess": "{{ phrase('short_keyboard_patterns_easy_to_guess')|escape('json') }}",
				"Repeats like \"aaa\" are easy to guess": "{{ phrase('repeated_characters_such_as_aaa_easy_to_guess')|escape('json') }}",
				"Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\"": "{{ phrase('repeated_characters_such_as_abcabcabc_only_slightly_more_difficult')|escape('json') }}",
				"Avoid repeated words and characters": "{{ phrase('avoid_repeated_words_and_characters')|escape('json') }}",
				"Sequences like abc or 6543 are easy to guess": "{{ phrase('sequences_like_abc_or_6543_easy_to_guess')|escape('json') }}",
				"Recent years are easy to guess": "{{ phrase('recent_years_easy_to_guess')|escape('json') }}",
				"Dates are often easy to guess": "{{ phrase('dates_often_easy_to_guess')|escape('json') }}",
				"This is a top-10 common password": "{{ phrase('this_password_appears_in_top_10_most_common_passwords_list')|escape('json') }}",
				"This is a top-100 common password": "{{ phrase('this_password_appears_in_top_100_most_common_passwords_list')|escape('json') }}",
				"This is a very common password": "{{ phrase('this_password_is_very_common_password')|escape('json') }}",
				"This is similar to a commonly used password": "{{ phrase('this_password_is_similar_to_commonly_used_password')|escape('json') }}",
				"A word by itself is easy to guess": "{{ phrase('word_by_itself_is_easy_to_guess')|escape('json') }}",
				"Names and surnames by themselves are easy to guess": "{{ phrase('names_and_surnames_by_themselves_easy_to_guess')|escape('json') }}",
				"Common names and surnames are easy to guess": "{{ phrase('common_names_and_surnames_easy_to_guess')|escape('json') }}",

				"The chosen password could be stronger": "{{ phrase('the_chosen_password_could_be_stronger')|escape('json') }}",
				"Entering a password is required": "{{ phrase('entering_password_is_required')|escape('json') }}",
				"This is a very strong password": "{{ phrase('this_is_very_strong_password')|escape('json') }}",
				"This is a reasonably strong password": "{{ phrase('this_is_reasonably_strong_password')|escape('json') }}"
			}
		</script>
	</xf:if>
</div>]]></template>
  <template type="public" title="payment_cancel_recurring" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:if is="$purchaseRequest.Purchasable.isCancelled($purchaseRequest)">
	<div class="block-rowMessage block-rowMessage--important">
		{{ phrase('this_purchase_has_been_cancelled_successfully_and_will_expire') }}
	</div>
<xf:else />
	<xf:button href="{{ link('purchase/cancel-recurring', null, {'request_key': $purchaseRequest.request_key}) }}"
		overlay="true">
		{{ phrase('button.cancel') }}
	</xf:button>
</xf:if>]]></template>
  <template type="public" title="payment_cancel_recurring_confirm" version_id="2011070" version_string="2.1.10"><![CDATA[<xf:title>{{ phrase('confirm_cancellation_of_subscription:') }} {$purchasableItem.title}</xf:title>

<xf:form action="{{ link('purchase/cancel-recurring', null, {'request_key': $purchaseRequest.request_key}) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_cancel_following_subscription:') }}
				<strong>{$purchasableItem.title}</strong>
				<div class="blockMessage blockMessage--important">
					{{ phrase('note_your_subscription_may_appear_active_until_original_expiry_date') }}
				</div>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('button.cancel') }}" rowtype="simple" />
	</div>
</xf:form>]]></template>
  <template type="public" title="payment_cancel_recurring_paypal" version_id="2020670" version_string="2.2.6"><![CDATA[<div>
	<xf:button href="{$endpoint}myaccount/autopay/" target="_blank">
		{{ phrase('button.cancel') }}
	</xf:button>

	<div class="formRow-explain">
		{{ phrase('note_paypal_subscriptions_can_only_be_canceled_from_your_paypal_account') }}
	</div>
</div>]]></template>
  <template type="public" title="payment_change_payment_recurring" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:button href="{{ link('purchase/change-payment', null, {'request_key': $purchaseRequest.request_key}) }}">
	{{ phrase('change_payment') }}
</xf:button>]]></template>
  <template type="public" title="payment_initiate.less" version_id="2011070" version_string="2.1.10"><![CDATA[.block
{
	&.block--paymentInitiate
	{
		margin-bottom: 0;
	}
}

.input
{
	&.braintree-hosted-fields-focused
	{
		.xf-inputFocus();
	}

	&.braintree-hosted-fields-invalid
	{
		.m-invalidInput();
	}

	&.StripeElement
	{
		&.StripeElement--focus
		{
			.xf-inputFocus();
		}

		&.StripeElement--invalid
		{
			.m-invalidInput();
		}
	}
}

.button
{
	&.button--apple
	{
		border-color: black;
		background-color: black;
		background-image: -webkit-named-image(apple-pay-logo-white);
		background-position: 50% 50%;
		background-repeat: no-repeat;
		background-size: 100% calc(~'60% + 2px');
		transition: background-color .15s;
		min-width: 100px;

		&:hover,
		&:active,
		&:focus
		{
			background-color: rgba(0,0,0,0.8);
		}
	}
}

.m-invalidInput()
{
	border: @xf-borderSize solid #c84448;
	background: #fde9e9;
	color: #c84448 !important;
}]]></template>
  <template type="public" title="payment_initiate_braintree" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:css src="payment_initiate.less" />
<xf:js src="xf/payment.js" min="1" />

<xf:title>{{ phrase('enter_payment_details') }}</xf:title>

<div class="blocks">
	<xf:form action="{{ link('purchase/process', null, {'request_key': $purchaseRequest.request_key}) }}" class="block"
		data-xf-init="braintree-payment-form"
		data-client-token="{$clientToken}">

		<div class="block-container">
			<div class="block-body">
				<xf:formrow label="{{ phrase('pay_by_card') }}" controlid="card-number" rowtype="input">
					<div class="inputGroup">
						<div class="inputGroup-text"><span style="width: 30px;"><xf:fa icon="fa-lg fa-credit-card" id="brand-icon" /></span></div>
						<div id="card-number" class="input is-disabled"></div>
						<div class="inputGroup-splitter"></div>
						<div id="card-expiry" class="input is-disabled" style="width: 130px"></div>
						<div class="inputGroup-splitter"></div>
						<div id="card-cvv" class="input is-disabled" style="width: 75px"></div>
					</div>
					<div class="formRow-explain">{{ phrase('payments_processed_securely_by_x', {'link': 'https://braintreepayments.com/', 'provider': 'Braintree'}) }}</div>
				</xf:formrow>

				<hr class="formRowSep" />

				<xf:formrow label="" rowtype="button">
					<xf:button type="submit" icon="payment">
						{{ phrase('pay_x', {'cost': $purchase.cost|currency($purchase.currency)}) }}
					</xf:button>
				</xf:formrow>

				<script type="application/json" class="js-formStyles">
					{
						<xf:foreach loop="$xf.style.getVariations()" value="$variation">
							"{{ $variation|escape('json') }}": {
								"input": {
									"color": "{{ property_variation('textColor', $variation, '#141414') }}",
									"font-family": "{{ property_variation('fontFamilyUi', $variation) }}",
									"font-size": "16px",
									"line-height": "{{ property_variation('lineHeightDefault', $variation, '1.4') }}"
								},
								"input.invalid": {
									"color": "#c84448"
								}
							},
						</xf:foreach>
						"_": "_"
					}
				</script>
			</div>
		</div>
	</xf:form>

	<xf:if is="$paymentProfile.options.apple_pay_enable OR $paymentProfile.options.paypal_enable">
		<div class="blocks-textJoiner"><span></span><em>{{ phrase('or_separator') }}</em><span></span></div>

		<xf:if is="$paymentProfile.options.apple_pay_enable">
			<xf:form action="{{ link('purchase/process', null, {'request_key': $purchaseRequest.request_key}) }}" class="block u-hidden"
				data-xf-init="braintree-apple-pay-form"
				data-client-token="{$clientToken}"
				data-currency-code="{$purchase.currency}"
				data-board-title="{$xf.options.boardTitle}"
				data-title="{$purchase.purchasableTitle}"
				data-amount="{$purchase.cost}">

				<div class="block-container">
					<div class="block-body">
						<xf:formrow rowtype="button"
							label="{{ phrase('pay_with_apple_pay') }}">
							<xf:button class="button--apple js-applePayButton">&nbsp;</xf:button>
						</xf:formrow>
					</div>
				</div>
			</xf:form>
		</xf:if>
		<xf:if is="$paymentProfile.options.paypal_enable">
			<xf:form action="{{ link('purchase/process', null, {'request_key': $purchaseRequest.request_key}) }}" class="block"
				data-xf-init="braintree-paypal-form"
				data-client-token="{$clientToken}"
				data-test-payments="{{ $xf.livePayments ? 'off' : 'on' }}">

				<div class="block-container">
					<div class="block-body">
						<xf:formrow rowtype="button"
							label="{{ phrase('pay_with_paypal') }}">
							<div id="paypal-button"></div>
						</xf:formrow>
					</div>
				</div>
			</xf:form>
		</xf:if>
	</xf:if>
</div>]]></template>
  <template type="public" title="payment_initiate_twocheckout" version_id="2030170" version_string="2.3.1"><![CDATA[<!-- 2Checkout insert begins here -->
<form action="{{ $xf.livePayments ? 'https://2checkout.com/checkout/purchase' : 'https://sandbox.2checkout.com/checkout/purchase' }}" method="post" style="display: none" id="js-2CheckoutForm">
	<xf:hiddenval name="sid">{$paymentProfile.options.account_number}</xf:hiddenval>
	<xf:hiddenval name="mode">2CO</xf:hiddenval>
	<xf:hiddenval name="li_0_type">product</xf:hiddenval>
	<xf:hiddenval name="li_0_name">{$purchase.title}</xf:hiddenval>
	<xf:hiddenval name="li_0_price">{$purchase.cost}</xf:hiddenval>
	<xf:hiddenval name="li_0_tangible">N</xf:hiddenval>

	<xf:if is="{$recurrence}">
		<xf:hiddenval name="li_0_recurrence">{$recurrence}</xf:hiddenval>
	</xf:if>

	<xf:hiddenval name="currency_code">{$purchase.currency}</xf:hiddenval>
	<xf:hiddenval name="email">{$xf.visitor.email}</xf:hiddenval>
	<xf:hiddenval name="merchant_order_id">{$purchaseRequest.request_key}</xf:hiddenval>
	<xf:hiddenval name="x_receipt_link_url">{{ link('canonical:purchase/process', null, {'request_key': $purchaseRequest.request_key}) }}</xf:hiddenval>

		<!-- TODO: If we provide a way to input address details, the inline checkout can be used. -->
		<input type="hidden" name="card_holder_name" value="" />
		<input type="hidden" name="street_address" value="" />
		<input type="hidden" name="street_address2" value="" />
		<input type="hidden" name="city" value="" />
		<input type="hidden" name="state" value="" />
		<input type="hidden" name="zip" value="" />
		<input type="hidden" name="country" value="" />

	<xf:js>
		XF.loadScript('https://www.2checkout.com/static/checkout/javascript/direct.min.js', () =>
		{
			const form = document.querySelector('#js-2CheckoutForm')
			if (XF.trigger(form, 'submit'))
			{
				form.submit()
			}
		});
	</xf:js>
</form>]]></template>
  <template type="public" title="poll.less" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[.pollResult
{
	display: table;
	table-layout: fixed;
	width: 100%;
	margin: 0;
	padding: @xf-blockPaddingV @xf-blockPaddingH;

	&.pollResult--showVoters
	{
		cursor: pointer;

		&:hover
		{
			background: @xf-contentHighlightBg;
		}
	}
}

.pollResult-response
{
	display: table-cell;
	margin: 0;
	padding: 0;
	vertical-align: middle;
	font-size: @xf-fontSizeNormal;
	font-weight: @xf-fontWeightNormal;

	.pollResult--voted &
	{
		font-weight: @xf-fontWeightHeavy;

		&:before
		{
			.m-faBase();
			.m-faContent("@{fa-var-check-circle}\20");
			color: @xf-textColorAttention;
			unicode-bidi: isolate;
		}
	}
}

.pollResult-votes
{
	display: table-cell;
	width: 6.5em;
	vertical-align: middle;
	text-align: right;
}

.pollResult-percentage
{
	display: table-cell;
	width: 4.35em;
	vertical-align: middle;
	text-align: right;
}

.pollResult-graph
{
	display: table-cell;
	width: 30%;
	padding-left: @xf-paddingMedium;
	vertical-align: middle;
}

.pollResult-bar
{
	display: block;
	position: relative;
	height: .8em;

	&:empty
	{
		display: none;
	}

	> i
	{
		position: absolute;
		left: 0;
		top: 0;
		bottom: 0;
		background: @xf-progressBarColor;
		border-radius: @xf-borderRadiusMedium;
	}
}

.pollResult-voters
{
	padding: @xf-blockPaddingV @xf-blockPaddingH;
	.xf-contentHighlightBase();
}

.pollResult--simple
{
	display: block;
	.m-narrowPollResults();
}

@media (max-width: @xf-responsiveMedium)
{
	.pollResult
	{
		display: block;
		.m-narrowPollResults();
	}
}

.m-narrowPollResults()
{
	.pollResult-response
	{
		display: block;
	}

	.pollResult-votes
	{
		display: inline;
	}

	.pollResult-percentage
	{
		display: inline;
		padding-left: 1em;
	}

	.pollResult-graph
	{
		display: block;
		width: 100%;
		padding-left: 0;
	}
}]]></template>
  <template type="public" title="poll_block" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('poll_results') }}</xf:title>

<xf:breadcrumb source="$breadcrumbs" />

<xf:macro id="poll_macros::poll_block" arg-poll="{$poll}" arg-simpleDisplay="{$simpleDisplay}" />]]></template>
  <template type="public" title="poll_create" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('create_poll') }}</xf:title>

<xf:breadcrumb source="$breadcrumbs" />

<xf:form action="{$createFormUrl}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:macro id="poll_macros::add_edit_inputs" />
		</div>

		<xf:redirect url="{$redirect}" />
		<xf:submitrow sticky="true" icon="save" />
	</div>
</xf:form>]]></template>
  <template type="public" title="poll_delete" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('reset_poll') }}</xf:title>

<xf:breadcrumb source="$breadcrumbs" />

<xf:macro id="poll_macros::delete_block" arg-poll="{$poll}" />]]></template>
  <template type="public" title="poll_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('edit_poll') }}</xf:title>

<xf:breadcrumb source="$breadcrumbs" />

<xf:form action="{{ $poll.getLink('edit') }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:macro id="poll_macros::add_edit_inputs" arg-poll="{$poll}"/>
		</div>

		<xf:redirect url="{$redirect}" />
		<xf:submitrow icon="save" sticky="true" />
	</div>
</xf:form>

<xf:if is="$poll && $poll.canDelete()">
	<xf:macro id="poll_macros::delete_block" arg-poll="{$poll}" />
</xf:if>]]></template>
  <template type="public" title="poll_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="poll_block" arg-poll="!" arg-showVoteBlock="{{ false }}" arg-simpleDisplay="{{ false }}" arg-forceTitle="{{ false }}">
	<xf:form action="{{ $poll.getLink('vote') }}" ajax="true" class="block js-pollContainer-{$poll.poll_id}" data-xf-init="poll-block">
		<div class="block-container">
			<h2 class="{{ $simpleDisplay ? 'block-minorHeader' : 'block-header' }}">
				<xf:if is="$simpleDisplay">
					<a href="{{ $poll.getLink('content') }}">{{ $forceTitle ?: $poll.question }}</a>
				<xf:else />
					<xf:fa icon="fa-chart-bar" /> {{ $forceTitle ?: $poll.question }}
					<xf:if is="$poll.canEdit()">
						<xf:button href="{{ $poll.getLink('edit') }}" class="button--link button--small u-pullRight"
							overlay="true" icon="edit" />
					</xf:if>
				</xf:if>
			</h2>
			<xf:if is="$poll.canVote() AND ($showVoteBlock OR !$poll.hasVoted())">
				<xf:macro id="vote" arg-poll="{$poll}" />
			<xf:else />
				<xf:macro id="result" arg-poll="{$poll}" arg-simpleDisplay="{$simpleDisplay}" />
			</xf:if>
		</div>
		<xf:hiddenval name="simple_display">{$simpleDisplay}</xf:hiddenval>
	</xf:form>
</xf:macro>

<xf:macro id="vote" arg-poll="!">
	<div class="block-body">
		<div class="block-row">
			<xf:if is="$poll.max_votes == 1">
				<xf:radio name="responses[]">
					<xf:foreach loop="$poll.responses" key="$responseId" value="$response">
						<xf:option value="{$responseId}" selected="{{ $poll.hasVoted($responseId) }}">{$response.response|censor}</xf:option>
					</xf:foreach>
				</xf:radio>
			<xf:else />
				<xf:checkbox name="responses[]">
					<xf:foreach loop="$poll.responses" key="$responseId" value="$response">
						<xf:option value="{$responseId}" selected="{{ $poll.hasVoted($responseId) }}">{$response.response|censor}</xf:option>
					</xf:foreach>
				</xf:checkbox>
			</xf:if>
		</div>
		<xf:if contentcheck="true">
			<hr class="block-separator" />
			<div class="block-row block-row--minor">
				<ul class="listInline">
				<xf:contentcheck>
					<xf:if is="$poll.close_date">
						<xf:if is="!$poll.isClosed()">
							<li>{{ phrase('this_poll_will_close:') }} <xf:date time="{$poll.close_date}" />.</li>
						<xf:else />
							<li>{{ phrase('poll_closed') }} <xf:date time="{$poll.close_date}" />.</li>
						</xf:if>
					</xf:if>
					<xf:if is="$poll.max_votes != 1">
						<li>{{ phrase('multiple_votes_allowed') }}</li>
					</xf:if>
					<xf:if is="$poll.public_votes">
						<li>{{ phrase('your_vote_will_be_publicly_visible') }}</li>
					</xf:if>
				</xf:contentcheck>
				</ul>
			</div>
		</xf:if>
	</div>
	<div class="block-footer">
		<span class="block-footer-controls">
			<xf:button type="submit" class="button--primary" icon="vote">{{ phrase('cast_vote') }}</xf:button>
			<xf:if is="$poll.canViewResults()">
				<xf:button href="{{ $poll.getLink('results') }}" overlay="true" icon="result" rel="nofollow">{{ phrase('view_results') }}</xf:button>
			</xf:if>
		</span>
	</div>
</xf:macro>

<xf:macro id="result" arg-poll="!" arg-simpleDisplay="{{ false }}" arg-showFooter="{{ true }}">
	<xf:css src="poll.less" />
	<xf:set var="$canViewResults" value="{{ $poll.canViewResults() }}" />

	<div class="block-body">
		<ul class="listPlain">
		<xf:foreach loop="$poll.responses" key="$responseId" value="$response">
			<li>
				<xf:set var="$canShowVoters" value="{{ $canViewResults AND $poll.public_votes AND $response.response_vote_count AND !$simpleDisplay }}" />
				<div class="{{ $canShowVoters ? 'fauxBlockLink' : '' }}">
					<div class="pollResult {{ $simpleDisplay ? 'pollResult--simple' : '' }} {{ $poll.hasVoted($responseId) ? 'pollResult--voted' : '' }} {{ $canShowVoters ? 'pollResult--showVoters' : '' }}">
						<h3 class="pollResult-response">{$response.response|censor}</h3>
						<xf:if is="$canViewResults">
							<span class="pollResult-votes">
								<xf:if is="$canShowVoters">
									<a class="fauxBlockLink-blockLink"
										data-xf-click="toggle"
										data-target=".js-pollResultVoters-{$responseId}"
										role="button"
										tabindex="0">
										<span class="u-muted">{{ phrase('votes:') }}</span> {$response.response_vote_count|number}
									</a>
								<xf:else />
									<span class="u-muted">{{ phrase('votes:') }}</span> {$response.response_vote_count|number}
								</xf:if>
							</span>
							<span class="pollResult-percentage">
								{{ $poll.getVotePercentage($response.response_vote_count)|number(1) }}%
							</span>
							<span class="pollResult-graph" aria-hidden="true">
								<span class="pollResult-bar"><xf:if is="$response.response_vote_count">
									<i style="width: {{ $poll.getVotePercentage($response.response_vote_count) }}%"></i>
								</xf:if></span>
							</span>
						</xf:if>
					</div>
				</div>
				<xf:if is="$canShowVoters">
					<div class="pollResult-voters js-pollResultVoters-{$responseId} toggleTarget"
						data-href="{{ $poll.getLink('results', {'response': $responseId}) }}"
						data-load-selector=".js-pollVoters"></div>
				</xf:if>
			</li>
		</xf:foreach>
		</ul>
		<xf:if is="!$canViewResults">
			<hr class="block-separator" />
			<div class="block-row block-row--minor">
				<span class="u-muted">{{ phrase('results_only_viewable_after_voting') }}</span>
			</div>
		<xf:elseif is="!$simpleDisplay" />
			<hr class="block-separator" />
			<div class="block-row block-row--minor">
				<ul class="listInline listInline--bullet">
					<li>
						<dl class="pairs pairs--inline">
							<dt>{{ phrase('total_voters') }}</dt>
							<dd>{$poll.voter_count|number}</dd>
						</dl>
					</li>
					<xf:if is="$poll.close_date">
						<xf:if is="!$poll.isClosed()">
							<li>{{ phrase('this_poll_will_close:') }} <xf:date time="{$poll.close_date}" />.</li>
						<xf:else />
							<li>{{ phrase('poll_closed') }} <xf:date time="{$poll.close_date}" />.</li>
						</xf:if>
					</xf:if>
				</ul>
			</div>
		</xf:if>
	</div>
	<xf:if is="$showFooter">
		<xf:if contentcheck="true">
			<div class="block-footer">
			<xf:contentcheck>
				<xf:if is="$simpleDisplay">
					<a href="{{ $poll.getLink('content') }}">{{ phrase('see_comments...') }}</a>
				<xf:else />
					<xf:if is="$poll.canVote() AND $poll.hasVoted()">
						<span class="block-footer-controls"><xf:button href="{{ $poll.getLink('vote') }}"
							data-xf-click="inserter" data-replace=".js-pollContainer-{$poll.poll_id}">
							{{ phrase('change_vote') }}
						</xf:button></span>
					</xf:if>
				</xf:if>
			</xf:contentcheck>
			</div>
		</xf:if>
	</xf:if>
</xf:macro>

<xf:macro id="add_edit_inputs" arg-poll="{{ null }}" arg-draft="{{ [] }}" arg-rowType="">
	<xf:if is="!$poll OR $poll.canEditDetails()">
		<xf:textboxrow
			name="poll[question]"
			value="{{ $draft.question ?: $poll.question }}"
			maxlength="{{ max_length('XF:Poll', 'question') }}"
			rowtype="{$rowType}}"
			label="{{ phrase('question') }}" />

	<xf:else />
		<xf:formrow label="{{ phrase('question') }}" rowtype="{$rowType}}">{$poll.question}</xf:formrow>
	</xf:if>

	<xf:set var="$responsesId" value="{{ unique_id() }}" />
	<xf:formrow rowtype="input {$rowType}"
		label="{{ phrase('possible_responses') }}" labelid="{$responsesId}">

		<ul class="inputList" role="group" aria-labelledby="{$responsesId}">
			<xf:if is="$poll">
				<xf:foreach loop="$poll.Responses" value="$response">
					<li>
						<xf:if is="$poll.canEditDetails()">
							<xf:textbox name="poll[existing_responses][{$response.poll_response_id}]"
								value="{$response.response}"
								maxlength="{{ max_length('XF:PollResponse', 'response') }}"
								aria-label="{{ phrase('poll_choice')|for_attr }}"
								placeholder="{{ phrase('poll_choice...') }}" />
						<xf:else />
							{$response.response}
						</xf:if>
					</li>
				</xf:foreach>
				<xf:set var="$remainingResponses" value="{{ $xf.options.pollMaximumResponses - count($poll.responses) }}" />
			<xf:elseif is="$draft" />
				<xf:foreach loop="$draft.new_responses" value="$response" i="$count" if="$response">
					<li>
						<xf:textbox name="poll[new_responses][]" value="{$response}"
							maxlength="{{ max_length('XF:PollResponse', 'response') }}"
							aria-label="{{ phrase('poll_choice')|for_attr }}"
							placeholder="{{ phrase('poll_choice...') }}" />
					</li>
				</xf:foreach>
				<xf:set var="$remainingResponses" value="{{ $xf.options.pollMaximumResponses - $count }}" />
			<xf:else />
				<xf:set var="$remainingResponses" value="{$xf.options.pollMaximumResponses}" />
			</xf:if>
			<xf:if is="$remainingResponses > 0">
				<li data-xf-init="field-adder" data-remaining="{{ $remainingResponses - 1 }}">
					<xf:textbox name="poll[new_responses][]" value=""
						maxlength="{{ max_length('XF:PollResponse', 'response') }}"
						aria-label="{{ phrase('poll_choice')|for_attr }}"
						placeholder="{{ phrase('poll_choice...') }}" />
				</li>
			</xf:if>
		</ul>
	</xf:formrow>

	<xf:radiorow name="poll[max_votes_type]"
		label="{{ phrase('maximum_selectable_responses') }}"
		explain="{{ phrase('this_is_maximum_number_of_responses_voter_may_select_when_voting') }}"
		rowtype="{$rowType}">

		<xf:if is="($draft AND $draft.max_votes_type == 'single') OR !$poll OR $poll.max_votes == 1">
			<xf:option value="single" selected="{{ ($draft AND $draft.max_votes_type == 'single') OR (!$draft AND !$poll.poll_id) OR $poll.max_votes == 1 }}"
				label="{{ phrase('single_choice') }}" />
		</xf:if>

		<xf:option value="unlimited" selected="{{ ($draft AND $draft.max_votes_type == 'unlimited') OR $poll AND $poll.max_votes == 0 }}"
			label="{{ phrase('unlimited') }}" />

		<xf:option value="number" selected="{{ ($draft AND $draft.max_votes_value > 1) OR $poll.max_votes > 1 }}">
			<xf:numberbox name="poll[max_votes_value]" min="1" max="255" value="{{ $draft.max_votes_value ?: ($poll.max_votes < 2 ? 2 : $poll.max_votes) }}" />
		</xf:option>
	</xf:radiorow>

	<xf:checkboxrow label="{{ phrase('options') }}" rowtype="{$rowType}">
		<xf:option name="poll[change_vote]" selected="{{ ($draft AND $draft.change_vote) OR !$poll OR $poll.change_vote }}">
			{{ phrase('allow_voters_to_change_their_votes') }}
		</xf:option>

		<xf:if is="!$poll OR $poll.canChangePollVisibility()">
			<xf:option name="poll[public_votes]" selected="{{ ($draft AND $draft.public_votes) OR $poll AND $poll.public_votes }}">
				{{ phrase('display_votes_publicly') }}
			</xf:option>
		</xf:if>

		<xf:option name="poll[view_results_unvoted]" selected="{{ ($draft AND $draft.view_results_unvoted) OR !$poll OR $poll.view_results_unvoted }}">
			{{ phrase('allow_results_to_be_viewed_without_voting') }}
		</xf:option>

		<xf:if is="$poll AND $poll.close_date">
			<xf:option name="poll[remove_close]" selected="{$poll.close_date}">
				{{ phrase('close_this_poll_on_x', {'close_date': date_time($poll.close_date)}) }}
			</xf:option>
		<xf:else />
			<xf:option name="poll[close]"
				selected="$draft AND $draft.close"
				label="{{ phrase('close_this_poll_after:') }}">

				<xf:dependent>
					<div class="inputGroup">
						<xf:numberbox name="poll[close_length]" value="{{ ($draft AND $draft.close_length) ? $draft.close_length : 7 }}" min="1" max="365" />
						<span class="inputGroup-splitter"></span>
						<xf:select name="poll[close_units]" class="input--autoSize">
							<xf:option value="hours" selected="$draft AND $draft.close_units == 'hours'">{{ phrase('hours') }}</xf:option>
							<xf:option value="days" selected="($draft AND $draft.close_units == 'days') OR !$draft">{{ phrase('days') }}</xf:option>
							<xf:option value="weeks" selected="$draft AND $draft.close_units == 'weeks'">{{ phrase('weeks') }}</xf:option>
							<xf:option value="months" selected="$draft AND $draft.close_units == 'months'">{{ phrase('months') }}</xf:option>
						</xf:select>
					</div>
				</xf:dependent>
			</xf:option>
		</xf:if>
	</xf:checkboxrow>

</xf:macro>

<xf:macro id="delete_block" arg-poll="!">
	<xf:form action="{{ $poll.getLink('delete') }}" class="block" ajax="true">
		<div class="block-container">
			<div class="block-body">
				<h2 class="block-header">{{ phrase('delete_poll') }}</h2>

				<xf:radiorow name="poll_action">
					<xf:option checked="1">{{ phrase('do_nothing') }}</xf:option>

					<xf:if is="$poll.voter_count">
						<xf:option value="reset">{{ phrase('reset_all_votes') }}</xf:option>
					</xf:if>

					<xf:option value="remove">{{ phrase('delete_entire_poll') }}</xf:option>
				</xf:radiorow>
			</div>

			<xf:redirect fallback="{{ $poll.getLink('content') }}" />
			<xf:submitrow icon="delete" />
		</div>
	</xf:form>
</xf:macro>]]></template>
  <template type="public" title="poll_results" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('view_results:') }} {$poll.question}</xf:title>

<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<xf:breadcrumb source="$breadcrumbs" />

<div class="block">
	<div class="block-container">
		<xf:macro id="poll_macros::result" arg-poll="{$poll}" arg-showFooter="{{ false }}" />
	</div>
</div>]]></template>
  <template type="public" title="poll_vote" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('cast_vote') }}</xf:title>

<xf:breadcrumb source="$breadcrumbs" />

<xf:macro id="poll_macros::poll_block"
	arg-poll="{$poll}"
	arg-showVoteBlock="{{ true }}"
	arg-simpleDisplay="{$simpleDisplay}" />
]]></template>
  <template type="public" title="poll_voters" version_id="2000070" version_string="2.0.0"><![CDATA[<xf:title>{{ phrase('poll_voters:') }} {$poll.question}</xf:title>

<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<xf:breadcrumb source="$breadcrumbs" />

<div class="block">
	<div class="block-container">
		<div class="block-header">{{ phrase('members_who_voted_for_x', {'response': $response.response}) }}</div>
		<div class="block-body block-row">
			<div class="js-pollVoters">
				<ul class="listInline listInline--comma"><xf:trim>
					<xf:foreach loop="$response.Votes" value="$vote">
						<li><xf:username user="$vote.User" /></li>
					</xf:foreach>
				</xf:trim></ul>
			</div>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="post" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$canInlineMod">
	<xf:js src="xf/inline_mod.js" min="1" />
</xf:if>

<div class="block" data-xf-init="{{ $canInlineMod ? 'inline-mod' : '' }}" data-type="post" data-href="{{ link('inline-mod') }}">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$isPinnedFirstPost">
				<xf:macro id="{{ $templateOverrides.pinned_first_post_macro ?: 'post_macros::post' }}"
					arg-post="{$post}"
					arg-thread="{$thread}"
					args="{$templateOverrides.pinned_first_post_macro_args}" />
			<xf:else />
				<xf:macro id="{{ $templateOverrides.post_macro ?: 'post_macros::post' }}"
					arg-post="{$post}"
					arg-thread="{$thread}"
					args="{$templateOverrides.post_macro_args}" />
			</xf:if>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="post_article_macros" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:macro id="article"
	arg-post="!"
	arg-thread="!"
	arg-forum="{{ null }}"
	arg-isExpanded="{{ true }}"
	arg-isListItem="{{ false }}">


	<xf:css src="message.less" />
	<article class="message message--article js-post js-inlineModContainer
		{{ $thread.discussion_state == 'moderated' ? 'is-moderated' : '' }}
		{{ $thread.discussion_state == 'deleted' ? 'is-deleted' : '' }}"
		data-author="{{ $post.User.username ?: $post.username }}"
		data-content="post-{$post.post_id}"
		id="js-post-{$post.post_id}">

		<span class="u-anchorTarget" id="post-{$post.post_id}"></span>
		<div class="message-inner">
			<div class="message-cell message-cell--main">
				<div class="message-expandWrapper js-expandWatch {{ $isExpanded ? 'is-expanded' : ''}}">
					<div class="message-expandContent js-expandContent">
						<div class="message-main js-quickEditTarget">

							<xf:if is="$isListItem">
								<h2 class="article-title">
									<xf:if is="$thread.discussion_state == 'moderated'">
										<xf:fa icon="fa-shield" class="structItem-status--moderated" aria-hidden="true" title="{{ phrase('awaiting_approval')|for_attr }}" />
										<span class="u-srOnly">{{ phrase('awaiting_approval') }}</span>
									<xf:elseif is="$thread.discussion_state == 'deleted'" />
										<i class="structItem-status structItem-status--deleted" aria-hidden="true" title="{{ phrase('deleted')|for_attr }}"></i>
										<span class="u-srOnly">{{ phrase('deleted') }}</span>
									</xf:if>
									<xf:if is="$thread.prefix_id">
										<xf:if is="$forum">
											<a href="{{ link('forums', $forum, {'prefix_id': $thread.prefix_id}) }}" class="labelLink" rel="nofollow">{{ prefix('thread', $thread, 'html', '') }}</a>
										<xf:else />
											{{ prefix('thread', $thread, 'html', '') }}
										</xf:if>
									</xf:if>
									<a href="{{ link('threads' . (($thread.isUnread() AND !$forceRead) ? '/unread' : ''), $thread) }}">{$thread.title}</a>
								</h2>
							</xf:if>

							<xf:macro id="post_macros::post_attribution"
								arg-post="{$post}"
								arg-thread="{$thread}"
								arg-mainClass="listInline--bullet"
								arg-showPosition="{{ false }}"
								arg-showReplyCount="{{ $isListItem ? false : true }}"
								arg-showUser="{$isListItem}"
								arg-showThreadUnreadIndicator="{$isListItem}"
								arg-showThreadStateIcons="{$isListItem}" />

							<xf:macro id="post_macros::post_notices" arg-post="{$post}" arg-thread="{$thread}" />

							<div class="message-content js-messageContent">
								<xf:macro id="post_macros::post_user_content"
									arg-post="{$post}"
									arg-thread="{$thread}"
									arg-snippet="{{ $isListItem ? $thread.Forum.type_config.expanded_snippet : false }}"
									arg-displayAds="{{ !$isListItem }}" />

								<xf:macro id="post_macros::post_last_edit" arg-post="{$post}" />
							</div>

							<xf:if is="$isListItem">
								<xf:macro id="list_item_footer"
									arg-post="{$post}"
									arg-thread="{$thread}"
									arg-snippet="{$thread.Forum.type_config.expanded_snippet}" />
							<xf:else />
								<xf:macro id="post_macros::post_footer" arg-post="{$post}" arg-thread="{$thread}" />
							</xf:if>

						</div>
					</div>
					<div class="message-expandLink js-expandLink"><a role="button" tabindex="0">{{ phrase('click_to_expand') }}</a></div>
				</div>
			</div>
		</div>

		<xf:if is="!$isListItem">
			<aside class="message-articleUserInfo">
				<div class="message-cell">
					<xf:macro id="author_info" arg-user="{$post.User}" arg-fallbackName="{$post.username}" />
				</div>
			</aside>
		</xf:if>

	</article>

	<xf:if is="!$isListItem">
		<xf:ad position="post_below_container" arg-post="{$post}" />
	</xf:if>
</xf:macro>

<xf:macro id="list_item_footer"
	arg-post="!"
	arg-thread="!"
	arg-snippet="{{ false }}">

	<xf:set var="$link" value="{{ link('threads', $thread) }}" />
	<xf:set var="$linkUnread" value="{{ link('threads' . ($thread.isUnread() ? '/unread' : ''), $thread) }}" />

	<footer class="message-footer">
		<div class="message-actionBar actionBar">
			<xf:if contentcheck="true">
				<div class="actionBar-set actionBar-set--external">
					<xf:contentcheck>
						<xf:if is="$thread.reply_count">
							<a href="{$linkUnread}" class="actionBar-action actionBar-action--replies">
								<xf:fa icon="fa-comment" class="u-spaceAfter" />{{ phrase('replies:') }} {$thread.reply_count|number}</a>
						</xf:if>
						<xf:if is="$thread.canUseInlineModeration()">
							<span class="actionBar-action actionBar-action--inlineMod"><xf:checkbox standalone="true">
								<xf:option value="{$thread.thread_id}" class="js-inlineModToggle"
									data-xf-init="tooltip"
									title="{{ phrase('select_for_moderation') }}"
									label="{{ phrase('select_for_moderation') }}"
									hiddenlabel="true"/>
							</xf:checkbox></span>
						</xf:if>
					</xf:contentcheck>
				</div>
			</xf:if>
			<xf:if contentcheck="true">
				<div class="actionBar-set actionBar-set--internal">
					<xf:contentcheck>
						<xf:if is="$snippet">
							<a href="{$link}" class="actionBar-action actionBar-action--threadLink">
								{{ phrase('view_full_article') }} &raquo;</a>
						</xf:if>
					</xf:contentcheck>
				</div>
			</xf:if>
		</div>
	</footer>
</xf:macro>

<xf:macro id="author_info" arg-user="!" arg-fallbackName="">
	<div class="contentRow">
		<div class="contentRow-figure">
			<xf:avatar user="$user" size="m" defaultname="{$fallbackName}" />
		</div>
		<div class="contentRow-main">

			<div class="message-articleUserFirstLine">
				<div class="message-articleWrittenBy u-srOnly">{{ phrase('article_written_by') }}</div>
				<h3 class="message-articleUserName">
					<xf:username user="$user" rich="true" defaultname="{$fallbackName}" />
				</h3>

				<xf:if contentcheck="true">
					<div class="message-articleUserBlurb">
						<xf:contentcheck>
							<xf:userblurb user="$user" tag="div" />
						</xf:contentcheck>
					</div>
				</xf:if>
			</div>

			<xf:if contentcheck="true">
				<div class="message-articleUserAbout">
					<xf:contentcheck>
						<xf:if is="$user.Profile.about != ''">
							{{ bb_code($user.Profile.about, 'user:about', $user) }}
						</xf:if>
					</xf:contentcheck>
				</div>
			</xf:if>

			<xf:if contentcheck="true">
				<div class="message-articleUserBanners">
					<xf:contentcheck><xf:userbanners user="$user" /></xf:contentcheck>
				</div>
			</xf:if>

			<div class="message-articleUserStats">
				<ul class="listInline listInline--bullet">
					<!--[XF:stats:start]-->
					<li><dl class="pairs pairs--inline">
						<dt>{{ phrase('messages') }}</dt>
						<dd>{$user.message_count|number}</dd>
					</dl></li>
					<!--[XF:stats:after_messages]-->
					<li><dl class="pairs pairs--inline">
						<dt>{{ phrase('reaction_score') }}</dt>
						<dd>{$user.reaction_score|number}</dd>
					</dl></li>
					<!--[XF:stats:after_likes]-->
					<!--[XF:stats:after_reactions]-->
					<xf:if is="$xf.options.enableTrophies">
						<li><dl class="pairs pairs--inline">
							<dt>{{ phrase('points') }}</dt>
							<dd>{$user.trophy_points|number}</dd>
						</dl></li>
					</xf:if>
					<!--[XF:stats:end]-->
				</ul>
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="article_preview"
	arg-thread="!"
	arg-post="!"
	arg-forum="!"
	arg-allowInlineMod="{{ true }}">

	<xf:set var="$link" value="{{ link('threads', $thread) }}" />
	<xf:set var="$linkUnread" value="{{ link('threads' . ($thread.isUnread() ? '/unread' : ''), $thread) }}" />
	<xf:set var="$username"><xf:username user="{$thread.User}" defaultname="{$thread.username}" class="u-concealed" /></xf:set>

	<article class="message message--article message--articlePreview {{
		$thread.discussion_state == 'moderated' ? 'is-moderated' : '' }}{{
		$thread.discussion_state == 'deleted' ? 'is-deleted' : ''
		}} js-inlineModContainer js-threadListItem-{$thread.thread_id}">
		<div class="articlePreview-main">
			<xf:if is="$thread.cover_image">
				<a href="{$linkUnread}" class="articlePreview-image" tabindex="-1">
					<img src="{$thread.cover_image}" alt="{$thread.title}" loading="lazy" />
				</a>
			</xf:if>
			<div class="articlePreview-text">
				<div class="articlePreview-headline">
					<h2 class="articlePreview-title">
						<xf:if is="$thread.discussion_state == 'moderated'">
							<xf:fa icon="fa-shield" class="structItem-status--moderated" aria-hidden="true" title="{{ phrase('awaiting_approval')|for_attr }}" />
							<span class="u-srOnly">{{ phrase('awaiting_approval') }}</span>
						<xf:elseif is="$thread.discussion_state == 'deleted'" />
							<i class="structItem-status structItem-status--deleted" aria-hidden="true" title="{{ phrase('deleted')|for_attr }}"></i>
							<span class="u-srOnly">{{ phrase('deleted') }}</span>
						</xf:if>
						<xf:if is="$thread.prefix_id">
							<xf:if is="$forum">
								<a href="{{ link('forums', $forum, {'prefix_id': $thread.prefix_id}) }}" class="labelLink" rel="nofollow">{{ prefix('thread', $thread, 'html', '') }}</a>
								<xf:else />
								{{ prefix('thread', $thread, 'html', '') }}
							</xf:if>
						</xf:if>
						<a href="{$linkUnread}">{$thread.title}</a>
					</h2>
				</div>
				<div class="articlePreview-content">
					<div class="message-content js-messageContent" data-xf-init="lightbox">
						<div class="message-userContent lbContainer js-lbContainer"
							data-lb-id="post-{$post.post_id}"
							data-lb-caption-desc="{{ $post.User ? $post.User.username : $post.username }} &middot; {{ date_time($post.post_date) }}">
							<article class="message-body">
								{{ snippet($post.message, 750, {
									'stripQuote': true,
									'bbWrapper': true
								}) }}
							</article>
						</div>
					</div>
				</div>
				<div class="articlePreview-links">
					<ul class="articlePreview-statuses">
						<xf:extension id="status_new">
							<xf:if is="$thread.isUnread()">
								<li><span class="message-newIndicator" title="{{ !$post.isUnread() ? phrase('new_replies') : '' }}">{{ phrase('new') }}</span></li>
							</xf:if>
						</xf:extension>

						<xf:extension id="status_watch">
							<xf:if is="{$xf.visitor.user_id} AND {$thread.Watch.{$xf.visitor.user_id}}">
								<li>
									<i class="structItem-status structItem-status--watched" aria-hidden="true" title="{{ phrase('thread_watched')|for_attr }}"></i>
									<span class="u-srOnly">{{ phrase('thread_watched') }}</span>
								</li>
								<xf:elseif is="!$forum AND {$thread.Forum.Watch.{$xf.visitor.user_id}}" />
								<li>
									<i class="structItem-status structItem-status--watched" aria-hidden="true" title="{{ phrase('forum_watched')|for_attr }}"></i>
									<span class="u-srOnly">{{ phrase('forum_watched') }}</span>
								</li>
							</xf:if>
						</xf:extension>

						<xf:extension id="status_state">
							<xf:if is="$thread.discussion_state == 'moderated'">
								<li>
									<i class="structItem-status structItem-status--moderated" aria-hidden="true" title="{{ phrase('awaiting_approval')|for_attr }}"></i>
									<span class="u-srOnly">{{ phrase('awaiting_approval') }}</span>
								</li>
							</xf:if>
							<xf:if is="$thread.discussion_state == 'deleted'">
								<li>
									<i class="structItem-status structItem-status--deleted" aria-hidden="true" title="{{ phrase('deleted')|for_attr }}"></i>
									<span class="u-srOnly">{{ phrase('deleted') }}</span>
								</li>
							</xf:if>
							<xf:if is="!$thread.discussion_open">
								<li>
									<i class="structItem-status structItem-status--locked" aria-hidden="true" title="{{ phrase('locked')|for_attr }}"></i>
									<span class="u-srOnly">{{ phrase('locked') }}</span>
								</li>
							</xf:if>
						</xf:extension>

						<xf:extension id="status_sticky">
							<xf:if is="$thread.sticky">
								<li>
									<i class="structItem-status structItem-status--sticky" aria-hidden="true" title="{{ phrase('sticky')|for_attr }}"></i>
									<span class="u-srOnly">{{ phrase('sticky') }}</span>
								</li>
							</xf:if>
						</xf:extension>
					</ul>

					<a href="{$link}">{{ phrase('view_full_article') }} &raquo;</a>
				</div>
			</div>
		</div>
		<footer class="articlePreview-footer">
			<ul class="articlePreview-meta listPlain">
				<li><xf:avatar user="{$thread.User}" size="xxs" defaultname="{$thread.username}"/></li>
				<li class="articlePreview-by">{{ phrase('by_user_x', {'name':$username}) }}</li>
				<li><a href="{$link}" class="u-concealed" rel="nofollow"><xf:date time="{$thread.post_date}"/></a></li>
				<li><a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}"
					class="u-concealed"
					data-xf-init="share-tooltip"
					data-href="{{ link('posts/share', $post) }}"
					aria-label="{{ phrase('share')|for_attr }}"
					rel="nofollow">
					<xf:fa icon="fa-share-alt"/>
				</a></li>
				<xf:if is="$xf.options.embedCodeShare AND method_exists($post, 'getEmbedCodeHtml')">
					<li class="u-hidden js-embedCopy">
						<xf:macro id="share_page_macros::share_clipboard_text"
							arg-class="u-concealed"
							arg-text="{$post.getEmbedCodeHtml()}"
							arg-successText="{{ phrase('embed_code_html_copied_to_clipboard') }}" />
					</li>
				</xf:if>
				<xf:if is="$thread.reply_count">
					<li class="articlePreview-replies"><a href="{$linkUnread}"
						title="{{ phrase('replies:') }} {$thread.reply_count|number}">
						<xf:fa icon="fa-comment" class="u-spaceAfter" /><span class="articlePreview-repliesLabel">{{ phrase('replies:') }} </span>{$thread.reply_count|number}</a></li>
				</xf:if>
				<xf:if is="$allowInlineMod AND $thread.canUseInlineModeration()">
					<li><xf:checkbox standalone="true">
						<xf:option value="{$thread.thread_id}" class="js-inlineModToggle"
							data-xf-init="tooltip"
							title="{{ phrase('select_for_moderation') }}"
							label="{{ phrase('select_for_moderation') }}"
							hiddenlabel="true"/>
					</xf:checkbox></li>
				</xf:if>
			</ul>
		</footer>
	</article>
</xf:macro>]]></template>
  <template type="public" title="post_delete" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('delete_post') }}</xf:title>

<xf:breadcrumb source="$thread.getBreadcrumbs()" />

<xf:form action="{{ link('posts/delete', $post) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$post.isFirstPost()">
				<xf:inforow>
					<div class="blockMessage blockMessage--important"><strong>{{ phrase('note:') }}</strong> {{ phrase('this_is_first_post_in_thread') }}</div>
				</xf:inforow>
			</xf:if>
			<xf:macro id="helper_action::delete_type" arg-canHardDelete="{$post.canDelete('hard')}" />

			<xf:if is="$post.canSendModeratorActionAlert()">
				<xf:macro id="helper_action::author_alert" />
			</xf:if>
		</div>
		<xf:submitrow icon="delete" sticky="true" />
	</div>
	<xf:redirect />
</xf:form>]]></template>
  <template type="public" title="post_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('edit_post') }}</xf:title>

<xf:breadcrumb source="$thread.getBreadcrumbs()" />

<xf:form action="{{ link('posts/edit', $post) }}" ajax="true" class="block"
	data-xf-init="attachment-manager{{ ($post.isFirstPost() AND $thread.canEdit()) ? ' post-edit' : '' }}">

	<div class="block-container">
		<div class="block-body">
			<span class="u-anchorTarget js-editContainer"></span>
			<xf:if is="$post.isFirstPost() AND $thread.canEdit()">
				<xf:prefixinputrow
					label="{{ phrase('title') }}"
					prefixes="{{ $thread.isPrefixEditable() ? $prefixes : [] }}"
					type="thread"
					prefix-value="{$thread.prefix_id}"
					textbox-value="{$thread.title}"
					placeholder="{{ phrase('title...') }}"
					rowtype="{{ $quickEdit ? 'fullWidth' : '' }}"
					maxlength="{{ max_length($thread, 'title') }}"
					help-href="{{ link('forums/prefix-help', $forum) }}" />
			</xf:if>

			<xf:editorrow name="message" value="{$post.message}"
				attachments="{$attachmentData.attachments}"
				rowtype="fullWidth noLabel"
				data-min-height="{{ $quickEdit ? 100 : '' }}"
				label="{{ phrase('message') }}"
				data-preview-url="{{ link('posts/preview', $post) }}" />

			<xf:formrow rowtype="{{ $quickEdit ? 'fullWidth noLabel mergePrev' : '' }}">
				<xf:if is="$attachmentData">
					<xf:macro id="helper_attach_upload::upload_block" arg-attachmentData="{$attachmentData}" />
				</xf:if>
			</xf:formrow>

			<xf:if is="$post.isFirstPost() AND $thread.canEdit()">
				<xf:if contentcheck="true">
					<xf:if is="!$quickEdit">
						<hr class="formRowSep" />
					</xf:if>
					<xf:contentcheck>
						{{ $thread.TypeHandler.renderExtraDataEdit(
							$thread,
							'edit',
							$quickEdit ? 'first_post_quick' : 'first_post'
						)|raw }}
					</xf:contentcheck>
				</xf:if>

				<xf:if contentcheck="true">
					<hr class="formRowSep" />
					<xf:contentcheck>
						<xf:macro id="custom_fields_macros::custom_fields_edit"
							arg-type="threads"
							arg-set="{$thread.custom_fields}"
							arg-editMode="{{ $thread.getFieldEditMode() }}"
							arg-onlyInclude="{$forum.field_cache}"
							arg-rowType="{{ $quickEdit ? 'fullWidth' : '' }}" />
					</xf:contentcheck>
				</xf:if>
			</xf:if>

			<xf:if is="$post.canEditSilently()">
				<xf:formrow rowtype="{{ $quickEdit ? 'fullWidth noLabel' : '' }}">
					<xf:macro id="helper_action::edit_type" arg-canEditSilently="{$post.canEditSilently()}" />
				</xf:formrow>
			</xf:if>

			<xf:if is="$post.canSendModeratorActionAlert()">
				<xf:formrow rowtype="{{ $quickEdit ? 'fullWidth noLabel' : '' }}">
					<xf:macro id="helper_action::author_alert" arg-row="{{ false }}" />
				</xf:formrow>
			</xf:if>
		</div>
		<xf:submitrow icon="save" sticky="true" rowtype="{{ $quickEdit ? 'simple' : '' }}">
			<xf:html>
				<xf:if is="$quickEdit">
					<xf:button class="js-cancelButton">{{ phrase('button.cancel') }}</xf:button>
				</xf:if>
			</xf:html>
		</xf:submitrow>
	</div>
</xf:form>]]></template>
  <template type="public" title="post_edit_new_post" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ prefix('thread', $thread, 'escaped') }}{$thread.title}</xf:title>
<xf:h1>{{ prefix('thread', $thread) }}{$thread.title}</xf:h1>

<xf:macro id="thread_view::thread_custom_fields_status"
	arg-thread="{$thread}"
	arg-forum="{$thread.Forum}"
	arg-wrapperClass="block-outer" />

<xf:if is="$isPinnedFirstPost">
	<xf:macro id="{{ $templateOverrides.pinned_first_post_macro ?: 'post_macros::post' }}"
		arg-post="{$post}"
		arg-thread="{$thread}"
		args="{$templateOverrides.pinned_first_post_macro_args}" />
<xf:else />
	<xf:macro id="{{ $templateOverrides.post_macro ?: 'post_macros::post' }}"
		arg-post="{$post}"
		arg-thread="{$thread}"
		args="{$templateOverrides.post_macro_args}" />
</xf:if>]]></template>
  <template type="public" title="post_macros" version_id="2030036" version_string="2.3.0 Beta 6"><![CDATA[<xf:macro id="post"
	arg-post="!"
	arg-thread="!"
	arg-highlightedPosts="{{ [] }}">

	<xf:set var="$includeMicrodata" value="{{ !$post.isFirstPost() }}" />
	<xf:css src="message.less" />

	<xf:extension id="before"></xf:extension>

	<xf:extension id="extra_classes" value="message--post" />
	<article class="message {{ extension_value('extra_classes') }} js-post js-inlineModContainer {{ $post.isIgnored() ? 'is-ignored' : '' }} {{ $post.isUnread() ? ' is-unread' : '' }}"
		data-author="{{ $post.User.username ?: $post.username }}"
		data-content="post-{$post.post_id}"
		id="js-post-{$post.post_id}"
		{{ $includeMicrodata ? 'itemscope itemtype="https://schema.org/' . $thread.getReplyMicrodataType() . '" itemid="' . $post.getContentUrl(true) . '"' : '' }}>

		<xf:if is="$includeMicrodata">
			<meta itemprop="parentItem" itemscope itemid="{{ link('canonical:threads', $thread) }}" />
		</xf:if>

		<span class="u-anchorTarget" id="post-{$post.post_id}"></span>

		<xf:extension id="full_body">
			<div class="message-inner">
				<xf:extension id="user_cell">
					<div class="message-cell message-cell--user">
						<xf:macro id="message_macros::user_info" arg-user="{$post.User}"
							arg-fallbackName="{$post.username}"
							arg-includeMicrodata="{$includeMicrodata}"
							arg-itemProp="author" />
					</div>
				</xf:extension>

				<xf:extension id="main_cell">
					<div class="message-cell message-cell--main">
					<xf:extension id="main_cell_inner">
						<div class="message-main js-quickEditTarget">

							<xf:extension id="attribution">
								<xf:macro id="post_attribution" arg-post="{$post}" arg-thread="{$thread}" />
							</xf:extension>

							<div class="message-content js-messageContent">
							<xf:extension id="content">

								<xf:extension id="notices">
									<xf:macro id="post_notices" arg-post="{$post}" arg-thread="{$thread}" />
								</xf:extension>

								<xf:extension id="user_content">
									<xf:macro id="post_user_content" arg-post="{$post}" arg-thread="{$thread}" />
								</xf:extension>

								<xf:extension id="after_content">
									<xf:macro id="post_last_edit" arg-post="{$post}" />
								</xf:extension>

								<xf:extension id="signature">
									<xf:macro id="message_macros::signature" arg-user="{$post.User}" />
								</xf:extension>

							</xf:extension>
							</div>

							<xf:extension id="footer">
								<xf:macro id="post_footer" arg-post="{$post}" arg-thread="{$thread}" />
							</xf:extension>
						</div>

					</xf:extension>
					</div>
				</xf:extension>
			</div>
		</xf:extension>
	</article>

	<xf:extension id="after"></xf:extension>
	<xf:ad position="post_below_container" arg-post="{$post}" />
</xf:macro>

<xf:macro id="post_attribution"
	arg-post="!"
	arg-thread="!"
	arg-showPosition="{{ true }}"
	arg-showUser="{{ false }}"
	arg-showThreadUnreadIndicator="{{ false }}"
	arg-showReplyCount="{{ false }}"
	arg-repliesPhrase="{{ phrase('replies:') }}"
	arg-showThreadStateIcons="{{ false }}"
	arg-mainClass=""
	arg-oppositeClass="">

	<xf:set var="$includeMicrodata" value="{{ !$post.isFirstPost() }}" />

	<header class="message-attribution message-attribution--split">
		<ul class="message-attribution-main listInline {$mainClass}">
			<xf:if is="$showThreadStateIcons">
				<xf:if is="{$xf.visitor.user_id} AND {$thread.Watch.{$xf.visitor.user_id}}">
					<li>
						<xf:fa icon="fa-bell" title="{{ phrase('thread_watched')|for_attr }}" />
						<span class="u-srOnly">{{ phrase('thread_watched') }}</span>
					</li>
				</xf:if>

				<xf:if is="$thread.sticky">
					<li>
						<xf:fa icon="fa-thumbtack" title="{{ phrase('sticky')|for_attr }}" />
						<span class="u-srOnly">{{ phrase('sticky') }}</span>
					</li>
				</xf:if>
			</xf:if>
			<xf:if is="$showUser">
				<xf:set var="$username"><xf:username user="{$post.User}" defaultname="{$post.username}" /></xf:set>
				<li class="u-concealed message-attribution-user--top">{{ phrase('by_user_x', {'name':$username}) }}</li>
			</xf:if>
			<li class="u-concealed">
				<a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}" rel="nofollow" {{ $includeMicrodata ? 'itemprop="url"' : '' }}>
					<xf:date time="{$post.post_date}" itemprop="{{ $includeMicrodata ? 'datePublished' : '' }}" />
				</a>
			</li>
			<xf:if is="$showReplyCount && $thread.reply_count">
				<li class="u-concealed">
					<a href="{{ link('threads', $thread) }}#posts">
						<xf:fa icon="fa-comment" class="u-spaceAfter" />{$repliesPhrase|raw} {$thread.reply_count|number}
					</a>
				</li>
			</xf:if>
		</ul>

		<ul class="message-attribution-opposite message-attribution-opposite--list {$oppositeClass}">
			<xf:if is="$post.isUnread()">
				<li><span class="message-newIndicator">{{ phrase('new') }}</span></li>
			<xf:elseif is="$thread.isUnread() && $showThreadUnreadIndicator" />
				<li><span class="message-newIndicator" title="{{ phrase('new_replies')|for_attr }}">{{ phrase('new') }}</span></li>
			</xf:if>
			<li>
				<a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}"
					class="message-attribution-gadget"
					data-xf-init="share-tooltip"
					data-href="{{ link('posts/share', $post) }}"
					aria-label="{{ phrase('share')|for_attr }}"
					rel="nofollow">
					<xf:fa icon="fa-share-alt" />
				</a>
			</li>
			<xf:if is="$xf.options.embedCodeShare AND method_exists($post, 'getEmbedCodeHtml')">
				<li class="u-hidden js-embedCopy">
					<xf:macro id="share_page_macros::share_clipboard_text"
						arg-text="{$post.getEmbedCodeHtml()}"
						arg-successText="{{ phrase('embed_code_html_copied_to_clipboard') }}" />
				</li>
			</xf:if>
			<xf:if contentcheck="true">
				<li>
					<xf:contentcheck>
						<xf:macro id="bookmark_macros::link"
							arg-content="{$post}"
							arg-class="message-attribution-gadget bookmarkLink--highlightable"
							arg-confirmUrl="{{ link('posts/bookmark', $post) }}"
							arg-showText="{{ false }}"/>
					</xf:contentcheck>
				</li>
			</xf:if>
			<xf:if is="$showPosition">
				<li>
					<a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}" rel="nofollow">
						#{{ number($post.position + 1) }}
					</a>
				</li>
			</xf:if>
		</ul>
	</header>
</xf:macro>

<xf:macro id="post_notices" arg-post="!" arg-thread="!">
	<xf:if is="$post.message_state == 'deleted'">
		<div class="messageNotice messageNotice--deleted">
			<xf:macro id="deletion_macros::notice" arg-log="{$post.DeletionLog}" />
		</div>
	<xf:elseif is="$post.message_state == 'moderated'" />
		<div class="messageNotice messageNotice--moderated">
			{{ phrase('this_message_is_awaiting_moderator_approval_and_is_invisible_to_normal') }}
		</div>
	</xf:if>
	<xf:if is="$post.warning_message">
		<div class="messageNotice messageNotice--warning">
			{$post.warning_message}
		</div>
	</xf:if>
	<xf:if is="$post.isIgnored()">
		<div class="messageNotice messageNotice--ignored">
			{{ phrase('you_are_ignoring_content_by_this_member') }}
			<xf:showignored />
		</div>
	</xf:if>
</xf:macro>

<xf:macro id="post_user_content" arg-post="!" arg-thread="!" arg-snippet="{{ false }}" arg-displayAds="{{ true }}">
	<xf:set var="$includeMicrodata" value="{{ !$post.isFirstPost() }}" />

	<div class="message-userContent lbContainer js-lbContainer {{ $post.isIgnored() ? 'is-ignored' : '' }}"
		data-lb-id="post-{$post.post_id}"
		data-lb-caption-desc="{{ $post.User ? $post.User.username : $post.username }} &middot; {{ date_time($post.post_date) }}">

		<xf:if is="$post.isFirstPost()">
			<xf:macro id="custom_fields_macros::custom_fields_view"
				arg-type="threads"
				arg-group="before"
				arg-onlyInclude="{$thread.Forum.field_cache}"
				arg-set="{$thread.custom_fields}"
				arg-wrapperClass="message-fields message-fields--before" />
		</xf:if>

		<article class="message-body js-selectToQuote">
			<xf:if is="$displayAds">
				<xf:ad position="post_above_content" arg-post="{$post}" />
			</xf:if>

			<div {{ $includeMicrodata ? 'itemprop="text"' : '' }}>
				<xf:if is="$snippet">
					{{ bb_code_snippet($post.message, 'post', $post, $snippet) }}
				<xf:else />
					{{ bb_code($post.message, 'post', $post) }}
				</xf:if>
			</div>

			<div class="js-selectToQuoteEnd">&nbsp;</div>
			<xf:if is="$displayAds">
				<xf:ad position="post_below_content" arg-post="{$post}" />
			</xf:if>
		</article>

		<xf:if is="$post.isFirstPost()">
			<xf:macro id="custom_fields_macros::custom_fields_view"
				arg-type="threads"
				arg-group="after"
				arg-onlyInclude="{$thread.Forum.field_cache}"
				arg-set="{$thread.custom_fields}"
				arg-wrapperClass="message-fields message-fields--after" />
		</xf:if>

		<xf:if is="$post.attach_count">
			<xf:macro id="message_macros::attachments"
				arg-attachments="{$post.Attachments}"
				arg-message="{$post}"
				arg-canView="{{ $thread.canViewAttachments() }}" />
		</xf:if>
	</div>
</xf:macro>

<xf:macro id="post_last_edit" arg-post="!">
	<xf:set var="$includeMicrodata" value="{{ !$post.isFirstPost() }}" />

	<xf:if is="$post.last_edit_date">
		<div class="message-lastEdit">
			<xf:if is="$post.user_id == $post.last_edit_user_id">
				{{ phrase('last_edited:') }} <xf:date time="{$post.last_edit_date}" itemprop="{{ $includeMicrodata ? 'dateModified' : '' }}" />
			<xf:else />
				{{ phrase('last_edited_by_moderator:') }} <xf:date time="{$post.last_edit_date}" itemprop="{{ $includeMicrodata ? 'dateModified' : '' }}" />
			</xf:if>
		</div>
	</xf:if>
</xf:macro>

<xf:macro id="post_footer" arg-post="!" arg-thread="!">
	<xf:set var="$includeMicrodata" value="{{ !$post.isFirstPost() }}" />

	<footer class="message-footer">
		<xf:if is="$includeMicrodata">
			<div class="message-microdata" itemprop="interactionStatistic" itemtype="https://schema.org/InteractionCounter" itemscope>
				<meta itemprop="userInteractionCount" content="{{ $post.isContentVotingSupported() ? $post.vote_score : $post.reaction_score }}" />
				<meta itemprop="interactionType" content="https://schema.org/LikeAction" />
			</div>
		</xf:if>

		<xf:if contentcheck="true">
			<div class="message-actionBar actionBar">
				<xf:contentcheck>
					<xf:macro id="post_action_bar" arg-post="{$post}" arg-thread="{$thread}" />
				</xf:contentcheck>
			</div>
		</xf:if>

		<div class="reactionsBar js-reactionsList {{ $post.reactions ? 'is-active' : '' }}">
			<xf:reactions content="{$post}" link="posts/reactions" />
		</div>

		<div class="js-historyTarget message-historyTarget toggleTarget" data-href="trigger-href"></div>
	</footer>
</xf:macro>

<xf:macro id="post_action_bar" arg-post="!" arg-thread="!">
	<xf:if contentcheck="true">
		<div class="actionBar-set actionBar-set--external">
		<xf:contentcheck>
			<xf:react content="{$post}" link="posts/react" list="< .js-post | .js-reactionsList" />

			<xf:if is="$thread.canReply() OR $thread.canReplyPreReg()">
				<xf:set var="$quoteLink">{{ link('threads/reply', $thread, {'quote': $post.post_id}) }}</xf:set>

				<xf:if is="$xf.options.multiQuote AND $xf.visitor.user_id">
					<a href="{$quoteLink}"
						class="actionBar-action actionBar-action--mq u-jsOnly js-multiQuote"
						title="{{ phrase('toggle_multi_quote_tooltip')|for_attr }}"
						rel="nofollow"
						data-message-id="{$post.post_id}"
						data-mq-action="add">{{ phrase('quote') }}</a>
				</xf:if>

				<a href="{$quoteLink}"
					class="actionBar-action actionBar-action--reply"
					title="{{ phrase('reply_quoting_this_message')|for_attr }}"
					rel="nofollow"
					data-xf-click="quote"
					data-quote-href="{{ link('posts/quote', $post) }}">{{ phrase('reply') }}</a>
			</xf:if>
		</xf:contentcheck>
		</div>
	</xf:if>

	<xf:if contentcheck="true">
		<div class="actionBar-set actionBar-set--internal">
		<xf:contentcheck>
			<xf:if is="$post.canUseInlineModeration()">
				<span class="actionBar-action actionBar-action--inlineMod">
					<xf:checkbox standalone="true">
						<xf:option value="{$post.post_id}" class="js-inlineModToggle"
							data-xf-init="tooltip"
							title="{{ phrase('select_for_moderation') }}"
							label="{{ phrase('select_for_moderation') }}"
							hiddenlabel="true" />
					</xf:checkbox>
				</span>
			</xf:if>

			<xf:if is="$post.canReport()">
				<a href="{{ link('posts/report', $post) }}"
					class="actionBar-action actionBar-action--report"
					data-xf-click="overlay">{{ phrase('report_verb') }}</a>
			</xf:if>

			<xf:set var="$hasActionBarMenu" value="{{ false }}" />
			<xf:if is="$post.canEdit()">
				<xf:js src="xf/action.js, xf/message.js" min="1" />
				<a href="{{ link('posts/edit', $post) }}"
					class="actionBar-action actionBar-action--edit actionBar-action--menuItem"
					data-xf-click="quick-edit"
					data-editor-target="#js-post-{$post.post_id} .js-quickEditTarget"
					data-menu-closer="true">{{ phrase('edit') }}</a>

				<xf:set var="$hasActionBarMenu" value="{{ true }}" />
			</xf:if>
			<xf:if is="$post.edit_count && $post.canViewHistory()">
				<a href="{{ link('posts/history', $post) }}"
					class="actionBar-action actionBar-action--history actionBar-action--menuItem"
					data-xf-click="toggle"
					data-target="#js-post-{$post.post_id} .js-historyTarget"
					data-menu-closer="true">{{ phrase('history') }}</a>

				<xf:set var="$hasActionBarMenu" value="{{ true }}" />
			</xf:if>
			<xf:if is="$post.canDelete('soft')">
				<a href="{{ link('posts/delete', $post) }}"
					class="actionBar-action actionBar-action--delete actionBar-action--menuItem"
					data-xf-click="overlay">{{ phrase('delete') }}</a>

				<xf:set var="$hasActionBarMenu" value="{{ true }}" />
			</xf:if>
			<xf:if is="$post.message_state == 'deleted' AND $post.canUndelete()">
				<a href="{{ link('posts/undelete', $post) }}"
					class="actionBar-action actionBar-action--undelete actionBar-action--menuItem"
					data-xf-click="overlay">{{ phrase('undelete') }}</a>

				<xf:set var="$hasActionBarMenu" value="{{ true }}" />
			</xf:if>
			<xf:if is="$post.canCleanSpam()">
				<a href="{{ link('spam-cleaner', $post) }}"
					class="actionBar-action actionBar-action--spam actionBar-action--menuItem"
					data-xf-click="overlay">{{ phrase('spam') }}</a>

				<xf:set var="$hasActionBarMenu" value="{{ true }}" />
			</xf:if>
			<xf:if is="$xf.visitor.canViewIps() && $post.ip_id">
				<a href="{{ link('posts/ip', $post) }}"
					class="actionBar-action actionBar-action--ip actionBar-action--menuItem"
					data-xf-click="overlay">{{ phrase('ip') }}</a>

				<xf:set var="$hasActionBarMenu" value="{{ true }}" />
			</xf:if>
			<xf:if is="$post.canWarn()">

				<a href="{{ link('posts/warn', $post) }}"
					class="actionBar-action actionBar-action--warn actionBar-action--menuItem">{{ phrase('warn') }}</a>

				<xf:set var="$hasActionBarMenu" value="{{ true }}" />
			<xf:elseif is="$post.warning_id && $xf.visitor.canViewWarnings()" />
				<a href="{{ link('warnings', {'warning_id': $post.warning_id}) }}"
					class="actionBar-action actionBar-action--warn actionBar-action--menuItem"
					data-xf-click="overlay">{{ phrase('view_warning') }}</a>
				<xf:set var="$hasActionBarMenu" value="{{ true }}" />
			</xf:if>

			<xf:if is="$hasActionBarMenu">
				<a class="actionBar-action actionBar-action--menuTrigger"
					data-xf-click="menu"
					title="{{ phrase('more_options')|for_attr }}"
					role="button"
					tabindex="0"
					aria-expanded="false"
					aria-haspopup="true">&#8226;&#8226;&#8226;</a>

				<div class="menu" data-menu="menu" aria-hidden="true" data-menu-builder="actionBar">
					<div class="menu-content">
						<h4 class="menu-header">{{ phrase('more_options') }}</h4>
						<div class="js-menuBuilderTarget"></div>
					</div>
				</div>
			</xf:if>
		</xf:contentcheck>
		</div>
	</xf:if>
</xf:macro>

<xf:macro id="post_deleted" arg-post="!" arg-thread="!">
	<xf:set var="$includeMicrodata" value="{{ !$post.isFirstPost() }}" />

	<xf:css src="message.less" />
	<div class="message message--deleted message--post{{ $post.isIgnored() ? ' is-ignored' : '' }}{{ $post.isUnread() ? ' is-unread' : '' }} js-post js-inlineModContainer"
		data-author="{{ $post.User.username ?: $post.username }}"
		data-content="post-{$post.post_id}">

		<span class="u-anchorTarget" id="post-{$post.post_id}"></span>
		<div class="message-inner">
			<div class="message-cell message-cell--user">
				<xf:macro template="message_macros" name="user_info_simple" arg-user="{$post.User}" arg-fallbackName="{$post.username}" arg-includeMicrodata="{$includeMicrodata}" arg-itemProp="author" />
			</div>
			<div class="message-cell message-cell--main">
				<div class="message-attribution">
					<ul class="listInline listInline--bullet message-attribution-main">
						<li><a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}" class="u-concealed" rel="nofollow"><xf:date time="{$post.post_date}" /></a></li>
						<li><xf:username user="{$post.User}" defaultname="{$post.username}" class="u-concealed" /></li>
					</ul>
				</div>

				<div class="messageNotice messageNotice--deleted">
					<xf:macro id="deletion_macros::notice" arg-log="{$post.DeletionLog}" />

					<a href="{{ link('posts/show', $post) }}" class="u-jsOnly" data-xf-click="inserter" data-replace="[data-content=post-{$post.post_id}]">{{ phrase('show...') }}</a>

					<xf:if is="$post.canUseInlineModeration()">
						<span style="display: none">
							<!-- this can be actioned on the full post -->
							<xf:checkbox standalone="true">
								<xf:option value="{$post.post_id}" class="js-inlineModToggle"
									hiddenlabel="true" />
							</xf:checkbox>
						</span>
					</xf:if>
				</div>
			</div>
		</div>
	</div>

	<xf:ad position="post_below_container" arg-post="{$post}" />
</xf:macro>]]></template>
  <template type="public" title="post_mark_solution" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{{ link('posts/mark-solution', $post) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<xf:if is="$type == 'add' OR $type == 'replace'">
					{{ phrase('please_confirm_you_want_mark_this_post_as_solution') }}
				<xf:else />
					{{ phrase('please_confirm_you_want_unmark_this_post_as_solution') }}
				</xf:if>
			</xf:inforow>

			<xf:if is="$type == 'replace'">
				<xf:inforow>
					<div class="block-rowMessage block-rowMessage--important block-rowMessage--iconic">
						{{ phrase('this_will_replace_existing_solution_x', {'url': link('posts', $existingSolution)}) }}

						<div>
							{{ bb_code('[QUOTE=%s]%s[/QUOTE]'|format($existingSolution.username, $existingSolution.message), 'question_thread_solution', $existingSolution) }}
						</div>
					</div>
				</xf:inforow>
			</xf:if>
		</div>
		<xf:submitrow rowtype="simple" icon="confirm" />
		<xf:hiddenval name="confirm" value="1" />
	</div>
</xf:form>]]></template>
  <template type="public" title="post_question_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="answer" extends="post_macros::post">
	<xf:extension id="extra_classes" value="message--post {{ $post.is_question_solution ? 'message--solution' : '' }}" />

	<xf:extension id="main_cell">
		<xf:extensionparent />

		<xf:if contentcheck="true">
			<div class="message-cell message-cell--vote">
				<div class="message-column">
				<xf:contentcheck>
					<xf:if is="$post.isContentVotingSupported()">
						<xf:macro id="content_vote_macros::vote_control"
							arg-link="posts/vote"
							arg-content="{$post}"
							arg-includeMicrodata="{{ true }} "/>
					</xf:if>

					<xf:if is="$post.canMarkAsQuestionSolution()">
						<xf:set var="$isSolutionText" value="{{ phrase('unmark_as_solution') }}" />
						<xf:set var="$makeSolutionText" value="{{ phrase('mark_as_solution') }}" />

						<a href="{{ link('posts/mark-solution', $post) }}"
							class="solutionIcon {{ $post.is_question_solution ? 'is-solution' : ''  }} js-solutionControl"
							data-xf-click="solution-edit"
							data-sk-marked="addClass:is-solution, titleAttr:sync, {$isSolutionText|for_attr}"
							data-sk-removed="removeClass:is-solution, titleAttr:sync, {$makeSolutionText|for_attr}"
							data-label=".u-srOnly"
							data-xf-init="tooltip"
							title="{{ $post.is_question_solution ? $isSolutionText : $makeSolutionText }}">
							<span class="u-srOnly">{{ $post.is_question_solution ? $isSolutionText : $makeSolutionText }}</span>
						</a>
					<xf:elseif is="$post.is_question_solution" />
						<span class="solutionIcon is-solution" data-xf-init="tooltip" title="{{ phrase('solution')|for_attr }}">
							<span class="u-srOnly">{{ phrase('solution') }}</span>
						</span>
					</xf:if>
				</xf:contentcheck>
				</div>
			</div>
		</xf:if>
	</xf:extension>
</xf:macro>]]></template>
  <template type="public" title="post_suggestion_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="suggestion" extends="post_macros::post">
	<xf:extension id="main_cell">
		<xf:extensionparent />

		<xf:if is="$thread.isContentVotingSupported()">
			<div class="message-cell message-cell--vote">
				<xf:macro id="content_vote_macros::vote_control"
					arg-link="threads/vote"
					arg-content="{$thread}" />
			</div>
		</xf:if>
	</xf:extension>
</xf:macro>]]></template>
  <template type="public" title="pre_reg_action_approval_queue" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:extension id="header">
	<h4 class="block-textHeader">
		<xf:if is="$details.title AND $details.title_link">
			{{ phrase('pre_registration_action:') }} <a href="{$details.title_link}">{$details.title}</a>
		<xf:elseif is="$details.title" />
			{{ phrase('pre_registration_action:') }} {$details.title}
		<xf:else />
			{{ phrase('pre_registration_action') }}
		</xf:if>
	</h4>
</xf:extension>

<xf:extension id="content">
	<div>
		<xf:if is="$details.bb_code">
			{{ bb_code($details.bb_code, 'pre_reg', $preRegAction.User) }}
		<xf:elseif is="$details.text" />
			{{ structured_text($details.text) }}
		<xf:else />
			{{ phrase('no_additional_information_available') }}
		</xf:if>
	</div>
</xf:extension>]]></template>
  <template type="public" title="prefix_input" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:js src="xf/prefix_menu.js" min="1" />
<xf:css src="prefix_menu.less" />

<xf:set var="$textbox">
	<xf:if is="$rows">
		<textarea rows="{$rows}" name="{$textboxName}"
			data-xf-init="textarea-handler {$xfInit}" data-single-line="true"
			class="input js-titleInput {$textboxClass}"
			autocomplete="off"
			{$attrsHtml|raw}>{$textboxValue}</textarea>
	<xf:else />
		<input type="text" name="{$textboxName}"
			data-xf-init="{$xfInit}"
			class="input js-titleInput {$textboxClass}"
			value="{$textboxValue}"
			autocomplete="off"
			{$attrsHtml|raw} />
	</xf:if>
</xf:set>
<xf:set var="$selectbox">
	<xf:macro id="prefix_macros::select"
		arg-name="{$prefixName}"
		arg-prefixes="{$prefixes}"
		arg-selected="{$prefixValue}"
		arg-type="{$prefixType}"
		arg-class="js-prefixSelect u-noJsOnly"
		arg-helpHref="{$helpHref}" />
</xf:set>

<xf:if is="$prefixes || $href">
	<div class="js-prefixContainer">
		<div class="inputGroup inputGroup--joined u-jsOnly">
			<div class="inputGroup-text">
				<div class="{$prefixClass}" data-xf-init="prefix-menu"
					{{ $href ? ' data-href="' . $href . '" data-listen-to="' . $listenTo . '"' : '' }}
					{{ $helpHref ? ' data-help-href="' . $helpHref . '"' : '' }}
					{{ $helpSkipInitial ? ' data-help-skip-initial="yes"' : '' }}
				>
					<a class="menuTrigger menuTrigger--prefix" data-xf-click="menu" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">
						<span class="js-activePrefix">{{ phrase('(no_prefix)') }}</span>
					</a>
					<div class="menu" data-menu="menu" aria-hidden="true">
						<div class="menu-content">
							<div class="menu-scroller js-prefixMenuContent" role="listbox">
								<xf:macro id="template" />
							</div>
						</div>
					</div>
				</div>
				{$selectbox|raw}
			</div>
			{$textbox|raw}
		</div>
		<xf:if is="$helpHref">
			<div class="js-prefixHelp"></div>
		</xf:if>
		<noscript>
			<div class="inputGroup">
				{$selectbox|raw}
				<span class="inputGroup-splitter"></span>
				{$textbox|raw}
			</div>
		</noscript>
	</div>
<xf:else />
	{$textbox|raw}
</xf:if>

<xf:macro id="template">
	<script type="text/template">
		<xf:mustache name="#groups">
			<xf:mustache name="#title">
				<h3 class="menu-header">{{ mustache('title') }}</h3>
			</xf:mustache>
			<xf:mustache name="#prefixes">
				<div class="menu-row">
					<a class="menuPrefix {{ mustache('css_class') }}"
						data-prefix-id="{{ mustache('prefix_id') }}"
						data-prefix-class="{{ mustache('css_class') }}"
						role="option">{{ mustache('title') }}</a>
				</div>
			</xf:mustache>
			<hr class="menu-separator" />
		</xf:mustache>
		<div class="menu-row">
			<a class="menuPrefix menuPrefix--none"
				data-prefix-id="0"
				data-prefix-class=""
				role="option">{{ phrase('(no_prefix)') }}</a>
		</div>
	</script>
</xf:macro>

<xf:macro id="menu_prefixes" arg-prefixes="!" arg-prefixType="!">
	<xf:foreach loop="array_keys($prefixes)" value="$groupId">
		<xf:if is="$groupId > 0">
			<h3 class="menu-header">{{ prefix_group($prefixType, $groupId) }}</h3>
			<div class="menu-row">
				<xf:foreach loop="{$prefixes.{$groupId}}" key="$prefixId" value="$prefix">
					<a class="menuPrefix {$prefix.css_class}"
						data-prefix-id="{$prefixId}"
						data-prefix-class="{$prefix.css_class}"
						role="option">{{ prefix_title($prefixType, $prefixId) }}</a>
				</xf:foreach>
			</div>
			<hr class="menu-separator" />
		<xf:else />
			<div class="menu-row">
				<xf:foreach loop="{$prefixes.{$groupId}}" key="$prefixId" value="$prefix">
					<a class="menuPrefix {$prefix.css_class}"
						data-prefix-id="{$prefixId}"
						data-prefix-class="{$prefix.css_class}"
						role="option">{{ prefix_title($prefixType, $prefixId) }}</a>
				</xf:foreach>
			</div>
			<hr class="menu-separator" />
		</xf:if>
	</xf:foreach>
	<div class="menu-row">
		<a class="menuPrefix menuPrefix--none"
			data-prefix-id="0"
			data-prefix-class=""
			role="option">{{ phrase('(no_prefix)') }}</a>
	</div>
</xf:macro>]]></template>
  <template type="public" title="prefix_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="select"
	arg-prefixes="!"
	arg-type="!"
	arg-selected=""
	arg-name="prefix_id"
	arg-noneLabel="{{ phrase('(no_prefix)') }}"
	arg-multiple="{{ false }}"
	arg-includeAny="{{ false }}"
	arg-class=""
	arg-href=""
	arg-controlId=""
	arg-listenTo="">

	<xf:select name="{$name}" value="{$selected}" multiple="{$multiple}" class="{$class}"
		data-xf-init="{{ ($href AND $listenTo) ? 'prefix-loader' : '' }}"
		data-href="{$href}"
		data-listen-to="{$listenTo}"
		id="{$controlId}"
		title="{{ phrase('prefix') }}">

		<xf:if is="$includeAny">
			<xf:option value="-1" label="{{ phrase('(any)') }}" />
		</xf:if>
		<xf:option value="0" label="{$noneLabel}" />
		<xf:foreach loop="array_keys($prefixes)" value="$groupId">
			<xf:if is="$groupId > 0">
				<xf:optgroup label="{{ prefix_group($type, $groupId) }}">
					<xf:foreach loop="{$prefixes.{$groupId}}" key="$prefixId" value="$prefix">
						<xf:option value="{$prefixId}"
							label="{{ prefix_title($type, $prefixId) }}"
							data-prefix-class="{$prefix.css_class}"
							data-has-help="{$prefix.has_usage_help}" />
					</xf:foreach>
				</xf:optgroup>
			<xf:else />
				<xf:foreach loop="{$prefixes.{$groupId}}" key="$prefixId" value="$prefix">
					<xf:option value="{$prefixId}"
						label="{{ prefix_title($type, $prefixId) }}"
						data-prefix-class="{$prefix.css_class}"
						data-has-help="{$prefix.has_usage_help}" />
				</xf:foreach>
			</xf:if>
		</xf:foreach>
	</xf:select>
</xf:macro>

<xf:macro id="row"
	arg-prefixes="!"
	arg-type="!"
	arg-label="{{ phrase('prefix') }}"
	arg-explain=""
	arg-selected=""
	arg-name="prefix_id"
	arg-noneLabel="{{ phrase('(no_prefix)') }}"
	arg-multiple="{{ false }}"
	arg-includeAny="{{ false }}"
	arg-class="">

	<xf:set var="$controlId" value="{{ unique_id() }}" />

	<xf:formrow rowtype="input" label="{$label}" controlid="{$controlId}">
		<xf:macro id="select"
			arg-prefixes="{$prefixes}"
			arg-type="{$type}"
			arg-selected="{$selected}"
			arg-name="{$name}"
			arg-noneLabel="{$noneLabel}"
			arg-multiple="{$multiple}"
			arg-includeAny="{$includeAny}"
			arg-controlId="{$controlId}"
			arg-class="{$class}" />
		<xf:if is="$explain">
			<div class="formRow-explain">{$explain|raw}</div>
		</xf:if>
	</xf:formrow>
</xf:macro>

<xf:macro id="usage_help" arg-prefix="!" arg-contentType="!">
	<xf:if contentcheck="true">
		<div class="formRow-explain formRow-prefixHelp">
			<xf:contentcheck>{{ prefix_usage_help($contentType, $prefix->prefix_id) }}</xf:contentcheck>
		</div>
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="prefix_menu.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[.menuTrigger.menuTrigger--prefix
{
	text-decoration: none;
}

.menuPrefix,
.menuPrefix.label--hidden
{
	display: block;
	font-size: @xf-fontSizeSmall;
	cursor: default;
	padding: @xf-paddingMedium;
	//margin-bottom: (@xf-paddingMedium * -1);

	&.label--hidden
	{
		border: 1px solid @xf-borderColorFaint;
	}

	&.menuPrefix--none
	{
		color: @xf-textColorMuted;
		text-decoration: none;
	}
}]]></template>
  <template type="public" title="prefix_usage_help" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="prefix_macros::usage_help"
	arg-prefix="{$prefix}"
	arg-contentType="{$contentType}" />]]></template>
  <template type="public" title="prism_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="setup">
	<xf:css src="bb_code.less" />
	<xf:js prod="xf/code_block-compiled.js" dev="vendor/prism/prism.min.js, xf/code_block.js" />
</xf:macro>]]></template>
  <template type="public" title="profile_post" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('profile_post_for_x', {'username': $profilePost.ProfileUser.username}) }}</xf:title>

<xf:if is="$canInlineMod">
	<xf:js src="xf/inline_mod.js" min="1" />
</xf:if>

<xf:macro id="lightbox_macros::setup" arg-canViewAttachments="{$profilePost.canViewAttachments()}" />

<div class="block" data-xf-init="lightbox {{ $canInlineMod ? 'inline-mod' : '' }}" data-type="profile_post" data-href="{{ link('inline-mod') }}">
	<div class="block-container">
		<div class="block-body">
			<xf:macro id="profile_post_macros::profile_post"
				arg-attachmentData="{$profilePostAttachData.{$profilePost.profile_post_id}}"
				arg-profilePost="{$profilePost}"
				arg-showTargetUser="{$showTargetUser}"
				arg-allowInlineMod="{$allowInlineMod}" />
		</div>
	</div>
</div>
]]></template>
  <template type="public" title="profile_post_comment" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:macro id="profile_post_macros::comment"
				arg-comment="{$comment}"
				arg-profilePost="{$profilePost}" />
		</div>
	</div>
</div>]]></template>
  <template type="public" title="profile_post_comment_delete" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('delete_profile_post_comment') }}</xf:title>

<xf:breadcrumb href="{{ link('members', $profilePost.ProfileUser) }}">{$profilePost.ProfileUser.username}</xf:breadcrumb>
<xf:breadcrumb href="{{ link('profile-posts', $profilePost) }}">{{ phrase('profile_post_by_x', {'name': $profilePost.username}) }}</xf:breadcrumb>

<xf:form action="{{ link('profile-posts/comments/delete', $comment) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:macro id="helper_action::delete_type" arg-canHardDelete="{$comment.canDelete('hard')}" />

			<xf:if is="$comment.canSendModeratorActionAlert()">
				<xf:macro id="helper_action::author_alert" />
			</xf:if>
		</div>
		<xf:submitrow icon="delete" />
	</div>
	<xf:redirect />
</xf:form>]]></template>
  <template type="public" title="profile_post_comment_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('edit_profile_post_comment') }}</xf:title>

<xf:breadcrumb href="{{ link('members', $profilePost.ProfileUser) }}">{$profilePost.ProfileUser.username}</xf:breadcrumb>
<xf:breadcrumb href="{{ link('profile-posts', $profilePost) }}">{{ phrase('profile_post_by_x', {'name': $profilePost.username}) }}</xf:breadcrumb>

<xf:form action="{{ link('profile-posts/comments/edit', $comment) }}"
	data-xf-init="attachment-manager" class="{{ !$quickEdit ? 'block' : '' }}" ajax="true">
	<div class="{{ !$quickEdit ? 'block-container' : '' }}">
		<div class="{{ !$quickEdit ? 'block-body' : '' }}">
			<xf:editorrow name="message"
				value="{$comment.message}"
				attachments="{{ $attachmentData ? $attachmentData.attachments : [] }}"
				rowtype="{{ $quickEdit ? 'fullWidth noLabel' : '' }}"
				label="{{ phrase('message') }}"
				data-min-height="{{ $quickEdit ? 40 : 100 }}"
				rendereropts="{{ {'treatAsStructuredText': true} }}" />

			<xf:if is="$attachmentData">
				<xf:formrow rowtype="{{ $quickEdit ? 'fullWidth noLabel' : '' }}">
					<xf:macro id="helper_attach_upload::upload_link_from_data"
						arg-attachmentData="{$attachmentData}" />
					<xf:macro id="helper_attach_upload::uploaded_files_list"
						arg-attachments="{$attachmentData.attachments}"
						arg-class="attachmentUploads--spaced" />
				</xf:formrow>
			</xf:if>

			<xf:if is="$comment.canSendModeratorActionAlert()">
				<xf:formrow rowtype="{{ $quickEdit ? 'fullWidth noLabel' : '' }}">
					<xf:macro id="helper_action::author_alert" arg-row="{{ false }}" />
				</xf:formrow>
			</xf:if>
		</div>
		<xf:if is="$quickEdit">
			<xf:formrow rowtype="fullWidth noLabel">
				<xf:button type="submit" class="button--primary" icon="save" />
				<xf:button class="js-cancelButton">{{ phrase('button.cancel') }}</xf:button>
			</xf:formrow>
		<xf:else />
			<xf:submitrow icon="save" />
		</xf:if>
	</div>
</xf:form>]]></template>
  <template type="public" title="profile_post_comment_edit_new_comment" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="profile_post_macros::comment" arg-profilePost="{$profilePost}" arg-comment="{$comment}" />]]></template>
  <template type="public" title="profile_post_comments" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<xf:if is="$loadMore">
	<div class="message-responseRow js-commentLoader">
		<a href="{{ link('profile-posts/load-previous', $profilePost, {'before': $firstCommentDate}) }}"
			data-xf-click="comment-loader"
			data-container=".js-commentLoader"
			rel="nofollow">{{ phrase('view_previous_comments...') }}</a>
	</div>
</xf:if>

<xf:foreach loop="$comments" value="$comment">
	<xf:macro id="profile_post_macros::comment"
		arg-comment="{$comment}"
		arg-profilePost="{$profilePost}" />
</xf:foreach>]]></template>
  <template type="public" title="profile_post_delete" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('delete_profile_post') }}</xf:title>

<xf:breadcrumb href="{{ link('members', $profileUser) }}">{$profileUser.username}</xf:breadcrumb>

<xf:form action="{{ link('profile-posts/delete', $profilePost) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:macro id="helper_action::delete_type" arg-canHardDelete="{$profilePost.canDelete('hard')}" />

			<xf:if is="$profilePost.canSendModeratorActionAlert()">
				<xf:macro id="helper_action::author_alert" />
			</xf:if>
		</div>
		<xf:submitrow icon="delete" />
	</div>
	<xf:redirect />
</xf:form>]]></template>
  <template type="public" title="profile_post_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('edit_profile_post') }}</xf:title>

<xf:breadcrumb href="{{ link('members', $profileUser) }}">{$profileUser.username}</xf:breadcrumb>

<xf:form action="{{ link('profile-posts/edit', $profilePost) }}" data-xf-init="attachment-manager" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<span class="u-anchorTarget js-editContainer"></span>

			<xf:editorrow name="message"
				value="{$profilePost.message}"
				attachments="{{ $attachmentData ? $attachmentData.attachments : [] }}"
				rowtype="{{ $quickEdit ? 'fullWidth noLabel' : '' }}"
				label="{{ phrase('message') }}"
				data-min-height="{{ $quickEdit ? 40 : 100 }}"
				rendereropts="{{ {'treatAsStructuredText': true} }}" />

			<xf:if is="$attachmentData">
				<xf:formrow rowtype="{{ $quickEdit ? 'fullWidth noLabel' : '' }}">
					<xf:macro id="helper_attach_upload::upload_link_from_data"
						arg-attachmentData="{$attachmentData}" />
					<xf:macro id="helper_attach_upload::uploaded_files_list"
						arg-attachments="{$attachmentData.attachments}"
						arg-class="attachmentUploads--spaced" />
				</xf:formrow>
			</xf:if>

			<xf:if is="$profilePost.canSendModeratorActionAlert()">
				<xf:formrow rowtype="{{ $quickEdit ? 'fullWidth noLabel' : '' }}">
					<xf:macro id="helper_action::author_alert" arg-row="{{ false }}" />
				</xf:formrow>
			</xf:if>
		</div>
		<xf:submitrow icon="save" sticky="true" rowtype="{{ $quickEdit ? 'simple' : '' }}">
			<xf:html>
				<xf:if is="$quickEdit">
					<xf:button class="js-cancelButton">{{ phrase('button.cancel') }}</xf:button>
				</xf:if>
			</xf:html>
		</xf:submitrow>
	</div>

	<xf:if is="$noInlineMod">
		<xf:hiddenval name="_xfNoInlineMod">1</xf:hiddenval>
	</xf:if>
</xf:form>]]></template>
  <template type="public" title="profile_post_edit_new_post" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="profile_post_macros::profile_post"
	arg-profilePost="{$profilePost}"
	arg-allowInlineMod="{{ $noInlineMod ? false : true }}"
	arg-attachmentData="{$attachmentData}" />]]></template>
  <template type="public" title="profile_post_macros" version_id="2030170" version_string="2.3.1"><![CDATA[<xf:macro id="attribution" arg-profilePost="!" arg-showTargetUser="{{ false }}">
	<xf:if is="$showTargetUser AND $profilePost.user_id != $profilePost.profile_user_id">
		<xf:username user="$profilePost.User" rich="true" defaultname="{$profilePost.username}" aria-hidden="true" />
		<xf:fa icon="{{ $xf.isRtl ? 'fa-caret-left' : 'fa-caret-right' }} u-muted" />
		<xf:username user="$profilePost.ProfileUser" rich="true" defaultname="{{ phrase('unknown') }}" aria-hidden="true" />
		<span class="u-srOnly">{{ phrase('x_wrote_on_ys_profile', {
			'name': ($profilePost.User.username ?: {$profilePost.username}),
			'profile': ($profilePost.ProfileUser.username ?: phrase('unknown'))
		}) }}</span>
	<xf:else />
		<xf:username user="$profilePost.User" rich="true" defaultname="{$profilePost.username}" />
	</xf:if>
</xf:macro>

<xf:macro id="profile_post"
	arg-profilePost="!"
	arg-attachmentData="{{ null }}"
	arg-showTargetUser="{{ false }}"
	arg-allowInlineMod="{{ true }}">

	<xf:css src="message.less" />
	<xf:js src="xf/comment.js" min="1" />

	<article class="message message--simple {{ $profilePost.isIgnored() ? 'is-ignored' : '' }} js-inlineModContainer"
		data-author="{{ $profilePost.User.username ?: $profilePost.username }}"
		data-content="profile-post-{$profilePost.profile_post_id}"
		id="js-profilePost-{$profilePost.profile_post_id}">

		<span class="u-anchorTarget" id="profile-post-{$profilePost.profile_post_id}"></span>
		<div class="message-inner">
			<div class="message-cell message-cell--user">
				<xf:macro id="message_macros::user_info_simple" arg-user="{$profilePost.User}" arg-fallbackName="{$profilePost.username}" />
			</div>
			<div class="message-cell message-cell--main">
				<div class="message-main js-quickEditTarget">
					<div class="message-content js-messageContent">
						<header class="message-attribution message-attribution--plain">
							<ul class="listInline listInline--bullet">
								<li class="message-attribution-user">
									<xf:avatar user="$profilePost.User" size="xxs" />
									<h4 class="attribution"><xf:macro id="attribution"
										arg-profilePost="{$profilePost}"
										arg-showTargetUser="{$showTargetUser}" /></h4>
								</li>
								<li><a href="{{ link('profile-posts', $profilePost) }}" class="u-concealed" rel="nofollow"><xf:date time="$profilePost.post_date" /></a></li>
							</ul>
						</header>

						<xf:if is="$profilePost.message_state == 'deleted'">
							<div class="messageNotice messageNotice--deleted">
								<xf:macro id="deletion_macros::notice" arg-log="{$profilePost.DeletionLog}" />
							</div>
						<xf:elseif is="$profilePost.message_state == 'moderated'" />
							<div class="messageNotice messageNotice--moderated">
								{{ phrase('this_message_is_awaiting_moderator_approval_and_is_invisible_to_normal') }}
							</div>
						</xf:if>
						<xf:if is="$profilePost.warning_message">
							<div class="messageNotice messageNotice--warning">
								{$profilePost.warning_message}
							</div>
						</xf:if>
						<xf:if is="$profilePost.isIgnored()">
							<div class="messageNotice messageNotice--ignored">
								{{ phrase('you_are_ignoring_content_by_this_member') }}
							</div>
						</xf:if>

						<div class="lbContainer js-lbContainer"
							data-lb-id="profile-post-{$profilePost.profile_post_id}"
							data-lb-caption-desc="{{ $profilePost.User ? $profilePost.User.username : $profilePost.username }} &middot; {{ date_time($profilePost.post_date) }}">
							<article class="message-body">
								{{ bb_code($profilePost.message, 'profile_post', $profilePost) }}
							</article>

							<xf:if is="$profilePost.attach_count">
								<xf:macro id="message_macros::attachments"
									arg-attachments="{$profilePost.Attachments}"
									arg-message="{$profilePost}"
									arg-canView="{{ $xf.visitor.hasPermission('profilePost', 'viewAttachment') }}" />
							</xf:if>
						</div>
					</div>

					<footer class="message-footer">
						<div class="message-actionBar actionBar">
							<xf:if contentcheck="true">
								<div class="actionBar-set actionBar-set--external">
								<xf:contentcheck>
									<xf:react content="{$profilePost}" link="profile-posts/react" list="< .message | .js-reactionsList" />

									<xf:if is="$profilePost.canComment() AND property('profilePostCommentToggle')">
										<a class="actionBar-action actionBar-action--reply"
											data-xf-click="comment-toggle"
											data-target=".js-commentsTarget-{$profilePost.profile_post_id}"
											data-scroll-to="true"
											role="button"
											tabindex="0">{{ phrase('comment') }}</a>
									</xf:if>
								</xf:contentcheck>
								</div>
							</xf:if>

							<xf:if contentcheck="true">
								<div class="actionBar-set actionBar-set--internal">
								<xf:contentcheck>
									<xf:if is="{$allowInlineMod} AND $profilePost.canUseInlineModeration()">
										<span class="actionBar-action actionBar-action--inlineMod">
											<xf:checkbox standalone="true">
												<xf:option value="{$profilePost.profile_post_id}"
													class="js-inlineModToggle"
													data-xf-init="tooltip"
													title="{{ phrase('select_for_moderation') }}"
													label="{{ phrase('select_for_moderation') }}"
													hiddenlabel="true" />
											</xf:checkbox>
										</span>
									</xf:if>
									<xf:if is="$profilePost.canReport()">
										<a href="{{ link('profile-posts/report', $profilePost) }}" class="actionBar-action actionBar-action--report" data-xf-click="overlay">{{ phrase('report_verb') }}</a>
									</xf:if>

									<xf:set var="$hasActionBarMenu" value="{{ false }}" />
									<xf:if is="$profilePost.canEdit()">
										<xf:js src="xf/action.js, xf/message.js" min="1" />
										<a href="{{ link('profile-posts/edit', $profilePost) }}"
											class="actionBar-action actionBar-action--edit actionBar-action--menuItem"
											data-xf-click="quick-edit"
											data-editor-target="#js-profilePost-{$profilePost.profile_post_id} .js-quickEditTarget"
											data-no-inline-mod="{{ !$allowInlineMod ? 1 : 0 }}"
											data-menu-closer="true">{{ phrase('edit') }}</a>
										<xf:set var="$hasActionBarMenu" value="{{ true }}" />
									</xf:if>
									<xf:if is="$profilePost.canDelete('soft')">
										<a href="{{ link('profile-posts/delete', $profilePost) }}"
											class="actionBar-action actionBar-action--delete actionBar-action--menuItem"
											data-xf-click="overlay">{{ phrase('delete') }}</a>
										<xf:set var="$hasActionBarMenu" value="{{ true }}" />
									</xf:if>
									<xf:if is="$profilePost.message_state == 'deleted' AND $profilePost.canUndelete()">
										<a href="{{ link('profile-posts/undelete', $profilePost) }}" data-xf-click="overlay"
											class="actionBar-action actionBar-action--undelete actionBar-action--menuItem">{{ phrase('undelete') }}</a>
										<xf:set var="$hasActionBarMenu" value="{{ true }}" />
									</xf:if>
									<xf:if is="$profilePost.canCleanSpam()">
										<a href="{{ link('spam-cleaner', $profilePost) }}"
											class="actionBar-action actionBar-action--spam actionBar-action--menuItem"
											data-xf-click="overlay">{{ phrase('spam') }}</a>
										<xf:set var="$hasActionBarMenu" value="{{ true }}" />
									</xf:if>
									<xf:if is="$xf.visitor.canViewIps() && $profilePost.ip_id">
										<a href="{{ link('profile-posts/ip', $profilePost) }}"
											class="actionBar-action actionBar-action--ip actionBar-action--menuItem"
											data-xf-click="overlay">{{ phrase('ip') }}</a>
										<xf:set var="$hasActionBarMenu" value="{{ true }}" />
									</xf:if>
									<xf:if is="$profilePost.canWarn()">
										<a href="{{ link('profile-posts/warn', $profilePost) }}"
											class="actionBar-action actionBar-action--warn actionBar-action--menuItem">{{ phrase('warn') }}</a>
										<xf:set var="$hasActionBarMenu" value="{{ true }}" />
									<xf:elseif is="$profilePost.warning_id && $xf.visitor.canViewWarnings()" />
										<a href="{{ link('warnings', {'warning_id': $profilePost.warning_id}) }}"
											class="actionBar-action actionBar-action--warn actionBar-action--menuItem"
											data-xf-click="overlay">{{ phrase('view_warning') }}</a>
										<xf:set var="$hasActionBarMenu" value="{{ true }}" />
									</xf:if>

									<xf:if is="$hasActionBarMenu">
										<a class="actionBar-action actionBar-action--menuTrigger"
											data-xf-click="menu"
											title="{{ phrase('more_options')|for_attr }}"
											role="button"
											tabindex="0"
											aria-expanded="false"
											aria-haspopup="true">&#8226;&#8226;&#8226;</a>
										<div class="menu" data-menu="menu" aria-hidden="true" data-menu-builder="actionBar">
											<div class="menu-content">
												<h4 class="menu-header">{{ phrase('more_options') }}</h4>
												<div class="js-menuBuilderTarget"></div>
											</div>
										</div>
									</xf:if>
								</xf:contentcheck>
								</div>
							</xf:if>

						</div>

						<section class="message-responses js-messageResponses">
							<div class="message-responseRow message-responseRow--reactions js-reactionsList {{ $profilePost.reactions ? 'is-active' : '' }}"><xf:if is="$profilePost.reactions">
								<xf:reactions content="{$profilePost}" link="profile-posts/reactions" />
							</xf:if></div>

							<xf:if is="$profilePost.LatestComments is not empty">
								<xf:if is="$profilePost.hasMoreComments()">
									<div class="message-responseRow u-jsOnly js-commentLoader">
										<a href="{{ link('profile-posts/load-previous', $profilePost, {'before': $profilePost.LatestComments.first().comment_date}) }}"
											data-xf-click="comment-loader"
											data-container=".js-commentLoader"
											rel="nofollow">{{ phrase('view_previous_comments...') }}</a>
									</div>
								</xf:if>
								<div class="js-replyNewMessageContainer">
									<xf:foreach loop="$profilePost.LatestComments" value="$comment">
										<xf:macro
											name="{{ $comment.message_state == 'deleted' ? 'comment_deleted' : 'comment' }}"
											arg-comment="{$comment}"
											arg-profilePost="{$profilePost}" />
									</xf:foreach>
								</div>
							<xf:else />
								<div class="js-replyNewMessageContainer"></div>
							</xf:if>

							<xf:if is="$profilePost.canComment()">
								<xf:js src="xf/action.js, xf/message.js" min="1" />
								<div class="message-responseRow js-commentsTarget-{$profilePost.profile_post_id} {{ property('profilePostCommentToggle') ? 'toggleTarget' : '' }}">
									<xf:set var="$lastProfilePostComment" value="{$profilePost.LatestComments|last}" />
									<xf:form action="{{ link('profile-posts/add-comment', $profilePost) }}" ajax="true" class="comment"
										data-xf-init="attachment-manager quick-reply"
										data-message-container="< .js-messageResponses | .js-replyNewMessageContainer">
										<div class="comment-inner">
											<span class="comment-avatar">
												<xf:avatar user="{$xf.visitor}" size="xxs" />
											</span>
											<div class="comment-main">
												<div class="editorPlaceholder" data-xf-click="editor-placeholder">
													<div class="editorPlaceholder-editor is-hidden">
														<xf:macro id="quick_reply_macros::editor"
															arg-lastDate="{{ $lastProfilePostComment.comment_date }}"
															arg-attachmentData="{$attachmentData}"
															arg-minHeight="40"
															arg-placeholder="{{ phrase('write_comment...') }}"
															arg-submitText="{{ phrase('post_comment') }}"
															arg-deferred="{{ true }}"
															arg-simpleSubmit="{{ true }}"
														/>
													</div>
													<div class="editorPlaceholder-placeholder">
														<div class="input"><span class="u-muted"> {{ phrase('write_comment...') }}</span></div>
													</div>
												</div>
											</div>
										</div>
									</xf:form>
								</div>
							</xf:if>
						</section>
					</footer>
				</div>
			</div>
		</div>
	</article>
</xf:macro>

<xf:macro id="profile_post_deleted"
	arg-profilePost="!"
	arg-showTargetUser="{{ false }}">

	<xf:css src="message.less" />
	<div class="message message--simple{{ $profilePost.isIgnored() ? ' is-ignored' : '' }} js-inlineModContainer"
		data-author="{{ $profilePost.User.username ?: $profilePost.username }}"
		data-content="profile-post-{$profilePost.profile_post_id}">

		<span class="u-anchorTarget" id="profile-post-{$profilePost.profile_post_id}"></span>
		<div class="message-inner">
			<div class="message-cell message-cell--user">
				<xf:macro id="message_macros::user_info_simple" arg-user="{$profilePost.User}" arg-fallbackName="{$profilePost.username}" />
			</div>
			<div class="message-cell message-cell--main">
				<div class="message-attribution message-attribution--plain">
					<ul class="listInline listInline--bullet">
						<li class="message-attribution-user">
							<xf:avatar user="$profilePost.User" size="xxs" />
							<h4 class="attribution"><xf:macro id="attribution"
								arg-profilePost="{$profilePost}"
								arg-showTargetUser="{$showTargetUser}" /></h4>
						</li>
						<li><xf:date time="$profilePost.post_date" /></li>
					</ul>
				</div>

				<div class="messageNotice messageNotice--deleted">
					<xf:macro id="deletion_macros::notice" arg-log="{$profilePost.DeletionLog}" />

					<a href="{{ link('profile-posts/show', $profilePost) }}" class="u-jsOnly" data-xf-click="inserter" data-replace="[data-content=profile-post-{$profilePost.profile_post_id}]">{{ phrase('show...') }}</a>

					<xf:if is="$profilePost.canUseInlineModeration()">
						<span style="display: none">
							<!-- this can be actioned on the full post -->
							<xf:checkbox standalone="true">
								<xf:option value="{$profilePost.profile_post_id}" class="js-inlineModToggle"
									hiddenlabel="true" />
							</xf:checkbox>
						</span>
					</xf:if>
				</div>
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="profile_post_simple"
	arg-profilePost="!"
	arg-limitHeight="{{ false }}">

	<div class="contentRow">
		<div class="contentRow-figure">
			<xf:avatar user="$profilePost.User" size="xxs" defaultname="{$profilePost.username}" />
		</div>
		<div class="contentRow-main contentRow-main--close">
			<div class="contentRow-lesser">
				<xf:macro id="attribution"
					arg-profilePost="{$profilePost}"
					arg-showTargetUser="{{ true }}" />
			</div>

			<xf:if is="$limitHeight">
				<div class="contentRow-faderContainer">
					<div class="contentRow-faderContent">
						{{ bb_code($profilePost.message, 'profile_post', $profilePost, {'simpleUnfurl': true}) }}
					</div>
					<div class="contentRow-fader"></div>
				</div>
			<xf:else />
				{{ bb_code($profilePost.message, 'profile_post', $profilePost, {'simpleUnfurl': true}) }}
			</xf:if>

			<div class="contentRow-minor">
				<a href="{{ link('profile-posts', $profilePost) }}" rel="nofollow" class="u-concealed"><xf:date time="{$profilePost.post_date}" /></a>
				<a href="{{ link('profile-posts', $profilePost) }}" rel="nofollow" class="contentRow-extra" data-xf-click="overlay" data-xf-init="tooltip" title="{{ phrase('interact')|for_attr }}">&#8226;&#8226;&#8226;</a>
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="comment"
	arg-comment="!"
	arg-profilePost="!">

	<xf:css src="message.less" />

	<div class="message-responseRow {{ $comment.isIgnored() ? 'is-ignored' : '' }}">
		<div class="comment"
			data-author="{$comment.User.username}"
			data-content="profile-post-comment-{$comment.profile_post_comment_id}"
			id="js-profilePostComment-{$comment.profile_post_comment_id}">

			<div class="comment-inner">
				<span class="comment-avatar">
					<xf:avatar user="$comment.User" size="xxs" defaultname="{$comment.username}" />
				</span>
				<div class="comment-main">
					<span class="u-anchorTarget" id="profile-post-comment-{$comment.profile_post_comment_id}"></span>
					<div class="js-quickEditTargetComment">
						<div class="comment-content">
							<xf:if is="$comment.message_state == 'deleted'">
								<div class="messageNotice messageNotice--deleted">
									<xf:macro id="deletion_macros::notice" arg-log="{$comment.DeletionLog}" />
								</div>
							<xf:elseif is="$comment.message_state == 'moderated'" />
								<div class="messageNotice messageNotice--moderated">
									{{ phrase('this_message_is_awaiting_moderator_approval_and_is_invisible_to_normal') }}
								</div>
							</xf:if>
							<xf:if is="$comment.warning_message">
								<div class="messageNotice messageNotice--warning">
									{$comment.warning_message}
								</div>
							</xf:if>
							<xf:if is="$comment.isIgnored()">
								<div class="messageNotice messageNotice--ignored">
									{{ phrase('you_are_ignoring_content_by_this_member') }}
								</div>
							</xf:if>

							<div class="comment-contentWrapper">
								<xf:username user="$comment.User" rich="true" defaultname="{$comment.username}" class="comment-user" />
								<div class="lbContainer js-lbContainer"
									data-lb-id="profile-post-comment-{$comment.profile_post_comment_id}"
									data-lb-caption-desc="{{ $comment.User ? $comment.User.username : $comment.username }} &middot; {{ date_time($comment.comment_date) }}">
									<article class="comment-body">
										{{ bb_code($comment.message, 'profile_post_comment', $comment) }}
									</article>
									<xf:if is="$comment.attach_count">
										<xf:macro id="message_macros::attachments"
											arg-attachments="{$comment.Attachments}"
											arg-message="{$comment}"
											arg-canView="{{ $xf.visitor.hasPermission('profilePost', 'viewAttachment') }}" />
									</xf:if>
								</div>
							</div>
						</div>

						<footer class="comment-footer">
							<div class="comment-actionBar actionBar">
								<div class="actionBar-set actionBar-set--internal">
									<span class="actionBar-action"><xf:date time="{$comment.comment_date}" /></span>
									<xf:if is="$comment.canReport()">
										<a href="{{ link('profile-posts/comments/report', $comment) }}"
											class="actionBar-action actionBar-action--report"
											data-xf-click="overlay">{{ phrase('report_verb') }}</a>
									</xf:if>

									<xf:set var="$hasActionBarMenu" value="{{ false }}" />
									<xf:if is="$comment.canEdit()">
										<xf:js src="xf/action.js, xf/message.js" min="1" />
										<a href="{{ link('profile-posts/comments/edit', $comment) }}"
											class="actionBar-action actionBar-action--edit actionBar-action--menuItem"
											data-xf-click="quick-edit"
											data-editor-target="#js-profilePostComment-{$comment.profile_post_comment_id} .js-quickEditTargetComment"
											data-menu-closer="true">{{ phrase('edit') }}</a>
										<xf:set var="$hasActionBarMenu" value="{{ true }}" />
									</xf:if>
									<xf:if is="$comment.canDelete('soft')">
										<a href="{{ link('profile-posts/comments/delete', $comment) }}"
											class="actionBar-action actionBar-action--delete actionBar-action--menuItem"
											data-xf-click="overlay">{{ phrase('delete') }}</a>
										<xf:set var="$hasActionBarMenu" value="{{ true }}" />
									</xf:if>
									<xf:if is="$comment.message_state == 'deleted' AND $comment.canUndelete()">
										<a href="{{ link('profile-posts/comments/undelete', $comment) }}" data-xf-click="overlay"
											class="actionBar-action actionBar-action--undelete actionBar-action--menuItem">{{ phrase('undelete') }}</a>
										<xf:set var="$hasActionBarMenu" value="{{ true }}" />
									</xf:if>
									<xf:if is="$comment.canCleanSpam()">
										<a href="{{ link('spam-cleaner', $comment) }}"
											class="actionBar-action actionBar-action--spam actionBar-action--menuItem"
											data-xf-click="overlay">{{ phrase('spam') }}</a>
										<xf:set var="$hasActionBarMenu" value="{{ true }}" />
									</xf:if>
									<xf:if is="$xf.visitor.canViewIps() && $comment.ip_id">
										<a href="{{ link('profile-posts/comments/ip', $comment) }}"
											class="actionBar-action actionBar-action--ip actionBar-action--menuItem"
											data-xf-click="overlay">{{ phrase('ip') }}</a>
										<xf:set var="$hasActionBarMenu" value="{{ true }}" />
									</xf:if>
									<xf:if is="$comment.canWarn()">
										<a href="{{ link('profile-posts/comments/warn', $comment) }}"
											class="actionBar-action actionBar-action--warn actionBar-action--menuItem">{{ phrase('warn') }}</a>
										<xf:set var="$hasActionBarMenu" value="{{ true }}" />
									<xf:elseif is="$comment.warning_id && $xf.visitor.canViewWarnings()" />
										<a href="{{ link('warnings', {'warning_id': $comment.warning_id}) }}"
											class="actionBar-action actionBar-action--warn actionBar-action--menuItem"
											data-xf-click="overlay">{{ phrase('view_warning') }}</a>
										<xf:set var="$hasActionBarMenu" value="{{ true }}" />
									</xf:if>
									<xf:if is="$comment.canApproveUnapprove()">
										<xf:if is="$comment.message_state == 'moderated'">
											<a href="{{ link('profile-posts/comments/approve', $comment, {'t': csrf_token()}) }}"
												class="actionBar-action actionBar-action--approve actionBar-action--menuItem">{{ phrase('approve') }}</a>
											<xf:set var="$hasActionBarMenu" value="{{ true }}" />
										<xf:elseif is="$comment.message_state == 'visible'" />
											<a href="{{ link('profile-posts/comments/unapprove', $comment, {'t': csrf_token()}) }}"
												class="actionBar-action actionBar-action--unapprove actionBar-action--menuItem">{{ phrase('unapprove') }}</a>
											<xf:set var="$hasActionBarMenu" value="{{ true }}" />
										</xf:if>
									</xf:if>

									<xf:if is="$hasActionBarMenu">
										<a class="actionBar-action actionBar-action--menuTrigger"
											data-xf-click="menu"
											title="{{ phrase('more_options')|for_attr }}"
											role="button"
											tabindex="0"
											aria-expanded="false"
											aria-haspopup="true">&#8226;&#8226;&#8226;</a>
										<div class="menu" data-menu="menu" aria-hidden="true" data-menu-builder="actionBar">
											<div class="menu-content">
												<h4 class="menu-header">{{ phrase('more_options') }}</h4>
												<div class="js-menuBuilderTarget"></div>
											</div>
										</div>
									</xf:if>
								</div>
								<xf:if contentcheck="true">
									<div class="actionBar-set actionBar-set--external">
									<xf:contentcheck>
										<xf:react content="{$comment}" link="profile-posts/comments/react" list="< .comment | .js-commentReactionsList" />
									</xf:contentcheck>
									</div>
								</xf:if>
							</div>

							<div class="comment-reactions js-commentReactionsList {{ $comment.reactions ? 'is-active' : '' }}"><xf:if is="$comment.reactions">
								<xf:reactions content="{$comment}" link="profile-posts/comments/reactions" />
							</xf:if></div>
						</footer>

					</div>
				</div>
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="comment_deleted"
	arg-comment="!"
	arg-profilePost="!">

	<div class="message-responseRow">
		<div class="comment{{ $comment.isIgnored() ? ' is-ignored' : '' }}"
			data-author="{$comment.User.username}"
			data-content="profile-post-comment-{$comment.profile_post_comment_id}">

			<div class="comment-inner">
				<span class="comment-avatar">
					<xf:avatar user="$comment.User" size="xxs" defaultname="{$comment.username}" />
				</span>
				<div class="comment-main">
					<span class="u-anchorTarget" id="profile-post-comment-{$comment.profile_post_comment_id}"></span>
					<div class="comment-content">
						<div class="messageNotice messageNotice--deleted">
							<xf:macro id="deletion_macros::notice" arg-log="{$comment.DeletionLog}" />

							<a href="{{ link('profile-posts/comments/show', $comment) }}" class="u-jsOnly"
								data-xf-click="inserter"
								data-replace="[data-content=profile-post-comment-{$comment.profile_post_comment_id}]">{{ phrase('show...') }}</a>
						</div>
					</div>

					<div class="comment-actionBar actionBar">
						<div class="actionBar-set actionBar-set--internal">
							<span class="actionBar-action">
								<xf:date time="{$comment.comment_date}" />
								<span role="presentation" aria-hidden="true">&middot;</span>
								<xf:username user="{$comment.User}" defaultname="{$comment.username}" class="u-concealed" />
							</span>
						</div>
					</div>
				</div>
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="quick_post" arg-user="!" arg-containerSelector="!" arg-lastDate="!" arg-attachmentData="{{ null }}">
	<xf:js src="xf/action.js, xf/message.js" min="1" />

	<xf:form action="{{ link('members/post', $user) }}"
		ajax="true"
		class="message-spacer js-quickReply"
		data-xf-init="attachment-manager quick-reply"
		data-message-container="{$containerSelector}"
		data-ascending="0">

		<xf:macro id="quick_reply_macros::body"
			arg-attachmentData="{$attachmentData}"
			arg-simple="{{ true }}"
			arg-placeholder="{{ $xf.visitor.user_id == $user.user_id ? (phrase('update_your_status...')) : phrase('write_something...') }}"
			arg-submitText="{{ phrase('post_verb') }}"
			arg-lastDate="{$lastDate}"
			arg-lastKnownDate="{$lastDate}"
			arg-minHeight="40"
			arg-deferred="{{ true }}"
			arg-simpleSubmit="{{ true }} " />
	</xf:form>
</xf:macro>

<xf:macro id="submit" arg-user="!" arg-lastDate="!" arg-containerSelector="!" arg-style="full" arg-context="user" arg-attachmentData="{{ null }}">
	<xf:js src="xf/action.js, xf/message.js" min="1" />

	<xf:set var="$placeholder" value="{{ $xf.visitor.user_id == $user.user_id ? (phrase('update_your_status...')) : phrase('write_something...') }}" />

	<xf:form action="{{ link('members/post', $user) }}" ajax="true"
		class="{{ $style == 'full' ? 'message message--simple' : 'block-row' }} js-quickReply"
		data-xf-init="{{ $style == 'full' ? 'attachment-manager' : '' }} quick-reply"
		data-message-container="{$containerSelector}"
		data-ascending="0">

		<xf:if is="$style == 'full'">
			<xf:macro id="quick_reply_macros::body"
				arg-attachmentData="{$attachmentData}"
				arg-simple="{{ true }}"
				arg-placeholder="{$placeholder}"
				arg-submitText="{{ phrase('post_verb') }}"
				arg-lastDate="{$lastDate}"
				arg-lastKnownDate="{$lastDate}"
				arg-minHeight="40"
				arg-deferred="{{ true }}"
				arg-simpleSubmit="{{ true }} " />
		<xf:else />
			<div>
				<span class="u-srOnly" id="ctrl_message">{{ phrase('update_your_status:') }}</span>

				<xf:textarea name="message" autosize="true" rows="1" maxlength="{$xf.options.profilePostMaxLength}"
					class="js-editor"
					data-xf-init="focus-trigger user-mentioner emoji-completer"
					data-display="< :next" aria-labelledby="ctrl_message"
					placeholder="{$placeholder}" />

				<div class="u-hidden u-hidden--transition u-inputSpacer">
					<xf:button type="submit" class="button--primary" icon="reply">{{ phrase('post_verb') }}</xf:button>
				</div>

				<xf:comment><!-- Posts are in descending order so last post is first! --></xf:comment>
				<xf:hiddenval name="last_date" autocomplete="off">{$lastDate}</xf:hiddenval>
			</div>
		</xf:if>

		<xf:hiddenval name="style">{$style}</xf:hiddenval>
		<xf:hiddenval name="context">{$context}</xf:hiddenval>
	</xf:form>
</xf:macro>]]></template>
  <template type="public" title="profile_post_new_profile_post_comments" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:foreach loop="$profilePostComments" value="$profilePostComment">
	<xf:macro id="profile_post_macros::comment" arg-profilePost="{$profilePost}" arg-comment="{$profilePostComment}" />
</xf:foreach>]]></template>
  <template type="public" title="progress_bar.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[.progressBar
{
	position: relative;
	width: 100%;
	background: linear-gradient(180deg, @xf-blockFooterBg, mix(@xf-blockFooterBg, @xf-contentBg, 50%));
	border: @xf-borderSize solid @xf-borderColorFaint;
	border-radius: @xf-borderRadiusSmall;
	overflow: hidden;
}

.progressBar-progress
{
	background: linear-gradient(180deg, @xf-progressBarColor, xf-diminish(@xf-progressBarColor, 10%));
	width: 0;
	height: 20px;
	font-size: 80%;
	padding: 2px 0;
}

.progressBar-label
{
	position: absolute;
	left: 0;
	right: 0;
	color: @xf-textColor;
	text-align: center;
	overflow: hidden;
}]]></template>
  <template type="public" title="progress_bar_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="progress_bar" arg-percentage="!" arg-tooltip="" arg-label="">
	<xf:css src="progress_bar.less" />

	<div class="progressBar">
		<div class="progressBar-progress" style="width: {$percentage}%">
			<span class="progressBar-label"
				data-xf-init="{{ $tooltip ? 'tooltip' : '' }}" data-trigger="{{ $tooltip ? 'hover focus click' : '' }}"
				title="{{ $tooltip ?: '' }}">

				<xf:if is="$label">{$label}</xf:if>
				<xf:if is="$label AND $tooltip"><xf:fa icon="far fa-question-circle" /></xf:if>
			</span>
		</div>
	</div>
</xf:macro>]]></template>
  <template type="public" title="push_conversation_message_reaction" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[{{ phrase('x_reacted_to_your_reply_in_the_direct_message_y', {
	'name': $user.username ?: $alert.username,
	'reaction': reaction_title($extra.reaction_id),
	'title': $content.Conversation.title
}) }}
<push:url>{{ link('canonical:direct-messages/replies', $content) }}</push:url>
<push:tag>conversation_message_reaction_{$content.message_id}_{$extra.reaction_id}</push:tag>]]></template>
  <template type="public" title="push_post_forumwatch_insert" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:include template="push_post_insert" />]]></template>
  <template type="public" title="push_post_insert" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:if is="$content.isFirstPost()">
	{{ phrase('x_started_thread_y_may_be_more', {
		'name': $user.username ?: $alert.username,
		'title': prefix('thread', $content.Thread, 'plain') . $content.Thread.title
	}) }}
	<push:url>{{ link('canonical:threads', $content.Thread) }}</push:url>
	<push:tag>post_insert_forum_{$content.Thread.node_id}</push:tag>
<xf:else />
	{{ phrase('x_replied_to_thread_y_may_be_more', {
		'name': $user.username ?: $alert.username,
		'title': prefix('thread', $content.Thread, 'plain') . $content.Thread.title
	}) }}
	<push:url>{{ link('canonical:posts', $content) }}</push:url>
	<push:tag>post_insert_thread_{$content.thread_id}</push:tag>
</xf:if>]]></template>
  <template type="public" title="push_post_mention" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ phrase('x_mentioned_you_in_post_in_thread_y', {
	'name': $user.username ?: $alert.username,
	'title': prefix('thread', $content.Thread, 'plain') . $content.Thread.title
}) }}
<push:url>{{ link('canonical:posts', $content) }}</push:url>]]></template>
  <template type="public" title="push_post_pre_reg" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$extra.welcome">
	{{ phrase('welcome_to_boardtitle', {'boardTitle': $xf.options.boardTitle}) }}
</xf:if>
<xf:if is="$content.isFirstPost()">
	{{ phrase('welcome_to_boardtitle', {
		'boardTitle': $xf.options.boardTitle
	})}}
	{{ phrase('your_thread_x_was_created', {
		'title': prefix('thread', $content.Thread, 'plain') . $content.Thread.title
	}) }}
	<push:url>{{ link('canonical:threads', $content.Thread) }}</push:url>
<xf:else />
	{{ phrase('welcome_to_boardtitle', {
		'boardTitle': $xf.options.boardTitle
	})}}
	{{ phrase('your_reply_to_thread_x_was_submitted', {
		'title': prefix('thread', $content.Thread, 'plain') . $content.Thread.title
	}) }}
	<push:url>{{ link('canonical:posts', $content) }}</push:url>
</xf:if>]]></template>
  <template type="public" title="push_post_question_solution" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[{{ phrase('x_marked_your_answer_to_question_y_as_a_solution', {
	'name': $user.username ?: $alert.username,
	'title': prefix('thread', $content.Thread, 'plain') . $content.Thread.title
}) }}
<push:url>{{ link('canonical:posts', $content) }}</push:url>]]></template>
  <template type="public" title="push_post_quote" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ phrase('x_quoted_your_post_in_thread_y', {
	'name': $user.username ?: $alert.username,
	'title': prefix('thread', $content.Thread, 'plain') . $content.Thread.title
}) }}
<push:url>{{ link('canonical:posts', $content) }}</push:url>]]></template>
  <template type="public" title="push_post_reaction" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[{{ phrase('x_reacted_to_your_post_in_the_thread_y', {
	'name': $user.username ?: $alert.username,
	'posterParams': '',
	'reaction': reaction_title($extra.reaction_id),
	'title': prefix('thread', $content.Thread, 'plain') . $content.Thread.title
}) }}
<push:url>{{ link('canonical:posts', $content) }}</push:url>
<push:tag>post_reaction_{$content.post_id}_{$extra.reaction_id}</push:tag>]]></template>
  <template type="public" title="push_profile_post_comment_mention" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ phrase('push_x_mentioned_you_comment_on_ys_profile', {
	'name': $user.username ?: $alert.username,
	'profile': $content.ProfilePost.ProfileUser.username
}) }}
<push:url>{{ link('canonical:profile-posts/comments', $content) }}</push:url>]]></template>
  <template type="public" title="push_profile_post_comment_other_commenter" version_id="2010053" version_string="2.1.0 Release Candidate 3"><![CDATA[<xf:if is="$content.ProfilePost.ProfileUser.user_id == $content.ProfilePost.user_id">
	{{ phrase('push_x_also_commented_on_ys_status', {
		'name': $user.username ?: $alert.username,
		'poster': $content.ProfilePost.username
	}) }}
<xf:else />
	{{ phrase('push_x_also_commented_on_ys_profile_post', {
		'name': $user.username ?: $alert.username,
		'poster': $content.ProfilePost.username
	}) }}
</xf:if>
<push:url>{{ link('canonical:profile-posts/comments', $content) }}</push:url>]]></template>
  <template type="public" title="push_profile_post_comment_reaction" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:if is="$xf.visitor.user_id == $content.ProfilePost.user_id">
	{{ phrase('push_x_reacted_to_your_comment_on_your_profile_post', {
		'name': $user.username ?: $alert.username,
		'reaction': reaction_title($extra.reaction_id)
	}) }}
<xf:else />
	{{ phrase('push_x_reacted_to_your_comment_on_ys_profile_post', {
		'name': $user.username ?: $alert.username,
		'poster': $content.ProfilePost.username,
		'reaction': reaction_title($extra.reaction_id)
	}) }}
</xf:if>
<push:url>{{ link('canonical:profile-posts', $content) }}</push:url>
<push:tag>profile_post_comment_reaction_{$content.profile_post_comment_id}_{$extra.reaction_id}</push:tag>]]></template>
  <template type="public" title="push_profile_post_comment_your_post" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ phrase('push_x_commented_on_your_post_on_ys_profile', {
	'name': $user.username ?: $alert.username,
	'profile': $content.ProfilePost.ProfileUser.username
}) }}
<push:url>{{ link('canonical:profile-posts/comments', $content) }}</push:url>]]></template>
  <template type="public" title="push_profile_post_comment_your_profile" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:if is="$xf.visitor.user_id == $content.ProfilePost.user_id">
	{{ phrase('push_x_commented_on_your_status', {
		'name': $user.username ?: $alert.username
	}) }}
<xf:else />
	{{ phrase('push_x_commented_on_ys_post_on_your_profile', {
		'name': $user.username ?: $alert.username,
		'poster': $content.ProfilePost.username
	}) }}
</xf:if>
<push:url>{{ link('canonical:profile-posts/comments', $content) }}</push:url>]]></template>
  <template type="public" title="push_profile_post_insert" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ phrase('push_alert_profile_post_insert', {
	'username': $user.username ?: $alert.username
}) }}
<push:url>{{ link('canonical:profile-posts', $content) }}</push:url>]]></template>
  <template type="public" title="push_profile_post_mention" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ phrase('push_x_mentioned_you_message_on_ys_profile', {
	'name': $user.username ?: $alert.username,
	'profile': $content.ProfileUser.username
}) }}
<push:url>{{ link('canonical:profile-posts', $content) }}</push:url>]]></template>
  <template type="public" title="push_profile_post_reaction" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:if is="$xf.visitor.user_id == $content.ProfileUser.user_id">
	{{ phrase('push_x_reacted_to_your_status', {
		'name': $user.username ?: $alert.username,
		'reaction': reaction_title($extra.reaction_id)
	}) }}
<xf:else />
	{{ phrase('push_x_reacted_to_your_post_on_ys_profile', {
		'name': $user.username ?: $alert.username,
		'profile': $content.ProfileUser.username,
		'reaction': reaction_title($extra.reaction_id)
	}) }}
</xf:if>
<push:url>{{ link('canonical:profile-posts', $content) }}</push:url>
<push:tag>profile_post_reaction_{$content.profile_post_id}_{$extra.reaction_id}</push:tag>]]></template>
  <template type="public" title="push_report_mention" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ phrase('x_mentioned_you_in_comment_in_report_y', {
	'name': $user.username ?: $alert.username,
	'title': $content.title
}) }}
<push:url>{{ link('reports', $content) }}#report-comment-{$alert.extra_data.comment.report_comment_id}</push:url>]]></template>
  <template type="public" title="push_thread_reply_ban" version_id="2020670" version_string="2.2.6"><![CDATA[<xf:if is="$extra.expiry">
	{{ phrase('you_unable_reply_to_thread_x_until_expiry_y', {'title': prefix('thread', $content, 'plain') . $content.title, 'expiry': date($extra.expiry)}) }}
<xf:else />
	{{ phrase('you_are_no_longer_able_to_reply_thread_x', {'title': prefix('thread', $content, 'plain') . $content.title}) }}
</xf:if>
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>
<push:url>{{ link('canonical:threads', $content) }}</push:url>]]></template>
  <template type="public" title="push_trophy_award" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ phrase('you_have_been_awarded_a_trophy_x', {'trophy': $content.title}) }}
<push:url>{{ link('canonical:members/trophies', $user) }}</push:url>]]></template>
  <template type="public" title="push_user_following" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ phrase('alert_user_following', {'username': $user.username ?: $alert.username}) }}
<push:url>{{ link('canonical:members', $user) }}</push:url>]]></template>
  <template type="public" title="push_user_from_admin" version_id="2010035" version_string="2.1.0 Beta 5"><![CDATA[{$extra.alert_text|strip_tags}
<xf:if is="$extra.link_url">
	<push:url>{$extra.link_url}</push:url>
</xf:if>]]></template>
  <template type="public" title="push_user_post_copy" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ phrase('your_post_in_thread_x_was_copied_to_y', {
	'title': $extra.title,
	'target': prefix('thread', $extra.prefix_id, 'plain') . $extra.targetTitle
}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>
<push:url>{{ base_url($extra.targetLink, 'canonical') }}</push:url>]]></template>
  <template type="public" title="push_user_post_delete" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ phrase('your_post_in_thread_x_was_deleted', {
	'title': prefix('thread', $extra.prefix_id, 'plain') . $extra.title
}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>
<push:url>{{ base_url($extra.threadLink, 'canonical') }}</push:url>]]></template>
  <template type="public" title="push_user_post_edit" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ phrase('your_post_in_thread_x_was_edited', {
	'title': prefix('thread', $extra.prefix_id, 'plain') . $extra.title
}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>
<push:url>{{ base_url($extra.link, 'canonical') }}</push:url>]]></template>
  <template type="public" title="push_user_post_merge" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[{{ phrase('your_posts_in_thread_x_were_merged_together', {
	'source': prefix('thread', $extra.prefix_id, 'plain') . $extra.title
}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>
<push:url>{{ base_url($extra.threadLink, 'canonical') }}</push:url>]]></template>
  <template type="public" title="push_user_post_move" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$extra.wasVisible && $extra.isVisible">
	{{ phrase('your_post_in_thread_x_was_moved_to_y', {
		'title': $extra.title,
		'target': prefix('thread', $extra.prefix_id, 'plain') . $extra.targetTitle
	}) }}
<xf:elseif is="$extra.wasVisible" />
	{{ phrase('your_post_in_thread_x_was_moved_to_another_thread', {
		'title': $extra.title
	}) }}
<xf:elseif is="$extra.isVisible" />
	{{ phrase('your_post_in_another_thread_was_moved_to_y', {
		'target': prefix('thread', $extra.prefix_id, 'plain') . $extra.targetTitle
	}) }}
</xf:if>

<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>

<xf:if is="$extra.isVisible">
	<push:url>{{ base_url($extra.targetLink, 'canonical') }}</push:url>
</xf:if>]]></template>
  <template type="public" title="push_user_pre_reg_failed" version_id="2020470" version_string="2.2.4"><![CDATA[<xf:if is="$extra.welcome">
	{{ phrase('welcome_to_boardtitle', {'boardTitle': $xf.options.boardTitle}) }}
</xf:if>
{{ phrase('pre_reg_content_could_not_be_automatically_submitted') }}]]></template>
  <template type="public" title="push_user_profile_post_comment_delete" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ phrase('your_comment_on_xs_profile_post_was_deleted', {
	'user': $extra.postUser
}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>
<push:url>{{ base_url($extra.profilePostLink, 'canonical') }}</push:url>]]></template>
  <template type="public" title="push_user_profile_post_comment_edit" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ phrase('your_comment_on_xs_profile_post_was_edited', {
	'user': $extra.postUser
}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>
<push:url>{{ base_url($extra.link, 'canonical') }}</push:url>]]></template>
  <template type="public" title="push_user_profile_post_delete" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:if is="$extra.profileUserId == $xf.visitor.user_id">
	{{ phrase('your_status_update_was_deleted') }}
<xf:else />
	{{ phrase('your_profile_post_for_x_was_deleted', {
		'user': $extra.profileUser
	}) }}
	<push:url>{{ base_url($extra.profileLink, 'canonical') }}</push:url>
</xf:if>
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>]]></template>
  <template type="public" title="push_user_profile_post_edit" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:if is="$extra.profileUserId == $xf.visitor.user_id">
	{{ phrase('push_your_status_update_was_edited') }}
<xf:else />
	{{ phrase('your_profile_post_on_xs_profile_was_edited', {
		'user': $extra.profileUser
	}) }}
</xf:if>
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>
<push:url>{{ base_url($extra.link, 'canonical') }}</push:url>]]></template>
  <template type="public" title="push_user_report_rejected" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$extra.comment">
	{{ phrase('unfortunately_report_made_recently_rejected_comment_x', {'comment': $extra.comment, 'title': $extra.title|strip_tags}) }}
<xf:else />
	{{ phrase('unfortunately_report_made_recently_rejected', {'title': $extra.title|strip_tags}) }}
</xf:if>
<push:url>{{ base_url($extra.link, 'canonical') }}</push:url>]]></template>
  <template type="public" title="push_user_report_resolved" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$extra.comment">
	{{ phrase('report_that_you_made_recently_has_been_resolved_comment_x', {'comment': $extra.comment, 'title': $extra.title|strip_tags}) }}
<xf:else />
	{{ phrase('report_that_you_made_recently_has_been_resolved', {'title': $extra.title|strip_tags}) }}
</xf:if>
<push:url>{{ base_url($extra.link, 'canonical') }}</push:url>]]></template>
  <template type="public" title="push_user_thread_delete" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ phrase('your_thread_x_was_deleted', {
	'title': prefix('thread', $extra.prefix_id, 'plain') . $extra.title
}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>]]></template>
  <template type="public" title="push_user_thread_merge" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ phrase('your_thread_x_was_merged_into_y', {
	'title': $extra.title,
	'target': prefix('thread', $extra.prefix_id, 'plain') . $extra.targetTitle
}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>
<push:url>{{ base_url($extra.targetLink, 'canonical') }}</push:url>]]></template>
  <template type="public" title="push_user_thread_move" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ phrase('your_thread_x_was_moved_to_different_forum', {
	'title': prefix('thread', $extra.prefix_id, 'plain') . $extra.title
}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>
<push:url>{{ base_url($extra.link, 'canonical') }}</push:url>]]></template>
  <template type="public" title="push_user_upgrade_end" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[{{ phrase('push_one_account_upgrades_expired_renew_now') }}
<push:url>{{ link('canonical:account/upgrades') }}</push:url>]]></template>
  <template type="public" title="push_user_username_change_approved" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[{{ phrase('your_username_change_from_x_to_y_has_been_approved', {'oldUsername': $extra.oldUsername, 'newUsername': $extra.newUsername}) }}]]></template>
  <template type="public" title="push_user_username_change_rejected" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[{{ phrase('your_username_change_to_x_has_been_rejected', {'rejectedUsername': $extra.rejectedUsername}) }}
<xf:if is="$extra.reason">{{ phrase('reason:') }} {$extra.reason}</xf:if>]]></template>
  <template type="public" title="quick_reply_macros" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:macro id="body"
	arg-message=""
	arg-attachmentData="{{ null }}"
	arg-forceHash=""
	arg-messageSelector=""
	arg-multiQuoteHref=""
	arg-multiQuoteStorageKey=""
	arg-simple="{{ false }}"
	arg-submitText=""
	arg-lastItemId="0"
	arg-lastDate="0"
	arg-lastKnownDate="0"
	arg-loadExtra="{{ true }}"
	arg-simpleSubmit="{{ false }}"
	arg-minHeight="100"
	arg-placeholder="{{ phrase('reply_placeholder') }}"
	arg-deferred="{{ false }}"
	arg-showGuestControls="{{ true }}"
	arg-previewUrl="">

	<xf:css src="message.less" />
	<xf:set var="$sticky" value="{{ property('messageSticky') }}" />

	<div class="message message--quickReply block-topRadiusContent block-bottomRadiusContent{{ $simple ? ' message--simple' : '' }}">
		<div class="message-inner">
			<div class="message-cell message-cell--user">
				<div class="message-user {{ $sticky.user_info ? 'is-sticky' : '' }}">
					<div class="message-avatar">
						<div class="message-avatar-wrapper">
							<xf:set var="$user" value="{{ $xf.visitor.user_id ? $xf.visitor : null }}" />
							<xf:avatar user="$user" size="{{ $simple ? 's' : 'm' }}" defaultname="" />
						</div>
					</div>
					<span class="message-userArrow"></span>
				</div>
			</div>
			<div class="message-cell message-cell--main">
				<div class="message-editorWrapper">
					<xf:set var="$editorHtml">
						<xf:macro id="editor"
							arg-message="{$message}"
							arg-attachmentData="{$attachmentData}"
							arg-forceHash="{$forceHash}"
							arg-messageSelector="{$messageSelector}"
							arg-multiQuoteHref="{$multiQuoteHref}"
							arg-multiQuoteStorageKey="{$multiQuoteStorageKey}"
							arg-minHeight="{$minHeight}"
							arg-placeholder="{$placeholder}"
							arg-submitText="{$submitText}"
							arg-deferred="{$deferred}"
							arg-lastItemId="{$lastItemId}"
							arg-lastDate="{$lastDate}"
							arg-lastKnownDate="{$lastKnownDate}"
							arg-loadExtra="{$loadExtra}"
							arg-simpleSubmit="{$simpleSubmit}"
							arg-showGuestControls="{$showGuestControls}"
							arg-previewUrl="{$previewUrl}"
						/>
					</xf:set>

					<xf:if is="$deferred">
						<div class="editorPlaceholder" data-xf-click="editor-placeholder">
							<div class="editorPlaceholder-editor is-hidden">{$editorHtml|raw}</div>
							<div class="editorPlaceholder-placeholder">
								<div class="input"><span class="u-muted"> {$placeholder}</span></div>
							</div>
						</div>
					<xf:else />
						{$editorHtml|raw}
					</xf:if>
				</div>
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="editor"
	arg-message=""
	arg-attachmentData="{{ null }}"
	arg-forceHash=""
	arg-messageSelector=""
	arg-multiQuoteHref=""
	arg-multiQuoteStorageKey=""
	arg-minHeight="100"
	arg-placeholder=""
	arg-submitText=""
	arg-deferred="{{ false }}"
	arg-lastItemId="0"
	arg-lastDate="0"
	arg-lastKnownDate="0"
	arg-loadExtra="{{ true }}"
	arg-simpleSubmit="{{ false }}"
	arg-showGuestControls="{{ true }}"
	arg-previewUrl=""
>
	<xf:editor name="message"
		value="{$message}"
		attachments="{{ $attachmentData ? $attachmentData.attachments : [] }}"
		data-min-height="{$minHeight}"
		placeholder="{$placeholder}"
		data-deferred="{{ $deferred ? 'on' : 'off' }}"
		data-xf-key="{{ phrase('shortcut.quick_reply') }}"
		data-preview-url="{$previewUrl}" />

	<xf:if is="!$xf.visitor.user_id && $showGuestControls">
		<xf:textboxrow name="_xfUsername" rowtype="fullWidth noGutter" data-xf-init="guest-username"
			autocomplete="username"
			maxlength="{{ max_length($xf.visitor, 'username') }}"
			label="{{ phrase('name') }}" />
	</xf:if>
	<xf:if is="$xf.visitor.isShownCaptcha()">
		<div class="js-captchaContainer" data-row-type="fullWidth noGutter"></div>
		<noscript><xf:hiddenval name="no_captcha" value="1" /></noscript>
	</xf:if>

	<xf:if is="$attachmentData">
		<xf:macro id="helper_attach_upload::uploaded_files_list"
			arg-attachments="{$attachmentData.attachments}"
			arg-class="attachmentUploads--spaced" />
	</xf:if>

	<div class="formButtonGroup {{ $simpleSubmit ? 'formButtonGroup--simple' : '' }}">
		<div class="formButtonGroup-primary">
			<xf:button type="submit" class="button--primary" icon="reply">
				{{ $submitText ?: phrase('post_reply') }}
			</xf:button>
		</div>
		<xf:if contentcheck="true">
			<div class="formButtonGroup-extra">
				<xf:contentcheck>
					<xf:if is="$attachmentData">
						<xf:macro id="helper_attach_upload::upload_link_from_data"
							arg-attachmentData="{$attachmentData}"
							arg-forceHash="{$forceHash}" />
					</xf:if>
					<xf:if is="$xf.options.multiQuote && $multiQuoteHref">
						<xf:macro id="multi_quote_macros::button"
							arg-href="{$multiQuoteHref}"
							arg-messageSelector="{$messageSelector}"
							arg-storageKey="{$multiQuoteStorageKey}" />
					</xf:if>
				</xf:contentcheck>
			</div>
		</xf:if>
		<xf:hiddenval name="last_date" autocomplete="off">{$lastDate}</xf:hiddenval>
		<xf:hiddenval name="last_known_date" autocomplete="off">{$lastKnownDate}</xf:hiddenval>
		<xf:hiddenval name="parent_id" autocomplete="off">{$lastItemId}</xf:hiddenval>
		<xf:hiddenval name="load_extra">{{ $loadExtra ? 1 : 0 }}</xf:hiddenval>
	</div>
</xf:macro>
]]></template>
  <template type="public" title="rating_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="stars" arg-rating="!" arg-class="">
	<xf:css src="rating_stars.less" />

	<span class="ratingStars {$class}" title="{{ phrase('x_stars', {'rating': $rating|number(2)})|for_attr }}">
		<span class="ratingStars-star{{ $rating >= 1 ? ' ratingStars-star--full' : '' }}{{ ($rating >= 0.5 AND $rating < 1) ? ' ratingStars-star--half' : '' }}"></span>
		<span class="ratingStars-star{{ $rating >= 2 ? ' ratingStars-star--full' : '' }}{{ ($rating >= 1.5 AND $rating < 2) ? ' ratingStars-star--half' : '' }}"></span>
		<span class="ratingStars-star{{ $rating >= 3 ? ' ratingStars-star--full' : '' }}{{ ($rating >= 2.5 AND $rating < 3) ? ' ratingStars-star--half' : '' }}"></span>
		<span class="ratingStars-star{{ $rating >= 4 ? ' ratingStars-star--full' : '' }}{{ ($rating >= 3.5 AND $rating < 4) ? ' ratingStars-star--half' : '' }}"></span>
		<span class="ratingStars-star{{ $rating >= 5 ? ' ratingStars-star--full' : '' }}{{ ($rating >= 4.5 AND $rating < 5) ? ' ratingStars-star--half' : '' }}"></span>
		<span class="u-srOnly">{{ phrase('x_stars', {'rating': $rating|number(2)}) }}</span>
	</span>
</xf:macro>

<xf:macro id="stars_text" arg-rating="!" arg-count="{{ null }}" arg-text="{{ null }}" arg-rowClass="" arg-starsClass="">
	<span class="ratingStarsRow {$rowClass}">
		<xf:macro id="rating_macros::stars"
			arg-rating="{$rating}"
			arg-class="{$starsClass}" />
		<span class="ratingStarsRow-text">
			<xf:if is="$text is not empty">{$text}<xf:else />{{ phrase('x_ratings', {'count': $count|number}) }}</xf:if>
		</span>
	</span>
</xf:macro>

<xf:macro id="setup">
	<xf:css src="rating_stars.less" />
	<xf:js src="xf/rating.js" min="1" />
</xf:macro>

<xf:macro id="rating"
	arg-row="{{ true }}"
	arg-rowType="{$rowType}"
	arg-rowLabel="{{ phrase('rating') }}"
	arg-rowHint=""
	arg-rowExplain=""
	arg-name="rating"
	arg-currentRating="0"
	arg-ratingHref=""
	arg-controlId=""
	arg-readOnly="false"
	arg-deselectable="false"
	arg-showSelected="true"
	arg-range="{{ {
		1: phrase('terrible'),
		2: phrase('poor'),
		3: phrase('average'),
		4: phrase('good'),
		5: phrase('excellent')
	} }}">

	<xf:macro id="setup" />

	<xf:if is="$row AND !$controlId">
		<xf:set var="$controlId" value="{{ unique_id() }}" />
	</xf:if>

	<xf:set var="$inner">
		<xf:select name="{$name}"
			class="br-select"
			id="{$controlId}"
			data-xf-init="rating"
			data-initial-rating="{$currentRating}"
			data-rating-href="{$ratingHref}"
			data-readonly="{$readOnly}"
			data-deselectable="{$deselectable}"
			data-show-selected="{$showSelected}">

			<xf:if is="$deselectable">
				<xf:option value="" />
			</xf:if>
			<xf:foreach loop="$range" key="$value" value="$label">
				<xf:option value="{$value}">{$label}</xf:option>
			</xf:foreach>
		</xf:select>
	</xf:set>

	<xf:if is="$row">
		<xf:formrow class="u-jsOnly" rowtype="{$rowType}"
			label="{$rowLabel}"
			controlid="{$controlId}"
			hint="{$rowHint|raw}"
			explain="{$rowExplain|raw}">

			{$inner|raw}
		</xf:formrow>
	<xf:else />
		{$inner|raw}
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="rating_stars.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[.ratingStars
{
	display: inline-block;
	line-height: 1;
	font-size: 120%;
	vertical-align: sub;
	position: relative;

	&.ratingStars--larger
	{
		font-size: 140%;
		vertical-align: bottom;
	}

	&.ratingStars--smaller
	{
		font-size: 100%;
		vertical-align: top;
		top: .2em;
	}
}

.ratingStars-star
{
	float: left;
	position: relative;
	margin-left: 2px;

	&:first-child
	{
		margin-left: 0;
	}

	&:before
	{
		.m-faContent(@fa-var-solid-star);
		color: @xf-starEmptyColor;
	}

	&.ratingStars-star--full
	{
		&:before
		{
			color: @xf-starFullColor;
		}
	}

	&.ratingStars-star--half
	{
		&:after
		{
			position: absolute;
			left: 0;
			.m-faContent(@fa-var-solid-star-half);
			color: @xf-starFullColor;

			& when(@rtl)
			{
				.m-transform(scaleX(-1));
			}
		}
	}
}

.ratingStarsRow
{
	&.ratingStarsRow--justified
	{
		display: flex;

		.ratingStarsRow-text
		{
			margin-left: auto;
		}
	}

	&.ratingStarsRow--textBlock
	{
		display: block;

		.ratingStarsRow-text
		{
			display: block;
		}
	}
}

/** XF: override */
.br-select
{
	display: none;
}

.br-theme-fontawesome-stars
{
	.br-widget
	{
		&.br-widget--withSelected
		{
			height: 40px;

			.br-current-rating
			{
				display: block;
				font-size: 80%;
			}
		}
	}
}

/** Vendor: variables.less */
@star-default: @xf-starEmptyColor;
@star-active: @xf-starFullColor;
@star-selected: @xf-starFullColor;

/** Vendor: fontawesome-stars.less */
.br-theme-fontawesome-stars {

	.br-widget {
		height: 28px;
		white-space: nowrap;

		a {
			font-size: 120%;
			text-decoration: none;
			margin-right: 2px;
		}

		a:after {
			.m-faContent(@fa-var-solid-star);
			color: @star-default;
		}

		a.br-active:after {
			color: @star-active;
		}

		a.br-selected:after {
			color: @star-selected;
		}

		.br-current-rating {
			display: none;
		}
	}

	.br-readonly {
		a {
			cursor: default;
		}
	}

}

@media print {
	.br-theme-fontawesome-stars {

		.br-widget {
			a:after {
				.m-faContent(@fa-var-regular-star);
				color: black;
			}

			a.br-active:after,
			a.br-selected:after {
				.m-faContent(@fa-var-solid-star);
				color: black;
			}
		}

	}
}]]></template>
  <template type="public" title="react" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:reaction id="{$reaction}"
	content="{$content}" link="{$link}" params="{$params}" list="{$list}" class="{$class}"
	init="true" hasreaction="{$hasReaction}" small="true" showtitle="true" />]]></template>
  <template type="public" title="reaction_confirm" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{$confirmUrl}" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				<xf:if is="$isUnreact">
					{{ phrase('you_sure_you_want_to_remove_your_reaction') }}
				<xf:else />
					{{ phrase('you_sure_you_want_to_apply_this_reaction') }}
					<strong><xf:reaction id="{$reaction.reaction_id}" showtitle="true" class="reaction--inline" /></strong>
				</xf:if>
			</xf:inforow>
		</div>
		<xf:submitrow icon="confirm" rowtype="simple" />
	</div>
	<xf:hiddenval name="reaction_id">{$reaction.reaction_id}</xf:hiddenval>
</xf:form>]]></template>
  <template type="public" title="reaction_item_conversation_message" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="reaction_snippet" arg-reactionUser="!" arg-reactionId="!" arg-message="!" arg-date="!" arg-fallbackName="{{ phrase('unknown_member') }}">
	<div class="contentRow-title">
		<xf:if is="$message.user_id == $xf.visitor.user_id">
			{{ phrase('x_reacted_to_your_reply_in_the_direct_message_y', {
				'name': username_link($reactionUser, false, {'defaultname': $fallbackName}),
				'reaction': alert_reaction($reactionId, 'medium')|preescaped,
				'title': '<a href="' . link('direct-messages/replies', $message) . '">' . $message.Conversation.title . '</a>'
			}) }}
		<xf:else />
			{{ phrase('x_reacted_to_ys_reply_in_the_direct_message_z', {
				'name': username_link($reactionUser, false, {'defaultname': $fallbackName}),
				'posterParams': 'href="' . link('direct-messages/replies', $message) . '"',
				'poster': $message.User.username,
				'reaction': alert_reaction($reactionId, 'medium')|preescaped,
				'title': '<a href="' . link('direct-messages/replies', $message) . '">' . $message.Conversation.title . '</a>'
			}) }}
		</xf:if>
	</div>

	<div class="contentRow-snippet">{{
		snippet($message.message, $xf.options.newsFeedMessageSnippetLength, {'stripQuote': true})
	}}</div>

	<div class="contentRow-minor"><xf:date time="{$date}" /></div>
</xf:macro>

<xf:macro id="reaction_snippet" arg-reactionUser="{$reaction.ReactionUser}" arg-reactionId="{$reaction.reaction_id}" arg-message="{$content}" arg-date="{$reaction.reaction_date}" />]]></template>
  <template type="public" title="reaction_item_post" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="reaction_snippet" arg-reactionUser="!" arg-reactionId="!" arg-post="!" arg-date="!" arg-fallbackName="{{ phrase('unknown_member') }}">
	<div class="contentRow-title">
		<xf:if is="$post.user_id && $post.user_id == $xf.visitor.user_id">
			{{ phrase('x_reacted_to_your_post_in_the_thread_y', {
				'name': username_link($reactionUser, false, {'defaultname': $fallbackName}),
				'posterParams': 'href="' . link('posts', $post) . '"',
				'reaction': alert_reaction($reactionId, 'medium')|preescaped,
				'title': '<a href="' . link('threads', $post.Thread) . '">' . prefix('thread', $post.Thread) . $post.Thread.title . '</a>'
			}) }}
		<xf:else />
			{{ phrase('x_reacted_to_ys_post_in_the_thread_z', {
				'name': username_link($reactionUser, false, {'defaultname': $fallbackName}),
				'posterParams': 'href="' . link('posts', $post) . '"',
				'poster': $post.username,
				'reaction': alert_reaction($reactionId, 'medium')|preescaped,
				'title': '<a href="' . link('threads', $post.Thread) . '">' . prefix('thread', $post.Thread) . $post.Thread.title . '</a>'
			}) }}
		</xf:if>
	</div>

	<div class="contentRow-snippet">{{
		snippet($post.message, $xf.options.newsFeedMessageSnippetLength, {'stripQuote': true})
	}}</div>

	<div class="contentRow-minor"><xf:date time="{$date}" /></div>
</xf:macro>

<xf:macro id="reaction_snippet" arg-reactionUser="{$reaction.ReactionUser}" arg-reactionId="{$reaction.reaction_id}" arg-post="{$content}" arg-date="{$reaction.reaction_date}" />]]></template>
  <template type="public" title="reaction_item_profile_post" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="reaction_snippet" arg-reactionUser="!" arg-reactionId="!" arg-profilePost="!" arg-date="!" arg-fallbackName="{{ phrase('unknown_member') }}">
	<div class="contentRow-title">
		<xf:if is="$profilePost.user_id == $profilePost.profile_user_id">
			<xf:if is="$profilePost.user_id == $xf.visitor.user_id">
				{{ phrase('x_reacted_to_your_status', {
					'name': username_link($reactionUser, false, {'defaultname': $fallbackName}),
					'status_attributes': 'href="' . link('profile-posts', $profilePost) . '"',
					'reaction': alert_reaction($reactionId, 'medium')|preescaped
				}) }}
			<xf:else />
				{{ phrase('x_reacted_to_ys_status', {
					'name': username_link($reactionUser, false, {'defaultname': $fallbackName}),
					'status_params': 'href="' . link('profile-posts', $profilePost) . '"',
					'poster': $profilePost.username,
					'reaction': alert_reaction($reactionId, 'medium')|preescaped
				}) }}
			</xf:if>
		<xf:else />
			<xf:if is="$profilePost.user_id == $xf.visitor.user_id">

				{{ phrase('x_reacted_to_your_post_on_ys_profile', {
					'name': username_link($reactionUser, false, {'defaultname': $fallbackName}),
					'post_attributes': 'href="' . link('profile-posts', $profilePost) . '"',
					'profile': $profilePost.ProfileUser.username,
					'reaction': alert_reaction($reactionId, 'medium')|preescaped
				}) }}
			<xf:elseif is="$profilePost.ProfileUser.user_id == $xf.visitor.user_id" />

				{{ phrase('x_reacted_to_ys_post_on_your_profile', {
					'name': username_link($reactionUser, false, {'defaultname': $fallbackName}),
					'post_params': 'href="' . link('profile-posts', $profilePost) . '"',
					'poster': $profilePost.username,
					'reaction': alert_reaction($reactionId, 'medium')|preescaped
				}) }}
			<xf:else />

				{{ phrase('x_reacted_to_ys_post_on_zs_profile', {
					'name': username_link($reactionUser, false, {'defaultname': $fallbackName}),
					'post_params': 'href="' . link('profile-posts', $profilePost) . '"',
					'poster': $profilePost.username,
					'profile': $profilePost.ProfileUser.username,
					'reaction': alert_reaction($reactionId, 'medium')|preescaped
				}) }}
			</xf:if>
		</xf:if>
	</div>

	<div class="contentRow-snippet">{{
		snippet($profilePost.message, $xf.options.newsFeedMessageSnippetLength, {'stripQuote': true})
	}}</div>

	<div class="contentRow-minor"><xf:date time="{$date}" /></div>
</xf:macro>

<xf:macro id="reaction_snippet" arg-reactionUser="{$reaction.ReactionUser}" arg-reactionId="{$reaction.reaction_id}" arg-profilePost="{$content}" arg-date="{$reaction.reaction_date}" />]]></template>
  <template type="public" title="reaction_item_profile_post_comment" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="reaction_snippet" arg-reactionUser="!" arg-reactionId="!" arg-comment="!" arg-date="!" arg-fallbackName="{{ phrase('unknown_member') }}">
	<div class="contentRow-title">
		<xf:if is="$comment.user_id == $xf.visitor.user_id">
			{{ phrase('x_reacted_to_your_comment_on_ys_profile_post', {
				'name': username_link($reactionUser, false, {'defaultname': $fallbackName}),
				'post_attributes': 'href="' . link('profile-posts/comments', $comment) . '"',
				'poster': $comment.ProfilePost.username,
				'reaction': alert_reaction($reactionId, 'medium')|preescaped
			}) }}
		<xf:elseif is="$comment.ProfilePost.user_id == $xf.visitor.user_id" />
			{{ phrase('x_reacted_to_ys_comment_on_your_profile_post', {
				'name': username_link($reactionUser, false, {'defaultname': $fallbackName}),
				'post_params': 'href="' . link('profile-posts/comments', $comment) . '"',
				'poster': $comment.username,
				'reaction': alert_reaction($reactionId, 'medium')|preescaped
			}) }}
		<xf:else />

			{{ phrase('x_reacted_to_ys_comment_on_zs_profile_post', {
				'name': username_link($reactionUser, false, {'defaultname': $fallbackName}),
				'post_params': 'href="' . link('profile-posts/comments', $comment) . '"',
				'poster': $comment.username,
				'profile': $comment.ProfilePost.username,
				'reaction': alert_reaction($reactionId, 'medium')|preescaped
			}) }}
		</xf:if>
	</div>

	<div class="contentRow-snippet">{{
		snippet($comment.message, $xf.options.newsFeedMessageSnippetLength, {'stripQuote': true})
	}}</div>

	<div class="contentRow-minor"><xf:date time="{$date}" /></div>
</xf:macro>

<xf:macro id="reaction_snippet" arg-reactionUser="{$reaction.ReactionUser}" arg-reactionId="{$reaction.reaction_id}" arg-comment="{$content}" arg-date="{$reaction.reaction_date}" />]]></template>
  <template type="public" title="reaction_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$title">
	<xf:title>{$title}</xf:title>
<xf:else />
	<xf:title>{{ phrase('members_who_reacted_to_this') }}</xf:title>
</xf:if>

<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<xf:if is="$breadcrumbs">
	<xf:breadcrumb source="$breadcrumbs" />
</xf:if>

<xf:if is="!$listOnly">
	<div class="block">
		<div class="block-container">
			<h3 class="tabs hScroller block-minorTabHeader" data-xf-init="tabs h-scroller"
				data-panes="< .block-container | .js-reactionTabPanes" role="tablist">
				<span class="hScroller-scroll">
					<xf:foreach loop="$tabSummary" key="$reactionId" value="$total">
						<a class="tabs-tab tabs-tab--reaction{$reactionId}{{ $reactionId == $activeReactionId ? ' is-active' : '' }}" role="tab" id="{{ $reactionId ? 'reaction-' . $reactionId : '' }}">
							<xf:if is="$reactionId">
								<xf:reaction id="{$reactionId}" small="true" showtitle="true" appendtitle="{$total|number|parens}" />
							<xf:else />
								<bdi>{{ phrase('all') }}</bdi> {$total|number|parens}
							</xf:if>
						</a>
					</xf:foreach>
				</span>
			</h3>
			<ul class="tabPanes js-reactionTabPanes">
				<xf:foreach loop="$tabSummary" key="$reactionId" value="$total">
					<xf:if is="$reactionId == $activeReactionId">
						<li class="{{ $reactionId == $activeReactionId ? 'is-active' : '' }}" role="tabpanel" id="reaction-{$reactionId}">
							<xf:macro id="reactions_list"
								arg-reactions="{$reactions}"
								arg-hasNext="{$hasNext}"
								arg-content="{$content}"
								arg-link="{$link}"
								arg-linkParams="{$linkParams}"
								arg-page="{$page}"
								arg-reactionId="{$reactionId|default(0)}" />
						</li>
					<xf:else />
						<li data-href="{{ link($link, $content, $linkParams + {'reaction_id': $reactionId, 'list_only': 1}) }}" class="{{ $reactionId == $activeReactionId ? 'is-active' : '' }}" role="tabpanel" id="reaction-{$reactionId}">
							<div class="blockMessage">{{ phrase('loading...') }}</div>
						</li>
					</xf:if>
				</xf:foreach>
			</ul>
		</div>
	</div>
<xf:else />
	<xf:macro id="reactions_list"
		arg-reactions="{$reactions}"
		arg-hasNext="{$hasNext}"
		arg-content="{$content}"
		arg-link="{$link}"
		arg-linkParams="{$linkParams}"
		arg-page="{$page}"
		arg-reactionId="{$activeReactionId}" />
</xf:if>

<xf:macro id="reactions_list"
	arg-reactions="!"
	arg-hasNext="!"
	arg-content="!"
	arg-link="!"
	arg-linkParams="!"
	arg-page="!"
	arg-reactionId="0">
	<ol class="block-body js-reactionList-{$reactionId}">
		<xf:foreach loop="$reactions" value="$reaction">
			<li class="block-row block-row--separated">
				<xf:set var="$extraData">
					<xf:reaction id="{$reaction}" class="reaction--right" />
					<xf:date time="{$reaction.reaction_date}" />
				</xf:set>
				<xf:macro id="member_list_macros::item"
					arg-user="{$reaction.ReactionUser}"
					arg-extraData="{$extraData|preescaped}" />
			</li>
		</xf:foreach>
		<xf:if is="$hasNext">
			<li class="block-footer">
				<span class="block-footer-controls"><xf:button href="{{ link($link, $content, $linkParams + {'reaction_id': $reactionId, 'list_only': 1, 'page': $page + 1}) }}"
					data-xf-click="inserter"
					data-replace=".js-reactionList-{$reactionId}"
					data-scroll-target="< .overlay">
						{{ phrase('continue...') }}
				</xf:button></span>
			</li>
		</xf:if>
	</ol>
</xf:macro>]]></template>
  <template type="public" title="reaction_list_row" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$reactionIds">
	<xf:macro id="reactions_summary::summary" arg-reactionIds="{$reactionIds}" />
</xf:if>
<span class="u-srOnly">{{ phrase('reactions:') }}</span>
<a class="reactionsBar-link" href="{{ link($link, $content, $linkParams) }}" data-xf-click="overlay" data-cache="false" rel="nofollow">{$reactions}</a>]]></template>
  <template type="public" title="reaction_react" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:reaction id="{$reaction}" showtitle="true" small="true" />]]></template>
  <template type="public" title="reactions_summary" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="summary" arg-reactionIds="!">
	<xf:if contentcheck="true">
		<ul class="reactionSummary">
		<xf:contentcheck>
			<xf:foreach loop="$reactionIds" value="$reactionId"><xf:trim>
				<li><xf:reaction id="{$reactionId}" small="true" /></li>
			</xf:trim></xf:foreach>
		</xf:contentcheck>
		</ul>
	</xf:if>
</xf:macro>

<xf:macro id="summary" arg-reactionIds="{$reactionIds}" />]]></template>
  <template type="public" title="register_complete" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:title>{{ phrase('register') }}</xf:title>

<xf:head option="robots"><meta name="robots" content="noindex" /></xf:head>

<div class="blockMessage">
	<xf:if is="$xf.visitor.user_state == 'email_confirm'">
		{{ phrase('thanks_for_registering_to_complete_registration_follow_link') }}
		<xf:if is="$hasPreRegAction">
			<br /><br />
			{{ phrase('once_your_registration_has_been_completed_your_content_will_be_posted') }}
		</xf:if>
	<xf:elseif is="$xf.visitor.user_state == 'moderated'" />
		{{ phrase('thanks_for_registering_registration_must_be_approved') }}
		<xf:if is="$hasPreRegAction">
			<br /><br />
			{{ phrase('once_your_registration_has_been_completed_your_content_will_be_posted') }}
		</xf:if>
	<xf:elseif is="{$facebook}" />
		{{ phrase('thanks_creating_account_using_facebook_account_active') }}
	<xf:else />
		{{ phrase('thanks_for_registering_complete') }}
	</xf:if>

	<xf:if is="{$xf.session.preRegContentUrl}">
		<br />
		<br />
		{{ phrase('content_you_created_before_registering_posted_automatically') }}
		<div style="margin-top: .5em">
			<xf:button href="{$xf.session.preRegContentUrl}">{{ phrase('view_your_content') }}</xf:button>
		</div>
	</xf:if>

	<ul>
		<xf:if is="{$redirect}"><li><a href="{{ link($redirect) }}">{{ phrase('return_to_page_you_were_viewing') }}</a></li></xf:if>
		<li><a href="{{ link('index') }}">{{ phrase('return_to_forum_home_page') }}</a></li>
		<xf:if is="$xf.visitor.canEditProfile()">
			<li><a href="{{ link('account') }}">{{ phrase('edit_your_account_details') }}</a></li>
		</xf:if>
	</ul>
</div>]]></template>
  <template type="public" title="register_confirm" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:head option="robots"><meta name="robots" content="noindex" /></xf:head>

<div class="blockMessage">
	<xf:if is="$xf.visitor.user_state == 'moderated'">
		{{ phrase('your_email_has_been_confirmed_registration_must_be_approved') }}
	<xf:elseif is="{{ $xf.visitor.getPreviousValue('user_state') == 'email_confirm_edit' }}" />
		{{ phrase('your_email_has_been_confirmed_and_your_account_is_now_fully_active_again') }}
	<xf:else />
		{{ phrase('your_email_has_been_confirmed_and_your_registration_is_now_complete') }}
	</xf:if>

	<xf:if is="{$preRegContentUrl}">
		<br />
		<br />
		{{ phrase('content_you_created_before_registering_posted_automatically') }}
		<div style="margin-top: .5em">
			<xf:button href="{$preRegContentUrl}">{{ phrase('view_your_content') }}</xf:button>
		</div>
	</xf:if>

	<ul>
		<xf:if is="$redirect"><li><a href="{$redirect}">{{ phrase('return_to_page_you_were_viewing') }}</a></li></xf:if>
		<li><a href="{{ link('index') }}">{{ phrase('return_to_forum_home_page') }}</a></li>
		<xf:if is="$xf.visitor.canEditProfile()">
			<li><a href="{{ link('account') }}">{{ phrase('edit_your_account_details') }}</a></li>
		</xf:if>
	</ul>
</div>]]></template>
  <template type="public" title="register_connected_account" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('register_using_x', {'provider': $provider.title}) }}</xf:title>

<xf:set var="$user" value="{{ $user ?: $xf.visitor }}" />
<xf:js src="xf/login_signup.js" min="1" />

<xf:head option="robots"><meta name="robots" content="noindex" /></xf:head>

<xf:form action="{{ link('register/connected-accounts/register', $provider) }}" ajax="true" class="block">
	<div class="block-container">
		<h2 class="block-tabHeader tabs" data-xf-init="tabs" role="tablist">
			<a class="tabs-tab is-active" role="tab" tabindex="0" aria-controls="{{ unique_id('regCreate') }}">
				{{ phrase('create_new_account') }}
			</a>
			<a class="tabs-tab" role="tab" tabindex="0" aria-controls="{{ unique_id('regAssoc') }}">
				{{ phrase('associate_existing_account') }}
			</a>
		</h2>

		<ul class="tabPanes">
			<li class="is-active"
				data-xf-init="reg-form"
				data-timer="{$xf.options.registrationTimer}"
				role="tabpanel"
				id="{{ unique_id('regCreate') }}">

				<div class="block-body">
					<xf:macro id="register_macros::username_row" />

					<xf:if is="$providerData.email">
						<xf:formrow label="{{ phrase('email') }}">{$providerData.email|email_display}</xf:formrow>
					<xf:else />
						<xf:macro id="register_macros::email_row" />
					</xf:if>

					<xf:if is="!$providerData.dob">
						<xf:macro id="register_macros::dob_row" />
					</xf:if>

					<xf:if is="!$providerData.location">
						<xf:macro id="register_macros::location_row" />
					</xf:if>

					<xf:macro id="register_macros::custom_fields" />

					<xf:macro id="register_macros::email_choice_row" />

					<xf:macro id="register_macros::tos_row" />
				</div>
				<xf:macro id="register_macros::submit_row" />

			</li>
			<li role="tabpanel" id="{{ unique_id('regAssoc') }}">
				<div class="block-body block-row">
					{{ phrase('to_associate_existing_account_first_log_in_start_via_connected_accounts', {
						'link': link('account/connected-accounts')
					}) }}
				</div>
			</li>
		</ul>
	</div>

	<xf:redirect url="{$redirect}" />
	<xf:hiddenval name="timezone" value="" data-xf-init="auto-timezone" />
</xf:form>]]></template>
  <template type="public" title="register_form" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:js src="xf/login_signup.js" min="1" />

<xf:title>{{ phrase('register') }}</xf:title>

<xf:head option="robots"><meta name="robots" content="noindex" /></xf:head>

<xf:if is="$xf.session.preRegActionKey">
	<div class="blockMessage blockMessage--highlight">
		{{ phrase('pre_reg_action_notice') }}<br />
		<br />
		{{ phrase('already_have_account') }}
		<xf:button class="button--link"
			href="{{ link('login', null, {'_xfRedirect': $redirect}) }}"
			data-xf-click="overlay"
		>{{ phrase('login') }}</xf:button>
	</div>
</xf:if>

<xf:if is="$providers is not empty">
	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:formrow rowtype="button"
					label="{{ phrase('register_faster_using') }}">

					<ul class="listHeap">
						<xf:foreach loop="$providers" value="$provider">
							<li>
								<xf:macro id="connected_account_macros::button"
									arg-provider="{$provider}" />
							</li>
						</xf:foreach>
					</ul>
				</xf:formrow>
			</div>
		</div>
	</div>
</xf:if>

<xf:form action="{{ link('register/register') }}" ajax="true" class="block"
	data-xf-init="reg-form" data-timer="{$xf.options.registrationTimer}">

	<div class="block-container">
		<div class="block-body">

			<xf:comment>Spam catcher field</xf:comment>
			<xf:textboxrow name="username" value="" autocomplete="off" rowclass="formRow--limited"
				maxlength="{{ max_length($xf.visitor, 'username') }}"
				label="{{ phrase('user_name') }}"
				explain="{{ phrase('please_leave_this_field_blank') }}" />

			<xf:macro id="register_macros::username_row"
				arg-fieldName="{{ $regForm.getFieldName('username') }}"
				arg-value="{$fields.username}" />

			<xf:comment>Spam catcher field</xf:comment>
			<xf:if is="{{ rand(0, 2) == 1 }}">
				<xf:textboxrow name="{{ $regForm.getFieldName('email_hp') }}" value="" type="email" autocomplete="off"
					rowclass="formRow--limited"
					maxlength="{{ max_length($xf.visitor, 'email') }}"
					label="{{ phrase('email') }}"
					explain="{{ phrase('please_leave_this_field_blank') }}" />
			</xf:if>

			<xf:macro id="register_macros::email_row"
				arg-fieldName="{{ $regForm.getFieldName('email') }}"
				arg-value="{$fields.email}" />

			<xf:comment>Spam catcher field</xf:comment>
			<xf:if is="{{ rand(0, 2) == 1 }}">
				<xf:textboxrow name="email" value="" type="email" autocomplete="off" rowclass="formRow--limited"
					maxlength="{{ max_length($xf.visitor, 'email') }}"
					label="{{ phrase('email') }}"
					explain="{{ phrase('please_leave_this_field_blank') }}" />
			</xf:if>

			<xf:comment>Spam catcher field</xf:comment>
			<xf:if is="{{ rand(0, 2) == 1 }}">
				<xf:textboxrow name="password" type="password" autocomplete="off" rowclass="formRow--limited"
					label="{{ phrase('password') }}"
					explain="{{ phrase('please_leave_this_field_blank') }}" />
			</xf:if>

			<xf:passwordboxrow name="{{ $regForm.getFieldName('password') }}" autocomplete="new-password"
				label="{{ phrase('password') }}"
				hint="{{ phrase('required') }}"
				required="required" checkstrength="true" />

			<xf:macro id="register_macros::dob_row" />

			<xf:macro id="register_macros::location_row"
				arg-value="{$fields.location}" />

			<xf:macro id="register_macros::custom_fields" />

			<xf:captcharow label="{{ phrase('verification') }}" hint="{{ phrase('required') }}" context="xf_register" />

			<xf:macro id="register_macros::email_choice_row" />

			<xf:macro id="register_macros::tos_row" />
		</div>
		<xf:macro id="register_macros::submit_row" />
	</div>

	<xf:hiddenval name="reg_key">{{ $regForm.getUniqueKey() }}</xf:hiddenval>
	<xf:hiddenval name="{{ $regForm.getFieldName('timezone') }}" value="" data-xf-init="auto-timezone" />
</xf:form>]]></template>
  <template type="public" title="register_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="username_row"
	arg-fieldName="username"
	arg-value=""
	arg-autoFocus="{{ true }}">

	<xf:textboxrow name="{$fieldName}" value="{$value}" autocomplete="username" required="required"
		autofocus="{{ $autoFocus ? 'autofocus' : false }}"
		maxlength="{{ $xf.options.usernameLength.max ?: max_length($xf.visitor, 'username') }}"
		label="{{ phrase('user_name') }}"
		hint="{{ phrase('required') }}"
		explain="{{ phrase('this_is_name_that_will_be_shown_with_your_messages') }}"
		validation-url="{{ link('misc/validate-username') }}" />
</xf:macro>

<xf:macro id="email_row"
	arg-fieldName="email"
	arg-value="">

	<xf:textboxrow name="{$fieldName}" value="{$value}" type="email" autocomplete="email" required="required"
		maxlength="{{ max_length($xf.visitor, 'email') }}"
		label="{{ phrase('email') }}"
		hint="{{ phrase('required') }}" />
</xf:macro>

<xf:macro id="dob_row" arg-dobData="{{ [] }}">
	<xf:if is="$xf.options.registrationSetup.requireDob">
		<xf:macro id="helper_user_dob_edit::dob_edit"
			arg-dobData="{$dobData}"
			arg-required="{{ true }}" />
	</xf:if>
</xf:macro>

<xf:macro id="location_row"
	arg-fieldName="location"
	arg-value="">

	<xf:if is="$xf.options.registrationSetup.requireLocation">
		<xf:textboxrow name="{$fieldName}" value="{$value}" required="true"
			label="{{ phrase('location') }}"
			hint="{{ phrase('required') }}" />
	</xf:if>
</xf:macro>

<xf:macro id="email_choice_row"
	arg-fieldName="email_choice">

	<xf:if is="$xf.options.registrationSetup.requireEmailChoice">
		<xf:checkboxrow>
			<xf:option name="{$fieldName}" selected="{$xf.options.registrationDefaults.receive_admin_email}"
				label="{{ phrase('receive_site_mailings') }}"
				hint="{{ phrase('receive_site_mailings_hint') }}" />
		</xf:checkboxrow>
	</xf:if>
</xf:macro>

<xf:macro id="custom_fields">
	<xf:macro id="custom_fields_macros::custom_fields_edit"
		arg-type="users" arg-group="{{ null }}"
		arg-set="{$xf.visitor.Profile.custom_fields}"
		arg-additionalFilters="{{ ['registration'] }}" />
</xf:macro>

<xf:macro id="tos_row">
	<xf:if is="$xf.tosUrl OR $xf.privacyPolicyUrl">
		<xf:checkboxrow standalone="true">
			<xf:if is="$xf.tosUrl AND $xf.privacyPolicyUrl">
				<xf:option name="accept" required="required">{{ phrase('by_registering_you_agree_to_our_terms_and_privacy_policy', {'tos': $xf.tosUrl, 'privacy': $xf.privacyPolicyUrl}) }}</xf:option>
			<xf:elseif is="$xf.tosUrl" />
				<xf:option name="accept" required="required">{{ phrase('by_registering_you_agree_to_our_terms_and_rules', {'tos': $xf.tosUrl}) }}</xf:option>
			<xf:else />
				<xf:option name="accept" required="required">{{ phrase('by_registering_you_agree_to_our_privacy_policy', {'privacy': $xf.privacyPolicyUrl}) }}</xf:option>
			</xf:if>
		</xf:checkboxrow>
	</xf:if>
</xf:macro>

<xf:macro id="submit_row">
	<xf:submitrow><xf:html>
		<xf:button type="submit" class="button--primary" id="js-signUpButton">
			<xf:if is="$xf.options.registrationTimer">
				<span id="js-regTimer" data-timer-complete="{{ phrase('register')|for_attr }}">
					{{ phrase('(please_wait_x_seconds)', {'seconds': "<span>{$xf.options.registrationTimer}</span>"}) }}
				</span>
			<xf:else />
				{{ phrase('register') }}
			</xf:if>
		</xf:button>
	</xf:html></xf:submitrow>
</xf:macro>]]></template>
  <template type="public" title="report.less" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[.js-handleToggle
{
	display: none;

	&.is-active
	{
		display: block;
	}
}]]></template>
  <template type="public" title="report_content_conversation_message" version_id="2000038" version_string="2.0.0 Beta 8"><![CDATA[<div class="block-row block-row--separated">
	{{ bb_code($report.content_info.message, 'conversation_message', $content ?: $report.User) }}
</div>]]></template>
  <template type="public" title="report_content_post" version_id="2000038" version_string="2.0.0 Beta 8"><![CDATA[<div class="block-row block-row--separated">
	{{ bb_code($report.content_info.message, 'post', $content ?: $report.User) }}
</div>
<div class="block-row block-row--separated block-row--minor">
	<dl class="pairs pairs--inline">
		<dt>{{ phrase('forum') }}</dt>
		<dd><a href="{{ link('forums', $report.content_info) }}">{$report.content_info.node_title}</a></dd>
	</dl>
</div>]]></template>
  <template type="public" title="report_content_profile_post" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<div class="block-row block-row--separated">
	{{ bb_code($report.content_info.message, 'profile_post', $content ?: $report.User) }}
</div>

<xf:if is="$report.content_info.user">
	<xf:if is="$report.content_info.user.user_id != $report.content_info.profileUser.user_id">
		<div class="block-row block-row--separated block-row--minor">
			<dl class="pairs pairs--inline">
				<dt>{{ phrase('receiving_member') }}</dt>
				<dd><a href="{{ link('members', $report.content_info.profileUser) }}">{$report.content_info.profileUser.username}</a></dd>
			</dl>
		</div>
	</xf:if>
<xf:else />
	<div class="block-row block-row--separated block-row--minor">
		<dl class="pairs pairs--inline">
			<dt>{{ phrase('receiving_member') }}</dt>
			<dd>{$report.content_info.profile_username}</dd>
		</dl>
	</div>
</xf:if>]]></template>
  <template type="public" title="report_content_profile_post_comment" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<div class="block-row block-row--separated">
	{{ bb_code($report.content_info.message, 'profile_post_comment', $content ?: $report.User) }}
</div>

<xf:if is="$report.content_info.user">
	<xf:if is="$report.content_info.user.user_id != $report.content_info.profileUser.user_id">
		<div class="block-row block-row--separated block-row--minor">
			<dl class="pairs pairs--inline">
				<dt>{{ phrase('profile_post') }}</dt>
				<dd><a href="{{ link('profile-posts', $report.content_info) }}">{{ phrase('profile_post_for_x', {'username': {$report.content_info.profileUser.username}}) }}</a></dd>
			</dl>
		</div>
	</xf:if>
<xf:else />
	<div class="block-row block-row--separated block-row--minor">
		<dl class="pairs pairs--inline">
			<dt>{{ phrase('profile_post') }}</dt>
			<dd><a href="{{ link('profile-posts', $report.content_info) }}">{{ phrase('profile_post_for_x', {'username': {$report.content_info.profile_username}}) }}</a></dd>
		</dl>
	</div>
</xf:if>]]></template>
  <template type="public" title="report_content_user" version_id="2010870" version_string="2.1.8"><![CDATA[<xf:set var="$user" value="{{ $report.getContent() }}" />

<div class="block-row block-row--separated block-row--minor">
	<div>
		<dl class="pairs pairs--inline">
			<dt>{{ phrase('joined') }}</dt>
			<dd><xf:date time="$user.register_date" /></dd>
		</dl>
	</div>
	
	<xf:if contentcheck="true">
		<div>
			<dl class="pairs pairs--inline">
				<dt>{{ phrase('last_seen') }}</dt>
				<dd dir="auto">
					<xf:contentcheck><xf:useractivity user="$user" /></xf:contentcheck>
				</dd>
			</dl>
		</div>
	</xf:if>
</div>]]></template>
  <template type="public" title="report_create" version_id="2010036" version_string="2.1.0 Beta 6"><![CDATA[<xf:title>{{ phrase('report_content') }}</xf:title>

<xf:form action="{$confirmUrl}" class="block" ajax="true"
	data-skip-overlay-redirect="true">

	<div class="block-container">
		<div class="block-body">
			<xf:textarearow name="message" autosize="true" autofocus="autofocus"
				label="{{ phrase('report_reason') }}" />
		</div>
		<xf:submitrow submit="{{ phrase('report_verb') }}" />
	</div>
</xf:form>]]></template>
  <template type="public" title="report_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('reported_items') }}</xf:title>

<div class="block">
	<div class="block-outer">
		<div class="block-outer-opposite">
			<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true">{{ phrase('find_reports') }}</xf:button>
			<xf:macro id="report_list_macros::search_menu" />
		</div>
	</div>
	<div class="block-container">
		<h2 class="block-tabHeader tabs">
			<a href="{{ link('reports') }}" class="tabs-tab is-active">{{ phrase('active_reports') }}</a>
			<a href="{{ link('reports/closed') }}" class="tabs-tab">{{ phrase('closed_reports') }}</a>
		</h2>
		<div class="block-body">
			<xf:if is="$openReports is not empty">
				<div class="structItemContainer">
					<xf:foreach loop="$openReports" value="$report">
						<xf:macro id="report_list_macros::item" arg-report="{$report}" />
					</xf:foreach>
				</div>
			<xf:else />
				<div class="block-row">{{ phrase('there_no_active_reports_requiring_your_attention') }}</div>
			</xf:if>
		</div>
	</div>
</div>

<div class="block">
	<xf:if is="$closedReports is not empty">
		<div class="block-container">
			<h3 class="block-header">
				{{ phrase('recently_closed_reports') }}
			</h3>
			<div class="block-body">
				<div class="structItemContainer">
					<xf:foreach loop="$closedReports" value="$report">
						<xf:macro id="report_list_macros::item" arg-report="{$report}" />
					</xf:foreach>
				</div>
			</div>
		</div>
	</xf:if>
</div>]]></template>
  <template type="public" title="report_list_closed" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('closed_reports_x_y', {'from': date($timeFrame.0), 'to': date($timeFrame.1)}) }}</xf:title>

<xf:breadcrumb href="{{ link('reports') }}">{{ phrase('reports') }}</xf:breadcrumb>

<div class="block">
	<div class="block-outer">
		<div class="block-outer-opposite">
			<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true">{{ phrase('find_reports') }}</xf:button>
			<xf:macro id="report_list_macros::search_menu" />
		</div>
	</div>
	<div class="block-container">
		<h2 class="block-tabHeader tabs">
			<a href="{{ link('reports') }}" class="tabs-tab">{{ phrase('active_reports') }}</a>
			<a href="{{ link('reports/closed') }}" class="tabs-tab is-active">{{ phrase('closed_reports') }}</a>
		</h2>
		<div class="block-body">
			<xf:if is="$reports is not empty">
				<div class="structItemContainer">
					<xf:foreach loop="$reports" value="$report">
						<xf:macro id="report_list_macros::item" arg-report="{$report}" />
					</xf:foreach>
				</div>
			<xf:else />
				<div class="block-row">{{ phrase('no_reports_have_been_closed_during_this_period') }}</div>
			</xf:if>
		</div>
		<div class="block-footer">
			<span class="block-footer-controls">
				<xf:button href="{{ link('reports/closed', null, {'page': $page + 1}) }}">&larr; {{ phrase('older') }}</xf:button>
				<xf:if is="$page > 1">
					<xf:button href="{{ link('reports/closed', null, {'page': $page - 1}) }}">{{ phrase('newer') }} &rarr;</xf:button>
				</xf:if>
			</span>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="report_list_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="item"
	arg-report="!">

	<xf:css src="structured_list.less" />

	<div class="structItem structItem--report {{ ($report.canView($report) && $report.isAssignedTo()) ? 'is-highlighted' : '' }}">
		<div class="structItem-cell structItem-cell--icon">
			<div class="structItem-iconContainer">
				<xf:avatar user="$report.User" size="s" />
			</div>
		</div>
		<div class="structItem-cell structItem-cell--main" data-xf-init="touch-proxy">
			<a href="{{ link('reports', $report) }}" class="structItem-title" data-tp-primary="on">
				<xf:if is="$report.canView($report)">
					{$report.title}
				<xf:else />
					{{ phrase('unknown_content') }}
				</xf:if>
			</a>

			<div class="structItem-minor">
				<ul class="structItem-extraInfo">
					<li>
						{{ $report.getReportState() }}
						<xf:if is="$report.assigned_user_id && $report.canView($report)">
							{$report.AssignedUser.username|parens}
						</xf:if>
					</li>
				</ul>

				<ul class="structItem-parts">
					<li><xf:username user="$report.User" defaultname="{{ phrase('unknown_member') }}" /></li>
					<li class="structItem-startDate"><a href="{{ link('reports', $report) }}" rel="nofollow"><xf:date time="{$report.first_report_date}" /></a></li>
				</ul>
			</div>
		</div>
		<div class="structItem-cell structItem-cell--meta">
			<dl class="pairs pairs--justified">
				<dt>{{ phrase('reports') }}</dt>
				<dd>{$report.report_count|number}</dd>
			</dl>
			<dl class="pairs pairs--justified structItem-minor">
				<dt>{{ phrase('comments') }}</dt>
				<dd>{$report.comment_count|number}</dd>
			</dl>
		</div>
		<div class="structItem-cell structItem-cell--latest">
			<a href="{{ link('reports', $report) }}" rel="nofollow"><xf:date time="{$report.last_modified_date}" class="structItem-latestDate" /></a>
			<div class="structItem-minor">
				<xf:if is="$report.canView($report)">
					<xf:username user="{$report.last_modified_cache}" />
				<xf:else />
					{{ phrase('n_a') }}
				</xf:if>
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="search_menu">
	<div class="menu" data-menu="menu" aria-hidden="true">
		<xf:form action="{{ link('reports/search') }}" class="menu-content">
			<div class="menu-row">
				{{ phrase('find_reports_for_member:') }}
				<xf:textbox name="username" ac="single" maxlength="{{ max_length($xf.visitor, 'username') }}" />
			</div>
			<div class="menu-footer">
				<span class="menu-footer-controls"><xf:button type="submit" class="button--primary" icon="search" /></span>
			</div>
		</xf:form>
	</div>
</xf:macro>]]></template>
  <template type="public" title="report_search" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('xs_reported_content', {'name': $user.username}) }}</xf:title>

<xf:breadcrumb href="{{ link('reports') }}">{{ phrase('reports') }}</xf:breadcrumb>

<div class="block">
	<div class="block-outer"><xf:trim>
		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}" link="reports/search" params="{{ {'username': $user.username} }}" wrapperclass="block-outer-main" />
	</xf:trim></div>

	<div class="block-container">
		<div class="block-body">
			<div class="structItemContainer">
				<xf:foreach loop="$reports" value="$report">
					<xf:macro id="report_list_macros::item"
						arg-report="{$report}" />
				</xf:foreach>
			</div>
		</div>
	</div>

	<div class="block-outer block-outer--after">
		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}" link="reports/search" params="{{ {'username': $user.username} }}" wrapperclass="block-outer-main" />
		<xf:showignored wrapperclass="block-outer-opposite" />
	</div>
</div>]]></template>
  <template type="public" title="report_view" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('reported_content:') }} {$report.title}</xf:title>
<xf:h1>{$report.title}</xf:h1>

<xf:breadcrumb href="{{ link('reports') }}">{{ phrase('reports') }}</xf:breadcrumb>
<xf:css src="message.less" />
<xf:css src="report.less" />

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<div class="block-row block-row--separated block-row--alt">
				<xf:set var="$extra">
					<xf:if is="$report.User AND $xf.visitor.canCleanSpam() AND $report.User.isPossibleSpammer()">
						<xf:button class="button--link" href="{{ link('spam-cleaner', $report.User) }}" data-xf-click="overlay">{{ phrase('spam') }}</xf:button>
					</xf:if>
				</xf:set>
				<xf:macro id="member_list_macros::item" arg-user="{$report.User}" arg-extraData="{$extra}" />
			</div>
			{$handler.render($report)|raw}
		</div>
		<xf:if is="$report.link">
			<div class="block-footer">
				<span class="block-footer-controls"><xf:button href="{$report.link}">{{ phrase('go_to_content') }}</xf:button></span>
			</div>
		</xf:if>
	</div>
</div>

<div class="blockMessage">
	<div class="pairJustifier">
		<dl class="pairs pairs--rows">
			<dt>{{ phrase('created') }}</dt>
			<dd><xf:date time="$report.first_report_date" /></dd>
		</dl>
		<dl class="pairs pairs--rows">
			<dt>{{ phrase('reports') }}</dt>
			<dd>{$report.report_count|number}</dd>
		</dl>
		<dl class="pairs pairs--rows">
			<dt>{{ phrase('comments') }}</dt>
			<dd>{$report.comment_count|number}</dd>
		</dl>
		<dl class="pairs pairs--rows">
			<dt>{{ phrase('status') }}</dt>
			<dd>
				{$report.getReportState()}
				<xf:if is="$report.report_state == 'assigned'">
					{$xf.language.parenthesis_open}<xf:username user="$report.AssignedUser" />{$xf.language.parenthesis_close}
				</xf:if>
			</dd>
		</dl>
		<dl class="pairs pairs--rows">
			<dt>{{ phrase('updated') }}</dt>
			<dd><xf:date time="$report.last_modified_date" /></dd>
		</dl>
	</div>
</div>

<div class="block">
	<div class="block-container">
		<h3 class="block-header">{{ phrase('comments') }}</h3>

		<div class="block-body">
			<xf:foreach loop="$comments" value="$comment">
				<article class="message message--simple">
					<div class="message-inner">
						<div class="message-cell message-cell--user">
							<xf:macro id="message_macros::user_info_simple" arg-user="{$comment.User}"  arg-fallbackName="{$comment.username}" />
						</div>
						<div class="message-cell message-cell--main">
							<span class="u-anchorTarget" id="report-comment-{$comment.report_comment_id}"></span>
							<div class="message-content">
								<header class="message-attribution message-attribution--plain">
									<ul class="listInline listInline--bullet">
										<li class="message-attribution-user">
											<xf:avatar user="$comment.User" size="xxs" />
											<h4 class="attribution"><xf:username user="$comment.User" rich="true" /></h4>
										</li>
										<li><a href="#report-comment-{$comment.report_comment_id}" class="u-concealed"><xf:date time="$comment.comment_date" /></a></li>
										<xf:if is="$comment.is_report">
											<li><span class="label label--accent">{{ phrase('report_noun') }}</span></li>
										</xf:if>
									</ul>
								</header>

								<xf:if is="$comment.state_change">
									<div class="message-minorHighlight">{{ phrase('status_changed:') }} {$report.getReportState($comment.state_change)}</div>
								</xf:if>

								<xf:if is="$comment.message">
									<article class="message-body">
										{{ bb_code($comment.message, 'report_comment', $comment) }}
									</article>
								</xf:if>
							</div>
						</div>
					</div>
				</article>
			</xf:foreach>
		</div>
	</div>
</div>

<div class="block">
	<div class="block-container">

		<h2 class="block-tabHeader tabs" data-xf-init="tabs" role="tablist">
			<a class="tabs-tab is-active" role="tab" tabindex="0" aria-controls="{{ unique_id('reportUpdate') }}">{{ phrase('update') }}</a>
			<a class="tabs-tab" role="tab" tabindex="0" aria-controls="{{ unique_id('reportReassign') }}">{{ phrase('reassign') }}</a>
		</h2>

		<ul class="tabPanes">

			<li class="is-active" role="tabpanel" id="{{ unique_id('reportUpdate') }}">
				<xf:form action="{{ link('reports/update', $report) }}" ajax="true" draft="{{ link('reports/draft', $report) }}">
					<div class="block-body">
						<xf:set var="$assignedToOther" value="{{ $report.report_state == 'assigned' && $report.AssignedUser && $report.AssignedUser.user_id != $xf.visitor.user_id }}" />

						<xf:if is="$assignedToOther">
							<xf:formrow rowclass="js-handleToggleTrigger">
								{{ phrase('this_report_is_currently_assigned_to_x', {'assigned_username': $report.AssignedUser.username}) }}
								<div>
									<xf:button data-xf-click="toggle" data-target=".js-handleToggle" data-hide=".js-handleToggleTrigger">
										{{ phrase('handle_report') }}
									</xf:button>
								</div>
							</xf:formrow>
						</xf:if>

						<div class="js-handleToggle{{ !$assignedToOther ? ' is-active' : '' }}">

							<xf:editorrow name="message" value="{$report.draft_comment.message}" data-min-height="100"
								rowtype="fullWidth noLabel"
								label="{{ phrase('message') }}">

								<xf:explain>
									{{ phrase('your_comment_will_only_be_visible_to_moderators') }}
									<xf:if is="$report.isClosed()">{{ phrase('your_comment_will_re_open_this_report') }}</xf:if>
								</xf:explain>
							</xf:editorrow>

							<xf:if is="!$report.isClosed()">
								<xf:radiorow name="report_state"
									label="{{ phrase('status') }}">

									<xf:option value="" label="{{ phrase('do_not_change') }}" selected="true" />
									<xf:option value="assigned" label="{{ $report.report_state == 'assigned' ? phrase('unassign') : phrase('report_state.assigned') }}" />
									<xf:option value="resolved" label="{{ phrase('report_state.resolved') }}" />
									<xf:option value="rejected" label="{{ phrase('report_state.rejected') }}" />
								</xf:radiorow>

								<xf:checkboxrow
									explain="{{ phrase('any_resolution_rejection_alert_text_will_be_appended_to_comment') }}">

									<xf:option name="send_alert" label="{{ phrase('send_resolution_rejection_alert:') }}">
										<xf:dependent>
											<xf:textbox name="alert_comment" maxlength="300" />
										</xf:dependent>
									</xf:option>
								</xf:checkboxrow>
							</xf:if>
						</div>
					</div>
					<div class="js-handleToggle{{ !$assignedToOther ? ' is-active' : '' }}">
						<xf:submitrow icon="save" />
					</div>
				</xf:form>
			</li>

			<li role="tabpanel" id="{{ unique_id('reportReassign') }}">
				<xf:form action="{{ link('reports/reassign', $report) }}" ajax="true">
					<div class="block-body">
						<xf:selectrow name="user_id" value="{$report.assigned_user_id}"
							label="{{ phrase('member') }}">

							<xf:option value="0" label="{{ phrase('(none)') }}" />
							<xf:foreach loop="$moderators" value="$moderator">
								<xf:option value="{$moderator.User.user_id}" label="{$moderator.User.username}" />
							</xf:foreach>
						</xf:selectrow>
					</div>
					<xf:submitrow submit="{{ phrase('reassign') }}" />
				</xf:form>
			</li>

		</ul>
	</div>
</div>]]></template>
  <template type="public" title="search_form" version_id="2010052" version_string="2.1.0 Release Candidate 2"><![CDATA[<xf:title>{{ phrase('search') }}</xf:title>

<xf:head option="robots"><meta name="robots" content="noindex" /></xf:head>

<xf:if is="$type">
	<xf:breadcrumb href="{{ link('full:search') }}">{{ phrase('search') }}</xf:breadcrumb>
</xf:if>

<xf:form action="{{ link('search/search') }}" class="block" ajax="true">
	<div class="block-container">
		<h2 class="block-tabHeader tabs hScroller" data-xf-init="h-scroller">
			<span class="hScroller-scroll">
				<a href="{{ link('search') }}" class="tabs-tab{{ !$type ? ' is-active' : '' }}">{{ phrase('search_everything') }}</a>
				<xf:foreach loop="$tabs" key="$tabType" value="$tab">
					<a href="{{ link('search', null, {'type': $tabType}) }}" class="tabs-tab{{ $type == $tabType ? ' is-active' : '' }}">{$tab.title}</a>
				</xf:foreach>
				<xf:if is="$xf.options.enableTagging">
					<a href="{{ link('tags') }}" class="tabs-tab">{{ phrase('search_tags') }}</a>
				</xf:if>
			</span>
		</h2>

		<div class="block-body">
			<xf:include template="{$formTemplateName}" />
		</div>

		<xf:submitrow icon="search" sticky="true" />
	</div>

	<xf:hiddenval name="search_type">{$type}</xf:hiddenval>
</xf:form>]]></template>
  <template type="public" title="search_form_all" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="search_form_macros::keywords" arg-input="{$input}" />

<xf:macro id="search_form_macros::user" arg-input="{$input}" />

<xf:macro id="search_form_macros::date" arg-input="{$input}" />

<xf:macro id="search_form_macros::order"
	arg-isRelevanceSupported="{$isRelevanceSupported}"
	arg-input="{$input}" />
]]></template>
  <template type="public" title="search_form_conversation_message" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:title>{{ phrase('search_direct_messages') }}</xf:title>

<xf:macro id="search_form_macros::keywords"
	arg-input="{$input}" />

<xf:macro id="search_form_macros::user" 
	arg-input="{$input}" />

<xf:textboxrow name="c[recipients]" value="{$input.c.recipients}" ac="true"
	label="{{ phrase('received_by') }}"
	explain="{{ phrase('separate_names_with_comma') }}" />

<xf:macro id="search_form_macros::date"
	arg-input="{$input}" />

<xf:numberboxrow name="c[min_reply_count]" value="{$input.c.min_reply_count|default(0)}" min="0"
	label="{{ phrase('minimum_number_of_replies') }}" />

<xf:if is="$input.c.conversation">
	<xf:checkboxrow>
		<xf:option name="c[conversation]" value="{$input.c.conversation}" selected="true">
			{{ phrase('restrict_search_to_specified_direct_message') }}
		</xf:option>
	</xf:checkboxrow>
</xf:if>

<xf:macro template="search_form_macros" name="order"
	arg-isRelevanceSupported="{$isRelevanceSupported}"
	arg-options="{{ {
		'replies': phrase('most_replies')
	} }}"
	arg-input="{$input}" />

<xf:macro id="search_form_macros::grouped" 
	arg-label="{{ phrase('display_results_as_direct_messages') }}"
	arg-input="{$input}" />]]></template>
  <template type="public" title="search_form_macros" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:macro id="keywords" arg-input="{{ [] }}" arg-canTitleLimit="{{ true }}">
	<xf:set var="$controlId">{{ unique_id() }}</xf:set>
	<xf:formrow rowtype="input" controlid="{$controlId}"
		label="{{ phrase('keywords') }}">

		<ul class="inputList">
			<li>
				<xf:textbox type="search" name="keywords"
					data-xf-init="{{ $xf.searchAutoComplete ? 'search-auto-complete' : '' }}"
					data-acurl="{{ link('search/auto-complete') }}"
					value="{$input.keywords}"
					autofocus="autofocus"
					id="{$controlId}" />
			</li>
			<xf:if is="$canTitleLimit">
				<li>
					<xf:checkbox standalone="true">
						<xf:option name="c[title_only]" selected="{$input.c.title_only}">
							<xf:label>
								{{ phrase('search_titles_only') }}

								<xf:if is="$xf.options.enableTagging">
									<span tabindex="0" role="button"
										data-xf-init="tooltip" data-trigger="hover focus click" title="{{ phrase('tags_will_also_be_searched')|for_attr }}">

										<xf:fa icon="far fa-question-circle" class="u-muted u-smaller"
											title="{{ phrase('note')|for_attr }}" />
									</span>
								</xf:if>
							</xf:label>
						</xf:option>
					</xf:checkbox>
				</li>
			</xf:if>
		</ul>
	</xf:formrow>
</xf:macro>

<xf:macro id="user" arg-input="{{ [] }}">
	<xf:textboxrow name="c[users]" value="{$input.c.users}" ac="true"
		label="{{ phrase('posted_by') }}"
		explain="{{ phrase('separate_names_with_comma') }}" />
</xf:macro>

<xf:macro id="date" arg-input="{{ [] }}">
	<xf:dateinputrow name="c[newer_than]" value="{$input.c.newer_than}"
		label="{{ phrase('newer_than') }}" />

	<xf:dateinputrow name="c[older_than]" value="{$input.c.older_than}"
		label="{{ phrase('older_than') }}" />
</xf:macro>

<xf:macro id="order" arg-input="{{ [] }}" arg-isRelevanceSupported="!" arg-options="{{ [] }}">
	<xf:if is="$isRelevanceSupported || count($options)">
		<xf:radiorow name="order" value="{$input.order|default($isRelevanceSupported ? 'relevance' : 'date')}"
			label="{{ phrase('order_by') }}">

			<xf:if is="$isRelevanceSupported">
				<xf:option value="relevance">{{ phrase('relevance') }}</xf:option>
			</xf:if>
			<xf:option value="date">{{ phrase('date') }}</xf:option>
			<xf:options source="$options" />
		</xf:radiorow>
	<xf:else />
		<xf:hiddenval name="order">{$input.order|default($isRelevanceSupported ? 'relevance' : 'date')}</xf:hiddenval>
	</xf:if>
</xf:macro>

<xf:macro id="grouped" arg-label="!" arg-input="{{ [] }}">
	<xf:checkboxrow>
		<xf:option name="grouped" value="1" selected="{$input.grouped}">{$label}</xf:option>
	</xf:checkboxrow>
</xf:macro>]]></template>
  <template type="public" title="search_form_post" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('search_threads') }}</xf:title>

<xf:macro id="search_form_macros::keywords" arg-input="{$input}" />
<xf:macro id="search_form_macros::user" arg-input="{$input}" />
<xf:macro id="search_form_macros::date" arg-input="{$input}" />

<xf:numberboxrow name="c[min_reply_count]" value="{$input.c.min_reply_count|default(0)}" min="0"
	label="{{ phrase('minimum_number_of_replies') }}" />

<xf:if is="$prefixesGrouped is not empty">
	<xf:selectrow name="c[prefixes][]" size="7" multiple="true" value="{$input.c.prefixes|default([0])}"
		label="{{ phrase('prefixes') }}">

		<xf:option value="">{{ phrase('(any)') }}</xf:option>
		<xf:foreach loop="$prefixGroups" key="$groupId" value="$prefixGroup" if="{{ count($prefixesGrouped.{$groupId}) > 0 }}">
			<xf:optgroup label="{{ prefix_group('thread', $groupId) }}">
				<xf:foreach loop="{$prefixesGrouped.{$groupId}}" key="$prefixId" value="$prefix">
					<xf:option value="{$prefixId}">{{ prefix_title('thread', $prefixId) }}</xf:option>
				</xf:foreach>
			</xf:optgroup>
		</xf:foreach>
	</xf:selectrow>
</xf:if>

<xf:if is="$input.c.thread">
	<xf:checkboxrow>
		<xf:option name="c[thread]" value="{$input.c.thread}" selected="true">{{ phrase('restrict_search_to_specified_thread') }}</xf:option>
	</xf:checkboxrow>
</xf:if>

<xf:set var="$forumsControlId" value="{{ unique_id() }}" />
<xf:formrow rowtype="input"
	label="{{ phrase('search_in_forums') }}" controlid="{$forumsControlId}">

	<ul class="inputList">
		<li><xf:select name="c[nodes][]" size="7" multiple="multiple" value="{$input.c.nodes|default([0])}" id="{$forumsControlId}">
			<xf:option value="">{{ phrase('all_forums') }}</xf:option>
			<xf:foreach loop="$nodeTree.getFlattened(0)" value="$treeEntry">
				<xf:option value="{$treeEntry.record.node_id}">{{ repeat('&nbsp;&nbsp;', $treeEntry.depth)|raw }} {$treeEntry.record.title}</xf:option>
			</xf:foreach>
		</xf:select></li>
		<li><xf:checkbox standalone="true">
			<xf:option name="c[child_nodes]" selected="{{ (!$input.c || $input.c.child_nodes) }}" label="{{ phrase('search_sub_forums_as_well') }}" />
		</xf:checkbox></li>
	</ul>
</xf:formrow>

<xf:macro id="search_form_macros::order"
	arg-isRelevanceSupported="{$isRelevanceSupported}"
	arg-options="{{ {
		'replies': phrase('most_replies')
	} }}"
	arg-input="{$input}" />

<xf:macro id="search_form_macros::grouped"
	arg-label="{{ phrase('display_results_as_threads') }}"
	arg-input="{$input}" />]]></template>
  <template type="public" title="search_form_profile_post" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('search_profile_posts') }}</xf:title>

<xf:macro id="search_form_macros::keywords" arg-input="{$input}" arg-canTitleLimit="{{ false }}" />

<xf:macro id="search_form_macros::user" arg-input="{$input}" />

<xf:textboxrow name="c[profile_users]" value="{$input.c.profile_users}" ac="true"
	label="{{ phrase('posted_on_the_profile_of_member') }}"
	explain="{{ phrase('separate_names_with_comma') }}" />

<xf:macro id="search_form_macros::date" arg-input="{$input}" />]]></template>
  <template type="public" title="search_forum_view" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title page="{$page}">{$searchForum.Node.title}</xf:title>
<xf:description>{$searchForum.Node.description|raw}</xf:description>

<xf:css src="structured_list.less" />

<xf:macro id="metadata_macros::canonical_url"
	arg-canonicalUrl="{{ link('canonical:search-forums', $searchForum, {'page': $page}) }}" />
<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<xf:head option="rss_forum">
	<link
		rel="alternate"
		type="application/rss+xml"
		title="{{ phrase('rss_feed_for_x', {'title': $searchForum.title})|for_attr }}"
		href="{{ link('search-forums/index.rss', $searchForum) }}" />
</xf:head>

<xf:breadcrumb source="$searchForum.getBreadcrumbs(false)" />

<xf:pageaction>
	<xf:if is="$xf.visitor.canCreateThread()">
		<xf:button href="{{ link('forums/create-thread') }}" class="button--cta" icon="write" overlay="true" rel="nofollow">
			{{ phrase('post_thread...') }}
		</xf:button>
	</xf:if>
</xf:pageaction>

<xf:if is="$nodeTree">
	<xf:ad position="forum_view_above_node_list" arg-forum="{$searchForum}" />

	<div class="block">
		<div class="block-container">
			<div class="block-body">
				<xf:macro id="forum_list::node_list"
					arg-children="{$nodeTree}"
					arg-extras="{$nodeExtras}"
					arg-depth="2" />
			</div>
		</div>
	</div>

	<xf:ad position="forum_view_below_node_list" arg-forum="{$searchForum}" />
</xf:if>

<xf:if is="$canInlineMod">
	<xf:js src="xf/inline_mod.js" min="1" />
</xf:if>

<xf:ad position="forum_view_above_thread_list" arg-forum="{$searchForum}" />

<div class="block" data-xf-init="{{ $canInlineMod ? 'inline-mod' : '' }}" data-type="thread" data-href="{{ link('inline-mod') }}">
	<div class="block-outer"><xf:trim>
		<xf:pagenav page="{$page}" perpage="{$perPage}" total="{$total}"
			link="search-forums" data="{$searchForum}"
			wrapperclass="block-outer-main" />

		<xf:if contentcheck="true">
			<div class="block-outer-opposite">
				<div class="buttonGroup">
					<xf:contentcheck>
						<xf:if is="$canInlineMod">
							<xf:macro id="inline_mod_macros::button" />
						</xf:if>
					</xf:contentcheck>
				</div>
			</div>
		</xf:if>
	</xf:trim></div>

	<div class="block-container">
		<div class="block-body">
			<div class="structItemContainer">
				<xf:if is="$threads is not empty">
					<xf:foreach loop="$threads" value="$thread">
						<xf:macro id="thread_list_macros::item"
							arg-thread="{$thread}"
							arg-showVoteCount="{{ true }}" />
					</xf:foreach>
				<xf:else />
					<div class="structItem">
						<div class="structItem-cell">{{ phrase('there_no_threads_matching_this_search_forum') }}</div>
					</div>
				</xf:if>
			</div>
		</div>
	</div>

	<div class="block-outer block-outer--after">
		<xf:pagenav
			page="{$page}" perpage="{$perPage}" total="{$total}"
			link="search-forums" data="{$searchForum}"
			wrapperclass="block-outer-main" />

		<xf:showignored wrapperclass="block-outer-opposite" />
	</div>
</div>

<xf:ad position="forum_view_below_thread_list" arg-forum="{$searchForum}" />

<xf:widgetpos id="forum_view_sidebar" context-forum="{$searchForum}" position="sidebar" />]]></template>
  <template type="public" title="search_result_conversation" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<li class="block-row block-row--separated js-inlineModContainer" data-author="{{ $conversation.Starter.username ?: $conversation.username }}">
	<div class="contentRow">
		<span class="contentRow-figure">
			<xf:avatar user="{$conversation.Starter}" size="s" defaultname="{$conversation.username}" />
		</span>

		<div class="contentRow-main">
			<h3 class="contentRow-title">
				<a href="{{ link('direct-messages', $conversation) }}">{{ highlight($conversation.title, $options.term) }}</a>
			</h3>

			<div class="contentRow-snippet">{{ snippet($conversation.FirstMessage.message, 300, {'term': $options.term, 'stripQuote': true}) }}</div>

			<div class="contentRow-minor contentRow-minor--hideLinks">
				<ul class="listInline listInline--bullet">
					<xf:if is="$options.mod == 'conversation'">
						<li>
							<xf:checkbox standalone="true">
								<xf:option value="{$conversation.conversation_id}" class="js-inlineModToggle"
									data-xf-init="tooltip"
									title="{{ phrase('select_for_moderation') }}" />
							</xf:checkbox>
						</li>
					</xf:if>

					<li>
						<ul class="listInline listInline--comma listInline--selfInline">
							<li><xf:username user="{$conversation.Starter}" defaultname="{$conversation.username}" title="{{ phrase('direct_message_starter')|for_attr }}" /></li><xf:trim>
							<xf:foreach loop="$conversation.recipients" value="$recipient" if="{$recipient.user_id} != {$conversation.user_id}"><xf:trim>
								<li><xf:username user="{$recipient}" defaultname="{{ phrase('unknown_member') }}" /></li>
							</xf:trim></xf:foreach>
							</xf:trim>
						</ul>
					</li>

					<li>{{ phrase('direct_message') }}</li>
					<li><xf:date time="{$conversation.start_date}" /></li>
					<li>{{ phrase('replies:') }} {$conversation.reply_count|number}</li>
				</ul>
			</div>
		</div>
	</div>
</li>]]></template>
  <template type="public" title="search_result_conversation_message" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<li class="block-row block-row--separated {{ $message.isIgnored() ? 'is-ignored' : '' }}" data-author="{{ $message.User.username ?: $message.username }}">
	<div class="contentRow">
		<span class="contentRow-figure">
			<xf:avatar user="{$message.User}" size="s" defaultname="{$message.username}" />
		</span>

		<div class="contentRow-main">
			<h3 class="contentRow-title">
				<a href="{{ link('direct-messages/replies', $message) }}">{{ highlight($message.Conversation.title, $options.term) }}</a>
			</h3>

			<div class="contentRow-snippet">{{ snippet($message.message, 300, {'term': $options.term, 'stripQuote': true}) }}</div>

			<div class="contentRow-minor contentRow-minor--hideLinks">
				<ul class="listInline listInline--bullet">
					<li><xf:username user="{$message.User}" defaultname="{$message.username}" /></li>
					<li>{{ phrase('direct_message_reply') }}</li>
					<li><xf:date time="{$message.message_date}" /></li>
				</ul>
			</div>
		</div>
	</div>
</li>]]></template>
  <template type="public" title="search_result_page" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<li class="block-row block-row--separated">
	<div class="contentRow">
		<span class="contentRow-figure">
			<xf:avatar user="{{ null }}" size="s" />
		</span>
		<div class="contentRow-main">
			<h3 class="contentRow-title">
				<a href="{{ link('pages', $page) }}">{{ highlight($page.title, $options.term) }}</a>
			</h3>

			<div class="contentRow-snippet">{{ snippet($page.MasterTemplate.template, 300, {'term': $options.term, 'stripHtml': true}) }}</div>

			<div class="contentRow-minor contentRow-minor--hideLinks">
				<ul class="listInline listInline--bullet">
					<li>{{ phrase('page') }}</li>
					<li><xf:date time="{$page.modified_date}" /></li>
				</ul>
			</div>
		</div>
	</div>
</li>]]></template>
  <template type="public" title="search_result_post" version_id="2001070" version_string="2.0.10"><![CDATA[<li class="block-row block-row--separated {{ $post.isIgnored() ? 'is-ignored' : '' }} js-inlineModContainer" data-author="{{ $post.User.username ?: $post.username }}">
	<div class="contentRow {{ !$post.isVisible() ? 'is-deleted' : '' }}">
		<span class="contentRow-figure">
			<xf:avatar user="{$post.User}" size="s" defaultname="{$post.username}" />
		</span>
		<div class="contentRow-main">
			<h3 class="contentRow-title">
				<a href="{{ link('threads/post', $post.Thread, {'post_id': $post.post_id}) }}">{{ prefix('thread', $post.Thread) . highlight($post.Thread.title, $options.term) }}</a>
			</h3>

			<div class="contentRow-snippet">{{ snippet($post.message, 300, {'term': $options.term, 'stripQuote': true}) }}</div>

			<div class="contentRow-minor contentRow-minor--hideLinks">
				<ul class="listInline listInline--bullet">
					<xf:if is="$options.mod == 'post' && $post.canUseInlineModeration()">
						<li><xf:checkbox standalone="true">
							<xf:option value="{$post.post_id}" class="js-inlineModToggle"
								data-xf-init="tooltip"
								title="{{ phrase('select_for_moderation') }}" />
						</xf:checkbox></li>
					</xf:if>
					<li><xf:username user="{$post.User}" defaultname="{$post.username}" /></li>
					<li>{{ phrase('post_x', {'position': number($post.position + 1)}) }}</li>
					<li><xf:date time="{$post.post_date}" /></li>
					<li>{{ phrase('forum:') }} <a href="{{ link('forums', $post.Thread.Forum) }}">{$post.Thread.Forum.title}</a></li>
				</ul>
			</div>
		</div>
	</div>
</li>]]></template>
  <template type="public" title="search_result_profile_post" version_id="2010270" version_string="2.1.2"><![CDATA[<li class="block-row block-row--separated {{ $profilePost.isIgnored() ? 'is-ignored' : '' }} js-inlineModContainer" data-author="{{ $profilePost.User.username ?: $profilePost.username }}">
	<div class="contentRow {{ !$profilePost.isVisible() ? 'is-deleted' : '' }}">
		<span class="contentRow-figure">
			<xf:avatar user="{$profilePost.User}" size="s" defaultname="{$profilePost.username}" />
		</span>
		<div class="contentRow-main">
			<h3 class="contentRow-title">
				<a href="{{ link('profile-posts', $profilePost) }}">{{ snippet($profilePost.message, 100, {'term': $options.term, 'stripQuote': true, 'fromStart': true, 'hideUnviewable': false}) }}</a>
			</h3>

			<div class="contentRow-snippet">{{ snippet($profilePost.message, 300, {'term': $options.term, 'stripQuote': true}) }}</div>

			<div class="contentRow-minor contentRow-minor--hideLinks">
				<ul class="listInline listInline--bullet">
					<xf:if is="$options.mod == 'profile_post' && $profilePost.canUseInlineModeration()">
						<li><xf:checkbox standalone="true">
							<xf:option value="{$profilePost.profile_post_id}" class="js-inlineModToggle"
								data-xf-init="tooltip"
								title="{{ phrase('select_for_moderation') }}"/>
						</xf:checkbox></li>
					</xf:if>
					<li><xf:username user="{$profilePost.User}" defaultname="{$profilePost.username}" /></li>
					<li>{{ phrase('profile_post') }}</li>
					<li><xf:date time="{$profilePost.post_date}" /></li>
				</ul>
			</div>
		</div>
	</div>
</li>]]></template>
  <template type="public" title="search_result_profile_post_comment" version_id="2010270" version_string="2.1.2"><![CDATA[<li class="block-row block-row--separated {{ $comment.isIgnored() ? 'is-ignored' : '' }}" data-author="{{ $comment.User.username ?: $comment.username }}">
	<div class="contentRow {{ !$comment.isVisible() ? 'is-deleted' : '' }}">
		<span class="contentRow-figure">
			<xf:avatar user="{$comment.User}" size="s" defaultname="{$comment.username}" />
		</span>
		<div class="contentRow-main">
			<h3 class="contentRow-title">
				<a href="{{ link('profile-posts/comments', $comment) }}">{{ snippet($comment.message, 100, {'term': $options.term, 'stripQuote': true, 'fromStart': true, 'hideUnviewable': false}) }}</a>
			</h3>

			<div class="contentRow-snippet">{{ snippet($comment.message, 300, {'term': $options.term, 'stripQuote': true}) }}</div>

			<div class="contentRow-minor contentRow-minor--hideLinks">
				<ul class="listInline listInline--bullet">
					<li><xf:username user="{$comment.User}" defaultname="{$comment.username}" /></li>
					<li>{{ phrase('profile_post_comment') }}</li>
					<li><xf:date time="{$comment.comment_date}" /></li>
				</ul>
			</div>
		</div>
	</div>
</li>]]></template>
  <template type="public" title="search_result_thread" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<li class="block-row block-row--separated {{ $thread.isIgnored() ? 'is-ignored' : '' }} js-inlineModContainer" data-author="{{ $thread.User.username ?: $thread.username }}">
	<div class="contentRow {{ !$thread.isVisible() ? 'is-deleted' : '' }}">
		<span class="contentRow-figure">
			<xf:avatar user="{$thread.User}" size="s" defaultname="{$thread.username}" />
		</span>
		<div class="contentRow-main">
			<h3 class="contentRow-title">
				<a href="{{ link('threads', $thread) }}">{{ prefix('thread', $thread) . highlight($thread.title, $options.term) }}</a>
			</h3>

			<div class="contentRow-snippet">{{ snippet($thread.FirstPost.message, 300, {'term': $options.term, 'stripQuote': true}) }}</div>

			<div class="contentRow-minor contentRow-minor--hideLinks">
				<ul class="listInline listInline--bullet">
					<xf:if is="$options.mod == 'thread' && $thread.canUseInlineModeration()">
						<li><xf:checkbox standalone="true">
							<xf:option value="{$thread.thread_id}" class="js-inlineModToggle"
								data-xf-init="tooltip"
								title="{{ phrase('select_for_moderation') }}" />
						</xf:checkbox></li>
					</xf:if>
					<li><xf:username user="{$thread.User}" defaultname="{$thread.username}" /></li>
					<li>{{ phrase('thread') }}</li>
					<li><xf:date time="{$thread.post_date}" /></li>
					<xf:if is="$xf.options.enableTagging && $thread.tags">
						<li>
							<xf:macro id="tag_macros::simple_list"
								arg-tags="{$thread.tags}"
								arg-containerClass="contentRow-minor"
								arg-highlightTerm="{{ $options.tag ?: $options.term}}" />
						</li>
					</xf:if>
					<li>{{ phrase('replies:') }} {$thread.reply_count|number}</li>
					<li>{{ phrase('forum:') }} <a href="{{ link('forums', $thread.Forum) }}">{$thread.Forum.title}</a></li>
				</ul>
			</div>
		</div>
	</div>
</li>]]></template>
  <template type="public" title="search_results" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$search.search_query">
	<xf:title page="{$page}">{{ phrase('search_results_for_query:') }} {$search.search_query}</xf:title>
	<xf:h1>{{ phrase('search_results_for_query:') }} <a href="{{ link('search', $search, {'searchform': '1'}) }}"><em>{$search.search_query}</em></a></xf:h1>
<xf:else />
	<xf:title page="{$page}">{{ phrase('search_results') }}</xf:title>
</xf:if>

<xf:css src="search_results.less" />

<xf:breadcrumb href="{{ link('full:search') }}">{{ phrase('search') }}</xf:breadcrumb>

<xf:head option="robots"><meta name="robots" content="noindex" /></xf:head>

<xf:if is="$activeModType">
	<xf:js src="xf/inline_mod.js" min="1" />
</xf:if>

<div class="block" data-xf-init="{{ $activeModType ? 'inline-mod' : '' }}" data-type="{$activeModType}" data-href="{{ link('inline-mod') }}">
	<xf:if is="$search.warnings">
		<div class="block-outer">
			<ol class="listPlain blockMessage blockMessage--warning blockMessage--close">
				<xf:foreach loop="$search.warnings" value="$warning">
					<li>{$warning}</li>
				</xf:foreach>
			</ol>
		</div>
	</xf:if>
	<xf:if is="$modTypes">
		<div class="block-outer">
			<div class="block-outer-opposite">
				<div class="buttonGroup">
					<xf:if is="$activeModType">
						<xf:macro id="inline_mod_macros::button" />
					</xf:if>
					<div class="buttonGroup-buttonWrapper">
						<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true">{{ phrase('enable_moderation') }}</xf:button>
						<div class="menu" data-menu="menu" aria-hidden="true">
							<div class="menu-content">
								<h3 class="menu-header">{{ phrase('enable_moderation') }}</h3>
								<xf:foreach loop="$modTypes" key="$type" value="$text">
									<a href="{{ link('search', $search, {'mod': $type,  'page': ($page > 1 ? $page : '')}) }}" class="menu-linkRow {{ $activeModType == $type ? 'is-selected' : '' }}">{$text}</a>
								</xf:foreach>
								<xf:if is="$activeModType">
									<hr class="menu-separator" />
									<a href="{{ link('search', $search, {'page': ($page > 1 ? $page : '')}) }}" class="menu-linkRow">{{ phrase('disable') }}</a>
								</xf:if>
							</div>
						</div>
					</div>
				</div>
			</div>
		</div>
	</xf:if>

	<div class="block-container">
		<ol class="block-body">
			<xf:foreach loop="$results" value="$result">
				{{ $result.render({'mod': $activeModType})|raw }}
			</xf:foreach>
		</ol>
		<xf:if is="{$getOlderResultsDate}">
			<div class="block-footer">
				<span class="block-footer-controls"><xf:button href="{{ link('search/older', $search, {'before': $getOlderResultsDate}) }}" class="button--link">
					{{ phrase('view_older_results') }}
				</xf:button></span>
			</div>
		</xf:if>
	</div>

	<div class="block-outer block-outer--after">
		<xf:pagenav
			page="{$page}" perpage="{$perPage}" total="{$search.result_count}"
			link="search" data="{$search}" params="{{ {'mod': $activeModType} }}"
			wrapperclass="block-outer-main" />
		<xf:showignored wrapperclass="block-outer-opposite" />
	</div>
</div>

<xf:if is="$activeModType">
	<xf:js src="xf/inline_mod.js" min="1" />
</xf:if>]]></template>
  <template type="public" title="search_results.less" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[.searchResult
{
	display: table;
	table-layout: fixed;
	width: 100%;
}

.searchResult-icon
{
	display: table-cell;
	vertical-align: top;
	width: 54px;
	white-space: nowrap;
	word-wrap: normal;

	img,
	.avatar
	{
		max-width: 100%;
	}
}

.searchResult-main
{
	display: table-cell;
	vertical-align: middle;
	padding-left: @xf-paddingLarge;

	&:before
	{
		content: '';
		display: block;
		margin-top: -.25em;
	}
}

.searchResult-title
{
	font-size: @xf-fontSizeLarge;
}]]></template>
  <template type="public" title="security_lock_resend" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('resend_security_lock_reset_email') }}</xf:title>

<xf:form action="{{ link('security-lock/resend') }}" class="block" ajax="true" data-redirect="off" data-reset-complete="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('you_sure_you_want_to_resend_security_lock_reset_email', {'email': $xf.visitor.email|email_display}) }}
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('resend_email') }}" rowtype="simple" />
	</div>
</xf:form>]]></template>
  <template type="public" title="security_lock_reset" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('reset_password') }}</xf:title>

<xf:head option="robots"><meta name="robots" content="noindex" /></xf:head>

<div class="blockMessage blockMessage--important">
	{{ phrase('we_require_you_to_change_your_password') }}
</div>

<xf:form action="{{ link('security-lock/reset', $user, {'c': $c}) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow label="{{ phrase('user_name') }}">{$user.username}</xf:formrow>

			<xf:passwordboxrow name="password" autocomplete="new-password" checkstrength="true"
				label="{{ phrase('new_password') }}" />

			<xf:passwordboxrow name="password_confirm" autocomplete="new-password"
				label="{{ phrase('confirm_new_password') }}" />
		</div>
		<xf:submitrow icon="save" />
	</div>
</xf:form>]]></template>
  <template type="public" title="select2.less" version_id="2020770" version_string="2.2.7"><![CDATA[.select2-hidden-accessible
{
	border: 0 !important;
	clip: rect(0 0 0 0) !important;
	height: 1px !important;
	margin: -1px !important;
	overflow: hidden !important;
	padding: 0 !important;
	position: absolute !important;
	width: 1px !important;
}

.select2
{
	line-height: normal;

	*:focus
	{
		outline: none;
	}

	.select2-selection
	{
		padding: 0;
		margin: 0;
		display: block;

		&.input
		{
			cursor: text;
		}

		ul
		{
			list-style: none;
			margin: 0;
			padding: 0 5px;
			width: 100%;
			overflow: hidden;
			text-overflow: ellipsis;
			white-space: nowrap;

			display: inline-flex;
			flex-wrap: wrap;
			margin-bottom: 5px;

			> li
			{
				&.select2-selection__choice
				{
					float: left;

					font-size: 15px;
					border-radius: @xf-borderRadiusMedium;

					.xf-chip();

					margin-right: 5px;
					margin-top: 5px;
					padding: 0 5px;

					cursor: default;

					.select2-selection__choice__remove
					{
						font-size: 0;
						cursor: pointer;

						&:before
						{
							.m-faBase();
							font-size: 15px;
							.m-faContent("@{fa-var-times}\20");
							opacity: .5;
							.m-transition(opacity);
						}

						&:hover:before
						{
							opacity: 1;
						}
					}
				}
			}

			.select2-search
			{
				flex-grow: 1;
				min-width: 0;

				&.select2-search--inline
				{
					float: left;
				}

				.select2-search__field
				{
					color: inherit;
					border: none;
					padding: 1px 0;
					margin-top: 5px;
					background: transparent;
					min-width: 100%;
					max-width: 100%;

					&:focus
					{
						outline: none;
					}
				}
			}
		}
	}
}

.select2-container
{
	display: inline-block;

	&.select2-container--disabled
	{
		.input
		{
			.xf-inputDisabled();
		}
	}

	&.select2-container--open
	{
		.select2-dropdown
		{
			-ltr-rtl-left: 0;

			&.select2-dropdown--above
			{
				border-bottom: none;
				border-bottom-left-radius: 0;
				border-bottom-right-radius: 0;
			}

			&.select2-dropdown--below
			{
				border-top: none;
				border-top-left-radius: 0;
				border-top-right-radius: 0;
			}
		}
	}
}

.select2-dropdown
{
	border-radius: @xf-borderRadiusSmall;
	box-sizing: border-box;
	display: block;
	position: absolute;
	-ltr-rtl-left: -100000px;
	width: 100%;
	z-index: 1051;
	padding-top: 2px;

	&.select2-dropdown--above
	{
		padding-bottom: 5px;

		.select2-results__option.loading-results:not(:last-child)
		{
			display: none;
		}
	}
}

.select2-results
{
}

.select2-results__options
{
	display: block;
	.m-listPlain();
}

.select2-results > .select2-results__options
{
	// applies only to the top-level results
	.m-autoCompleteList();

	overflow: auto;
	max-height: 150px;
	max-height: ~"max(150px, 50vh)";
	-webkit-overflow-scrolling: touch;

	li[role="group"]
	{
		padding: 0;
	}
}

.select2-results__options.select2-results__options--nested
{
	margin-left: .8em;

	li
	{
		padding-right: 0;
	}
}

.select2-results__group
{
	display: block;
	padding: @xf-paddingMedium;
}

.select2-results__option
{
	user-select: none;
	-webkit-user-select: none;

	&.select2-results__option--highlighted
	{
		background: @xf-contentHighlightBg;
	}

	&[aria-disabled="true"]
	{
		color: @xf-textColorMuted;
	}
}]]></template>
  <template type="public" title="service_worker_offline" version_id="2030170" version_string="2.3.1"><![CDATA[<xf:page option="template">OFFLINE_CONTAINER</xf:page>
<xf:page option="css">{$css|raw}</xf:page>

<xf:title>{{ phrase('page_could_not_be_loaded') }}</xf:title>

<div class="p-offline-main">
	{{ phrase('page_could_not_be_loaded_explain', {'title': $xf.options.boardShortTitle ?: $xf.options.boardTitle}) }}

	<a href="javascript:window.location.reload();" class="button">{{ phrase('reload') }}</a>
</div>

<script{{ $xf.request.isRocketLoaderDisabled() ? ' data-cfasync="false"' : ''}}>
	window.addEventListener('online', function()
	{
		window.location.reload();
	});
</script>]]></template>
  <template type="public" title="setup.less" version_id="2030170" version_string="2.3.1"><![CDATA[// Note that this file should never output any CSS directly. It should contain variables and mixins only.
// Output should go into core.less.

// ################################ VARIABLES ###############################

// BLOCKS
@block-borderRadius-inner: max((@xf-blockBorderRadius - 1px), 0px);
@block-noStripSel: ~'.block-container:not(.block-container--noStripRadius)';

// HELPERS
@zIndex-1: (@xf-zIndexMultiplier * 1);
@zIndex-2: (@xf-zIndexMultiplier * 2);
@zIndex-3: (@xf-zIndexMultiplier * 3);
@zIndex-4: (@xf-zIndexMultiplier * 4);
@zIndex-5: (@xf-zIndexMultiplier * 5);
@zIndex-6: (@xf-zIndexMultiplier * 6);
@zIndex-7: (@xf-zIndexMultiplier * 7);
@zIndex-8: (@xf-zIndexMultiplier * 8);
@zIndex-9: (@xf-zIndexMultiplier * 9);

// AVATARS
@_avatarBaseSize: 96px;
@avatar-xxs: (@_avatarBaseSize / 4);
@avatar-xs:  (@_avatarBaseSize / 3);
@avatar-s:   (@_avatarBaseSize / 2);
@avatar-m:   (@_avatarBaseSize / 1);
@avatar-l:   (@_avatarBaseSize * 2);
@avatar-o:   (@_avatarBaseSize * 4);

@variations: xf-hasVariations;
@rtl: xf-isRtl;
@ltr: xf-isLtr;

// DEFAULT FONTAWESOME TYPE
@faType: 'Pro'; // deprecated

// FONTAWESOME WEIGHT VALUES
@faWeight-light: 300;
@faWeight-regular: 400;
@faWeight-solid: 900;

{{ include('setup_fa.less') }}

// TABLES
@tablePadding: @xf-paddingSmall;

// ####################################### MIXINS ##################################

.m-colorScheme(@colorScheme, @ruleset, @guard: @variations)
{
	& when (@guard)
	{
		:root:not([data-variation]) &
		{
			@media (prefers-color-scheme: @colorScheme)
			{
				@ruleset();
			}
		}

		:root[data-color-scheme="@{colorScheme}"] &
		{
			@ruleset();
		}
	}
}

.m-clearFix()
{
	&:before,
	&:after
	{
		content: " ";
		display: table;
	}
	&:after
	{
		clear: both;
	}
}

.m-hideText()
{
	text-indent: 100%;
	overflow: hidden;
	white-space: nowrap;
	word-wrap: normal;
}

.m-hyphens(@hyphens: none)
{
	hyphens: @hyphens;
	-moz-hyphens: @hyphens;
	-ms-hyphens: @hyphens;
	-webkit-hyphens: @hyphens;
}

.m-fadeOutLines(@lines, @bgColor, @lineHeight: @xf-lineHeightDefault)
{
	position: relative;
	max-height: unit((@lines * @lineHeight), em);
	overflow: hidden;

	&:after
	{
		content: '';
		position: absolute;
		bottom: 0;
		right: 0;
		text-align: right;
		width: 75%;
		height: unit(@lineHeight, em);

		& when(@ltr)
		{
			background: linear-gradient(to right, fade(@bgColor, 0%), fade(@bgColor, 100%));
		}
		& when(@rtl)
		{
			background: linear-gradient(to left, fade(@bgColor, 0%), fade(@bgColor, 100%));
		}
	}
}

.m-overflowEllipsis()
{
	overflow: hidden;
	white-space: nowrap;
	word-wrap: normal;
	text-overflow: ellipsis;
}

.m-appendColon()
{
	&:after
	{
		content: "{$xf.language.label_separator}";
	}

	&.is-sentence:after
	{
		content: "";
	}
}

.m-tooltipArrow(@color, @size, @variation: ~'', @fillColor: false)
{
	@{variation}.tooltip--top &
	{
		bottom: 0;
		left: 50%;
		margin-left: (@size * -1);
		.m-triangleDown(@color, @size);
	}
	@{variation}.tooltip--bottom &
	{
		top: 0;
		left: 50%;
		margin-left: (@size * -1);
		.m-triangleUp(@color, @size);
	}
	@{variation}.tooltip--right &
	{
		top: 50%;
		left: 0;
		margin-top: (@size * -1);
		.m-triangleLeft(@color, @size);
	}
	@{variation}.tooltip--left &
	{
		top: 50%;
		right: 0;
		margin-top: (@size * -1);
		.m-triangleRight(@color, @size);
	}

	& when (iscolor(@fillColor))
	{
		@{variation} &:after
		{
			position: absolute;
			content: '';
		}

		@{variation}.tooltip--top &:after
		{
			bottom: 1px;
			left: (@size * -1 + 1px);
			.m-triangleDown(@fillColor, (@size - 1px));
		}

		@{variation}.tooltip--bottom &:after
		{
			top: 1px;
			left: (@size * -1 + 1px);
			.m-triangleUp(@fillColor, (@size - 1px));
		}

		@{variation}.tooltip--right &:after
		{
			left: 1px;
			bottom: (@size * -1 + 1px);
			.m-triangleLeft(@fillColor, @size - 1px);
		}

		@{variation}.tooltip--left &:after
		{
			right: 1px;
			bottom: (@size * -1 + 1px);
			.m-triangleRight(@fillColor, @size - 1px);
		}
	}
}

.m-triangleUp(@color; @size)
{
	border: @size solid transparent;
	border-top-width: 0;
	border-bottom-color: @color;
}

.m-triangleDown(@color; @size)
{
	border: @size solid transparent;
	border-bottom-width: 0;
	border-top-color: @color;
}

.m-triangleLeft(@color; @size)
{
	border: @size solid transparent;
	border-left-width: 0;
	border-right-color: @color;
}

.m-triangleRight(@color; @size)
{
	border: @size solid transparent;
	border-right-width: 0;
	border-left-color: @color;
}

.m-dropShadow(@x: 1px; @y: 2px; @blur: 2px; @spread: 0; @alpha: 0.25)
{
	box-shadow: @x @y @blur @spread rgba(0, 0, 0, @alpha);
}

.m-textOutline(@fillColor: white; @strokeColor: black; @width: 1px;)
{
	-webkit-text-fill-color: @fillColor;
	-webkit-text-stroke-color: @strokeColor;
	-webkit-text-stroke-width: @width;
}

.m-gradient(@startColor; @stopColor; @fallback; @startPos: 0%; @endPos: 100%)
{
	background: @fallback;
	background: linear-gradient(to bottom, @startColor @startPos, @stopColor @endPos);
}

.m-gradientHorizontal(@startColor; @stopColor; @fallback; @startPos: 0%; @endPos: 100%)
{
	background: @fallback;

	& when(@ltr)
	{
		background: linear-gradient(to right, @startColor @startPos, @stopColor @endPos);
	}
	& when(@rtl)
	{
		background: linear-gradient(to left, @startColor @startPos, @stopColor @endPos);
	}
}

.m-tabSize(@size: 4)
{
	-moz-tab-size: @size;
	tab-size: @size;
}

.m-transition(@props: all; @duration: @xf-animationSpeed; @timing: ease; @delay: 0; @raw-input: false)
{
	// adapted from https://stackoverflow.com/a/20810461 @ScottS

	.output() when (@raw-input = false)
	{
		@propsLength: length(@props);
		@durationLength: length(@duration);
		@timingLength: length(@timing);
		@delayLength: length(@delay);

		.buildString(@i, @s: ~'') when (@i <= @propsLength)
		{
			@prop: extract(@props, @i);

			.setDuration() when (@i <= @durationLength) { @dur: extract(@duration, @i); }
			.setDuration() when (@i >  @durationLength) { @dur: extract(@duration, @durationLength); }
			.setDuration();

			.setEasing() when (@i <= @timingLength) { @time: extract(@timing, @i); }
			.setEasing() when (@i >  @timingLength) { @time: extract(@timing, @timingLength); }
			.setEasing();

			.setDelay() when (@i <= @delayLength) { @del: extract(@delay, @i); }
			.setDelay() when (@i >  @delayLength) { @del: extract(@delay, @delayLength); }
			.setDelay();

			.setDivider() when (@i > 1) { @divider: ~'@{s},'; }
			.setDivider() when (@i = 1) { @divider: ~''; }
			.setDivider();

			.buildString((@i + 1), @divider @prop @dur @time);
		}

		.buildString(1);

		.buildString(@i, @s: ~'') when (@i > @propsLength)
		{
			.compact(@s);
		}
	}

	.output() when not (@raw-input = false)
	{
		.compact(@raw-input);
	}

	.compact(@string)
	{
		-webkit-transition: @string;
		//-moz-transition: @string;
		//-ms-transition: @string;
		//-o-transition: @string;
		transition: @string;
	}

	.output();
}

.m-transitionProperty(@props)
{
	-webkit-transition-property: @props;
	transition-property: @props;
}

.m-animation(@props)
{
	-webkit-animation: @props;
	animation: @props;
}

.m-transform(@props)
{
	-webkit-transform: @props;
	-ms-transform: @props;
	transform: @props;
}

.m-keyframes(@name, @rules)
{
	@-webkit-keyframes @name { @rules(); }
	@keyframes @name { @rules(); }
}

.m-columns(@count; @breakWidth: 0; @gap: 1em)
{
	-moz-column-count: @count;
	-webkit-column-count: @count;
	column-count: @count;

	-moz-column-gap: @gap;
	-webkit-column-gap: @gap;
	column-gap: @gap;

	& when(@breakWidth > 0)
	{
		@media (max-width: @breakWidth)
		{
			-moz-column-count: 1;
			-webkit-column-count: 1;
			column-count: 1;
		}
	}
}

.m-columnBreakAvoid()
{
	-webkit-column-break-inside: avoid;
	break-inside: avoid-column;
	page-break-inside: avoid;
}

.m-borderLeftRadius(@radius)
{
	border-top-left-radius: @radius;
	border-bottom-left-radius: @radius;
}

.m-borderRightRadius(@radius)
{
	border-top-right-radius: @radius;
	border-bottom-right-radius: @radius;
}

.m-borderTopRadius(@radius)
{
	border-top-left-radius: @radius;
	border-top-right-radius: @radius;
}

.m-borderBottomRadius(@radius)
{
	border-bottom-left-radius: @radius;
	border-bottom-right-radius: @radius;
}

.m-hiddenLinks()
{
	a
	{
		color: inherit;
		text-decoration: none;

		&:hover
		{
			text-decoration: underline;
		}
	}
}

.m-textColoredLinks()
{
	a
	{
		color: inherit;
		text-decoration: underline;
	}
}

.m-placeholder(@rules)
{
	&::-webkit-input-placeholder { @rules(); }
	&::-moz-placeholder { @rules(); }
	&:-moz-placeholder { @rules(); }
	&:-ms-input-placeholder { @rules(); }
}

.m-autoCompleteList(@wide: false)
{
	.m-listPlain();
	cursor: default;

	.xf-menu();
	min-width: 180px;
	& when(@wide = true)
	{
		min-width: 250px;
	}
	max-width: 95%;

	border: @xf-borderSize solid @xf-borderColor;
	.m-dropShadow(0, 3px, 5px, 0, .3);

	> li
	{
		padding: @xf-paddingMedium;
		line-height: 24px;

		.m-clearFix();

		&.is-selected
		{
			background: @xf-contentHighlightBg;
		}

		.autoCompleteList-icon
		{
			float: left;
			margin-right: @xf-paddingMedium;
			width: 24px;
			height: 24px;
		}
	}
}

.m-listPlain()
{
	list-style: none;
	margin: 0;
	padding: 0;
}

// makes direct children display: inline-block, removing white-space between elements (mostly used on ul > li)
.m-inlineBlocks(@fontSize: @xf-fontSizeNormal)
{
	font-size: 0;

	> *
	{
		display: inline-block;
		font-size: @fontSize;
	}
}

.m-tabsTogether(@fontSize: @xf-fontSizeNormal)
{
	font-size: 0;

	.tabs-tab,
	.tabs-text,
	.tabs-extra,
	.hScroller-action
	{
		font-size: @fontSize;
	}
}

.m-hiddenEl(@transition: true)
{
	display: none;

	&.is-active
	{
		display: block;
	}

	& when(@transition = true)
	{
		.m-transitionFadeDown();
	}
}

.m-transitionFade(@speed: @xf-animationSpeed; @display: block)
{
	display: none;
	opacity: 0;

	.m-transition(all, -xf-opacity; @speed);

	&.is-active
	{
		display: @display;
		opacity: 1;
	}

	&.is-transitioning
	{
		display: @display;
	}
}

.m-transitionFadeDown(@speed: @xf-animationSpeed; @display: block)
{
	.m-transitionFade(@speed, @display);

	overflow-y: hidden;
	height: 0;

	.m-transitionProperty(all, -xf-height;);

	&.is-active
	{
		height: auto;
		overflow-y: visible;
	}

	&.is-transitioning
	{
		overflow-y: hidden;
	}
}

.m-visuallyHidden()
{
	position: absolute;
	height: 1px;
	width: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	clip: rect(0 0 0 0);
	overflow: hidden;
}

.m-faBase(@type: false, @weight: false)
{
	// deprecated, use .m-faIcon directly
}

.m-faContent(@url, @width: false, @direction: false)
{
	// this is an alias for m-faIcon (for backwards compatibility)
	.m-faIcon(@url, @width, @direction);
}

.m-faIcon(@url, @width: false, @direction: false)
{
	& when (@direction = ltr) and (@ltr)
	{
		.m-faIconBase(@url, @width);
	}
	& when (@direction = rtl) and (@rtl)
	{
		.m-faIconBase(@url, @width);
	}
	& when (@direction = false)
	{
		.m-faIconBase(@url, @width);
	}
}

.m-faIconBase(@url, @width: false)
{
	display: inline-block;
	content: "";

	height: 1em;
	vertical-align: -0.125em;
	background-color: currentColor;

	& when (isnumber(@width))
	{
		width: @width;
	}
	& when not (isnumber(@width))
	{
		width: 1.28571429em;
	}

	mask: @url no-repeat center;
	-webkit-mask: @url no-repeat center;
}

.m-faBefore(@icon, @width: false)
{
	&:before
	{
		.m-faContent(@icon, @width);
	}
}

.m-faAfter(@icon, @width: false)
{
	&:after
	{
		.m-faContent(@icon, @width);
	}
}

.m-iconicIcon(@setPosition: true)
{
	display: inline-block;
	min-width: 1em;
	height: .9em;// prevents some zoom-related issues
	-ltr-rtl-text-align: left;

	&:before,
	&:after
	{
		.m-faBase('Pro'; inherit);
		//.m-transition(opacity, color; @xf-animationSpeed, @xf-animationSpeed / 2);

		position: absolute;

		& when (@setPosition = true)
		{
			left: 0;
			top: 0.2em;
		}

		opacity: 1;
	}
}

.m-menuGadget(@separate: false, @faWidth: 1.2em, @faWeight: 900)
{
	// deprecated, use .m-menuGadgetIcon directly to pass in a custom icon/variant
	.m-menuGadgetIcon(@separate, @faWidth)
}

.m-menuGadgetIcon(@separate: false, @faWidth: 1.2em, @faIcon: @fa-var-solid-caret-down)
{
	.m-faContent(@faIcon, @faWidth);

	& when (@separate = true)
	{
		margin-left: .2em;
	}
	& when (isnumber(@separate))
	{
		margin-left: @separate;
	}
}

.m-content(@content, @direction: false, @separateDirection: false, @separateWidth: false)
{
	& when (@direction = false)
	{
		content: @content;
	}
	& when (@direction = ltr)
	{
		-ltr-content: @content;
	}
	& when (@direction = rtl)
	{
		-rtl-content: @content;
	}
	& when (@separateDirection = left)
	{
		& when (isnumber(@separateWidth))
		{
			margin-right: @separateWidth;
		}
		& when not(isnumber(@separateWidth))
		{
			margin-right: .2em;
		}
	}
	& when (@separateDirection = right)
	{
		& when (isnumber(@separateWidth))
		{
			margin-left: @separateWidth;
		}
		& when not(isnumber(@separateWidth))
		{
			margin-left: .2em;
		}
	}
}

.m-buttonIcon(@icon, @width: false)
{
	> .button-text::before
	{
		.m-faIcon(@icon, @width);
		vertical-align: .025em;
	}
}

.m-buttonIconWidth(@width)
{
	> .fa--xf svg
	{
		width: @width;
	}
}

.m-avatarSize(@avatarSize)
{
	width: @avatarSize;
	height: @avatarSize;
	font-size: round((@avatarSize * @xf-avatarDynamicTextPercent / 100));
}

.m-buttonBase()
{
	display: inline-block; // maintain this just in case for old browsers

	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	cursor: pointer;
	border: @xf-borderSize solid transparent;
	white-space: nowrap;
	.m-transition(background-color border-color color, (@xf-animationSpeed / 2));
	.xf-buttonBase();
}

.m-buttonColorVariation(@bgColor; @textColor)
{
	color: @textColor;
	background-color: @bgColor;
	.m-buttonBorderColorVariation(@bgColor);

	&:hover,
	&:active,
	&:focus
	{
		background-color: xf-intensify(@bgColor, 8%);
	}
}

.m-buttonBlockColorVariationSimple(@color)
{
	.m-buttonBorderColorVariation(@color);

	&:not(.button--splitTrigger),
	&.button--splitTrigger > .button-text,
	&.button--splitTrigger > .button-menu
	{
		&:hover,
		&:focus,
		&:active
		{
			background-color: xf-intensify(@color, 8%);
		}
	}
}

.m-buttonBorderColorVariation(@borderColor)
{
	border-color: xf-diminish(@borderColor, 5%) xf-intensify(@borderColor, 5%) xf-intensify(@borderColor, 5%) xf-diminish(@borderColor, 5%);

	&.button--splitTrigger
	{
		> .button-text { border-right-color: xf-intensify(@borderColor, 5%); }
		> .button-menu { border-left-color: xf-diminish(@borderColor, 5%); }
	}
}

// this will be replaced by the CSS renderer with the correct background-image rule
.m-selectGadgetColor(@color: black)
{
	-xf-select-gadget: @color;
}

.m-hScrollerActionColorVariation(@background, @text, @textHover)
{
	color: @text;

	&:hover
	{
		color: @textHover;
	}

	&.hScroller-action--start
	{
		.m-gradientHorizontal(@background, fade(@background, 0%), @background, 66%, 100%);
	}

	&.hScroller-action--end
	{
		.m-gradientHorizontal(fade(@background, 0%), @background, @background, 0%, 33%);
	}
}

// Fix for iOS zoom on input focus.
.m-inputZoomFix()
{
	@media (max-width: 568px)
	{
		font-size: 16px;
	}
}

.m-checkboxAligner()
{
	vertical-align: -2px;
}

.m-highResolution(@rules)
{
	@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 144dpi)
	{
		@rules();
	}
}

.m-fixedWidthFlex(@width)
{
	flex: 0 0 @width;
}

.m-labelVariation(@color; @bg; @border: false)
{
	color: @color;
	background: @bg;
	border-color: xf-intensify(@bg, 10%);

	& when (iscolor(@border))
	{
		border-color: @border;
	}

	a&:hover,
	a:hover &
	{
		background: xf-intensify(@bg, 4%);
		border-color: xf-intensify(@bg, 14%);

		& when (iscolor(@border))
		{
			border-color: xf-intensify(@border, 4%);
		}
	}
}

.m-tableBase()
{
	> table
	{
		border: none;
		border-collapse: collapse;
		empty-cells: show;
		max-width: 100%;

		> thead, > tbody
		{
			> tr
			{
				> th
				{
					background: @xf-contentHighlightBg;
					border: @xf-borderSize solid @xf-borderColor;
					border-bottom-color: @xf-borderColorFeature;
					border-bottom-width: @xf-borderSizeMinorFeature;
					padding: @tablePadding;
				}

				> td
				{
					background: @xf-contentBg;
					border: @xf-borderSize solid @xf-borderColor;
					padding: @tablePadding;
				}
			}
		}
	}
}

.m-backdropFilter(@filter, @filterBg: none, @fallbackBg: none)
{
	@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none)
	{
		--backdrop-filter: @filter;
		-webkit-backdrop-filter: var(--backdrop-filter);
		backdrop-filter: var(--backdrop-filter);

		& when not (@filterBg = none)
		{
			background: @filterBg;
		}
	}


	@supports not ((-webkit-backdrop-filter: none) or (backdrop-filter: none))
	{
		& when (@fallbackBg = none)
		{
			background: @filterBg;
		}
		& when not (@fallbackBg = none)
		{
			background: @fallbackBg;
		}
	}
}

.m-blockAligner()
{
	// we want this to still be a block element but to inherit the alignment a user has set - this approximates that
	[style="text-align: center"] &
	{
		margin-left: auto;
		margin-right: auto;
	}

	[style="text-align: left"] &
	{
		-ltr-rtl-margin-left: 0;
		-ltr-rtl-margin-right: auto;
	}

	[style="text-align: right"] &
	{
		-ltr-rtl-margin-left: auto;
		-ltr-rtl-margin-right: 0;
	}
}

// STICKY HEADER STUFF
// Note that to access the height and offset, you need to call the mixin and use the variables locally.

@header-navHeight: (
	2 * @xf-publicNavPaddingV +
	xf-default(@xf-publicNav--font-size, @xf-fontSizeNormal) * @xf-lineHeightDefault
	);
@header-subNavHeight: (
	2 * @xf-publicSubNavPaddingV +
	xf-default(@xf-publicSubNav--font-size, @xf-fontSizeNormal) * @xf-lineHeightDefault +
	xf-default(@xf-publicSubNav--border-top-width, 0) +
	xf-default(@xf-publicSubNav--border-bottom-width, 0)
	);

.m-stickyHeaderConfig(@type)
{
	@_stickyHeader-offset: 10px;
	@_stickyHeader-height: 0;
}
.m-stickyHeaderConfig(@type) when(@type = primary)
{
	@_stickyHeader-height: @header-navHeight;
}
.m-stickyHeaderConfig(@type) when(@type = all)
{
	@_stickyHeader-height: (@header-navHeight + @header-subNavHeight);
}

.m-loadingSpinner()
{
	.is-loading &
	{
		opacity: 1;

		.fa--xf
		{
			animation-name: spin;
		}
	}

	.fa--xf
	{
		position: absolute;
		left: ~"calc(50% - 1.5em)";
		top: ~"calc(50% - 1.5em)";

		animation-duration: 1000ms;
		animation-iteration-count: infinite;
	}
}

{{ include('setup_custom.less') }}]]></template>
  <template type="public" title="setup_custom.less" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[// This should be used for additional LESS setup code (that does not output anything).
// setup.less customizations should be avoided when possible.]]></template>
  <template type="public" title="setup_fa.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[// Variables
// --------------------------

@fa-font-path:         "styles/fonts/fa";
@fa-font-size-base:    16px;
@fa-font-display:      block;
@fa-line-height-base:  1;
@fa-css-prefix:        fa;
@fa-version:           "5.15.3";
@fa-border-color:      #eee;
@fa-inverse:           #fff;
@fa-li-width:          2em;
@fa-primary-opacity:   1;
@fa-secondary-opacity: .4;

// Mixins
// --------------------------

.fa-icon() {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  font-weight: normal;
  line-height: 1;
}

.fa-icon-rotate(@degrees, @rotation) {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
  transform: rotate(@degrees);
}

.fa-icon-flip(@horiz, @vert, @rotation) {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
  transform: scale(@horiz, @vert);
}


// Only display content to screen readers. A la Bootstrap 4.
//
// See: http://a11yproject.com/posts/how-to-hide-content/

.sr-only() {
  border: 0;
  clip: rect(0,0,0,0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

// Use in conjunction with .sr-only to only display content when it's focused.
//
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
//
// Credit: HTML5 Boilerplate

.sr-only-focusable() {
  &:active,
  &:focus {
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    position: static;
    width: auto;
  }
}
]]></template>
  <template type="public" title="share_controls.less" version_id="2030036" version_string="2.3.0 Beta 6"><![CDATA[.shareButtons
{
	.m-clearFix();
}

.shareButtons-buttons
{
	.shareButtons--iconic &
	{
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(35px, 1fr));
	}
}

.shareButtons-label
{
	float: left;
	margin-right: 3px;
	color: @xf-textColorMuted;
	min-height: 35px;
	line-height: 35px;
}

.shareButtons-button
{
	float: left;
	margin-right: 3px;
	padding: 6px;
	color: @xf-textColorMuted;
	font-size: 20px;
	line-height: 20px;
	white-space: nowrap;
	min-width: 35px;
	border-radius: @xf-borderRadiusSmall;
	background-color: transparent;
	.m-transition();

	&:last-of-type
	{
		margin-right: 0;
	}

	&:hover
	{
		text-decoration: none;
		color: white;
	}

	> i
	{
		display: inline-block;
		vertical-align: middle;

		.m-faBase('Pro');
	}

	&.shareButtons-button--brand
	{
		> i
		{
			.m-faBase('Brands');
		}
	}

	> span
	{
		font-weight: @xf-fontWeightNormal;
		font-size: @xf-fontSizeNormal;
	}

	.shareButtons--iconic &
	{
		text-align: center;

		> i
		{
			min-width: 20px;
		}

		> svg
		{
			vertical-align: middle;
		}

		> span
		{
			.m-visuallyHidden();
		}
	}

	&.shareButtons-button--facebook
	{
		&:hover { background-color: #3B5998; }
	}

	&.shareButtons-button--twitter
	{
		&:hover { background-color: #000000; }
	}

	&.shareButtons-button--pinterest
	{
		&:hover { background-color: #bd081c; }
	}

	&.shareButtons-button--tumblr
	{
		&:hover { background-color: #35465c; }
	}

	&.shareButtons-button--reddit
	{
		&:hover { background-color: #FF4500; }
	}

	&.shareButtons-button--whatsApp
	{
		&:hover { background-color: #25D366; }
	}

	&.shareButtons-button--linkedin
	{
		&:hover { background-color: #0077B5; }
	}

	&.shareButtons-button--email
	{
		&:hover { background-color: #1289ff; }
	}

	&.shareButtons-button--share
	{
		cursor: pointer;
		&:hover { background-color: #787878; }
	}

	&.shareButtons-button--link
	{
		cursor: pointer;
		&:hover { background-color: #787878; }
	}

	&.is-hidden
	{
		display: none;
	}
}

.shareInput
{
	margin-bottom: 5px;

	&:last-child
	{
		margin-bottom: 0;
	}
}

.shareInput-label
{
	font-size: @xf-fontSizeSmall;
	.m-appendColon();
}

.shareInput-button
{
	color: @xf-linkColor;
	cursor: pointer;

	> i
	{
		display: inline-block;
		vertical-align: middle;
		.m-faBase();
	}

	&.is-hidden
	{
		display: none;
	}
}

.shareInput-input
{
	font-size: @xf-fontSizeSmall;

	.m-inputZoomFix();

	.shareInput-button.is-hidden + &
	{
		border-radius: @xf-borderRadiusMedium;
	}
}]]></template>
  <template type="public" title="share_page_macros" version_id="2030055" version_string="2.3.0 Release Candidate 5"><![CDATA[<xf:macro id="buttons"
	arg-iconic="{{ false }}"
	arg-hideLink="{{ false }}"
	arg-label=""
	arg-pageUrl=""
	arg-pageTitle=""
	arg-pageDesc=""
	arg-pageImage="">

	<xf:set var="$id">{{ unique_id() }}</xf:set>

	<xf:if contentcheck="true">
		<xf:css src="share_controls.less" />

		<div class="shareButtons {{ $iconic ? 'shareButtons--iconic' : '' }}" data-xf-init="share-buttons" data-page-url="{$pageUrl}" data-page-title="{$pageTitle}" data-page-desc="{$pageDesc}" data-page-image="{$pageImage}">
			<span class="u-anchorTarget" id="{$id}"></span>

			<xf:if is="$label is not empty">
				<span class="shareButtons-label">{$label}</span>
			</xf:if>

			<div class="shareButtons-buttons">
				<xf:contentcheck>
					<xf:if is="$xf.options.facebookLike">
						<a class="shareButtons-button shareButtons-button--brand shareButtons-button--facebook" href="#{$id}" data-href="https://www.facebook.com/sharer.php?u={url}">
							<xf:fa icon="fab fa-facebook-f" />
							<span>{{ phrase('facebook') }}</span>
						</a>
					</xf:if>

					<xf:if is="$xf.options.tweet.enabled">
						<a class="shareButtons-button shareButtons-button--brand shareButtons-button--twitter" href="#{$id}" data-href="https://twitter.com/intent/tweet?url={url}&amp;text={title}{{ $xf.options.tweet.via ? '&amp;via=' . $xf.options.tweet.via : '' }}{{ $xf.options.tweet.related ? '&amp;related=' . $xf.options.tweet.related : '' }}">
							{{ x_logo() }} <span>{{ phrase('x_twitter') }}</span>
						</a>
					</xf:if>

					<xf:if is="$xf.options.linkedinShare">
						<a class="shareButtons-button shareButtons-button--brand shareButtons-button--linkedin" href="#{$id}" data-href="https://www.linkedin.com/sharing/share-offsite/?url={url}">
							<xf:fa icon="fab fa-linkedin" />
							<span>{{ phrase('linkedin') }}</span>
						</a>
					</xf:if>

					<xf:if is="$xf.options.redditShare">
						<a class="shareButtons-button shareButtons-button--brand shareButtons-button--reddit" href="#{$id}" data-href="https://reddit.com/submit?url={url}&amp;title={title}">
							<xf:fa icon="fab fa-reddit-alien" />
							<span>{{ phrase('reddit') }}</span>
						</a>
					</xf:if>

					<xf:if is="$xf.options.pinterestShare">
						<a class="shareButtons-button shareButtons-button--brand shareButtons-button--pinterest" href="#{$id}" data-href="https://pinterest.com/pin/create/bookmarklet/?url={url}&amp;description={title}&amp;media={image}">
							<xf:fa icon="fab fa-pinterest-p" />
							<span>{{ phrase('pinterest') }}</span>
						</a>
					</xf:if>

					<xf:if is="$xf.options.tumblrShare">
						<a class="shareButtons-button shareButtons-button--brand shareButtons-button--tumblr" href="#{$id}" data-href="https://www.tumblr.com/widgets/share/tool?canonicalUrl={url}&amp;title={title}">
							<xf:fa icon="fab fa-tumblr" />
							<span>{{ phrase('tumblr') }}</span>
						</a>
					</xf:if>

					<xf:if is="$xf.options.whatsAppShare">
						<a class="shareButtons-button shareButtons-button--brand shareButtons-button--whatsApp" href="#{$id}" data-href="https://api.whatsapp.com/send?text={title}&nbsp;{url}">
							<xf:fa icon="fab fa-whatsapp" />
							<span>{{ phrase('whatsapp') }}</span>
						</a>
					</xf:if>

					<xf:if is="$xf.options.emailShare">
						<a class="shareButtons-button shareButtons-button--email" href="#{$id}" data-href="mailto:?subject={title}&amp;body={url}">
							<xf:fa icon="far fa-envelope" />
							<span>{{ phrase('email') }}</span>
						</a>
					</xf:if>

					<xf:if is="$xf.options.webShare">
						<a class="shareButtons-button shareButtons-button--share is-hidden" href="#{$id}"
							data-xf-init="web-share"
							data-title="{$pageTitle}" data-text="{$pageDesc}" data-url="{$pageUrl}"
							data-hide=".shareButtons-button:not(.shareButtons-button--share)">

							<xf:fa icon="far fa-share-alt" />
							<span>{{ phrase('share') }}</span>
						</a>
					</xf:if>

					<xf:if is="$xf.options.linkShare AND !$hideLink">
						<a class="shareButtons-button shareButtons-button--link is-hidden" href="#{$id}" data-clipboard="{url}">
							<xf:fa icon="far fa-link" />
							<span>{{ phrase('link') }}</span>
						</a>
					</xf:if>
				</xf:contentcheck>
			</div>
		</div>
	</xf:if>
</xf:macro>

<xf:macro id="share_clipboard_input" arg-label="!" arg-text="!" arg-successText="">
	<xf:css src="share_controls.less" />

	<xf:set var="$id">{{ unique_id() }}</xf:set>

	<div class="shareInput" data-xf-init="share-input" data-success-text="{$successText}">
		<xf:if is="$label">
			<label class="shareInput-label" for="{$id}">{$label}</label>
		</xf:if>
		<div class="inputGroup inputGroup--joined">
			<div class="shareInput-button inputGroup-text js-shareButton is-hidden"
				data-xf-init="tooltip" title="{{ phrase('copy_to_clipboard')|for_attr }}">

				<xf:fa icon="far fa-copy" />
			</div>
			<xf:textbox class="shareInput-input js-shareInput"
				value="{$text}" readonly="true" id="{$id}" />
		</div>
	</div>
</xf:macro>

<xf:macro id="share_clipboard_text" arg-text="!" arg-successText="!" arg-class="">
	<a href="javascript:"
		data-xf-init="copy-to-clipboard"
		data-copy-text="{$text}"
		data-success="{$successText}"
		class="{$class}">
		<xf:fa icon="fa-code" />
	</a>
</xf:macro>]]></template>
  <template type="public" title="share_tooltip" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<div class="tooltip-content-inner">
	<div class="block-minorHeader">{$tooltipTitle}</div>
	<xf:if contentcheck="true">
		<div class="block-body block-row block-row--separated block-row--separated--mergePrev">
			<xf:contentcheck>
				<xf:macro id="share_page_macros::buttons"
					arg-iconic="{{ true }}"
					arg-hideLink="{{ true }}"
					arg-pageUrl="{$contentUrl}"
					arg-pageTitle="{$contentTitle}"
					arg-pageDesc="{$contentDesc}" />
			</xf:contentcheck>
		</div>
	</xf:if>
	<div class="block-body block-row block-row--separated">
		<xf:macro id="share_page_macros::share_clipboard_input"
			arg-label="{{ phrase('copy_link') }}"
			arg-text="{$contentUrl}"
			arg-successText="{{ phrase('link_copied_to_clipboard') }}" />
	</div>
	<xf:if is="$xf.options.embedCodeShare AND $contentEmbedCode">
		<div class="block-body block-row block-row--separated">
			<xf:macro id="share_page_macros::share_clipboard_input"
				arg-label="{{ phrase('copy_embed_code_html') }}"
				arg-text="{$contentEmbedCode}"
				arg-successText="{{ phrase('embed_code_html_copied_to_clipboard') }}" />
		</div>
	</xf:if>
</div>]]></template>
  <template type="public" title="spam_cleaner" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('spam_cleaner:') }} {$user.username}</xf:title>

<xf:form action="{{ link('spam-cleaner', $user) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:formrow rowtype="fullWidth noLabel">
				<div class="contentRow">
					<div class="contentRow-figure">
						<xf:avatar user="$user" size="m" />
					</div>
					<div class="contentRow-main">
						<dl class="pairs pairs--columns">
							<dt>{{ phrase('last_activity') }}</dt>
							<dd><xf:date time="{$user.last_activity}" /></dd>
						</dl>

						<xf:if is="$xf.visitor.hasAdminPermission('user') AND $user.email">
							<dl class="pairs pairs--columns">
								<dt>{{ phrase('email') }}</dt>
								<dd>{$user.email|email_display}</dd>
							</dl>
						</xf:if>

						<xf:if is="$canViewIps">
							<xf:set var="$registerIp" value="{{ $user.getIp('register') }}" />

							<xf:if is="$registerIp">
								<dl class="pairs pairs--columns">
									<dt>{{ phrase('registration_ip') }}</dt>
									<dd><a class="ip concealed" href="{{ link('misc/ip-info', null, {'ip': $registerIp|ip}) }}" target="_blank">{$registerIp|ip}</a></dd>
								</dl>
							</xf:if>

							<xf:if is="$contentIp">
								<dl class="pairs pairs--columns">
									<dt>{{ phrase('content_ip') }}</dt>
									<dd><a class="ip concealed" href="{{ link('misc/ip-info', null, {'ip': $contentIp|ip}) }}" target="_blank">{$contentIp|ip}</a></dd>
								</dl>
							</xf:if>
						</xf:if>
					</div>
				</div>
			</xf:formrow>

			<xf:inforow>
				<div class="pairJustifier">
					<xf:macro id="member_macros::member_stat_pairs"
						arg-user="{$user}"
						arg-context="spam-cleaner" />
				</div>
			</xf:inforow>

			<xf:checkboxrow label="{{ phrase('spam_cleaner_actions') }}">
				<xf:option name="action_threads" checked="{$xf.options.spamDefaultOptions.action_threads}">
					<xf:label>
						<xf:if is="$xf.options.spamThreadAction.action == 'move'">
							{{ phrase('move_spammers_threads') }}
						<xf:else />
							{{ phrase('delete_spammers_threads') }}
						</xf:if>
					</xf:label>
				</xf:option>
				<xf:option name="delete_messages" checked="{$xf.options.spamDefaultOptions.delete_messages}">
					<xf:label>{{ phrase('delete_spammers_messages') }}</xf:label>
				</xf:option>
				<xf:option name="delete_conversations" checked="{$xf.options.spamDefaultOptions.delete_conversations}">
					<xf:label>{{ phrase('delete_direct_messages_by_spammer') }}</xf:label>
				</xf:option>
				<xf:option name="ban_user" checked="{$xf.options.spamDefaultOptions.ban_user}">
					<xf:label>{{ phrase('ban_spammer') }}</xf:label>
				</xf:option>
				<xf:if is="$canViewIps">
					<xf:option name="check_ips" checked="{$xf.options.spamDefaultOptions.check_ips}">
						<xf:label>{{ phrase('check_spammers_ips') }}</xf:label>
					</xf:option>
				</xf:if>
			</xf:checkboxrow>
		</div>

		<xf:submitrow submit="{{ phrase('clean') }}" />
	</div>

	<xf:hiddenval name="no_redirect">{$noRedirect}</xf:hiddenval>
</xf:form>]]></template>
  <template type="public" title="spam_cleaner_check_ips" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('spam_cleaner_ip_address_check') }}</xf:title>

<xf:breadcrumb href="{{ link('full:members', $user) }}">{$user.username}</xf:breadcrumb>
<xf:breadcrumb href="{{ link('full:spam-cleaner', $user) }}">{{ phrase('spam_cleaner') }}</xf:breadcrumb>

<xf:macro id="member_shared_ips_list::shared_block" arg-user="{$spammer}" arg-shared="{$shared}" />]]></template>
  <template type="public" title="structured_list.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[@_structItem-avatarSize: 36px;
@_structItem-avatarSizeExpanded: 48px;
@_structItem-avatarSizeEnd: @avatar-xxs;
@_structItem-cellPaddingH: ((@xf-paddingMedium + @xf-paddingLarge) / 2); // average
@_structItem-cellPaddingV: @xf-paddingLarge;

.structItemContainer
{
	border-collapse: collapse;
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
}

.structItemContainer-group
{
}

.structItemContainer > .structItem:first-child,
.structItemContainer > .structItemContainer-group:first-child > .structItem:first-child
{
	border-top: none;
}

.structItem
{
	display: table;
	table-layout: fixed;
	border-collapse: collapse;
	border-top: @xf-borderSize solid @xf-borderColorFaint;
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;

	&.is-highlighted,
	&.is-moderated
	{
		background: @xf-contentHighlightBg;
	}

	&.is-deleted
	{
		opacity: .7;

		.structItem-title > *
		{
			text-decoration: line-through;
		}
	}

	&.is-mod-selected
	{
		background: @xf-inlineModHighlightColor;
		opacity: 1;
	}
}

.structItem-cell
{
	display: table-cell;
	vertical-align: top;
	padding: @_structItem-cellPaddingV @_structItem-cellPaddingH;

	.structItem--middle &
	{
		vertical-align: middle;
	}

	&.structItem-cell--vote
	{
		width: (@_structItem-cellPaddingH * 2 + 40px);
	}

	&.structItem-cell--icon
	{
		width: (@_structItem-avatarSize + @_structItem-cellPaddingH * 2);
		position: relative;

		&.structItem-cell--iconExpanded
		{
			width: (@_structItem-avatarSizeExpanded + @_structItem-cellPaddingH * 2);
		}

		&.structItem-cell--iconEnd
		{
			width: (@_structItem-avatarSizeEnd + @_structItem-cellPaddingH * 2);
			padding-left: @_structItem-cellPaddingH / 2;

			.structItem-iconContainer
			{
				padding-top: @xf-paddingMedium;
			}
		}

		&.structItem-cell--iconFixedSmall
		{
			width: (@_structItem-cellPaddingH * 2 + 60px);
		}

		&.structItem-cell--iconFixedSmallest
		{
			width: (@_structItem-avatarSizeEnd + @_structItem-cellPaddingH * 2);
		}

		.solutionIcon
		{
			padding-left: 0;
			padding-right: 0;
		}
	}

	&.structItem-cell--meta
	{
		width: 135px;
	}

	&.structItem-cell--latest
	{
		width: 190px;
		text-align: right;
	}
}

.structItem-iconContainer
{
	position: relative;

	img
	{
		display: block;
		width: 100%;
	}

	.avatar
	{
		.m-avatarSize(@_structItem-avatarSize);

		&.avatar--xxs
		{
			.m-avatarSize(@_structItem-avatarSizeEnd);
		}
	}

	.structItem-secondaryIcon
	{
		position: absolute;
		right: -5px;
		bottom: -5px;

		.m-avatarSize((@_structItem-avatarSize / 2  + 2px));
	}

	.structItem-cell--iconExpanded &
	{
		.avatar
		{
			.m-avatarSize(@_structItem-avatarSizeExpanded);
		}

		.structItem-secondaryIcon
		{
			.m-avatarSize((@_structItem-avatarSizeExpanded / 2 - 2px));
		}
	}
}

.structItem-title
{
	font-size: @xf-fontSizeLarge;
	font-weight: @xf-fontWeightNormal;
	margin: 0;
	padding: 0;

	.label
	{
		font-weight: @xf-fontWeightNormal;
	}

	.is-unread &
	{
		font-weight: @xf-fontWeightHeavy;
	}
}

.structItem-minor
{
	font-size: @xf-fontSizeSmaller;
	color: @xf-textColorMuted;

	.m-hiddenLinks();
}

.structItem-parts
{
	.m-listPlain();
	display: inline;

	> li
	{
		display: inline;
		margin: 0;
		padding: 0;

		&:nth-child(even)
		{
			color: @xf-textColorDimmed;
		}

		&:before
		{
			content: "\00B7\20";
		}

		&:first-child:before
		{
			content: "";
			display: none;
		}
	}
}

.structItem-pageJump
{
	margin-left: 8px;
	font-size: @xf-fontSizeSmallest;

	a
	{
		.xf-chip();
		text-decoration: none;
		border-radius: @xf-borderRadiusSmall;
		padding: 0 3px;
		opacity: .5;
		.m-transition();

		.structItem:hover &,
		.has-touchevents &
		{
			opacity: 1;
		}

		&:hover
		{
			text-decoration: none;
			.xf-chipHover();
		}
	}
}

.structItem-statuses,
.structItem-extraInfo
{
	.m-listPlain();
	float: right;

	> li
	{
		float: left;
		margin-left: 8px;
	}

	input[type=checkbox]
	{
		.m-checkboxAligner();
	}
}

.structItem-statuses .reactionSummary
{
	vertical-align: -2px;
}

.structItem-extraInfo .reactionSummary
{
	vertical-align: middle;
}

.structItem-status
{
	&::before
	{
		.m-faBase();
		display: inline-block;
		font-size: 90%;
		color: @xf-textColorMuted;
	}

	&.fa--xf svg
	{
		color: @xf-textColorMuted;
	}

	&--deleted::before { .m-faContent(@fa-var-trash-alt, .875em); }
	&--locked::before { .m-faContent(@fa-var-lock, .875em); }
	&--moderated::before { .m-faContent(@fa-var-shield, 1em); color: @xf-textColorAttention; }
	&--redirect::before { .m-faContent(@fa-var-external-link, 1em); }
	&--starred::before { .m-faContent(@fa-var-star, 1.125em); color: @xf-starFullColor; }
	&--sticky::before { .m-faContent(@fa-var-thumbtack, .75em); }
	&--featured::before { .m-faContent(@fa-var-medal, 1em); }
	&--watched::before { .m-faContent(@fa-var-bell, .875em); }

	&--solved::before { .m-faContent(@fa-var-check-circle, 1em); color: @xf-votePositiveColor; }
	&--attention::before { .m-faContent(@fa-var-bullhorn, 1.125em); color: @xf-textColorAttention; }
	&--upvoted::before { .m-faContent(@fa-var-thumbs-up, 1em); }
	&--downvoted::before { .m-faContent(@fa-var-thumbs-down, 1em); }
}

.structItem.structItem--note
{
	.xf-contentHighlightBase();
	color: @xf-textColorFeature;

	.structItem-cell
	{
		padding-top: (@_structItem-cellPaddingV / 2);
		padding-bottom: (@_structItem-cellPaddingV / 2);
		font-size: @xf-fontSizeSmaller;
		text-align: center;
	}
}

@media (max-width: @xf-responsiveWide)
{
	.structItem-cell
	{
		vertical-align: top;

		&.structItem-cell--meta
		{
			width: 115px;
			font-size: @xf-fontSizeSmaller;
		}

		&.structItem-cell--latest
		{
			width: 140px;
			font-size: @xf-fontSizeSmaller;
		}
	}
}

@media (max-width: @xf-responsiveMedium)
{
	.structItem-cell
	{
		//padding: (@_structItem-cellPaddingV / 2) @_structItem-cellPaddingH;

		&.structItem-cell--icon
		{
			.structItem-cell + &
			{
				padding-left: 0;
				width: (@_structItem-avatarSize + @_structItem-cellPaddingH);
			}
		}

		&.structItem-cell--main,
		&.structItem-cell--newThread
		{
			display: block;
			padding-bottom: .2em;

			.structItem-cell + &
			{
				padding-left: 0;
			}
		}

		&.structItem-cell--meta
		{
			display: block;
			width: auto;
			float: left;
			padding-top: 0;
			padding-left: 0;
			padding-right: 0;
			color: @xf-textColorMuted;

			.structItem-minor
			{
				display: none;
			}

			.pairs
			{
				> dt,
				> dd
				{
					display: inline;
					float: none;
					margin: 0;
				}
			}
		}

		&.structItem-cell--latest
		{
			display: block;
			width: auto;
			float: left;
			padding-top: 0;
			padding-left: 0;

			&:before
			{
				content: "\00A0\00B7\20";
				color: @xf-textColorMuted;
			}

			a
			{
				color: @xf-textColorMuted;
			}

			.structItem-minor
			{
				display: none;
			}
		}

		&.structItem-cell--iconEnd
		{
			display: none;
		}
	}

	.structItem-pageJump,
	.structItem-extraInfoMinor
	{
		display: none;
	}

	.is-unread .structItem-latestDate
	{
		font-weight: @xf-fontWeightNormal;
	}
}

@media (max-width: @xf-responsiveNarrow)
{
	.structItem-parts
	{
		.structItem-startDate
		{
			display: none;
		}
	}

	.structItem.structItem--quickCreate
	{
		.structItem-cell--icon,
		.structItem-cell--vote
		{
			display: none;
		}

		.structItem-cell--newThread
		{
			padding-left: @_structItem-cellPaddingH;
			padding-bottom: @_structItem-cellPaddingH;
		}
	}
}]]></template>
  <template type="public" title="style_chooser" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:title>{{ phrase('style_chooser') }}</xf:title>

<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<div class="block">
	<div class="block-container">
		<xf:if is="$style">
			<div class="block-body">
				<xf:inforow rowtype="confirm">
					{{ phrase('please_confirm_that_you_would_like_to_change_to_following_style:') }}
					<strong>{$style.title}</strong>
				</xf:inforow>
			</div>

			<xf:submitrow rowtype="simple"><xf:html>
				<xf:button href="{{ link('misc/style', null, {
					'style_id': $style.style_id,
					't': csrf_token(),
					'_xfRedirect': $redirect})
				}}" class="button--primary" icon="save" />
			</xf:html></xf:submitrow>
		<xf:else />
			<a href="{{ link('misc/style', null, {'style_id': 0, '_xfRedirect': $redirect, 't': csrf_token()}) }}"
				class="menu-linkRow menu-linkRow--alt {{ $xf.visitor.style_id == 0 ? 'is-selected' : '' }}">

				{{ phrase('use_default_style') }}
			</a>

			<div class="block-body">
				<ul class="listPlain listColumns">
					<xf:foreach loop="$styles" value="$style">
						<li>
							<a href="{{ link('misc/style', null, {'style_id': $style.style_id, '_xfRedirect': $redirect, 't': csrf_token()}) }}"
								class="menu-linkRow {{ $style.style_id == $xf.visitor.style_id ? 'is-selected' : '' }}">

								{$style.title}{{ !$style.user_selectable ? ' *' : '' }}
							</a>
						</li>
					</xf:foreach>
				</ul>
			</div>
		</xf:if>
	</div>
</div>]]></template>
  <template type="public" title="style_variation_chooser" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:title>{{ phrase('style_variation') }}</xf:title>

<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<div class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:macro name="style_variation_macros::variation_menu"
				arg-style="{$style}" />
		</div>
	</div>
</div>]]></template>
  <template type="public" title="style_variation_input" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:macro name="style_variation_macros::variation_input"
	arg-style="{$style}"
	arg-value="{$variation}" />]]></template>
  <template type="public" title="style_variation_macros" version_id="2030170" version_string="2.3.1"><![CDATA[<xf:macro id="picture"
	arg-property="!"
	arg-propertyRetina="{{ null }}"
	arg-width="{{ null }}"
	arg-height="{{ null }}"
	arg-alt="{{ null }}">

	<xf:set var="$variations" value="{{ {} }}" />

	<xf:foreach loop="$xf.style.getVariations()" value="$variation">
		<xf:set var="$src" value="{{ property_variation($property, $variation) }}" />
		<xf:set var="$src2x" value="{{ $propertyRetina ? property_variation($propertyRetina, $variation) : null }}" />

		<xf:set var="$variations" value="{{ $variations|replace($variation, {
				1: $src ? base_url($src) : null,
				2: $src2x ? base_url($src2x) : null
			}) }}" />
	</xf:foreach>

	<xf:macro id="picture_variations"
		arg-variations="{$variations}"
		arg-width="{$width}"
		arg-height="{$height}"
		arg-alt="{$alt}" />
</xf:macro>

<xf:macro id="picture_color_scheme"
	arg-light="!"
	arg-dark="!"
	arg-width="{{ null }}"
	arg-height="{{ null }}"
	arg-alt="{{ null }}">

	<xf:set var="$light" value="{{ is_array($light) ? $light : { 1: $light } }}" />
	<xf:set var="$dark" value="{{ is_array($dark) ? $dark : { 1: $dark } }}" />

	<xf:set var="$variations" value="{{ {} }}" />

	<xf:foreach loop="$xf.style.getVariations()" value="$variation">
		<xf:set var="$styleType" value="{{ property_variation('styleType', $variation, 'light') }}" />
		<xf:set var="$src" value="{{ $styleType === 'light' ? $light.1 : $dark.1 }}" />
		<xf:set var="$src2x" value="{{ $styleType === 'light' ? $light.2 : $dark.2 }}" />

		<xf:set var="$variations" value="{{ $variations|replace($variation, {
				1: $src ? base_url($src) : null,
				2: $src2x ? base_url($src2x) : null
			}) }}" />
	</xf:foreach>

	<xf:macro id="picture_variations"
		arg-variations="{$variations}"
		arg-width="{$width}"
		arg-height="{$height}"
		arg-alt="{$alt}" />
</xf:macro>

<xf:macro id="picture_variations"
	arg-variations="!"
	arg-width="{{ null }}"
	arg-height="{{ null }}"
	arg-alt="{{ null }}">

	<picture data-variations="{{ $variations|json }}">
		<xf:set var="$variation" value="{{ ($xf.style.isVariationsEnabled() && $xf.visitor.style_variation) ? $xf.visitor.style_variation : 'default' }}" />
		<xf:set var="$src" value="{$variations.{$variation}.1}" />
		<xf:set var="$src2x" value="{$variations.{$variation}.2}" />

		<xf:if is="$xf.style.isVariationsEnabled() && !$xf.visitor.style_variation && $xf.style.hasAlternateStyleTypeVariation()">
			<xf:set var="$alternateVariation" value="{{ $xf.style.getAlternateStyleTypeVariation() }}" />
			<xf:set var="$alternateSrc" value="{{ $variations.{$alternateVariation}.1 }}" />
			<xf:set var="$alternateSrc2x" value="{{ $variations.{$alternateVariation}.2 }}" />

			<xf:if is="$alternateSrc !== $src || $alternateSrc2x !== $src2x">
				<source srcset="{$alternateSrc}{{ $alternateSrc2x ? ', ' . $alternateSrc2x . ' 2x' : '' }}" media="(prefers-color-scheme: {{ $xf.style.getAlternateStyleType() }})" />
			</xf:if>
		</xf:if>

		<img src="{$src}" {{ $src2x ? 'srcset="' . $src2x . ' 2x"' : '' }} width="{$width}" height="{$height}" alt="{{ $alt|for_attr }}" />
	</picture>
</xf:macro>

<xf:macro name="variation_menu"
	arg-style="!"
	arg-routeType="public"
	arg-route="misc/style-variation"
	arg-selectedVariation="{$xf.visitor.style_variation}"
	arg-live="{{ false }}">

	<xf:if is="$style.hasAlternateStyleTypeVariation()">
		<xf:macro name="variation_menu_item"
			arg-routeType="{$routeType}"
			arg-route="{$route}"
			arg-variation=""
			arg-label="{{ phrase('system') }}"
			arg-selectedVariation="{$selectedVariation}"
			arg-live="{$live}"
			arg-redirect="{$redirect}" />

		<xf:macro name="variation_menu_item"
			arg-routeType="{$routeType}"
			arg-route="{$route}"
			arg-variation="{{ $style.getStyleTypeVariation('light') }}"
			arg-icon="{{ $style.getVariationIcon($style.getStyleTypeVariation('light')) }}"
			arg-label="{{ phrase('light') }}"
			arg-selectedVariation="{$selectedVariation}"
			arg-live="{$live}"
			arg-redirect="{$redirect}" />

		<xf:macro name="variation_menu_item"
			arg-routeType="{$routeType}"
			arg-route="{$route}"
			arg-variation="{{ $style.getStyleTypeVariation('dark') }}"
			arg-icon="{{ $style.getVariationIcon($style.getStyleTypeVariation('dark')) }}"
			arg-label="{{ phrase('dark') }}"
			arg-selectedVariation="{$selectedVariation}"
			arg-live="{$live}"
			arg-redirect="{$redirect}" />
	<xf:else />
		<xf:macro name="variation_menu_item"
			arg-routeType="{$routeType}"
			arg-route="{$route}"
			arg-variation=""
			arg-selectedVariation="{$selectedVariation}"
			arg-live="{$live}"
			arg-redirect="{$redirect}" />
	</xf:if>

	<xf:foreach loop="$style.getVariations(false)" value="$variation">
		<xf:if is="$variation !== $style.getAlternateStyleTypeVariation()">
			<xf:macro name="variation_menu_item"
				arg-routeType="{$routeType}"
				arg-route="{$route}"
				arg-variation="{$variation}"
				arg-selectedVariation="{$selectedVariation}"
				arg-live="{$live}"
				arg-redirect="{$redirect}" />
		</xf:if>
	</xf:foreach>
</xf:macro>

<xf:macro name="variation_menu_item"
	arg-routeType="public"
	arg-route="{{ link('misc/style-variation') }}"
	arg-variation="!"
	arg-icon="fa-adjust"
	arg-label=""
	arg-selectedVariation="{$xf.visitor.style_variation}"
	arg-live="{{ false }}"
	arg-redirect="{{ null }}">

	<a href="{{ link_type($routeType, $route, null, {
			'variation': $variation,
			'reset': $variation ? null : true,
			't': csrf_token(),
			'_xfRedirect': $redirect
		}) }}"
		class="menu-linkRow {{ $variation === $selectedVariation ? 'is-selected' : '' }}"
		rel="nofollow"
		data-xf-click="{{ $live ? 'style-variation' : '' }}" data-variation="{$variation}">

		<xf:fa icon="{$icon}" />

		<xf:if is="$label">
			{$label}
		<xf:elseif is="$variation" />
			{{ phrase_dynamic('style_variation.' . $variation) }}
		<xf:else />
			{{ phrase('style_variation.default') }}
		</xf:if>
	</a>
</xf:macro>

<xf:macro name="variation_input"
	arg-style="!"
	arg-name="user[style_variation]"
	arg-value="{$xf.visitor.style_variation}">

	<xf:if is="$style.isVariationsEnabled()">
		<xf:selectrow name="{$name}" value="{$value}"
			label="{{ phrase('style_variation') }}">

			<xf:if is="$style.hasAlternateStyleTypeVariation()">
				<xf:option value="">{{ phrase('system') }}</xf:option>
				<xf:option value="{{ $style.getStyleTypeVariation('light') }}">{{ phrase('light') }}</xf:option>
				<xf:option value="{{ $style.getStyleTypeVariation('dark') }}">{{ phrase('dark') }}</xf:option>
			<xf:else />
				<xf:option value="">{{ phrase('style_variation.default') }}</xf:option>
			</xf:if>

			<xf:foreach loop="$style.getVariations(false)" value="$variation">
				<xf:if is="$variation !== $style.getAlternateStyleTypeVariation()">
					<xf:option value="{$variation}">{{ phrase_dynamic('style_variation.' . $variation) }}</xf:option>
				</xf:if>
			</xf:foreach>
		</xf:selectrow>
	<xf:else />
		<xf:hiddenval name="user[style_variation]">{$value}</xf:hiddenval>
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="tag.less" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[.tagCloud-tag
{
	display: inline-block;
	margin-right: 8px;

	&:last-child
	{
		margin-right: 0;
	}

	&Level1 { font-size: 100%; color: xf-diminish(@xf-linkColor, 10%); }
	&Level2 { font-size: 100%; }
	&Level3 { font-size: 125%; }
	&Level4 { font-size: 150%; }
	&Level5 { font-size: 175%; }
	&Level6 { font-size: 200%; }
	&Level7 { font-size: 225%; color: xf-intensify(@xf-linkColor, 10%); }
}]]></template>
  <template type="public" title="tag_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="edit_rows"
	arg-uneditableTags="!"
	arg-editableTags="!"
	arg-minTags="{{ 0 }}"
	arg-tagList="">

	<xf:js src="xf/tag.js" />

	<xf:if is="$uneditableTags">
		<xf:formrow label="{{ phrase('uneditable_tags') }}">
			{$uneditableTags|pluck('tag')|join(', ')}
		</xf:formrow>
	</xf:if>

	<xf:tokeninputrow name="tags" value="{$editableTags|pluck('tag')|join(', ')}" href="{{ link('misc/tag-auto-complete') }}"
		label="{{ phrase('tags') }}">

		<xf:explain>
			{{ phrase('multiple_tags_may_be_separated_by_commas') }}
			<xf:if is="$minTags">
				{{ phrase('this_content_must_have_at_least_x_tags', {'min': $minTags}) }}
			</xf:if>
		</xf:explain>
	</xf:tokeninputrow>
</xf:macro>

<xf:macro id="edit_form"
	arg-action="!"
	arg-uneditableTags="!"
	arg-editableTags="!"
	arg-minTags="{{ 0 }}"
	arg-tagList="">

	<xf:form action="{$action}" class="block" ajax="true" data-xf-init="tagger" data-tag-list="{$tagList}">
		<div class="block-container">
			<div class="block-body">
				<xf:macro id="edit_rows"
					arg-uneditableTags="{$uneditableTags}"
					arg-editableTags="{$editableTags}"
					arg-minTags="{$minTags}"
					arg-listElement="{$listElement}" />
			</div>
			<xf:submitrow icon="save" />
		</div>
	</xf:form>
</xf:macro>

<xf:macro id="list"
	arg-tags="!"
	arg-tagList="!"
	arg-editLink="!"
	arg-containerClass=""
	arg-highlightTerm="">

	<xf:set var="$tagIcon">
		<xf:fa icon="fa-tags" title="{{ phrase('tags')|for_attr }}" />
		<span class="u-srOnly">{{ phrase('tags') }}</span>
	</xf:set>

	<dl class="tagList {$tagList} {{ $containerClass ?: '' }}">
		<dt>
			<xf:if is="$editLink">
				<a href="{$editLink}" class="u-concealed--icon"
					data-xf-click="overlay" data-cache="off"
					data-xf-init="tooltip" title="{{ phrase('edit_tags')|for_attr }}">{$tagIcon}</a>
			<xf:else />
				{$tagIcon}
			</xf:if>
		</dt>
		<dd>
			<span class="js-tagList">
				<xf:if is="$tags">
					<xf:foreach loop="$tags" value="$tag">
						<a href="{{ link('tags', $tag) }}" class="tagItem tagItem--tag_{$tag.tag_url}" dir="auto">
							{{ $highlightTerm ? highlight($tag.tag, $highlightTerm) : $tag.tag }}
						</a>
					</xf:foreach>
				<xf:else />
					{{ phrase('none') }}
				</xf:if>
			</span>
		</dd>
	</dl>

</xf:macro>

<xf:macro id="simple_list"
	arg-tags="!"
	arg-containerClass=""
	arg-highlightTerm="">

	<xf:if is="$tags">
		<xf:foreach loop="$tags" value="$tag">
			<span class="tagItem tagItem--tag_{$tag.tag_url}" dir="auto">
				{{ $highlightTerm ? highlight($tag.tag, $highlightTerm) : $tag.tag }}
			</span>
		</xf:foreach>
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="tag_search" version_id="2010052" version_string="2.1.0 Release Candidate 2"><![CDATA[<xf:title>{{ phrase('search_tags') }}</xf:title>

<xf:breadcrumb href="{{ link('tags') }}">{{ phrase('tags') }}</xf:breadcrumb>

<xf:head option="robots"><meta name="robots" content="noindex" /></xf:head>

<xf:css src="tag.less" />

<xf:form action="{{ link('tags') }}" class="block" ajax="true">
	<div class="block-container">
		<h2 class="block-tabHeader tabs hScroller" data-xf-init="h-scroller">
			<span class="hScroller-scroll">
				<a href="{{ link('search') }}" class="tabs-tab">{{ phrase('search_everything') }}</a>
				<xf:foreach loop="$tabs" key="$tabType" value="$tab">
					<a href="{{ link('search', null, {'type': $tabType}) }}" class="tabs-tab{{ $type == $tabType ? ' is-active' : '' }}">{$tab.title}</a>
				</xf:foreach>
				<xf:if is="$xf.options.enableTagging">
					<a href="{{ link('tags') }}" class="tabs-tab is-active">{{ phrase('search_tags') }}</a>
				</xf:if>
			</span>
		</h2>
		<div class="block-body">
			<xf:tokeninputrow name="tags" value="{$tags}" href="{{ link('misc/tag-auto-complete') }}"
				label="{{ phrase('tags') }}" />
		</div>
		<xf:submitrow icon="search" />
	</div>
</xf:form>

<xf:if is="$tagCloud">
	<div class="block">
		<div class="block-container">
			<h3 class="block-header">{{ phrase('popular_tags') }}</h3>
			<div class="block-body block-row tagCloud">
			<xf:foreach loop="$tagCloud" value="$cloudEntry">
				<a href="{{ link('tags', $cloudEntry.tag) }}" class="tagCloud-tag tagCloud-tagLevel{$cloudEntry.level}">{$cloudEntry.tag.tag}</a>
			</xf:foreach>
			</div>
		</div>
	</div>
</xf:if>]]></template>
  <template type="public" title="tag_view" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:title page="{$page}">{$tag.tag}</xf:title>

<xf:macro template="metadata_macros" name="canonical_url" arg-canonicalUrl="{{ link('canonical:tags', $tag) }}" />

<xf:breadcrumb href="{{ link('tags') }}">{{ phrase('tags') }}</xf:breadcrumb>

<xf:if is="$activeModType">
	<xf:js src="xf/inline_mod.js" min="1" />
</xf:if>

<div class="block" data-xf-init="{{ $activeModType ? 'inline-mod' : '' }}" data-type="{$activeModType}" data-href="{{ link('inline-mod') }}">
	<xf:if is="$modTypes">
		<div class="block-outer">
			<div class="block-outer-opposite">
				<div class="buttonGroup">
					<xf:if is="$activeModType">
						<xf:macro id="inline_mod_macros::button" />
					</xf:if>
					<div class="buttonGroup-buttonWrapper">
						<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true">{{ phrase('enable_moderation') }}</xf:button>
						<div class="menu" data-menu="menu" aria-hidden="true">
							<div class="menu-content">
								<h3 class="menu-header">{{ phrase('enable_moderation') }}</h3>
								<xf:foreach loop="$modTypes" key="$type" value="$text">
									<a href="{{ link('tags', $tag, {'mod': $type,  'page': $page}) }}" class="menu-linkRow {{ $activeModType == $type ? 'is-selected' : '' }}">{$text}</a>
								</xf:foreach>
								<xf:if is="$activeModType">
									<hr class="menu-separator" />
									<a href="{{ link('tags', $tag, {'page': $page}) }}" class="menu-linkRow">{{ phrase('disable') }}</a>
								</xf:if>
							</div>
						</div>
					</div>
				</div>
			</div>
		</div>
	</xf:if>

	<div class="block-container">
		<ol class="block-body">
			<xf:foreach loop="$results" value="$result">
				{{ $result.render({'mod': $activeModType})|raw }}
			</xf:foreach>
		</ol>
	</div>
	<div class="block-outer block-outer--after">
		<xf:pagenav
			page="{$page}" perpage="{$perPage}" total="{$totalResults}"
			link="tags" data="{$tag}" params="{{ {'mod': $activeModType} }}"
			wrapperclass="block-outer-main" />
		<xf:showignored wrapperclass="block-outer-opposite" />
	</div>
</div>]]></template>
  <template type="public" title="tagify.less" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[.tagify
{
	display: inline-flex;
	align-items: flex-start;
	flex-wrap: wrap;
	padding: 0;
	line-height: 1.4;
	cursor: text;
	outline: 0;
	position: relative;
	box-sizing: border-box;

	&[disabled]
	{
		opacity: .5;
		pointer-events: none
	}
}

.tagify__input
{
	flex-grow: 1;
	display: inline-block;
	min-width: 110px;
	padding: 6px;
	line-height: 1.4;
	position: relative;
	white-space: pre-wrap;
	outline: 0;

	&:before
	{
		content: attr(data-placeholder);
		line-height: 1.4;
		margin: auto 0;
		z-index: 1;
		color: fade(@xf-input--color, 40%);
		white-space: nowrap;
		pointer-events: none;
		opacity: 0;
		position: absolute
	}

	&:after
	{
		content: attr(data-suggest);
		display: inline-block;
		vertical-align: middle;
		position: absolute;
		min-width: calc(100% - 1.5em);
		text-overflow: ellipsis;
		overflow: hidden;
		white-space: pre;
		color: @xf-input--color;
		opacity: .3;
		pointer-events: none;
		max-width: 100px
	}
}

.tagify__tag
{
	display: inline-flex;
	align-items: center;
	font-size: 15px;
	border-radius: @xf-borderRadiusMedium;

	.xf-chip();

	margin: 5px;
	padding-right: 5px;

	cursor: default;

	.avatar
	{
		padding: 2px;

		&.avatar--default
		{
			width: calc(@avatar-xxs - 4px);
			height: calc(@avatar-xxs - 4px);
			margin: 2px;
		}
	}

	[disabled] &,
	[readonly] &
	{
		> div
		{
			padding-left: 5px;
		}
	}

	> div
	{
		&:before
		{
			content: "";
			position: absolute;
			inset: var(--tag-bg-inset, 0);
			z-index: -1;
			pointer-events: none;
			transition: 120ms ease;
			animation: tags--bump .3s ease-out 1;
		}
	}
}

.tagify__tag-text
{
	vertical-align: middle;
}

.tagify__tag__removeBtn
{
	font-size: 0;
	cursor: pointer;
	margin: 0 3px;
	border-radius: @xf-borderRadiusSmall;

	[disabled] &,
	[readonly] &
	{
		display: none;
	}

	&:before
	{
		.m-faBase();
		font-size: @xf-fontSizeSmall;
		.m-faContent("@{fa-var-times}\20");
		opacity: .5;
		.m-transition(opacity);
	}

	&:hover
	{
		color: white;
		background: @xf-errorFeatureColor;

		&:before
		{
			opacity: 1;
		}

		+ div > span
		{
			opacity: 0.6;
		}
	}
}

.tagify__dropdown
{
	position: absolute;
	z-index: 9999;
	transform: translateY(1px);
	overflow: hidden
}

.tagify__dropdown[placement=top]
{
	margin-top: 0;
	transform: translateY(-100%)
}

.tagify__dropdown[placement=top] .tagify__dropdown__wrapper
{
	border-top-width: 1.1px;
	border-bottom-width: 0
}

.tagify__dropdown[position=text]
{
	font-size: .9em
}

.tagify__dropdown[position=text] .tagify__dropdown__wrapper
{
	border-width: 1px
}

.tagify__dropdown--initial .tagify__dropdown__wrapper
{
	max-height: 20px;
	transform: translateY(-1em)
}

.tagify__dropdown--initial[placement=top] .tagify__dropdown__wrapper
{
	transform: translateY(2em)
}

.tagify__dropdown__wrapper
{
	.m-autoCompleteList();
	margin-top: 3px;
}

.tagify__dropdown__item
{
	padding: @xf-paddingMedium;
	line-height: 1.4;

	.m-clearFix();

	&.tagify__dropdown__item--active
	{
		background: @xf-contentHighlightBg;
	}
}

// display placeholders
.tagify--empty .tagify__input::before
{
	opacity: 1;
}

.tagify--loading
{
	pointer-events: none;

	.tagify__input
	{
		&:after
		{
			--loader-size: 1em;

			content: "";
			vertical-align: middle;
			opacity: 1;
			width: var(--loader-size);
			height: var(--loader-size);
			min-width: 0;
			border: 3px solid;
			border-color: xf-intensify(@xf-borderColorAttention, 20%) xf-intensify(@xf-borderColorAttention, 10%) @xf-borderColorAttention transparent;
			border-radius: 50%;
			animation: rotateLoader .4s infinite linear;
			margin: 1px 0 1px .5em
		}
	}
}

@keyframes rotateLoader
{
	to
	{
		transform: rotate(1turn)
	}
}]]></template>
  <template type="public" title="tel_box" version_id="2010010" version_string="2.1.0 Alpha"><![CDATA[<xf:js prod="xf/tel_box-compiled.js" dev="vendor/intl-tel-input/intlTelInput.min.js, vendor/intl-tel-input/utils.js, xf/tel_box.js" />

<xf:css src="tel_box.less" />

<div data-xf-init="tel-box">
	<input type="tel" name="{$name}" value="{$value}" class="input js-telInput" {$attrsHtml|raw} />

	<xf:hiddenval name="{$dialCodeName}" class="js-dialCode" />
	<xf:hiddenval name="{$intlNumberName}" class="js-intlNumb" />
</div>]]></template>
  <template type="public" title="tel_box.less" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[/**
 * Below are XF overrides; mostly for the sprite location
 * If updating code ensure the default background calls
 * in the .iti-flag section are removed
 */

@_path: ~'styles/default/xenforo/flags/';

#XF
{
	.iti
	{
		display: block;
	}
	
	.iti__flag
	{
		background-image: url("@{_path}flags.png");

		@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
			background-image: url("@{_path}flags@2x.png");
		}
	}

	.iti--allow-dropdown
	{
		.iti__flag-container
		{
			.iti__selected-flag
			{
				border-top-left-radius: @xf-input--border-radius;
				border-bottom-left-radius: @xf-input--border-radius;
			}

			&:hover
			{
				.iti__selected-flag
				{
					background-color: @xf-inputFocusBgColor;
				}
			}
		}
	}

	.iti__arrow
	{
		border-top-color: @xf-input--color;
	}

	.iti__arrow--up
	{
		border-bottom-color: @xf-input--color;
	}

	.iti__country-list
	{
		.m-autoCompleteList(true);
		max-width: initial;

		margin-top: @xf-paddingMedium;

		&.iti__country-list--dropup
		{
			margin-top: 0;
			margin-bottom: @xf-paddingMedium;
		}

		.iti__country
		{
			padding: @xf-paddingMedium;
			line-height: 24px;

			.m-clearFix();

			&.iti__highlight
			{
				background: @xf-contentHighlightBg;
			}
		}

		.iti__divider
		{
			border-bottom: 1px solid @xf-borderColor;
			padding: 0 0 5px 0;
		}

		.iti__dial-code
		{
			color: @xf-textColorMuted;
		}
	}
}

/**
 * Default library CSS
 */
.iti {
	position: relative;
	display: inline-block;
}
.iti * {
	box-sizing: border-box;
}
.iti__hide {
	display: none;
}
.iti__v-hide {
	visibility: hidden;
}
.iti input,
.iti input[type=text],
.iti input[type=tel] {
	position: relative;
	z-index: 0;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-right: 36px;
	margin-right: 0;
}
.iti__flag-container {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	padding: 1px;
}
.iti__selected-flag {
	z-index: 1;
	position: relative;
	display: flex;
	align-items: center;
	height: 100%;
	padding: 0 6px 0 8px;
}
.iti__arrow {
	margin-left: 6px;
	width: 0;
	height: 0;
	border-left: 3px solid transparent;
	border-right: 3px solid transparent;
	border-top: 4px solid #555;
}
[dir=rtl] .iti__arrow {
	margin-right: 6px;
	margin-left: 0;
}
.iti__arrow--up {
	border-top: none;
	border-bottom: 4px solid #555;
}
.iti__country-list {
	position: absolute;
	z-index: 2;
	//list-style: none;
	//padding: 0;
	//margin: 0 0 0 -1px;
	//box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2);
	//background-color: white;
	//border: 1px solid #ccc;
	white-space: nowrap;
	max-height: 200px;
	overflow-y: scroll;
	-webkit-overflow-scrolling: touch;
}
.iti__country-list--dropup {
	bottom: 100%;
	margin-bottom: -1px;
}
@media (max-width: 500px) {
	.iti__country-list {
		white-space: normal;
	}
}
.iti__flag-box {
	display: inline-block;
	width: 20px;
}
.iti__divider {
	padding-bottom: 5px;
	margin-bottom: 5px;
	border-bottom: 1px solid #ccc;
}
.iti__country {
	display: flex;
	align-items: center;
	padding: 5px 10px;
	outline: none;
}
.iti__dial-code {
	color: #999;
}
.iti__country.iti__highlight {
	background-color: rgba(0, 0, 0, 0.05);
}
.iti__flag-box, .iti__country-name {
	margin-right: 6px;
}
[dir=rtl] .iti__flag-box, [dir=rtl] .iti__country-name {
	margin-right: 0;
	margin-left: 6px;
}
.iti--allow-dropdown input,
.iti--allow-dropdown input[type=text],
.iti--allow-dropdown input[type=tel], .iti--separate-dial-code input,
.iti--separate-dial-code input[type=text],
.iti--separate-dial-code input[type=tel] {
	padding-right: 6px;
	padding-left: 52px;
	margin-left: 0;
}
[dir=rtl] .iti--allow-dropdown input,
[dir=rtl] .iti--allow-dropdown input[type=text],
[dir=rtl] .iti--allow-dropdown input[type=tel], [dir=rtl] .iti--separate-dial-code input,
[dir=rtl] .iti--separate-dial-code input[type=text],
[dir=rtl] .iti--separate-dial-code input[type=tel] {
	padding-right: 52px;
	padding-left: 6px;
	margin-right: 0;
}
.iti--allow-dropdown .iti__flag-container, .iti--separate-dial-code .iti__flag-container {
	right: auto;
	left: 0;
}
[dir=rtl] .iti--allow-dropdown .iti__flag-container, [dir=rtl] .iti--separate-dial-code .iti__flag-container {
	right: 0;
	left: auto;
}
.iti--allow-dropdown .iti__flag-container:hover {
	cursor: pointer;
}
.iti--allow-dropdown .iti__flag-container:hover .iti__selected-flag {
	background-color: rgba(0, 0, 0, 0.05);
}
.iti--allow-dropdown input[disabled] + .iti__flag-container:hover,
.iti--allow-dropdown input[readonly] + .iti__flag-container:hover {
	cursor: default;
}
.iti--allow-dropdown input[disabled] + .iti__flag-container:hover .iti__selected-flag,
.iti--allow-dropdown input[readonly] + .iti__flag-container:hover .iti__selected-flag {
	background-color: transparent;
}
.iti--separate-dial-code .iti__selected-flag {
	background-color: rgba(0, 0, 0, 0.05);
}
.iti--separate-dial-code.iti--show-flags .iti__selected-dial-code {
	margin-left: 6px;
}
[dir=rtl] .iti--separate-dial-code.iti--show-flags .iti__selected-dial-code {
	margin-left: 0;
	margin-right: 6px;
}
.iti--container {
	position: absolute;
	top: -1000px;
	left: -1000px;
	z-index: 1060;
	padding: 1px;
}
.iti--container:hover {
	cursor: pointer;
}

.iti-mobile .iti--container {
	top: 30px;
	bottom: 30px;
	left: 30px;
	right: 30px;
	position: fixed;
}
.iti-mobile .iti__country-list {
	max-height: 100%;
	width: 100%;
}
.iti-mobile .iti__country {
	padding: 10px 10px;
	line-height: 1.5em;
}

.iti__flag {
	width: 20px;
}
.iti__flag.iti__be {
	width: 18px;
}
.iti__flag.iti__ch {
	width: 15px;
}
.iti__flag.iti__mc {
	width: 19px;
}
.iti__flag.iti__ne {
	width: 18px;
}
.iti__flag.iti__np {
	width: 13px;
}
.iti__flag.iti__va {
	width: 15px;
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
	.iti__flag {
		background-size: 5762px 15px;
	}
}
.iti__flag.iti__ac {
	height: 10px;
	background-position: 0px 0px;
}
.iti__flag.iti__ad {
	height: 14px;
	background-position: -22px 0px;
}
.iti__flag.iti__ae {
	height: 10px;
	background-position: -44px 0px;
}
.iti__flag.iti__af {
	height: 14px;
	background-position: -66px 0px;
}
.iti__flag.iti__ag {
	height: 14px;
	background-position: -88px 0px;
}
.iti__flag.iti__ai {
	height: 10px;
	background-position: -110px 0px;
}
.iti__flag.iti__al {
	height: 15px;
	background-position: -132px 0px;
}
.iti__flag.iti__am {
	height: 10px;
	background-position: -154px 0px;
}
.iti__flag.iti__ao {
	height: 14px;
	background-position: -176px 0px;
}
.iti__flag.iti__aq {
	height: 14px;
	background-position: -198px 0px;
}
.iti__flag.iti__ar {
	height: 13px;
	background-position: -220px 0px;
}
.iti__flag.iti__as {
	height: 10px;
	background-position: -242px 0px;
}
.iti__flag.iti__at {
	height: 14px;
	background-position: -264px 0px;
}
.iti__flag.iti__au {
	height: 10px;
	background-position: -286px 0px;
}
.iti__flag.iti__aw {
	height: 14px;
	background-position: -308px 0px;
}
.iti__flag.iti__ax {
	height: 13px;
	background-position: -330px 0px;
}
.iti__flag.iti__az {
	height: 10px;
	background-position: -352px 0px;
}
.iti__flag.iti__ba {
	height: 10px;
	background-position: -374px 0px;
}
.iti__flag.iti__bb {
	height: 14px;
	background-position: -396px 0px;
}
.iti__flag.iti__bd {
	height: 12px;
	background-position: -418px 0px;
}
.iti__flag.iti__be {
	height: 15px;
	background-position: -440px 0px;
}
.iti__flag.iti__bf {
	height: 14px;
	background-position: -460px 0px;
}
.iti__flag.iti__bg {
	height: 12px;
	background-position: -482px 0px;
}
.iti__flag.iti__bh {
	height: 12px;
	background-position: -504px 0px;
}
.iti__flag.iti__bi {
	height: 12px;
	background-position: -526px 0px;
}
.iti__flag.iti__bj {
	height: 14px;
	background-position: -548px 0px;
}
.iti__flag.iti__bl {
	height: 14px;
	background-position: -570px 0px;
}
.iti__flag.iti__bm {
	height: 10px;
	background-position: -592px 0px;
}
.iti__flag.iti__bn {
	height: 10px;
	background-position: -614px 0px;
}
.iti__flag.iti__bo {
	height: 14px;
	background-position: -636px 0px;
}
.iti__flag.iti__bq {
	height: 14px;
	background-position: -658px 0px;
}
.iti__flag.iti__br {
	height: 14px;
	background-position: -680px 0px;
}
.iti__flag.iti__bs {
	height: 10px;
	background-position: -702px 0px;
}
.iti__flag.iti__bt {
	height: 14px;
	background-position: -724px 0px;
}
.iti__flag.iti__bv {
	height: 15px;
	background-position: -746px 0px;
}
.iti__flag.iti__bw {
	height: 14px;
	background-position: -768px 0px;
}
.iti__flag.iti__by {
	height: 10px;
	background-position: -790px 0px;
}
.iti__flag.iti__bz {
	height: 12px;
	background-position: -812px 0px;
}
.iti__flag.iti__ca {
	height: 10px;
	background-position: -834px 0px;
}
.iti__flag.iti__cc {
	height: 10px;
	background-position: -856px 0px;
}
.iti__flag.iti__cd {
	height: 15px;
	background-position: -878px 0px;
}
.iti__flag.iti__cf {
	height: 14px;
	background-position: -900px 0px;
}
.iti__flag.iti__cg {
	height: 14px;
	background-position: -922px 0px;
}
.iti__flag.iti__ch {
	height: 15px;
	background-position: -944px 0px;
}
.iti__flag.iti__ci {
	height: 14px;
	background-position: -961px 0px;
}
.iti__flag.iti__ck {
	height: 10px;
	background-position: -983px 0px;
}
.iti__flag.iti__cl {
	height: 14px;
	background-position: -1005px 0px;
}
.iti__flag.iti__cm {
	height: 14px;
	background-position: -1027px 0px;
}
.iti__flag.iti__cn {
	height: 14px;
	background-position: -1049px 0px;
}
.iti__flag.iti__co {
	height: 14px;
	background-position: -1071px 0px;
}
.iti__flag.iti__cp {
	height: 14px;
	background-position: -1093px 0px;
}
.iti__flag.iti__cq {
	height: 12px;
	background-position: -1115px 0px;
}
.iti__flag.iti__cr {
	height: 12px;
	background-position: -1137px 0px;
}
.iti__flag.iti__cu {
	height: 10px;
	background-position: -1159px 0px;
}
.iti__flag.iti__cv {
	height: 12px;
	background-position: -1181px 0px;
}
.iti__flag.iti__cw {
	height: 14px;
	background-position: -1203px 0px;
}
.iti__flag.iti__cx {
	height: 10px;
	background-position: -1225px 0px;
}
.iti__flag.iti__cy {
	height: 14px;
	background-position: -1247px 0px;
}
.iti__flag.iti__cz {
	height: 14px;
	background-position: -1269px 0px;
}
.iti__flag.iti__de {
	height: 12px;
	background-position: -1291px 0px;
}
.iti__flag.iti__dg {
	height: 10px;
	background-position: -1313px 0px;
}
.iti__flag.iti__dj {
	height: 14px;
	background-position: -1335px 0px;
}
.iti__flag.iti__dk {
	height: 15px;
	background-position: -1357px 0px;
}
.iti__flag.iti__dm {
	height: 10px;
	background-position: -1379px 0px;
}
.iti__flag.iti__do {
	height: 14px;
	background-position: -1401px 0px;
}
.iti__flag.iti__dz {
	height: 14px;
	background-position: -1423px 0px;
}
.iti__flag.iti__ea {
	height: 14px;
	background-position: -1445px 0px;
}
.iti__flag.iti__ec {
	height: 14px;
	background-position: -1467px 0px;
}
.iti__flag.iti__ee {
	height: 13px;
	background-position: -1489px 0px;
}
.iti__flag.iti__eg {
	height: 14px;
	background-position: -1511px 0px;
}
.iti__flag.iti__eh {
	height: 10px;
	background-position: -1533px 0px;
}
.iti__flag.iti__er {
	height: 10px;
	background-position: -1555px 0px;
}
.iti__flag.iti__es {
	height: 14px;
	background-position: -1577px 0px;
}
.iti__flag.iti__et {
	height: 10px;
	background-position: -1599px 0px;
}
.iti__flag.iti__eu {
	height: 14px;
	background-position: -1621px 0px;
}
.iti__flag.iti__ez {
	height: 14px;
	background-position: -1643px 0px;
}
.iti__flag.iti__fi {
	height: 12px;
	background-position: -1665px 0px;
}
.iti__flag.iti__fj {
	height: 10px;
	background-position: -1687px 0px;
}
.iti__flag.iti__fk {
	height: 10px;
	background-position: -1709px 0px;
}
.iti__flag.iti__fm {
	height: 11px;
	background-position: -1731px 0px;
}
.iti__flag.iti__fo {
	height: 15px;
	background-position: -1753px 0px;
}
.iti__flag.iti__fr {
	height: 14px;
	background-position: -1775px 0px;
}
.iti__flag.iti__fx {
	height: 14px;
	background-position: -1797px 0px;
}
.iti__flag.iti__ga {
	height: 15px;
	background-position: -1819px 0px;
}
.iti__flag.iti__gb {
	height: 10px;
	background-position: -1841px 0px;
}
.iti__flag.iti__gd {
	height: 12px;
	background-position: -1863px 0px;
}
.iti__flag.iti__ge {
	height: 14px;
	background-position: -1885px 0px;
}
.iti__flag.iti__gf {
	height: 14px;
	background-position: -1907px 0px;
}
.iti__flag.iti__gg {
	height: 14px;
	background-position: -1929px 0px;
}
.iti__flag.iti__gh {
	height: 14px;
	background-position: -1951px 0px;
}
.iti__flag.iti__gi {
	height: 10px;
	background-position: -1973px 0px;
}
.iti__flag.iti__gl {
	height: 14px;
	background-position: -1995px 0px;
}
.iti__flag.iti__gm {
	height: 14px;
	background-position: -2017px 0px;
}
.iti__flag.iti__gn {
	height: 14px;
	background-position: -2039px 0px;
}
.iti__flag.iti__gp {
	height: 14px;
	background-position: -2061px 0px;
}
.iti__flag.iti__gq {
	height: 14px;
	background-position: -2083px 0px;
}
.iti__flag.iti__gr {
	height: 14px;
	background-position: -2105px 0px;
}
.iti__flag.iti__gs {
	height: 10px;
	background-position: -2127px 0px;
}
.iti__flag.iti__gt {
	height: 13px;
	background-position: -2149px 0px;
}
.iti__flag.iti__gu {
	height: 11px;
	background-position: -2171px 0px;
}
.iti__flag.iti__gw {
	height: 10px;
	background-position: -2193px 0px;
}
.iti__flag.iti__gy {
	height: 12px;
	background-position: -2215px 0px;
}
.iti__flag.iti__hk {
	height: 14px;
	background-position: -2237px 0px;
}
.iti__flag.iti__hm {
	height: 10px;
	background-position: -2259px 0px;
}
.iti__flag.iti__hn {
	height: 10px;
	background-position: -2281px 0px;
}
.iti__flag.iti__hr {
	height: 10px;
	background-position: -2303px 0px;
}
.iti__flag.iti__ht {
	height: 12px;
	background-position: -2325px 0px;
}
.iti__flag.iti__hu {
	height: 10px;
	background-position: -2347px 0px;
}
.iti__flag.iti__ic {
	height: 14px;
	background-position: -2369px 0px;
}
.iti__flag.iti__id {
	height: 14px;
	background-position: -2391px 0px;
}
.iti__flag.iti__ie {
	height: 10px;
	background-position: -2413px 0px;
}
.iti__flag.iti__il {
	height: 15px;
	background-position: -2435px 0px;
}
.iti__flag.iti__im {
	height: 10px;
	background-position: -2457px 0px;
}
.iti__flag.iti__in {
	height: 14px;
	background-position: -2479px 0px;
}
.iti__flag.iti__io {
	height: 10px;
	background-position: -2501px 0px;
}
.iti__flag.iti__iq {
	height: 14px;
	background-position: -2523px 0px;
}
.iti__flag.iti__ir {
	height: 12px;
	background-position: -2545px 0px;
}
.iti__flag.iti__is {
	height: 15px;
	background-position: -2567px 0px;
}
.iti__flag.iti__it {
	height: 14px;
	background-position: -2589px 0px;
}
.iti__flag.iti__je {
	height: 12px;
	background-position: -2611px 0px;
}
.iti__flag.iti__jm {
	height: 10px;
	background-position: -2633px 0px;
}
.iti__flag.iti__jo {
	height: 10px;
	background-position: -2655px 0px;
}
.iti__flag.iti__jp {
	height: 14px;
	background-position: -2677px 0px;
}
.iti__flag.iti__ke {
	height: 14px;
	background-position: -2699px 0px;
}
.iti__flag.iti__kg {
	height: 12px;
	background-position: -2721px 0px;
}
.iti__flag.iti__kh {
	height: 13px;
	background-position: -2743px 0px;
}
.iti__flag.iti__ki {
	height: 10px;
	background-position: -2765px 0px;
}
.iti__flag.iti__km {
	height: 12px;
	background-position: -2787px 0px;
}
.iti__flag.iti__kn {
	height: 14px;
	background-position: -2809px 0px;
}
.iti__flag.iti__kp {
	height: 10px;
	background-position: -2831px 0px;
}
.iti__flag.iti__kr {
	height: 14px;
	background-position: -2853px 0px;
}
.iti__flag.iti__kw {
	height: 10px;
	background-position: -2875px 0px;
}
.iti__flag.iti__ky {
	height: 10px;
	background-position: -2897px 0px;
}
.iti__flag.iti__kz {
	height: 10px;
	background-position: -2919px 0px;
}
.iti__flag.iti__la {
	height: 14px;
	background-position: -2941px 0px;
}
.iti__flag.iti__lb {
	height: 14px;
	background-position: -2963px 0px;
}
.iti__flag.iti__lc {
	height: 10px;
	background-position: -2985px 0px;
}
.iti__flag.iti__li {
	height: 12px;
	background-position: -3007px 0px;
}
.iti__flag.iti__lk {
	height: 10px;
	background-position: -3029px 0px;
}
.iti__flag.iti__lr {
	height: 11px;
	background-position: -3051px 0px;
}
.iti__flag.iti__ls {
	height: 14px;
	background-position: -3073px 0px;
}
.iti__flag.iti__lt {
	height: 12px;
	background-position: -3095px 0px;
}
.iti__flag.iti__lu {
	height: 12px;
	background-position: -3117px 0px;
}
.iti__flag.iti__lv {
	height: 10px;
	background-position: -3139px 0px;
}
.iti__flag.iti__ly {
	height: 10px;
	background-position: -3161px 0px;
}
.iti__flag.iti__ma {
	height: 14px;
	background-position: -3183px 0px;
}
.iti__flag.iti__mc {
	height: 15px;
	background-position: -3205px 0px;
}
.iti__flag.iti__md {
	height: 10px;
	background-position: -3226px 0px;
}
.iti__flag.iti__me {
	height: 10px;
	background-position: -3248px 0px;
}
.iti__flag.iti__mf {
	height: 14px;
	background-position: -3270px 0px;
}
.iti__flag.iti__mg {
	height: 14px;
	background-position: -3292px 0px;
}
.iti__flag.iti__mh {
	height: 11px;
	background-position: -3314px 0px;
}
.iti__flag.iti__mk {
	height: 10px;
	background-position: -3336px 0px;
}
.iti__flag.iti__ml {
	height: 14px;
	background-position: -3358px 0px;
}
.iti__flag.iti__mm {
	height: 14px;
	background-position: -3380px 0px;
}
.iti__flag.iti__mn {
	height: 10px;
	background-position: -3402px 0px;
}
.iti__flag.iti__mo {
	height: 14px;
	background-position: -3424px 0px;
}
.iti__flag.iti__mp {
	height: 10px;
	background-position: -3446px 0px;
}
.iti__flag.iti__mq {
	height: 14px;
	background-position: -3468px 0px;
}
.iti__flag.iti__mr {
	height: 14px;
	background-position: -3490px 0px;
}
.iti__flag.iti__ms {
	height: 10px;
	background-position: -3512px 0px;
}
.iti__flag.iti__mt {
	height: 14px;
	background-position: -3534px 0px;
}
.iti__flag.iti__mu {
	height: 14px;
	background-position: -3556px 0px;
}
.iti__flag.iti__mv {
	height: 14px;
	background-position: -3578px 0px;
}
.iti__flag.iti__mw {
	height: 14px;
	background-position: -3600px 0px;
}
.iti__flag.iti__mx {
	height: 12px;
	background-position: -3622px 0px;
}
.iti__flag.iti__my {
	height: 10px;
	background-position: -3644px 0px;
}
.iti__flag.iti__mz {
	height: 14px;
	background-position: -3666px 0px;
}
.iti__flag.iti__na {
	height: 14px;
	background-position: -3688px 0px;
}
.iti__flag.iti__nc {
	height: 10px;
	background-position: -3710px 0px;
}
.iti__flag.iti__ne {
	height: 15px;
	background-position: -3732px 0px;
}
.iti__flag.iti__nf {
	height: 10px;
	background-position: -3752px 0px;
}
.iti__flag.iti__ng {
	height: 10px;
	background-position: -3774px 0px;
}
.iti__flag.iti__ni {
	height: 12px;
	background-position: -3796px 0px;
}
.iti__flag.iti__nl {
	height: 14px;
	background-position: -3818px 0px;
}
.iti__flag.iti__no {
	height: 15px;
	background-position: -3840px 0px;
}
.iti__flag.iti__np {
	height: 15px;
	background-position: -3862px 0px;
}
.iti__flag.iti__nr {
	height: 10px;
	background-position: -3877px 0px;
}
.iti__flag.iti__nu {
	height: 10px;
	background-position: -3899px 0px;
}
.iti__flag.iti__nz {
	height: 10px;
	background-position: -3921px 0px;
}
.iti__flag.iti__om {
	height: 10px;
	background-position: -3943px 0px;
}
.iti__flag.iti__pa {
	height: 14px;
	background-position: -3965px 0px;
}
.iti__flag.iti__pe {
	height: 14px;
	background-position: -3987px 0px;
}
.iti__flag.iti__pf {
	height: 14px;
	background-position: -4009px 0px;
}
.iti__flag.iti__pg {
	height: 15px;
	background-position: -4031px 0px;
}
.iti__flag.iti__ph {
	height: 10px;
	background-position: -4053px 0px;
}
.iti__flag.iti__pk {
	height: 14px;
	background-position: -4075px 0px;
}
.iti__flag.iti__pl {
	height: 13px;
	background-position: -4097px 0px;
}
.iti__flag.iti__pm {
	height: 14px;
	background-position: -4119px 0px;
}
.iti__flag.iti__pn {
	height: 10px;
	background-position: -4141px 0px;
}
.iti__flag.iti__pr {
	height: 14px;
	background-position: -4163px 0px;
}
.iti__flag.iti__ps {
	height: 10px;
	background-position: -4185px 0px;
}
.iti__flag.iti__pt {
	height: 14px;
	background-position: -4207px 0px;
}
.iti__flag.iti__pw {
	height: 13px;
	background-position: -4229px 0px;
}
.iti__flag.iti__py {
	height: 11px;
	background-position: -4251px 0px;
}
.iti__flag.iti__qa {
	height: 8px;
	background-position: -4273px 0px;
}
.iti__flag.iti__re {
	height: 14px;
	background-position: -4295px 0px;
}
.iti__flag.iti__ro {
	height: 14px;
	background-position: -4317px 0px;
}
.iti__flag.iti__rs {
	height: 14px;
	background-position: -4339px 0px;
}
.iti__flag.iti__ru {
	height: 14px;
	background-position: -4361px 0px;
}
.iti__flag.iti__rw {
	height: 14px;
	background-position: -4383px 0px;
}
.iti__flag.iti__sa {
	height: 14px;
	background-position: -4405px 0px;
}
.iti__flag.iti__sb {
	height: 10px;
	background-position: -4427px 0px;
}
.iti__flag.iti__sc {
	height: 10px;
	background-position: -4449px 0px;
}
.iti__flag.iti__sd {
	height: 10px;
	background-position: -4471px 0px;
}
.iti__flag.iti__se {
	height: 13px;
	background-position: -4493px 0px;
}
.iti__flag.iti__sg {
	height: 14px;
	background-position: -4515px 0px;
}
.iti__flag.iti__sh {
	height: 10px;
	background-position: -4537px 0px;
}
.iti__flag.iti__si {
	height: 10px;
	background-position: -4559px 0px;
}
.iti__flag.iti__sj {
	height: 15px;
	background-position: -4581px 0px;
}
.iti__flag.iti__sk {
	height: 14px;
	background-position: -4603px 0px;
}
.iti__flag.iti__sl {
	height: 14px;
	background-position: -4625px 0px;
}
.iti__flag.iti__sm {
	height: 15px;
	background-position: -4647px 0px;
}
.iti__flag.iti__sn {
	height: 14px;
	background-position: -4669px 0px;
}
.iti__flag.iti__so {
	height: 14px;
	background-position: -4691px 0px;
}
.iti__flag.iti__sr {
	height: 14px;
	background-position: -4713px 0px;
}
.iti__flag.iti__ss {
	height: 10px;
	background-position: -4735px 0px;
}
.iti__flag.iti__st {
	height: 10px;
	background-position: -4757px 0px;
}
.iti__flag.iti__su {
	height: 10px;
	background-position: -4779px 0px;
}
.iti__flag.iti__sv {
	height: 12px;
	background-position: -4801px 0px;
}
.iti__flag.iti__sx {
	height: 14px;
	background-position: -4823px 0px;
}
.iti__flag.iti__sy {
	height: 14px;
	background-position: -4845px 0px;
}
.iti__flag.iti__sz {
	height: 14px;
	background-position: -4867px 0px;
}
.iti__flag.iti__ta {
	height: 10px;
	background-position: -4889px 0px;
}
.iti__flag.iti__tc {
	height: 10px;
	background-position: -4911px 0px;
}
.iti__flag.iti__td {
	height: 14px;
	background-position: -4933px 0px;
}
.iti__flag.iti__tf {
	height: 14px;
	background-position: -4955px 0px;
}
.iti__flag.iti__tg {
	height: 13px;
	background-position: -4977px 0px;
}
.iti__flag.iti__th {
	height: 14px;
	background-position: -4999px 0px;
}
.iti__flag.iti__tj {
	height: 10px;
	background-position: -5021px 0px;
}
.iti__flag.iti__tk {
	height: 10px;
	background-position: -5043px 0px;
}
.iti__flag.iti__tl {
	height: 10px;
	background-position: -5065px 0px;
}
.iti__flag.iti__tm {
	height: 14px;
	background-position: -5087px 0px;
}
.iti__flag.iti__tn {
	height: 14px;
	background-position: -5109px 0px;
}
.iti__flag.iti__to {
	height: 10px;
	background-position: -5131px 0px;
}
.iti__flag.iti__tr {
	height: 14px;
	background-position: -5153px 0px;
}
.iti__flag.iti__tt {
	height: 12px;
	background-position: -5175px 0px;
}
.iti__flag.iti__tv {
	height: 10px;
	background-position: -5197px 0px;
}
.iti__flag.iti__tw {
	height: 14px;
	background-position: -5219px 0px;
}
.iti__flag.iti__tz {
	height: 14px;
	background-position: -5241px 0px;
}
.iti__flag.iti__ua {
	height: 14px;
	background-position: -5263px 0px;
}
.iti__flag.iti__ug {
	height: 14px;
	background-position: -5285px 0px;
}
.iti__flag.iti__uk {
	height: 10px;
	background-position: -5307px 0px;
}
.iti__flag.iti__um {
	height: 11px;
	background-position: -5329px 0px;
}
.iti__flag.iti__un {
	height: 14px;
	background-position: -5351px 0px;
}
.iti__flag.iti__us {
	height: 11px;
	background-position: -5373px 0px;
}
.iti__flag.iti__uy {
	height: 14px;
	background-position: -5395px 0px;
}
.iti__flag.iti__uz {
	height: 10px;
	background-position: -5417px 0px;
}
.iti__flag.iti__va {
	height: 15px;
	background-position: -5439px 0px;
}
.iti__flag.iti__vc {
	height: 14px;
	background-position: -5456px 0px;
}
.iti__flag.iti__ve {
	height: 14px;
	background-position: -5478px 0px;
}
.iti__flag.iti__vg {
	height: 10px;
	background-position: -5500px 0px;
}
.iti__flag.iti__vi {
	height: 14px;
	background-position: -5522px 0px;
}
.iti__flag.iti__vn {
	height: 14px;
	background-position: -5544px 0px;
}
.iti__flag.iti__vu {
	height: 12px;
	background-position: -5566px 0px;
}
.iti__flag.iti__wf {
	height: 14px;
	background-position: -5588px 0px;
}
.iti__flag.iti__ws {
	height: 10px;
	background-position: -5610px 0px;
}
.iti__flag.iti__xk {
	height: 15px;
	background-position: -5632px 0px;
}
.iti__flag.iti__ye {
	height: 14px;
	background-position: -5654px 0px;
}
.iti__flag.iti__yt {
	height: 14px;
	background-position: -5676px 0px;
}
.iti__flag.iti__za {
	height: 14px;
	background-position: -5698px 0px;
}
.iti__flag.iti__zm {
	height: 14px;
	background-position: -5720px 0px;
}
.iti__flag.iti__zw {
	height: 10px;
	background-position: -5742px 0px;
}

.iti__flag {
	height: 15px;
	box-shadow: 0px 0px 1px 0px #888;
	background-image: url("../img/flags.png?1");
	background-repeat: no-repeat;
	background-color: #dbdbdb;
	background-position: 20px 0;
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
	.iti__flag {
		background-image: url("../img/flags@2x.png?1");
	}
}

.iti__flag.iti__np {
	background-color: transparent;
}]]></template>
  <template type="public" title="thread_approve" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:title>{{ phrase('approve_thread') }}</xf:title>

<xf:breadcrumb source="$thread.getBreadcrumbs()" />

<xf:form action="{{ link('threads/approve', $thread) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_approve_the_following:') }}
				<strong><a href="{{ link('threads', $thread) }}">{$thread.title}</a></strong>
			</xf:inforow>
		</div>
		<xf:submitrow icon="save" rowtype="simple" />
	</div>
</xf:form>]]></template>
  <template type="public" title="thread_change_type" version_id="2020032" version_string="2.2.0 Beta 2"><![CDATA[<xf:title>{{ phrase('change_thread_type:') }} {{ prefix('thread', $thread, 'escaped') }}{$thread.title}</xf:title>
<xf:h1>{{ phrase('change_thread_type:') }} {{ prefix('thread', $thread) }}{$thread.title}</xf:h1>

<xf:breadcrumb source="$thread.getBreadcrumbs()" />

<xf:form action="{{ link('threads/change-type', $thread) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow>
				<div class="blockMessage blockMessage--warning">
					{{ phrase('changing_threads_type_warning_desc') }}
				</div>
			</xf:inforow>

			<xf:formrow label="{{ phrase('current_thread_type') }}">
				{$currentThreadTypeTitle}
			</xf:formrow>

			<xf:if is="$isTypeChange">
				<xf:formrow label="{{ phrase('new_thread_type') }}">
					{$newThreadTypeTitle}
				</xf:formrow>

				{{ $newThreadType.renderExtraDataEdit($thread, 'convert', 'full')|raw }}

				<xf:hiddenval name="new_thread_type_id">{$newThreadTypeId}</xf:hiddenval>
				<xf:hiddenval name="confirm">1</xf:hiddenval>
			<xf:else />
				<xf:radiorow name="new_thread_type_id" value="{{ $currentThreadTypeId }}" label="{{ phrase('thread_type_filter') }}">
					<xf:options source="$creatableThreadTypes" />
				</xf:radiorow>
			</xf:if>
		</div>

		<xf:if is="$newThreadTypeId">
			<xf:submitrow submit="{{ phrase('change_type') }}" />
		<xf:else />
			<xf:submitrow submit="{{ phrase('continue...') }}" />
		</xf:if>
	</div>
</xf:form>]]></template>
  <template type="public" title="thread_delete" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('delete_thread') }}</xf:title>

<xf:breadcrumb source="$thread.getBreadcrumbs()" />

<xf:form action="{{ link('threads/delete', $thread) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:macro id="helper_action::delete_type" arg-canHardDelete="{$thread.canDelete('hard')}" />

			<xf:if is="$thread.canSendModeratorActionAlert()">
				<xf:macro id="helper_action::thread_alert" />
			</xf:if>
		</div>
		<xf:submitrow icon="delete" />
	</div>
</xf:form>]]></template>
  <template type="public" title="thread_edit" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('edit_thread') }}</xf:title>

<xf:js src="xf/thread.js" min="1" />

<xf:breadcrumb source="$thread.getBreadcrumbs()" />

<xf:form action="{{ link('threads/edit', $thread) }}"
	class="block"
	ajax="true"
	data-xf-init="thread-edit-form"
	data-item-selector=".js-threadListItem-{$thread.thread_id}">

	<div class="block-container">
		<div class="block-body">
			<xf:prefixinputrow
				label="{{ phrase('title') }}"
				prefixes="{{ $thread.isPrefixEditable() ? $prefixes : [] }}"
				type="thread"
				prefix-value="{$thread.prefix_id}"
				textbox-value="{$thread.title}"
				placeholder="{{ phrase('title...') }}"
				autofocus="autofocus"
				maxlength="{{ max_length($thread, 'title') }}"
				help-href="{{ link('forums/prefix-help', $forum) }}"/>

			<xf:if contentcheck="true">
				<hr class="formRowSep" />
				<xf:contentcheck>
					{{ $thread.TypeHandler.renderExtraDataEdit(
						$thread,
						'edit',
						'thread'
					)|raw }}
				</xf:contentcheck>
			</xf:if>

			<xf:if contentcheck="true">
				<hr class="formRowSep" />
				<xf:contentcheck>
					<xf:macro id="custom_fields_macros::custom_fields_edit"
						arg-type="threads"
						arg-set="{$thread.custom_fields}"
						arg-editMode="{{ $thread.getFieldEditMode() }}"
						arg-onlyInclude="{$forum.field_cache}" />
				</xf:contentcheck>
				<hr class="formRowSep" />
			</xf:if>

			<xf:macro id="helper_thread_options::thread_status" arg-thread="{$thread}" />
		</div>

		<xf:submitrow icon="save" sticky="true">
			<xf:html>
				<xf:if is="$thread.canDelete()">
					<xf:button href="{{ link('threads/delete', $thread) }}" icon="delete" overlay="true">{{ phrase('delete...') }}</xf:button>
				</xf:if>
			</xf:html>
		</xf:submitrow>
	</div>

	<xf:if is="$noInlineMod">
		<xf:hiddenval name="_xfNoInlineMod">1</xf:hiddenval>
	</xf:if>
	<xf:if is="$forumName">
		<xf:hiddenval name="_xfForumName">1</xf:hiddenval>
	</xf:if>
</xf:form>]]></template>
  <template type="public" title="thread_edit_new_thread" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="{{ $templateOverrides.thread_list_macro ?: 'thread_list_macros::item' }}"
	arg-thread="{$thread}"
	arg-allowInlineMod="{{ $noInlineMod ? false : true }}"
	arg-forum="{{ $forumName ? null : $forum }}"
	args="{$templateOverrides.thread_list_macro_args}" />
]]></template>
  <template type="public" title="thread_list_item" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="{{ $templateOverrides.thread_list_macro ?: 'thread_list_macros::item' }}"
	arg-thread="{$thread}"
	arg-forum="{$forum}"
	arg-forceRead="{$inlineMode}"
	arg-allowInlineMod="{{ false }}"
	args="{$templateOverrides.thread_list_macro_args}" />]]></template>
  <template type="public" title="thread_list_macros" version_id="2030170" version_string="2.3.1"><![CDATA[<xf:macro id="item"
	arg-thread="!"
	arg-forum=""
	arg-forceRead="{{ false }}"
	arg-showWatched="{{ true }}"
	arg-allowInlineMod="{{ true }}"
	arg-chooseName=""
	arg-extraInfo=""
	arg-allowEdit="{{ true }}">

	<xf:css src="structured_list.less" />

	<div class="structItem structItem--thread{{ $thread.prefix_id ? ' is-prefix' . $thread.prefix_id : '' }}{{ $thread.isIgnored() ? ' is-ignored' : '' }}{{ ($thread.isUnread() AND !$forceRead) ? ' is-unread' : '' }}{{ $thread.discussion_state == 'moderated' ? ' is-moderated' : '' }}{{ $thread.discussion_state == 'deleted' ? ' is-deleted' : '' }} js-inlineModContainer js-threadListItem-{$thread.thread_id}" data-author="{{ $thread.User.username ?: $thread.username }}">

	<xf:extension id="icon_cell">
		<div class="structItem-cell structItem-cell--icon">
			<div class="structItem-iconContainer">
				<xf:avatar user="$thread.User" size="s" defaultname="{$thread.username}" />
				<xf:if is="$thread.getUserPostCount()">
					<xf:avatar user="$xf.visitor" size="s"
						href=""
						class="avatar--separated structItem-secondaryIcon"
						tabindex="0"
						data-xf-init="tooltip"
						data-trigger="auto"
						title="{{ phrase('you_have_posted_x_messages_in_this_thread', {'count': $thread.getUserPostCount() }) }}" />
				</xf:if>
			</div>
		</div>
	</xf:extension>

	<xf:extension id="main_cell">
		<div class="structItem-cell structItem-cell--main" data-xf-init="touch-proxy">
			<xf:if contentcheck="true">
				<ul class="structItem-statuses">
				<xf:contentcheck>
				<xf:extension id="statuses">
					<xf:if is="property('reactionSummaryOnLists') == 'status' && $thread.first_post_reactions">
						<li><xf:reactions summary="true" reactions="{$thread.first_post_reactions}" /></li>
					</xf:if>
					<xf:extension id="before_status_state"></xf:extension>
					<xf:if is="$thread.discussion_state == 'moderated'">
						<li>
							<xf:set var="$moderatedStatus">
								<i class="structItem-status structItem-status--moderated" aria-hidden="true" title="{{ phrase('awaiting_approval')|for_attr }}"></i>
								<span class="u-srOnly">{{ phrase('awaiting_approval') }}</span>
							</xf:set>
							<xf:if is="$thread.canCleanSpam()">
								<a href="{{ link('spam-cleaner', $thread) }}" data-xf-click="overlay">{$moderatedStatus}</a>
							<xf:else />
								{$moderatedStatus}
							</xf:if>
						</li>
					</xf:if>
					<xf:if is="$thread.discussion_state == 'deleted'">
						<li>
							<i class="structItem-status structItem-status--deleted" aria-hidden="true" title="{{ phrase('deleted')|for_attr }}"></i>
							<span class="u-srOnly">{{ phrase('deleted') }}</span>
						</li>
					</xf:if>
					<xf:if is="!$thread.discussion_open">
						<li>
							<i class="structItem-status structItem-status--locked" aria-hidden="true" title="{{ phrase('locked')|for_attr }}"></i>
							<span class="u-srOnly">{{ phrase('locked') }}</span>
						</li>
					</xf:if>

					<xf:extension id="status_sticky">
						<xf:if is="$thread.sticky">
							<li>
								<i class="structItem-status structItem-status--sticky" aria-hidden="true" title="{{ phrase('sticky')|for_attr }}"></i>
								<span class="u-srOnly">{{ phrase('sticky') }}</span>
							</li>
						</xf:if>
					</xf:extension>

					<xf:extension id="status_featured">
						<xf:if is="$thread.featured">
							<li>
								<i class="structItem-status structItem-status--featured" aria-hidden="true" title="{{ phrase('featured')|for_attr }}"></i>
								<span class="u-srOnly">{{ phrase('featured') }}</span>
							</li>
						</xf:if>
					</xf:extension>

					<xf:extension id="before_status_watch"></xf:extension>
					<xf:if is="{$showWatched} AND {$xf.visitor.user_id}">
						<xf:if is="{$thread.Watch.{$xf.visitor.user_id}}">
							<li>
								<i class="structItem-status structItem-status--watched" aria-hidden="true" title="{{ phrase('thread_watched')|for_attr }}"></i>
								<span class="u-srOnly">{{ phrase('thread_watched') }}</span>
							</li>
							<xf:elseif is="!$forum AND {$thread.Forum.Watch.{$xf.visitor.user_id}}" />
							<li>
								<i class="structItem-status structItem-status--watched" aria-hidden="true" title="{{ phrase('forum_watched')|for_attr }}"></i>
								<span class="u-srOnly">{{ phrase('forum_watched') }}</span>
							</li>
						</xf:if>
					</xf:if>

					<xf:extension id="before_status_type"></xf:extension>
					<xf:if is="$thread.discussion_type == 'redirect'">
						<xf:extension id="thread_type_redirect">
							<li>
								<i class="structItem-status structItem-status--redirect" aria-hidden="true" title="{{ phrase('redirect')|for_attr }}"></i>
								<span class="u-srOnly">{{ phrase('redirect') }}</span>
							</li>
						</xf:extension>
					<xf:elseif is="$thread.discussion_type == 'question' && $thread.type_data.solution_post_id" />
						<xf:extension id="thread_type_question_solved">
							<li>
								<i class="structItem-status structItem-status--solved" aria-hidden="true" title="{{ phrase('solved')|for_attr }}"></i>
								<span class="u-srOnly">{{ phrase('solved') }}</span>
							</li>
						</xf:extension>
					<xf:elseif is="!$forum || $forum.forum_type_id == 'discussion'" />
						<xf:extension id="thread_type_icon">
							<xf:if is="$thread.discussion_type != 'discussion'">
								<xf:set var="$threadTypeHandler" value="{{ $thread.getTypeHandler() }}" />
								<xf:if is="$threadTypeHandler.getTypeIconClass()">
									<li>
										<xf:set var="$threadTypePhrase" value="{{ $threadTypeHandler.getTypeTitle() }}" />
										<xf:fa class="structItem-status" icon="{{ $threadTypeHandler.getTypeIconClass() }}" title="{$threadTypePhrase|for_attr}" />
										<span class="u-srOnly">{$threadTypePhrase}</span>
									</li>
								</xf:if>
							</xf:if>
						</xf:extension>
					</xf:if>
				</xf:extension>
				</xf:contentcheck>
				</ul>
			</xf:if>

			<div class="structItem-title">
				<xf:set var="$canPreview" value="{{ $thread.canPreview() }}" />
				<xf:if is="$thread.prefix_id">
					<xf:if is="$forum">
						<a href="{{ link('forums', $forum, {'prefix_id': $thread.prefix_id}) }}" class="labelLink" rel="nofollow">{{ prefix('thread', $thread, 'html', '') }}</a>
					<xf:else />
						{{ prefix('thread', $thread, 'html', '') }}
					</xf:if>
				</xf:if>
				<a href="{{ link('threads' . (($thread.isUnread() AND !$forceRead) ? '/unread' : ''), $thread) }}" class="" data-tp-primary="on" data-xf-init="{{ $canPreview ? 'preview-tooltip' : '' }}" data-preview-url="{{ $canPreview ? link('threads/preview', $thread) : '' }}"
					{{ !$thread.isSearchEngineIndexable() ? 'rel="nofollow"' : '' }}>
					{$thread.title}
				</a>
			</div>

			<div class="structItem-minor">
				<xf:if contentcheck="true">
					<ul class="structItem-extraInfo">
					<xf:contentcheck>
						<xf:if is="property('reactionSummaryOnLists') == 'minor_opposite' && $thread.first_post_reactions">
							<li><xf:reactions summary="true" reactions="{$thread.first_post_reactions}" /></li>
						</xf:if>
						<xf:if is="{$extraInfo}">
							<li>{$extraInfo}</li>
						<xf:elseif is="$allowEdit AND $thread.canEdit() AND $thread.canUseInlineModeration()" />
							<xf:if is="!$allowInlineMod OR !$forum">
								<xf:set var="$editParams" value="{{ {
									'_xfNoInlineMod': !$allowInlineMod ? 1 : null,
									 '_xfForumName': !$forum ? 1 : 0
								} }}" />
							<xf:else />
								<xf:set var="$editParams" value="{{ [] }}" />
							</xf:if>
							<xf:if is="$thread.discussion_type != 'redirect'">
								<li class="structItem-extraInfoMinor">
									<a href="{{ link('threads/edit', $thread) }}" data-xf-click="overlay" data-cache="false" data-href="{{ link('threads/edit', $thread, $editParams) }}">
										{{ phrase('edit') }}
									</a>
								</li>
							</xf:if>
						</xf:if>
						<xf:if is="$chooseName">
							<li><xf:checkbox standalone="true">
								<xf:option name="{$chooseName}[]" value="{$thread.thread_id}" class="js-chooseItem" />
							</xf:checkbox></li>
						<xf:elseif is="$allowInlineMod AND $thread.canUseInlineModeration()" />
							<li><xf:checkbox standalone="true">
								<xf:option value="{$thread.thread_id}" class="js-inlineModToggle"
									data-xf-init="tooltip"
									title="{{ phrase('select_for_moderation') }}"
									label="{{ phrase('select_for_moderation') }}"
									hiddenlabel="true"
								/>
							</xf:checkbox></li>
						</xf:if>
					</xf:contentcheck>
					</ul>
				</xf:if>

				<xf:if is="$thread.discussion_state == 'deleted'">
					<xf:if is="{$extraInfo}"><span class="structItem-extraInfo">{$extraInfo}</span></xf:if>

					<xf:macro id="deletion_macros::notice" arg-log="{$thread.DeletionLog}" />
				<xf:else />
					<ul class="structItem-parts">
						<li><xf:username user="$thread.User" defaultname="{$thread.username}" /></li>
						<li class="structItem-startDate"><a href="{{ link('threads', $thread) }}" rel="nofollow"><xf:date time="{$thread.post_date}" /></a></li>
						<xf:if is="!$forum">
							<li><a href="{{ link('forums', $thread.Forum) }}">{$thread.Forum.title}</a></li>
						</xf:if>
					</ul>

					<xf:if is="$thread.discussion_type != 'redirect' && $thread.reply_count >= $xf.options.messagesPerPage && $xf.options.lastPageLinks">
						<span class="structItem-pageJump">
						<xf:foreach loop="{{ last_pages($thread.reply_count + 1, $xf.options.messagesPerPage, $xf.options.lastPageLinks) }}" value="$p">
							<a href="{{ link('threads', $thread, {'page': $p}) }}">{$p}</a>
						</xf:foreach>
						</span>
					</xf:if>
				</xf:if>
			</div>
		</div>
	</xf:extension>

	<xf:extension id="meta_cell">
		<div class="structItem-cell structItem-cell--meta" title="{{ phrase('first_message_reaction_score:')|for_attr }} {$thread.first_post_reaction_score|number}">
			<dl class="pairs pairs--justified">
				<dt>{{ phrase('replies') }}</dt>
				<dd>{{ $thread.discussion_type == 'redirect' ? '&ndash;' : $thread.reply_count|number_short }}</dd>
			</dl>
			<dl class="pairs pairs--justified structItem-minor">
				<dt>{{ phrase('views') }}</dt>
				<dd>{{ $thread.discussion_type == 'redirect' ? '&ndash;' : ($thread.view_count > $thread.reply_count ? $thread.view_count|number_short : number_short($thread.reply_count+1)) }}</dd>
			</dl>
		</div>
	</xf:extension>

	<xf:extension id="latest_cell">
		<div class="structItem-cell structItem-cell--latest">
			<xf:if is="$thread.discussion_type == 'redirect'">
				{{ phrase('n_a') }}
			<xf:else />
				<a href="{{ link('threads/latest', $thread) }}" rel="nofollow"><xf:date time="{$thread.last_post_date}" class="structItem-latestDate" /></a>
				<div class="structItem-minor">
					<xf:if is="$xf.visitor.isIgnoring($thread.last_post_user_id)">
						{{ phrase('ignored_member') }}
					<xf:else />
						<xf:username user="{$thread.LastPoster}" defaultname="{$thread.last_post_username}" />
					</xf:if>
				</div>
			</xf:if>
		</div>
	</xf:extension>

	<xf:extension id="icon_end_cell">
		<div class="structItem-cell structItem-cell--icon structItem-cell--iconEnd">
			<div class="structItem-iconContainer">
				<xf:if is="$xf.visitor.isIgnoring($thread.last_post_user_id) OR $thread.discussion_type == 'redirect'">
					<xf:avatar user="{{ null }}" size="xxs" />
				<xf:else />
					<xf:avatar user="{$thread.LastPoster}" defaultname="{$thread.last_post_username}" size="xxs" />
				</xf:if>
			</div>
		</div>
	</xf:extension>

	</div>
</xf:macro>

<xf:macro id="item_new_posts" arg-thread="!">
	<div class="contentRow">
		<div class="contentRow-figure">
			<xf:avatar user="$thread.LastPoster" size="xxs" defaultname="{$thread.last_post_username}" />
		</div>
		<div class="contentRow-main contentRow-main--close">
			<xf:if is="$thread.isUnread()">
				<a href="{{ link('threads/unread', $thread) }}" {{ !$thread.isSearchEngineIndexable() ? 'rel="nofollow"' : '' }}>{{ prefix('thread', $thread) }}{$thread.title}</a>
			<xf:else />
				<a href="{{ link('threads/post', $thread, {'post_id': $thread.last_post_id}) }}" {{ !$thread.isSearchEngineIndexable() ? 'rel="nofollow"' : '' }}>{{ prefix('thread', $thread) }}{$thread.title}</a>
			</xf:if>

			<div class="contentRow-minor contentRow-minor--hideLinks">
				<ul class="listInline listInline--bullet">
					<li>{{ phrase('latest_x', {'name': $thread.last_post_cache.username}) }}</li>
					<li><xf:date time="{$thread.last_post_date}" /></li>
				</ul>
			</div>
			<div class="contentRow-minor contentRow-minor--hideLinks">
				<a href="{{ link('forums', $thread.Forum) }}">{$thread.Forum.title}</a>
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="item_new_threads" arg-thread="!">
	<div class="contentRow">
		<div class="contentRow-figure">
			<xf:avatar user="$thread.User" size="xxs" defaultname="{$thread.username}" />
		</div>
		<div class="contentRow-main contentRow-main--close">
			<a href="{{ link('threads', $thread) }}" {{ !$thread.isSearchEngineIndexable() ? 'rel="nofollow"' : '' }}>{{ prefix('thread', $thread) }}{$thread.title}</a>

			<div class="contentRow-minor contentRow-minor--hideLinks">
				<ul class="listInline listInline--bullet">
					<li>{{ phrase('started_by_x', {'name': $thread.username}) }}</li>
					<li><xf:date time="{$thread.post_date}" /></li>
					<li>{{ phrase('replies:') }} {$thread.reply_count|number_short}</li>
				</ul>
			</div>
			<div class="contentRow-minor contentRow-minor--hideLinks">
				<a href="{{ link('forums', $thread.Forum) }}">{$thread.Forum.title}</a>
			</div>
		</div>
	</div>
</xf:macro>

<xf:macro id="quick_thread"
	arg-forum="!"
	arg-page="1"
	arg-order="last_post_date"
	arg-direction="desc"
	arg-prefixes="{{ [] }}">

	<xf:css src="structured_list.less" />

	<xf:if is="$xf.cookieConsent.isCaptchaConsented() && ($forum.canCreateThread() OR $forum.canCreateThreadPreReg())">

		<xf:js src="xf/thread.js" min="1" />

		<xf:set var="$inlineMode" value="{{ ($page == 1 && $order == 'last_post_date' && $direction == 'desc') ? true : false }}" />

		<xf:form action="{{ link('forums/post-thread', $forum, {'inline-mode': $inlineMode}) }}" ajax="true"
			class="structItem structItem--quickCreate"
			draft="{{ link('forums/draft', $forum) }}"
			data-xf-init="quick-thread"
			data-focus-activate=".js-titleInput"
			data-focus-activate-href="{{ link('forums/post-thread', $forum, {'inline-mode': true}) }}"
			data-focus-activate-target=".js-quickThreadFields"
			data-insert-target=".js-threadList"
			data-replace-target=".js-emptyThreadList">

		<xf:extension id="icon_cell">
			<div class="structItem-cell structItem-cell--icon">
				<div class="structItem-iconContainer">
					<xf:avatar user="$xf.visitor" size="s" />
				</div>
			</div>
		</xf:extension>

		<xf:extension id="main_cell">
			<div class="structItem-cell structItem-cell--newThread js-prefixListenContainer">

				<xf:formrow rowtype="noGutter noLabel fullWidth noPadding mergeNext"
					label="{{ phrase('title') }}">

					<xf:prefixinput maxlength="{{ max_length('XF:Thread', 'title') }}"
						placeholder="{$forum.thread_prompt}"
						title="{{ phrase('post_new_thread_in_this_forum') }}"
						prefix-value="{$forum.default_prefix_id}"
						type="thread"
						prefixes="{$prefixes}"
						data-xf-init="tooltip"
						rows="1"
						help-href="{{ link('forums/prefix-help', $forum) }}"
						help-skip-initial="{{ true }}" />

					<!--[XF:qt_title_after]-->
				</xf:formrow>

				<div class="js-quickThreadFields inserter-container is-hidden"></div>
			</div>
		</xf:extension>

		</xf:form>
	</xf:if>

</xf:macro>]]></template>
  <template type="public" title="thread_list_question_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="item" extends="thread_list_macros::item">
	<xf:extension id="meta_cell">
		<div class="structItem-cell structItem-cell--meta" title="{{ phrase('first_message_reaction_score:')|for_attr }} {$thread.first_post_reaction_score|number}">
			<dl class="pairs pairs--justified">
				<dt>{{ phrase('answers') }}</dt>
				<dd>{{ $thread.discussion_type == 'redirect' ? '&ndash;' : $thread.reply_count|number_short }}</dd>
			</dl>
			<dl class="pairs pairs--justified structItem-minor">
				<dt>{{ phrase('views') }}</dt>
				<dd>{{ $thread.discussion_type == 'redirect' ? '&ndash;' : ($thread.view_count > $thread.reply_count ? $thread.view_count|number_short : number_short($thread.reply_count+1)) }}</dd>
			</dl>
		</div>
	</xf:extension>
</xf:macro>]]></template>
  <template type="public" title="thread_list_suggestion_macros" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="item" extends="thread_list_macros::item">
	<xf:extension id="icon_cell">
		<div class="structItem-cell structItem-cell--vote">
			<xf:if is="$thread.isContentVotingSupported()">
				<xf:macro id="content_vote_macros::vote_display"
					arg-content="{$thread}"
					arg-extraClass="contentVote--small" />
			<xf:else />
				<xf:macro id="content_vote_macros::vote_display_placeholder" arg-extraClass="contentVote--small" />
			</xf:if>
		</div>

		<xf:extensionparent />
	</xf:extension>

	<xf:extension id="before_status_watch">
		<xf:if is="$xf.visitor.user_id">
			<xf:set var="$voteState" value="{{ $thread.getVisitorContentVote() }}" />
			<xf:if is="$voteState == 'up'">
				<li>
					<i class="structItem-status structItem-status--upvoted" aria-hidden="true" title="{{ phrase('upvoted')|for_attr }}"></i>
					<span class="u-srOnly">{{ phrase('upvoted') }}</span>
				</li>
			<xf:elseif is="$voteState == 'down'" />
				<li>
					<i class="structItem-status structItem-status--downvoted" aria-hidden="true" title="{{ phrase('downvoted')|for_attr }}"></i>
					<span class="u-srOnly">{{ phrase('downvoted') }}</span>
				</li>
			</xf:if>
		</xf:if>
	</xf:extension>
</xf:macro>

<xf:macro id="quick_thread" extends="thread_list_macros::quick_thread">
	<xf:extension id="icon_cell">
		<div class="structItem-cell structItem-cell--vote">
			<xf:macro id="content_vote_macros::vote_display_placeholder" arg-extraClass="contentVote--small" />
		</div>

		<xf:extensionparent />
	</xf:extension>
</xf:macro>]]></template>
  <template type="public" title="thread_move" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('move_thread:') }} {{ prefix('thread', $thread, 'escaped') }}{$thread.title}</xf:title>
<xf:h1>{{ phrase('move_thread:') }} {{ prefix('thread', $thread) }}{$thread.title}</xf:h1>

<xf:breadcrumb source="$thread.getBreadcrumbs()" />

<xf:form action="{{ link('threads/move', $thread) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body js-prefixListenContainer">
			<xf:prefixinputrow
				label="{{ phrase('title') }}"
				prefixes="{{ $thread.isPrefixEditable() ? $prefixes : [] }}"
				type="thread"
				prefix-value="{$thread.prefix_id}"
				textbox-value="{$thread.title}"
				href="{{ link('forums/prefixes') }}"
				listen-to="< .js-prefixListenContainer | .js-nodeList"
				autofocus="autofocus"
				maxlength="{{ max_length($thread, 'title') }}" />

			<xf:selectrow name="target_node_id" value="{$forum.node_id}" class="js-nodeList"
				data-xf-init="input-validator"
				data-validation-url="{{ link('threads/move-warnings', $thread) }}"
				data-error-target="< dd | .js-threadMoveWarnings"
				label="{{ phrase('destination_forum') }}">

				<xf:foreach loop="$nodeTree.getFlattened(0)" value="$treeEntry">
					<xf:option value="{$treeEntry.record.node_id}" disabled="{{ $treeEntry.record.node_type_id != 'Forum' ? 'disabled' : '' }}">
						{{ repeat_raw('&nbsp; ', $treeEntry.depth) }} {$treeEntry.record.title}
					</xf:option>
				</xf:foreach>
				<xf:explain>
					<div class="block-rowMessage block-rowMessage--important u-hidden u-hidden--transition js-threadMoveWarnings"></div>
				</xf:explain>
			</xf:selectrow>

			<xf:macro id="helper_action::thread_redirect" arg-label="{{ phrase('redirection_notice') }}" />

			<xf:checkboxrow>
				<xf:option name="notify_watchers" value="1" selected="{{ true }}">{{ phrase('notify_members_watching_destination_forum') }}</xf:option>
			</xf:checkboxrow>

			<xf:if is="$thread.canSendModeratorActionAlert()">
				<xf:macro id="helper_action::thread_alert" arg-selected="{{ true }}" />
			</xf:if>
		</div>
		<xf:submitrow icon="save" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="public" title="thread_multi_quote" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="multi_quote_macros::block"
	arg-quotes="{$quotes}"
	arg-messages="{$posts}"
	arg-containerRelation="Thread"
	arg-dateKey="post_date"
	arg-bbCodeContext="post" />
]]></template>
  <template type="public" title="thread_new_posts" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$firstUnshownPost">
	<div class="message">
		<div class="message-inner">
			<div class="message-cell message-cell--alert">
				{{ phrase('there_more_posts_to_display') }} <a href="{{ link('posts', $firstUnshownPost) }}">{{ phrase('view_them') }}</a>
			</div>
		</div>
	</div>
</xf:if>

<xf:foreach loop="$posts" value="$post">
	<xf:macro id="{{ $templateOverrides.post_macro ?: 'post_macros::post' }}"
		arg-post="{$post}"
		arg-thread="{$thread}"
		args="{$templateOverrides.post_macro_args}" />
</xf:foreach>]]></template>
  <template type="public" title="thread_preview" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<div class="tooltip-content-inner">
	{{ bb_code($firstPost.message, 'post:thread_preview', $firstPost, {
		'lightbox': false
	}) }}
	<span class="tooltip-content-cover"></span>
</div>]]></template>
  <template type="public" title="thread_reply" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:title>{{ phrase('reply_to_thread') }}</xf:title>

<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>

<xf:breadcrumb source="$thread.getBreadcrumbs()" />

<xf:form action="{{ link('threads/add-reply', $thread) }}" class="block" ajax="true" draft="{{ link('threads/draft', $thread) }}" data-xf-init="attachment-manager">
	<div class="block-container">
		<div class="block-body">
			<xf:editorrow name="message"
				value="{$defaultMessage}"
				attachments="{{ $attachmentData ? $attachmentData.attachments : [] }}"
				rowtype="fullWidth noLabel"
				placeholder="{{ phrase('reply_placeholder') }}"
				label="{{ phrase('message') }}"
				data-preview-url="{{ link('threads/reply-preview', $thread) }}" />

			<xf:formrow>
				<xf:if is="$attachmentData">
					<xf:macro id="helper_attach_upload::upload_block"
						arg-attachmentData="{$attachmentData}"
						arg-forceHash="{$thread.draft_reply.attachment_hash}" />
				</xf:if>

				<xf:if is="$xf.options.multiQuote">
					<xf:macro id="multi_quote_macros::button"
						arg-href="{{ link('threads/multi-quote', $thread) }}"
						arg-messageSelector=".js-post"
						arg-storageKey="multiQuoteThread" />
				</xf:if>
			</xf:formrow>

			<xf:if is="!$xf.visitor.user_id AND !$thread.canReplyPreReg()">
				<xf:textboxrow name="_xfUsername" data-xf-init="guest-username"
					autocomplete="username"
					maxlength="{{ max_length($xf.visitor, 'username') }}"
					label="{{ phrase('name') }}"/>
			<xf:elseif is="$xf.visitor.user_id" />
				<xf:macro id="helper_thread_options::watch_input" arg-thread="{$thread}" />
				<xf:macro id="helper_thread_options::thread_status" arg-thread="{$thread}" />
			</xf:if>

			<xf:captcharow label="{{ phrase('verification') }}" context="xf_post_thread_reply" />
		</div>
		<xf:submitrow submit="{{ phrase('post_reply') }}" icon="reply" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="public" title="thread_reply_bans" version_id="2000036" version_string="2.0.0 Beta 6"><![CDATA[<xf:title>{{ phrase('manage_reply_bans:') }} {{ prefix('thread', $thread, 'escaped') }}{$thread.title}</xf:title>
<xf:h1>{{ phrase('manage_reply_bans:') }} {{ prefix('thread', $thread) }}{$thread.title}</xf:h1>

<xf:breadcrumb source="$thread.getBreadcrumbs()" />

<xf:form action="{{ link('threads/reply-bans', $thread) }}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$bans is not empty">
				<xf:datalist data-xf-init="responsive-data-list">
					<xf:datarow rowtype="header">
						<xf:cell>{{ phrase('user') }}</xf:cell>
						<xf:cell>{{ phrase('reason') }}</xf:cell>
						<xf:cell>{{ phrase('end_date') }}</xf:cell>
						<xf:cell class="dataList-cell--min">{{ phrase('delete') }}</xf:cell>
					</xf:datarow>
					<xf:foreach loop="$bans" value="$ban">
						<xf:datarow rowclass="dataList-row--noHover">
							<xf:cell><xf:username user="$ban.User" /></xf:cell>
							<xf:cell>
								<xf:if is="$ban.reason">
									{$ban.reason}
								<xf:else />
									{{ phrase('n_a') }}
								</xf:if>
							</xf:cell>
							<xf:cell>
								<xf:if is="$ban.expiry_date">
									<xf:date time="{$ban.expiry_date}" />
								<xf:else />
									{{ phrase('permanent') }}
								</xf:if>
							</xf:cell>
							<xf:toggle name="delete[{$ban.user_id}]" class="dataList-cell--separated dataList-cell--alt" />
						</xf:datarow>
					</xf:foreach>
				</xf:datalist>
			</div>
			<h2 class="block-formSectionHeader">{{ phrase('new_reply_ban') }}</h2>
			<div class="block-body">
			</xf:if>

			<xf:textboxrow name="username" ac="single"
				maxlength="{{ max_length($xf.visitor, 'username') }}"
				label="{{ phrase('user_name') }}"
				explain="{{ phrase('this_user_still_able_to_view_thread_not_reply') }}" />

			<xf:radiorow name="ban_length"
				label="{{ phrase('ban_length') }}">

				<xf:option value="permanent"
					label="{{ phrase('permanent') }}" />

				<xf:option value="temporary" selected="true"
					label="{{ phrase('temporary:') }}">

					<xf:dependent>
						<div class="inputGroup inputGroup--auto">
							<xf:textbox name="ban_length_value" value="7" />
							<span class="inputGroup-splitter"></span>
							<xf:select name="ban_length_unit">
								<xf:option value="hours">{{ phrase('hours') }}</xf:option>
								<xf:option value="days" selected="true">{{ phrase('days') }}</xf:option>
								<xf:option value="weeks">{{ phrase('weeks') }}</xf:option>
								<xf:option value="months">{{ phrase('months') }}</xf:option>
							</xf:select>
						</div>
					</xf:dependent>
				</xf:option>
			</xf:radiorow>

			<xf:textboxrow name="reason" maxlength="{{ max_length('XF:ThreadReplyBan', 'reason') }}"
				label="{{ phrase('reason') }}"
				explain="{{ phrase('this_will_be_shown_to_user_if_you_choose_to_notify_them') }}" />

			<xf:checkboxrow>
				<xf:option name="send_alert">{{ phrase('notify_user_of_this_action') }}</xf:option>
			</xf:checkboxrow>
		</div>
		<xf:submitrow icon="save" sticky="true" />
	</div>
</xf:form>]]></template>
  <template type="public" title="thread_save_draft" version_id="2001270" version_string="2.0.12"><![CDATA[<xf:if is="{$hasNewPost}">
	<div class="message js-newMessagesIndicator">
		<div class="message-inner">
			<div class="message-cell message-cell--alert">
				{{ phrase('messages_have_been_posted_since_you_loaded_this_page') }}
				<a href="{{ link('threads/new-posts', $thread, {'after': $lastDate}) }}" data-xf-click="message-loader">{{ phrase('view_them') }}</a>
			</div>
		</div>
	</div>
</xf:if>]]></template>
  <template type="public" title="thread_tags" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('edit_tags') }}</xf:title>

<xf:breadcrumb source="$thread.getBreadcrumbs()" />

<xf:macro id="tag_macros::edit_form"
	arg-action="{{ link('threads/tags', $thread) }}"
	arg-uneditableTags="{$uneditableTags}"
	arg-editableTags="{$editableTags}"
	arg-minTags="{$forum.min_tags}"
	arg-tagList="tagList--thread-{$thread.thread_id}" />
]]></template>
  <template type="public" title="thread_tags_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="tag_macros::list"
	arg-tags="{$thread.tags}"
	arg-tagList="tagList--thread-{$thread.thread_id}"
	arg-editLink="{{ $thread.canEditTags() ? link('threads/tags', $thread) : '' }}" />]]></template>
  <template type="public" title="thread_type_fields_article" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$context == 'create' AND $subContext == 'quick'">
	<xf:set var="$rowType" value="fullWidth noGutter mergeNext" />
<xf:elseif is="$context == 'edit' AND $subContext == 'first_post_quick'" />
	<xf:set var="$rowType" value="fullWidth mergeNext" />
<xf:else />
	<xf:set var="$rowType" value="" />
</xf:if>

<xf:set var="$show" value="{{
	$thread.Forum.forum_type_id == 'article'
	AND ($context != 'edit' OR $subContext != 'thread')
}}" />
<xf:if is="$show">
	<xf:formrow label="{{ phrase('article_cover_note_label') }}" rowtype="{$rowType}">
		<span class="u-muted">{{ phrase('article_cover_note_explain') }}</span>
	</xf:formrow>
</xf:if>]]></template>
  <template type="public" title="thread_type_fields_poll" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$context == 'create' AND $subContext == 'quick'">
	<xf:set var="$rowType" value="fullWidth noGutter mergeNext" />
<xf:elseif is="$context == 'edit' AND $subContext == 'first_post_quick'" />
	<xf:set var="$rowType" value="fullWidth mergeNext" />
<xf:else />
	<xf:set var="$rowType" value="" />
</xf:if>

<xf:macro id="poll_macros::add_edit_inputs"
	arg-draft="{$pollDraft}"
	arg-rowType="{$rowType}"
/>]]></template>
  <template type="public" title="thread_type_fields_question" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:if is="$context == 'create' AND $subContext == 'quick'">
	<xf:set var="$rowType" value="fullWidth noGutter mergeNext" />
<xf:elseif is="$context == 'edit' AND $subContext == 'first_post_quick'" />
	<xf:set var="$rowType" value="fullWidth mergeNext" />
<xf:else />
	<xf:set var="$rowType" value="" />
</xf:if>

<xf:if is="$thread.canEditModeratorFields()">
	<xf:radiorow name="question[allow_question_actions]" value="{$typeData.allow_question_actions}"
		label="{{ phrase('allow_question_actions') }}"
		rowtype="{$rowType}">
		<xf:option value="yes" label="{{ phrase('yes') }}" />
		<xf:option value="no" label="{{ phrase('no') }}" hint="{{ phrase('no_voting_or_solution_options_displayed_question') }}" />
		<xf:option value="paused" label="{{ phrase('paused') }}" hint="{{ phrase('voting_not_allowed_no_solution_existing_displayed_question') }}" />
	</xf:radiorow>
</xf:if>]]></template>
  <template type="public" title="thread_type_fields_suggestion" version_id="2020010" version_string="2.2.0 Alpha"><![CDATA[<xf:if is="$context == 'create' AND $subContext == 'quick'">
	<xf:set var="$rowType" value="fullWidth noGutter mergeNext" />
<xf:elseif is="$context == 'edit' AND $subContext == 'first_post_quick'" />
	<xf:set var="$rowType" value="fullWidth mergeNext" />
<xf:else />
	<xf:set var="$rowType" value="" />
</xf:if>

<xf:if is="$thread.canEditModeratorFields()">
	<xf:radiorow name="suggestion[allow_voting]" value="{$typeData.allow_voting}"
		label="{{ phrase('allow_suggestion_voting') }}"
		rowtype="{$rowType}">
		<xf:option value="yes" label="{{ phrase('yes') }}" />
		<xf:option value="no" label="{{ phrase('no') }}" hint="{{ phrase('no_voting_option_will_be_displayed_suggestion') }}" />
		<xf:option value="paused" label="{{ phrase('paused') }}" hint="{{ phrase('no_new_votes_allowed_but_existing_votes_displayed_suggestion') }}" />
	</xf:radiorow>
</xf:if>]]></template>
  <template type="public" title="thread_view" version_id="2030032" version_string="2.3.0 Beta 2"><![CDATA[<xf:title page="{$page}">{{ prefix('thread', $thread, 'escaped') }}{$thread.title}</xf:title>
<xf:h1>{{ prefix('thread', $thread) }}{$thread.title}</xf:h1>

<xf:if is="!$thread.isSearchEngineIndexable()">
	<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>
</xf:if>

<xf:description meta="false">
	<ul class="listInline listInline--bullet">
		<li>
			<xf:fa icon="fa-user" title="{{ phrase('thread_starter')|for_attr }}" />
			<span class="u-srOnly">{{ phrase('thread_starter') }}</span>

			<xf:username user="{$thread.User}" defaultname="{$thread.username}" class="u-concealed" />
		</li>
		<li>
			<xf:fa icon="fa-clock" title="{{ phrase('start_date')|for_attr }}" />
			<span class="u-srOnly">{{ phrase('start_date') }}</span>

			<a href="{{ link('threads', $thread) }}" class="u-concealed"><xf:date time="{$thread.post_date}" /></a>
		</li>
		<xf:if is="$thread.featured">
			<li><span class="label label--accent">{{ phrase('featured') }}</span></li>
		</xf:if>
		<xf:if is="$xf.options.enableTagging AND ($thread.canEditTags() OR $thread.tags)">
			<li>
				<xf:macro id="tag_macros::list"
					arg-tags="{$thread.tags}"
					arg-tagList="tagList--thread-{$thread.thread_id}"
					arg-editLink="{{ $thread.canEditTags() ? link('threads/tags', $thread) : '' }}" />
			</li>
		</xf:if>
	</ul>
</xf:description>

<xf:set var="$fpSnippet" value="{{ snippet($firstPost.message, 0, {'stripBbCode': true}) }}" />

<xf:macro id="metadata_macros::metadata"
	arg-description="{$fpSnippet}"
	arg-shareUrl="{{ link('canonical:threads', $thread) }}"
	arg-canonicalUrl="{{ link('canonical:threads', $thread, {'page': $page}) }}" />

<xf:macro id="metadata_macros::oembed"
	arg-oembedUrl="{$thread.getOembedEndpointUrl()}"
	arg-title="{$thread.getContentTitle()}" />

<xf:page option="ldJsonHtml">
	<xf:extension id="structured_data_extra_params" value="{{ [] }}" />
	<xf:extension id="structured_data">
		<xf:set var="$ldJson"
			value="{{ $thread.getLdStructuredData($firstPost, $page, extension_value('structured_data_extra_params')) }}"
		/>
		<xf:if is="$ldJson">
			<script type="application/ld+json">
				{$ldJson|json(true)|raw}
			</script>
		</xf:if>
	</xf:extension>
</xf:page>

<xf:extension id="content_top"></xf:extension>
<!--[XF:content_top]-->

<xf:if is="$pendingApproval">
	<div class="blockMessage blockMessage--important">{{ phrase('content_submitted_displayed_pending_approval') }}</div>
</xf:if>

<xf:if is="$thread.prefix_id">
	<xf:if contentcheck="true">
		<div class="blockMessage blockMessage--alt blockMessage--small blockMessage--close">
			<xf:contentcheck>{{ prefix_description('thread', $thread.prefix_id) }}</xf:contentcheck>
		</div>
	</xf:if>
</xf:if>

<xf:macro id="forum_macros::forum_page_options" arg-forum="{$forum}" arg-thread="{$thread}" />

<xf:breadcrumb source="$forum.getBreadcrumbs()" />

<xf:if is="$canInlineMod OR $thread.canUseInlineModeration()">
	<xf:js src="xf/inline_mod.js" min="1" />
</xf:if>

<xf:extension id="above_messages"></xf:extension>
<xf:ad position="thread_view_above_messages" arg-thread="{$thread}" />
<xf:widgetpos id="thread_view_above_messages" context-thread="{$thread}" />

<xf:set var="$threadActionsHtml">
	<xf:extension id="thread_actions">
		<xf:if contentcheck="true">
			<div class="block-outer-opposite">
				<div class="buttonGroup">
				<xf:contentcheck>
					<xf:extension id="thread_action_buttons">
						<xf:if is="$canInlineMod">
							<xf:macro id="inline_mod_macros::button" />
						</xf:if>
						<xf:if is="$thread.discussion_state == 'deleted' AND $thread.canUndelete()">
							<xf:button href="{{ link('threads/undelete', $thread) }}" class="button--link" overlay="true">
								{{ phrase('undelete') }}
							</xf:button>
						</xf:if>
						<xf:if is="$thread.canApproveUnapprove() AND $thread.discussion_state == 'moderated'">
							<xf:button href="{{ link('threads/approve', $thread) }}" class="button--link" overlay="true">
								{{ phrase('approve') }}
							</xf:button>
						</xf:if>
						<xf:if is="$xf.visitor.user_id AND $thread.isUnread()">
							<xf:button href="{{ ($firstUnread AND $isSimpleDateDisplay) ? ('#post-' . $firstUnread.post_id) : link('threads/unread', $thread, {'new': 1}) }}"
								class="button--link"
								data-xf-click="scroll-to"
								data-silent="true">
									{{ phrase('jump_to_new') }}
							</xf:button>
						</xf:if>
						<xf:if is="$thread.canWatch()">
							<xf:button href="{{ link('threads/watch', $thread) }}" class="button--link"
								data-xf-click="switch-overlay"
								data-sk-watch="{{ phrase('watch') }}"
								data-sk-unwatch="{{ phrase('unwatch') }}">
								<xf:if is="{$thread.Watch.{$xf.visitor.user_id}}">
									{{ phrase('unwatch') }}
								<xf:else />
									{{ phrase('watch') }}
								</xf:if>
							</xf:button>
						</xf:if>

						<xf:if contentcheck="true">
							<div class="buttonGroup-buttonWrapper">
								<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true" title="{{ phrase('more_options') }}">&#8226;&#8226;&#8226;</xf:button>
								<div class="menu" data-menu="menu" aria-hidden="true">
									<div class="menu-content">
										<h4 class="menu-header">{{ phrase('more_options') }}</h4>
										<xf:contentcheck>
											<!--[XF:thread_tools_menu:top]-->
											<xf:if is="$thread.canEdit()">
												<a href="{{ link('threads/edit', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('edit_thread') }}</a>
											</xf:if>
											<xf:if is="$thread.canChangeType() AND count($creatableThreadTypes) > 1">
												<a href="{{ link('threads/change-type', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('change_thread_type') }}</a>
											</xf:if>
											<xf:if is="$thread.canLockUnlock()">
												<a href="{{ link('threads/quick-close', $thread) }}"
													class="menu-linkRow"
													data-xf-click="switch"
													data-menu-closer="true">

													<xf:if is="$thread.discussion_open">
														{{ phrase('lock_thread') }}
													<xf:else />
														{{ phrase('unlock_thread') }}
													</xf:if>
												</a>
											</xf:if>
											<xf:if is="$thread.canStickUnstick()">
												<a href="{{ link('threads/quick-stick', $thread) }}"
													class="menu-linkRow"
													data-xf-click="switch"
													data-menu-closer="true">

													<xf:if is="$thread.sticky">
														{{ phrase('unstick_thread') }}
													<xf:else />
														{{ phrase('stick_thread') }}
													</xf:if>
												</a>
											</xf:if>
											<xf:if is="$thread.canFeatureUnfeature()">
												<a href="{{ link('threads/feature', $thread) }}" class="menu-linkRow"
													data-xf-click="overlay">

													<xf:if is="$thread.isFeatured()">
														{{ phrase('manage_feature') }}
													<xf:else />
														{{ phrase('feature_thread') }}
													</xf:if>
												</a>
											</xf:if>
											<xf:if is="$thread.canCreatePoll()">
												<a href="{{ link('threads/poll/create', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('create_poll') }}</a>
											</xf:if>
											<xf:if is="$thread.canDelete('soft')">
												<a href="{{ link('threads/delete', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('delete_thread') }}</a>
											</xf:if>
											<xf:if is="$thread.canMove()">
												<a href="{{ link('threads/move', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('move_thread') }}</a>
											</xf:if>
											<xf:if is="$thread.canReplyBan()">
												<a href="{{ link('threads/reply-bans', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('manage_reply_bans') }}</a>
											</xf:if>
											<xf:if is="$thread.canViewModeratorLogs()">
												<a href="{{ link('threads/moderator-actions', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('moderator_actions') }}</a>
											</xf:if>
											<!--[XF:thread_tools_menu:before_footer]-->
											<xf:if is="$thread.canUseInlineModeration()">
												<div class="menu-footer"
													data-xf-init="inline-mod"
													data-type="thread"
													data-href="{{ link('inline-mod') }}"
													data-toggle=".js-threadInlineModToggle">
													<xf:checkbox>
														<xf:option class="js-threadInlineModToggle" value="{$thread.thread_id}">{{ phrase('select_for_moderation') }}</xf:option>
													</xf:checkbox>
												</div>
											</xf:if>
											<!--[XF:thread_tools_menu:bottom]-->
										</xf:contentcheck>
									</div>
								</div>
							</div>
						</xf:if>
					</xf:extension>
				</xf:contentcheck>
				</div>
			</div>
		</xf:if>
	</xf:extension>
</xf:set>

<xf:set var="$postSortFilterHtml">
	<xf:extension id="post_sort_filter">
		<xf:if is="($posts is not empty OR $filters)">
			<xf:if contentcheck="true">
				<div class="tabs tabs--standalone tabs--standalone--small tabs--standalone--inline">
				<xf:contentcheck>
					<xf:if is="$availableSorts AND count($availableSorts) > 1">
						<xf:foreach loop="$availableSorts" key="$sortKey" value="$null">
							<a href="{{ link('threads', $thread, $pageNavFilters|replace({'order': $sortKey == $defaultOrder ? null : $sortKey})) }}"
								class="tabs-tab {{ $sortKey == $effectiveOrder ? 'is-active' : '' }}"
								rel="nofollow">
								{{ phrase_dynamic('thread_sort.' . $sortKey) }}
							</a>
						</xf:foreach>
					</xf:if>
					<xf:extension id="post_sort_filter_end"></xf:extension>
				</xf:contentcheck>
				</div>
			</xf:if>
		</xf:if>
	</xf:extension>
</xf:set>

<xf:if is="$isFirstPostPinned">
	<xf:extension id="pinned_block_before"></xf:extension>

	<xf:extension id="pinned_block_classes" value="" />
	<div class="block block--messages {{ extension_value('pinned_block_classes') }}"
		data-xf-init="lightbox{{ $xf.options.selectQuotable ? ' select-to-quote' : '' }}"
		data-message-selector=".js-post"
		data-lb-id="thread-{$thread.thread_id}">
		<xf:extension id="pinned_outer_before">
			<xf:macro id="thread_status" arg-thread="{$thread}" arg-wrapperClass="block-outer" />

			<div class="block-outer"><xf:trim>
				{$threadActionsHtml}
			</xf:trim></div>

			<xf:macro id="thread_custom_fields_status"
				arg-thread="{$thread}"
				arg-forum="{$forum}"
				arg-wrapperClass="block-outer" />
		</xf:extension>

		<div class="block-container">
			<div class="block-body">
				<xf:extension id="pinned_body">
					<xf:macro id="{{ $templateOverrides.pinned_first_post_macro ?: 'post_macros::post' }}"
						arg-post="{$pinnedPost}"
						arg-thread="{$thread}"
						arg-highlightedPosts="{$highlightedPosts}"
						args="{$templateOverrides.pinned_first_post_macro_args}" />
				</xf:extension>
			</div>
		</div>

		<xf:extension id="pinned_outer_after"></xf:extension>
	</div>
</xf:if>

<xf:extension id="above_messages_below_pinned"></xf:extension>

<xf:extension id="message_block_classes" value="block--messages" />
<div class="block {{ extension_value('message_block_classes') }}" data-xf-init="{{ $canInlineMod ? 'inline-mod' : '' }}" data-type="post" data-href="{{ link('inline-mod') }}" data-search-target="*">

	<span class="u-anchorTarget" id="posts"></span>

	<xf:if is="!$isFirstPostPinned">
		<xf:macro id="thread_status" arg-thread="{$thread}" arg-wrapperClass="block-outer" />
	</xf:if>

	<div class="block-outer"><xf:extension id="messages_block_outer"><xf:trim>
		<xf:pagenav
			page="{$page}" perpage="{$perPage}" total="{$totalPosts}"
			link="threads" data="{$thread}" params="{$pageNavFilters}" hash="{$pageNavHash}"
			wrapperclass="block-outer-main" />

			<xf:if is="!$isFirstPostPinned">
				{$threadActionsHtml}
			</xf:if>

			<xf:if contentcheck="true">
				<div class="block-outer-opposite">
					<xf:contentcheck>{$postSortFilterHtml}</xf:contentcheck>
				</div>
			</xf:if>
	</xf:trim></xf:extension></div>

	<xf:extension id="messages_block_outer_secondary"></xf:extension>

	<xf:if is="!$isFirstPostPinned">
		<xf:macro id="thread_custom_fields_status"
			arg-thread="{$thread}"
			arg-forum="{$forum}"
			arg-wrapperClass="block-outer" />
	</xf:if>

	<div class="block-container lbContainer"
		data-xf-init="lightbox{{ $xf.options.selectQuotable ? ' select-to-quote' : '' }}"
		data-message-selector=".js-post"
		data-lb-id="thread-{$thread.thread_id}"
		data-lb-universal="{$xf.options.lightBoxUniversal}">

		<div class="block-body js-replyNewMessageContainer">
			<xf:if is="$posts is not empty">
				<xf:foreach loop="$posts" value="$post">

					<xf:extension id="messages_block_body_before_post"></xf:extension>

					<xf:if is="$post.message_state == 'deleted'">
						<xf:macro id="{{ $templateOverrides.post_deleted_macro ?: 'post_macros::post_deleted' }}"
							arg-post="{$post}"
							arg-thread="{$thread}"
							args="{$templateOverrides.post_deleted_macro_args}" />
					<xf:else />
						<xf:macro id="{{ $templateOverrides.post_macro ?: 'post_macros::post' }}"
							arg-post="{$post}"
							arg-thread="{$thread}"
							arg-highlightedPosts="{$highlightedPosts}"
							args="{$templateOverrides.post_macro_args}" />
					</xf:if>

					<xf:extension id="messages_block_body_after_post"></xf:extension>

				</xf:foreach>
			<xf:else />
				<xf:if is="$filters">
					<div class="message">
						<div class="message-inner">
							<div class="message-cell">
								{{ phrase('there_no_posts_matching_your_filters') }}
							</div>
						</div>
					</div>
				</xf:if>
			</xf:if>
		</div>
	</div>

	<xf:if contentcheck="true">
		<div class="block-outer block-outer--after">
			<xf:contentcheck>
				<xf:pagenav
					page="{$page}" perpage="{$perPage}" total="{$totalPosts}"
					link="threads" data="{$thread}" params="{$pageNavFilters}" hash="{$pageNavHash}"
					wrapperclass="block-outer-main" />

				<xf:showignored wrapperclass="block-outer-opposite" />
				<xf:if is="
					!$thread.canReply()
					AND !$thread.canReplyPreReg()
					AND $thread.discussion_state == 'visible'
					AND $thread.discussion_open
				">
					<div class="block-outer-opposite">
						<xf:if is="$xf.visitor.user_id">
							<span class="button button--wrap is-disabled">
								{{ phrase('no_permission_to_reply') }}
								<!-- this is not interactive so shouldn't be a button element -->
							</span>
						<xf:else />
							<xf:button href="{{ link('login') }}" class="button--link button--wrap" overlay="true">
								{{ phrase('log_in_or_register_to_reply') }}
							</xf:button>
						</xf:if>
					</div>
				</xf:if>
			</xf:contentcheck>
		</div>
	</xf:if>

	<xf:macro id="thread_status" arg-thread="{$thread}" arg-wrapperClass="block-outer block-outer--after" />
</div>

<xf:ad position="thread_view_below_messages" arg-thread="{$thread}" />
<xf:extension id="below_messages"></xf:extension>
<xf:widgetpos id="thread_view_below_messages" context-thread="{$thread}" />

<xf:set var="$isPreRegReply" value="{{ $thread.canReplyPreReg() }}" />
<xf:if is="$thread.canReply() OR $isPreRegReply">
	<xf:form action="{{ link('threads/add-reply', $thread) }}"
		ajax="true"
		draft="{{ link('threads/draft', $thread) }}"
		class="block js-quickReply"
		data-xf-init="attachment-manager quick-reply{{ ($xf.visitor.isShownCaptcha() AND !$isPreRegReply) ? ' guest-captcha' : '' }}"
		data-captcha-context="xf_guest_thread_quick_reply"
		data-message-container="div[data-type='post'] .js-replyNewMessageContainer">

		<xf:js src="xf/action.js, xf/message.js, xf/captcha.js" min="1" />

		<div class="block-container">
			<div class="block-body">
				<xf:macro id="quick_reply_macros::body"
					arg-message="{$thread.draft_reply.message}"
					arg-attachmentData="{$attachmentData}"
					arg-forceHash="{$thread.draft_reply.attachment_hash}"
					arg-messageSelector=".js-post"
					arg-multiQuoteHref="{{ link('threads/multi-quote', $thread) }}"
					arg-multiQuoteStorageKey="multiQuoteThread"
					arg-lastItemId="{$lastPost.post_id}"
					arg-lastDate="{$lastPost.post_date}"
					arg-lastKnownDate="{$thread.last_post_date}"
					arg-loadExtra="{$isSimpleDateDisplay}"
					arg-showGuestControls="{{ !$isPreRegReply }}"
					arg-previewUrl="{{ link('threads/reply-preview', $thread) }}"/>
			</div>
		</div>
	</xf:form>
</xf:if>

<xf:widgetpos id="thread_view_below_quick_reply" context-thread="{$thread}" />
<xf:extension id="below_quick_reply"></xf:extension>

<div class="blockMessage blockMessage--none">
	<xf:macro id="share_page_macros::buttons" arg-iconic="{{ true }}" arg-label="{{ phrase('share:') }}" />
</div>

<xf:extension id="below_share"></xf:extension>

<xf:macro id="thread_status" arg-thread="!" arg-wrapperClass="">
	<xf:if contentcheck="true">
		<div class="{$wrapperClass}">
			<dl class="blockStatus">
				<dt>{{ phrase('status') }}</dt>
				<xf:contentcheck>
					<xf:if is="$thread.discussion_state == 'deleted'">
						<dd class="blockStatus-message blockStatus-message--deleted">
							<xf:macro id="deletion_macros::notice" arg-log="{$thread.DeletionLog}" />
						</dd>
					<xf:elseif is="$thread.discussion_state == 'moderated'" />
						<dd class="blockStatus-message blockStatus-message--moderated">
							{{ phrase('awaiting_approval_before_being_displayed_publicly') }}
						</dd>
					</xf:if>
					<xf:if is="!$thread.discussion_open">
						<dd class="blockStatus-message blockStatus-message--locked">
							{{ phrase('not_open_for_further_replies') }}
						</dd>
					</xf:if>
				</xf:contentcheck>
			</dl>
		</div>
	</xf:if>
</xf:macro>

<xf:macro id="thread_custom_fields_status" arg-thread="!" arg-forum="!" arg-wrapperClass="">
	<div class="{$wrapperClass} js-threadStatusField"><xf:trim>
		<xf:if contentcheck="true">
			<div class="blockStatus blockStatus--info">
				<xf:contentcheck>
					<xf:macro id="custom_fields_macros::custom_fields_view"
						arg-type="threads"
						arg-group="thread_status"
						arg-onlyInclude="{$forum.field_cache}"
						arg-set="{$thread.custom_fields}"
						arg-wrapperClass="blockStatus-message" />
				</xf:contentcheck>
			</div>
		</xf:if>
	</xf:trim></div>
</xf:macro>

<xf:widgetpos id="thread_view_sidebar" context-thread="{$thread}" position="sidebar" />]]></template>
  <template type="public" title="thread_view_type_article" version_id="2020032" version_string="2.2.0 Beta 2"><![CDATA[<xf:extends template="thread_view" />
]]></template>
  <template type="public" title="thread_view_type_poll" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:extends template="thread_view" />

<xf:extension id="above_messages">
	<xf:if is="$poll">
		<xf:macro id="poll_macros::poll_block" arg-poll="{$poll}" />
	</xf:if>
</xf:extension>]]></template>
  <template type="public" title="thread_view_type_question" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:extends template="thread_view" />

<xf:extension id="structured_data_extra_params" value="{{ {
	'highlightedPosts': $highlightedPosts,
	'suggestedSolutions': $suggestedSolutions
} }}" />

<xf:extension id="pinned_block_classes" value="{{ $thread.type_data.solution_post_id ? 'block--close' : '' }}" />

<xf:extension id="above_messages_below_pinned">
	<xf:if is="$thread.type_data.solution_post_id AND {$highlightedPosts.{$thread.type_data.solution_post_id}}">
		<div class="block" id="js-solutionHighlightBlock">
			<div class="block-container">
				<div class="block-body">
					<xf:macro id="solution"
						arg-post="{$highlightedPosts.{$thread.type_data.solution_post_id}}"
						arg-thread="{$thread}" />
				</div>
			</div>
		</div>
	</xf:if>
</xf:extension>

<xf:macro id="solution" arg-post="!" arg-thread="!">
	<article class="message message--simple">
		<div class="message-inner js-solutionHeader">
			<div class="message-cell message-cell--solutionHeader">
				{{ phrase('solution') }}
			</div>
		</div>
		<div class="message-inner">
			<div class="message-cell message-cell--user">
				<xf:macro id="message_macros::user_info_simple" arg-user="{$post.User}"  arg-fallbackName="{$post.username}" />
			</div>
			<div class="message-cell message-cell--main">
				<header class="message-attribution message-attribution--plain">
					<ul class="listInline listInline--bullet">
						<li class="message-attribution-user">
							<xf:avatar user="$post.User" size="xxs" />
							<h4 class="attribution"><xf:username user="$post.User" rich="true" defaultname="{$post.username}" /></h4>
						</li>
						<li>
							<a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}"
								class="u-concealed"
								data-xf-click="attribution"
								data-content-selector="#post-{$post.post_id}"
								rel="nofollow"><xf:date time="$post.post_date" /></a>
						</li>
					</ul>
				</header>

				<article class="message-body">
					<div class="message-expandWrapper js-expandWatch">
						<div class="message-expandContent message-expandContent--small js-expandContent">
							{{ bb_code_snippet($post.message, 'post', $post, 750) }}
						</div>
						<div class="message-expandLink"></div>
					</div>
				</article>

				<footer class="message-footer">
					<div class="message-actionBar actionBar">
						<div class="actionBar-set actionBar-set--internal">
							<a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}"
								class="actionBar-action actionBar-action--view"
								data-xf-click="attribution"
								data-content-selector="#post-{$post.post_id}"
								rel="nofollow">{{ phrase('view_full_post') }}</a>
						</div>
					</div>
				</footer>
			</div>
		</div>
	</article>
</xf:macro>]]></template>
  <template type="public" title="thread_view_type_suggestion" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:extends template="thread_view" />

<xf:extension id="pinned_outer_after">
	<xf:if contentcheck="true">
		<div class="block-outer block-outer--after">
			<div class="blockStatus">
				<div class="blockStatus-message blockStatus-message--locked">
				<xf:contentcheck>
					<xf:if is="$suggestionInfo.implemented">
						{{ phrase('suggestion_implemented_votes_not_accepted') }}
					<xf:elseif is="$suggestionInfo.closed" />
						{{ phrase('suggestion_closed_votes_not_accepted') }}
					<xf:elseif is="$thread.type_data.allow_voting === 'paused'" />
						{{ phrase('voting_on_this_suggestion_has_been_paused') }}
					</xf:if>
				</xf:contentcheck>
				</div>
			</div>
		</div>
	</xf:if>
</xf:extension>]]></template>
  <template type="public" title="thread_watch" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:if is="$isWatched">
	<xf:title>{{ phrase('unwatch_thread') }}</xf:title>
<xf:else />
	<xf:title>{{ phrase('watch_thread') }}</xf:title>
</xf:if>

<xf:breadcrumb source="$thread.getBreadcrumbs()" />

<xf:form action="{{ link('threads/watch', $thread) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$isWatched">
				<xf:inforow rowtype="confirm">
					{{ phrase('you_sure_you_want_to_unwatch_this_thread') }}
				</xf:inforow>

				<xf:hiddenval name="stop">1</xf:hiddenval>
			<xf:else />
				<xf:radiorow name="email_subscribe"
					value="{{ $xf.visitor.Option.interaction_watch_state == 'watch_email' ? 1 : 0}}"
					rowtype="noColon"
					label="{{ phrase('watch_this_thread...') }}">

					<xf:option value="1">{{ phrase('and_receive_email_notifications') }}</xf:option>
					<xf:option value="0">{{ phrase('without_receiving_email_notifications') }}</xf:option>
				</xf:radiorow>
			</xf:if>
		</div>
		<xf:if is="$isWatched">
			<xf:submitrow submit="{{ phrase('unwatch') }}" rowtype="simple" />
		<xf:else />
			<xf:submitrow submit="{{ phrase('watch') }}" />
		</xf:if>
	</div>
</xf:form>]]></template>
  <template type="public" title="token_input" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:css src="tagify.less" />

<xf:js prod="xf/token_input-compiled.js" dev="vendor/tagify/tagify.min.js, xf/token_input.js" />

<input type="hidden" name="{$name}" value="{$value}" class="input {$inputClass}"
	data-xf-init="token-input"
	data-ac-url="{$hrefAttr}"
	data-min-length="{$minLength}"
	{{ $maxLength ? 'data-max-length="' . $maxLength . '"' : '' }}
	{{ $maxTokens ? 'data-max-tokens="' . $maxTokens . '"' : '' }}
	{{ $listData ? 'data-list-data="' . $listData . '"' : '' }}
	{$attrsHtml|raw} />]]></template>
  <template type="public" title="trending_content_item" version_id="2030055" version_string="2.3.0 Release Candidate 5"><![CDATA[<xf:macro id="article" extends="content_display_macros::article"
	arg-result="!"
	arg-content="!"
	arg-snippetLength="{{ 0 }}">

	<xf:extension id="title">
		<xf:extensionparent />
		<a href="{{ $content.getContentUrl() }}">{{ $content.getContentTitle() }}</a>
	</xf:extension>
</xf:macro>

<xf:macro id="simple" extends="content_display_macros::simple"
	arg-result="!"
	arg-content="!"
	arg-snippetLength="{{ 0 }}">

	<xf:extension id="title">
		<xf:extensionparent />
		<a href="{{ $content.getContentUrl() }}">{{ $content.getContentTitle() }}</a>
	</xf:extension>
</xf:macro>

<xf:macro id="carousel" extends="content_display_macros::carousel"
	arg-result="!"
	arg-content="!"
	arg-snippetLength="{{ 0 }}">

	<xf:extension id="title">
		<xf:extensionparent />
		<a href="{{ $content.getContentUrl() }}">{{ $content.getContentTitle() }}</a>
	</xf:extension>
</xf:macro>]]></template>
  <template type="public" title="trending_content_item_thread" version_id="2030170" version_string="2.3.1"><![CDATA[<xf:macro id="article" extends="trending_content_item::article"
	arg-result="!"
	arg-content="!"
	arg-snippetLength="{{ 0 }}">

	<xf:extension id="image">
		<xf:extensionparent />

		<xf:if is="$content.getCoverImage()">
			<a href="{{ $content.getContentUrl() }}" class="articlePreview-image" tabindex="-1">
				<img src="{{ $content.getCoverImage() }}" alt="{{ $content.getContentTitle() }}" loading="lazy" />
			</a>
		</xf:if>
	</xf:extension>

	<xf:extension id="snippet">
		<xf:extensionparent />

		<div class="bbWrapper">
			{{ snippet($content.FirstPost.message, $snippetLength, {'stripQuote': true}) }}
		</div>
	</xf:extension>

	<xf:extension id="links">
		<xf:extensionparent />
		<a href="{{ $content.getContentUrl() }}">{{ phrase('view_full_post') }} &raquo;</a>
	</xf:extension>

	<xf:extension id="meta">
		<xf:extensionparent />

		<xf:set var="$username"><xf:username user="{$content.User}" defaultname="{$content.username}" class="u-concealed" /></xf:set>
		<xf:set var="$post" value="{$content.FirstPost}" />

		<li><xf:avatar user="{$content.User}" size="xxs" defaultname="{$content.username}"/></li>
		<li class="articlePreview-by">{{ phrase('by_user_x', {'name': $username}) }}</li>
		<li><a href="{{ $content.getContentUrl() }}" class="u-concealed" rel="nofollow"><xf:date time="{{ $content.getContentDate() }}"/></a></li>

		<li>
			<a href="{{ link('threads/post', $content, {'post_id': $post.post_id}) }}" class="u-concealed" rel="nofollow"
				aria-label="{{ phrase('share')|for_attr }}"
				data-xf-init="share-tooltip" data-href="{{ link('posts/share', $post) }}">

				<xf:fa icon="fa-share-alt" />
			</a>
		</li>

		<xf:if is="$xf.options.embedCodeShare AND method_exists($post, 'getEmbedCodeHtml')">
			<li class="u-hidden js-embedCopy">
				<xf:macro id="share_page_macros::share_clipboard_text"
					arg-class="u-concealed"
					arg-text="{$content.getEmbedCodeHtml()}"
					arg-successText="{{ phrase('embed_code_html_copied_to_clipboard') }}" />
			</li>
		</xf:if>

		<xf:if is="$content.reply_count">
			<li class="articlePreview-replies">
				<a href="{{ $content.getContentUrl() }}" title="{{ phrase('replies:')|for_attr }} {$content.reply_count|number}">
					<xf:fa icon="fa-comment" class="u-spaceAfter" /><span class="articlePreview-repliesLabel">{{ phrase('replies:') }} </span>{$content.reply_count|number}
				</a>
			</li>
		</xf:if>
	</xf:extension>
</xf:macro>

<xf:macro id="simple" extends="trending_content_item::simple"
	arg-result="!"
	arg-content="!"
	arg-snippetLength="{{ 0 }}">

	<xf:extension id="image">
		<xf:extensionparent />
		<xf:avatar user="$content.User" size="xxs" defaultname="{$content.username}" />
	</xf:extension>

	<xf:extension id="meta">
		<xf:extensionparent />

		<li>{{ $content.User.username ?: $content.username }}</li>
		<li><xf:date time="{{ $content.getContentDate() }}" /></li>
	</xf:extension>

	<xf:extension id="extra">
		<xf:extensionparent />

		<div class="contentRow-minor contentRow-minor--hideLinks">
			{{ phrase('replies:') }} {$content.reply_count|number_short}
		</div>
	</xf:extension>
</xf:macro>

<xf:macro id="carousel" extends="trending_content_item::carousel"
	arg-result="!"
	arg-content="!"
	arg-snippetLength="{{ 0 }}">

	<xf:extension id="image">
		<xf:extensionparent />
		<xf:avatar user="$content.User" size="m" defaultname="{$content.username}" notooltip="true" />
	</xf:extension>

	<xf:extension id="snippet">
		<xf:extensionparent />

		<xf:if is="$snippetLength">
			{{ snippet($content.FirstPost.message, $snippetLength, {'stripQuote': true}) }}
		<xf:else />
			{{ snippet($content.FirstPost.message, max_length($content.FirstPost, 'message'), {'stripQuote': true}) }}
		</xf:if>
	</xf:extension>

	<xf:extension id="meta">
		<xf:extensionparent />

		<li><xf:username user="{$content.User}" defaultname="{$content.username}" /></li>
		<li><xf:date time="{{ $content.getContentDate() }}" /></li>
		<li>{{ phrase('replies:') }} {$content.reply_count|number}</li>
	</xf:extension>
</xf:macro>]]></template>
  <template type="public" title="two_step_authy" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[

<xf:if is="$context == 'setup'">
	<xf:inforow>
		{{ phrase('two_step_authy_setup_info') }}
	</xf:inforow>

	<xf:textboxrow name="code" type="number" autofocus="autofocus" label="{{ phrase('verification_code') }}" />
<xf:else />
	<xf:inforow rowclass="js-authyLoginApprovalRow">
		{{ phrase('two_step_authy_login_info', {'logout': link('logout', null, {'t': csrf_token()})}) }}

		<xf:hiddenval name="uuid" value="{$uuid}" />
	</xf:inforow>

	<xf:js>
		XF.extendObject(XF.phrases, {
			authy_no_uuid: "{{ phrase('authy_no_uuid')|escape('js') }}",
			authy_no_approval_request: "{{ phrase('authy_no_approval_request')|escape('js') }}",
			authy_denied: "{{ phrase('authy_denied')|escape('js') }}",
			authy_success: "{{ phrase('authy_success')|escape('js') }}"
		});
	</xf:js>

	<xf:js>
		const form = document.querySelector('.js-authyLoginApprovalRow').closest('form')
		const formData = XF.getDefaultFormData(form)

		const formSubmitRow = form.querySelector('.formSubmitRow')
		formSubmitRow.style.display = 'none'

		const interval = setInterval(() =>
		{
			XF.ajax('post', form.getAttribute('action'), formData, (data) =>
			{
				if (data.errors)
				{
					const error = data.errors[0]

					switch (error)
					{
						case 'authy_no_uuid':
						case 'authy_no_approval_request':
							clearInterval(interval)
							XF.alert(XF.phrase(error, null, 'An unexpected error occurred.'))
							break

						case 'authy_denied':
							clearInterval(interval)
							XF.flashMessage(XF.phrase(error), 3000, () =>
							{
								XF.redirect(XF.canonicalizeUrl(''))
							})
							break
					}
				}
				else if (data.redirect)
				{
					clearInterval(interval)
					XF.flashMessage(XF.phrase('authy_success'), 3000, () =>
					{
						XF.redirect(data.redirect)
					})
				}
			}, { skipDefault: true })
		}, 1000)
	</xf:js>
</xf:if>]]></template>
  <template type="public" title="two_step_backup" version_id="2020570" version_string="2.2.5"><![CDATA[<xf:inforow>{{ phrase('tfa_backup_codes_login_desc') }}</xf:inforow>

<xf:textboxrow name="code" autofocus="autofocus" inputmode="numeric" pattern="[0-9\s]*"
	label="{{ phrase('backup_code') }}" />]]></template>
  <template type="public" title="two_step_email" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:inforow>{{ phrase('email_has_been_sent_with_code') }}</xf:inforow>

<xf:textboxrow name="code" autofocus="autofocus" inputmode="numeric" pattern="[0-9]*"
	label="{{ phrase('email_confirmation_code') }}" />]]></template>
  <template type="public" title="two_step_passkey" version_id="2030033" version_string="2.3.0 Beta 3"><![CDATA[<xf:js src="xf/webauthn.js" min="1" />

<xf:if is="$context == 'login'">
	<xf:formrow data-xf-init="webauthn"
		data-type="get"
		data-existing-credentials="{$existingCredentials|json}"
		data-autotrigger="true"
		data-autosubmit="true"
		data-verifying="{{ phrase('verifying...') }}">

		<xf:button class="button--link js-webauthnStart">{{ phrase('use_passkey_or_security_key') }}</xf:button>
	</xf:formrow>

	<xf:hiddenval name="webauthn_payload" />
	<xf:hiddenval name="webauthn_challenge">{{ $passkey ? $passkey.getChallenge() : '' }}</xf:hiddenval>
</xf:if>]]></template>
  <template type="public" title="two_step_totp" version_id="2030170" version_string="2.3.1"><![CDATA[<xf:if is="$context == 'setup'">
	<xf:js src="vendor/kjua/kjua.min.js" />
	<xf:formrow label="{{ phrase('setup') }}">
		{{ phrase('totp_recieve_codes_via_app_desc') }}
		<div style="text-align: center; margin: 10px 0px;"><span id="js-totpQrCode" style="display: inline-block; background: white; padding: 12px"></span></div>
		{{ phrase('totp_enter_secret_into_app_x', {'secret': $secret}) }}
	</xf:formrow>
	<xf:js>
		const el = document.querySelector('#js-totpQrCode')
		const qr = kjua({
			text: '{$otpUrl|escape('js')}'
		})
		el.innerHTML = ''
		el.append(qr)
	</xf:js>
<xf:else />
	<xf:inforow>{{ phrase('please_enter_code_generated_by_app_on_phone') }}</xf:inforow>
</xf:if>

<xf:textboxrow name="code" autofocus="autofocus" inputmode="numeric" pattern="[0-9]*"
	autocomplete="one-time-code" label="{{ phrase('verification_code') }}" />]]></template>
  <template type="public" title="undelete_confirm" version_id="2010037" version_string="2.1.0 Beta 7"><![CDATA[<xf:title>{{ phrase('confirm_action') }}</xf:title>

<xf:form action="{$confirmUrl}" ajax="true" class="block">
	<div class="block-container">
		<div class="block-body">
			<xf:inforow rowtype="confirm">
				{{ phrase('please_confirm_that_you_want_to_undelete_following:') }}
				<xf:if is="$contentUrl">
					<strong><a href="{$contentUrl}">{$contentTitle}</a></strong>
				<xf:else />
					<strong>{$contentTitle}</strong>
				</xf:if>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('undelete') }}" rowtype="simple" />
	</div>
</xf:form>]]></template>
  <template type="public" title="variations.less" version_id="2030031" version_string="2.3.0 Beta 1"><![CDATA[:root
{
	color-scheme: @xf-styleType;

	--xf-color-adjust: {{ $xf.style.getDefaultStyleType() === 'light' ? 1 : -1 }};

	<xf:foreach loop="$xf.style.getVariationVariables('default')" key="$property" value="$value">
		--xf-{$property}: ~"{$value}";
	</xf:foreach>

	<xf:foreach loop="$xf.style.getVariationVariables('default', true)" key="$property" value="$value">
		--xf-{$property}: var(--xf-{$property}--h), var(--xf-{$property}--s), var(--xf-{$property}--l), var(--xf-{$property}--a);
		--xf-{$property}--h: hue({$value});
		--xf-{$property}--s: saturation({$value});
		--xf-{$property}--l: lightness({$value});
		--xf-{$property}--a: alpha({$value});
	</xf:foreach>

	<xf:if is="$xf.style.hasAlternateStyleTypeVariation()">
		&:not([data-variation])
		{
			@media (prefers-color-scheme: {{ $xf.style.getAlternateStyleType() }})
			{
				--xf-color-adjust: {{ $xf.style.getAlternateStyleType() === 'light' ? 1 : -1 }};

				<xf:foreach loop="$xf.style.getVariationVariables($xf.style.getAlternateStyleTypeVariation())" key="$property" value="$value">
					--xf-{$property}: ~"{$value}";
				</xf:foreach>

				<xf:foreach loop="$xf.style.getVariationVariables($xf.style.getAlternateStyleTypeVariation(), true)" key="$property" value="$value">
					--xf-{$property}--h: hue({$value});
					--xf-{$property}--s: saturation({$value});
					--xf-{$property}--l: lightness({$value});
					--xf-{$property}--a: alpha({$value});
				</xf:foreach>
			}
		}
	</xf:if>

	<xf:foreach loop="$xf.style.getVariations(false)" value="$variation">
		&[data-variation="{$variation}"]
		{
			--xf-color-adjust: {{ $xf.style.getPropertyVariation('styleType', $variation, 'light') === 'light' ? 1 : -1 }};

			<xf:foreach loop="$xf.style.getVariationVariables($variation)" key="$property" value="$value">
				--xf-{$property}: ~"{$value}";
			</xf:foreach>

			<xf:foreach loop="$xf.style.getVariationVariables($variation, true)" key="$property" value="$value">
				--xf-{$property}--h: hue({$value});
				--xf-{$property}--s: saturation({$value});
				--xf-{$property}--l: lightness({$value});
				--xf-{$property}--a: alpha({$value});
			</xf:foreach>
		}
	</xf:foreach>
}]]></template>
  <template type="public" title="warning_info" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('warning_for_x', {'name': $user.username}) }}</xf:title>

<div class="form block">
	<div class="block-container">
		<div class="block-body">
			<xf:if is="$canViewContent">
				<xf:formrow label="{{ phrase('content') }}">
					<xf:if is="{$contentUrl}">
						<a href="{$contentUrl}">{$warning.display_title}</a>
					<xf:else />
						{$warning.display_title}
					</xf:if>
				</xf:formrow>
			</xf:if>

			<xf:formrow label="{{ phrase('given_by') }}">
				<ul class="listInline listInline--bullet">
					<li><xf:username user="{$warning.WarnedBy}" /></li>
					<li><xf:date time="{$warning.warning_date}" /></li>
				</ul>
			</xf:formrow>

			<xf:formrow label="{{ phrase('details_of_warning') }}">
				{$warning.title}
				<xf:if is="{$warning.notes}"><div class="u-muted">{{ structured_text($warning.notes) }}</div></xf:if>
			</xf:formrow>

			<xf:formrow label="{{ phrase('warning_points') }}">
				{$warning.points|number}
				<xf:if is="$warning.is_expired">
					<span class="u-muted">{{ phrase('(expired)') }}</span>
				<xf:elseif is="$warning.expiry_date" />
					<span class="u-muted">{{ phrase('(expires_x)', {'date': date($warning.expiry_date)}) }}</span>
				</xf:if>
			</xf:formrow>
		</div>
		<xf:if is="$warning.canDelete() AND $warning.canEditExpiry()">
			<h2 class="block-tabHeader tabs" data-xf-init="tabs" role="tablist">
				<a class="tabs-tab is-active" role="tab" tabindex="0" aria-controls="{{ unique_id('warningDelete') }}">{{ phrase('delete_warning') }}</a>
				<a class="tabs-tab is-active" role="tab" tabindex="0" aria-controls="{{ unique_id('warningUpdate') }}">{{ phrase('update_warning') }}</a>
			</h2>
			<ul class="tabPanes">
				<li class="is-active" role="tabpanel" id="{{ unique_id('warningDelete') }}">
					<xf:macro id="delete" arg-warning="{$warning}" />
				</li>
				<li role="tabpanel" id="{{ unique_id('warningUpdate') }}">
					<xf:macro id="expire" arg-warning="{$warning}" />
				</li>
			</ul>
		<xf:elseif is="$warning.canDelete()" />
			<xf:macro id="delete" arg-warning="{$warning}" />
		<xf:elseif is="$warning.canEditExpiry()" />
			<xf:macro id="expire" arg-warning="{$warning}" />
		</xf:if>
	</div>
</div>

<xf:macro id="delete" arg-warning="!" arg-redirect="">
	<xf:form action="{{ link('warnings/delete', $warning) }}">
		<xf:checkboxrow>
			<xf:option name="confirm" value="1">{{ phrase('confirm_deletion') }}</xf:option>
		</xf:checkboxrow>
		<xf:submitrow icon="delete" />
		<xf:redirect url="{$redirect}" />
	</xf:form>
</xf:macro>

<xf:macro id="expire" arg-warning="!" arg-redirect="">
	<xf:form action="{{ link('warnings/expire', $warning) }}">
		<xf:radiorow name="expire" value="now">
			<xf:option value="now">{{ phrase('expire_now') }}</xf:option>
			<xf:option value="future" label="{{ phrase('expire_in_time:') }}">
				<xf:dependent>
					<div class="inputGroup">
						<xf:numberbox name="expiry_value" value="1" min="0" />
						<span class="inputGroup-splitter"></span>
						<xf:select name="expiry_unit" value="days" class="input--inline">
							<xf:option value="days">{{ phrase('days') }}</xf:option>
							<xf:option value="weeks">{{ phrase('weeks') }}</xf:option>
							<xf:option value="months">{{ phrase('months') }}</xf:option>
							<xf:option value="years">{{ phrase('years') }}</xf:option>
						</xf:select>
					</div>
				</xf:dependent>
			</xf:option>
		</xf:radiorow>
		<xf:submitrow icon="save" />
		<xf:redirect url="{$redirect}" />
	</xf:form>
</xf:macro>]]></template>
  <template type="public" title="watched_forums_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title>{{ phrase('watched_forums') }}</xf:title>

<xf:css src="node_list.less" />

<xf:if is="$watchedForums is not empty">
	<xf:form action="{{ link('watched/forums/update') }}" ajax="true" class="block" autocomplete="off">

		<div class="block-outer">

			<div class="block-outer-opposite">
				<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true">{{ phrase('manage_watched_forums') }}</xf:button>
				<div class="menu" data-menu="menu" aria-hidden="true">
					<div class="menu-content">
						<h3 class="menu-header">{{ phrase('manage_watched_forums') }}</h3>
						<!--[XF:manage_menu:top]-->
						<a href="{{ link('watched/forums/manage', null, {'state': 'watch_no_email'}) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('disable_email_notification') }}</a>
						<a href="{{ link('watched/forums/manage', null, {'state': 'delete'}) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('stop_watching_forums') }}</a>
						<!--[XF:manage_menu:bottom]-->
					</div>
				</div>
			</div>
		</div>

		<div class="block-container">
			<div class="block-body">
				<xf:foreach loop="$nodeTree.getFlattened()" key="$id" value="$treeEntry">
					<xf:set var="$node" value="{$treeEntry.record}" />
					<xf:set var="$forumWatch" value="{$watchedForums.{$node.node_id}}" />
					<xf:if is="$forumWatch">
						<xf:set var="$bonusInfo">
							<ul class="listInline listInline--bullet">
								<xf:if is="$forumWatch.notify_on == 'thread'">
									<li>{{ phrase('new_threads') }}</li>
								<xf:elseif is="$forumWatch.notify_on == 'message'" />
									<li>{{ phrase('new_messages') }}</li>
								</xf:if>
								<xf:if is="$forumWatch.send_alert"><li>{{ phrase('alerts') }}</li></xf:if>
								<xf:if is="$forumWatch.send_email"><li>{{ phrase('emails') }}</li></xf:if>
							</ul>
						</xf:set>
						<xf:macro id="node_list_forum::forum"
							arg-node="{$node}"
							arg-extras="{$nodeExtras.{$node.node_id}}"
							arg-children="{$nodeTree.{$id}.children}"
							arg-childExtras="{$nodeExtras}"
							arg-depth="2"
							arg-chooseName="node_ids"
							arg-bonusInfo="{$bonusInfo}" />
					</xf:if>
				</xf:foreach>
			</div>
			<div class="block-footer block-footer--split">
				<span class="block-footer-counter"></span>
				<span class="block-footer-select"><xf:checkbox standalone="true">
					<xf:option class="input--inline" check-all="< .block-container" label="{{ phrase('select_all') }}" />
				</xf:checkbox></span>
				<span class="block-footer-controls">
					<xf:select name="action" class="input--inline">
						<xf:option>{{ phrase('with_selected...') }}</xf:option>
						<!--[XF:action_menu:top]-->
						<xf:option value="email">{{ phrase('enable_email_notification') }}</xf:option>
						<xf:option value="no_email">{{ phrase('disable_email_notification') }}</xf:option>
						<xf:option value="alert">{{ phrase('enable_alerts') }}</xf:option>
						<xf:option value="no_alert">{{ phrase('disable_alerts') }}</xf:option>
						<xf:option value="delete">{{ phrase('stop_watching') }}</xf:option>
						<!--[XF:action_menu:bottom]-->
					</xf:select>
					<xf:button type="submit">{{ phrase('go') }}</xf:button>
				</span>
			</div>
		</div>
	</xf:form>
<xf:else />
	<div class="blockMessage">{{ phrase('you_not_watching_any_forums') }}</div>
</xf:if>]]></template>
  <template type="public" title="watched_forums_manage" version_id="2000036" version_string="2.0.0 Beta 6"><![CDATA[<xf:title>{{ phrase('manage_watched_forums') }}</xf:title>

<xf:form action="{{ link('watched/forums/manage', null, {'state': $state}) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-row">
			<xf:inforow rowtype="confirm">
				<xf:if is="$state == 'delete'">
					{{ phrase('you_sure_you_want_to_stop_watching_all_forums') }}
				<xf:else />
					{{ phrase('you_sure_you_want_to_update_notification_settings_for_all_forums') }}
				</xf:if>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('proceed') }}" icon="notificationsOff" rowtype="simple" />
	</div>
</xf:form>]]></template>
  <template type="public" title="watched_threads_list" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title page="{$page}">{{ phrase('watched_threads') }}</xf:title>

<xf:if is="$threads is not empty">
	<xf:form action="{{ link('watched/threads/update') }}" ajax="true" class="block" autocomplete="off">
		<div class="block-outer">
			<xf:pagenav
				page="{$page}" perpage="{$perPage}" total="{$total}"
				link="watched/threads"
				wrapperclass="block-outer-main" />
			<div class="block-outer-opposite">
				<xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true">{{ phrase('manage_watched_threads') }}</xf:button>
				<div class="menu" data-menu="menu" aria-hidden="true">
					<div class="menu-content">
						<h3 class="menu-header">{{ phrase('manage_watched_threads') }}</h3>
						<!--[XF:manage_menu:top]-->
						<a href="{{ link('watched/threads/manage', null, {'state': 'watch_no_email'}) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('disable_email_notification') }}</a>
						<a href="{{ link('watched/threads/manage', null, {'state': 'delete'}) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('stop_watching_threads') }}</a>
						<!--[XF:manage_menu:bottom]-->
					</div>
				</div>
			</div>
		</div>

		<div class="block-container">
			<div class="block-body">
				<div class="structItemContainer">
					<xf:foreach loop="$threads" value="$thread">
						<xf:set var="$extra" value="{{ {$thread.Watch.{$xf.visitor.user_id}.email_subscribe} ? phrase('email') : '' }}" />
						<xf:macro id="thread_list_macros::item"
							arg-thread="{$thread}"
							arg-chooseName="thread_ids"
							arg-showWatched="{{ false }}"
							arg-extraInfo="{$extra}"
							arg-allowEdit="{{ false }}" />
					</xf:foreach>
				</div>
			</div>
			<div class="block-footer block-footer--split">
				<span class="block-footer-counter"></span>
				<span class="block-footer-select"><xf:checkbox standalone="true"><xf:option check-all="< .block-container" label="{{ phrase('select_all') }}" /></xf:checkbox></span>
				<span class="block-footer-controls">
						<xf:select name="state" class="input--inline">
						<xf:option>{{ phrase('with_selected...') }}</xf:option>
						<!--[XF:action_menu:top]-->
							<xf:option value="watch_email">{{ phrase('enable_email_notification') }}</xf:option>
							<xf:option value="watch_no_email">{{ phrase('disable_email_notification') }}</xf:option>
							<xf:option value="delete">{{ phrase('stop_watching') }}</xf:option>
						<!--[XF:action_menu:bottom]-->
					</xf:select>
					<xf:button type="submit">{{ phrase('go') }}</xf:button>
				</span>
			</div>
		</div>

		<xf:pagenav link="watched/threads" page="{$page}" perpage="{$perPage}" total="{$total}"
			wrapperclass="block-outer block-outer--after" />

		<xf:showignored wrapperclass="block-outer block-outer-opposite block-outer--after" />
	</xf:form>
<xf:else />
	<div class="blockMessage">
		<xf:if is="$page > 1">
			{{ phrase('there_no_threads_to_display') }}
		<xf:else />
			<p>{{ phrase('you_not_watching_any_threads') }}</p>
			<div>{{ phrase('show_all:') }}</div>
			<ul>
				<li><a href="{{ link('find-threads/started') }}">{{ phrase('threads_youve_started') }}</a></li>
				<li><a href="{{ link('find-threads/contributed') }}">{{ phrase('threads_in_which_youve_participated') }}</a></li>
			</ul>
		</xf:if>
	</div>
</xf:if>]]></template>
  <template type="public" title="watched_threads_manage" version_id="2000036" version_string="2.0.0 Beta 6"><![CDATA[<xf:title>{{ phrase('manage_watched_threads') }}</xf:title>

<xf:form action="{{ link('watched/threads/manage', null, {'state': $state}) }}" class="block" ajax="true">
	<div class="block-container">
		<div class="block-row">
			<xf:inforow rowtype="confirm">
				<xf:if is="$state == 'delete'">
					{{ phrase('you_sure_you_want_to_stop_watching_all_threads') }}
				<xf:else />
					{{ phrase('you_sure_you_want_to_update_notification_settings_for_all_threads') }}
				</xf:if>
			</xf:inforow>
		</div>
		<xf:submitrow submit="{{ phrase('proceed') }}" icon="notificationsOff" rowtype="simple" />
	</div>
</xf:form>]]></template>
  <template type="public" title="whats_new" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:title>{{ phrase('whats_new') }}</xf:title>

<xf:wrap template="whats_new_wrapper">
	<xf:set var="$pageSelected" value="overview" />
</xf:wrap>

<xf:if contentcheck="true">
	<xf:contentcheck>
		<xf:widgetpos id="whats_new_sidebar" position="sidebar" />

		<xf:widgetpos id="whats_new_overview" />
	</xf:contentcheck>
<xf:else />
	<div class="blockMessage">
		{{ phrase('no_results_found') }}
	</div>
</xf:if>]]></template>
  <template type="public" title="whats_new_posts" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title page="{$page}">{{ phrase('new_posts') }}</xf:title>

<xf:wrap template="whats_new_wrapper">
	<xf:set var="$pageSelected">new_thread</xf:set>
</xf:wrap>

<xf:pageaction>
	<xf:if is="$xf.visitor.canCreateThread() OR $xf.visitor.canCreateThreadPreReg()">
		<xf:button href="{{ link('forums/create-thread') }}" class="button--cta" icon="write" overlay="true" rel="nofollow">
			{{ phrase('post_thread...') }}
		</xf:button>
	</xf:if>
</xf:pageaction>

<xf:if is="$canInlineMod">
	<xf:js src="xf/inline_mod.js" min="1" />
</xf:if>

<div class="block" data-xf-init="{{ $canInlineMod ? 'inline-mod' : '' }}" data-type="thread" data-href="{{ link('inline-mod') }}">
	<xf:if is="$findNew.result_count">
		<div class="block-outer">
			<xf:pagenav
				page="{$page}" perpage="{$perPage}" total="{$findNew.result_count}"
				link="whats-new/posts" data="{$findNew}"
				wrapperclass="block-outer-main" />

			<xf:if contentcheck="true">
				<div class="block-outer-opposite">
					<div class="buttonGroup">
					<xf:contentcheck>
						<xf:macro id="buttons"
							arg-findNew="{$findNew}"
							arg-canInlineMod="{$canInlineMod}" />
					</xf:contentcheck>
					</div>
				</div>
			</xf:if>
		</div>
	</xf:if>

	<div class="block-container">
		<xf:macro id="filter_bar"
			arg-findNew="{$findNew}"
			arg-rerunRoute="whats-new/posts"
			arg-rerunData="{$findNew}"
			arg-filterRoute="whats-new/posts" />

		<xf:macro id="results"
			arg-findNew="{$findNew}"
			arg-threads="{$threads}"
			arg-latestRoute="whats-new/posts" />
	</div>

	<xf:if is="$findNew.result_count">
		<div class="block-outer block-outer--after">
			<xf:pagenav
				page="{$page}" perpage="{$perPage}" total="{$findNew.result_count}"
				link="whats-new/posts" data="{$findNew}"
				wrapperclass="block-outer-main" />
			<xf:showignored wrapperclass="block-outer-opposite" />
		</div>
	</xf:if>
</div>

<xf:macro id="buttons"
	arg-findNew="!"
	arg-canInlineMod="{{ false }}">

	<xf:if is="$canInlineMod">
		<xf:macro id="inline_mod_macros::button" />
	</xf:if>
	<xf:if is="$xf.visitor.user_id">
		<xf:button href="{{ link('forums/mark-read', null, {'date': $findNew.cache_date}) }}"
			class="button--link" overlay="true">
			{{ phrase('mark_forums_read') }}
		</xf:button>
	</xf:if>
</xf:macro>

<xf:macro id="filter_bar"
	arg-findNew="!"
	arg-rerunRoute="!"
	arg-rerunData="{{ null }}"
	arg-rerunQuery="{{ [] }}"
	arg-filterRoute="!">

	<xf:if is="$xf.visitor.user_id">
		<div class="block-filterBar">
			<div class="filterBar">
				<xf:if contentcheck="true">
					<ul class="filterBar-filters">
					<xf:contentcheck>
						<!--[XF:filters:top]-->
						<xf:if is="$findNew.filters.unread">
							<li><a href="{{ link($rerunRoute, $rerunData, $rerunQuery + {'remove': 'unread'}) }}"
								class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
								<span class="filterBar-filterToggle-label">{{ phrase('show_only:') }}</span>
								{{ phrase('filter_unread') }}</a></li>
						</xf:if>
						<xf:if is="$findNew.filters.watched">
							<li><a href="{{ link($rerunRoute, $rerunData, $rerunQuery + {'remove': 'watched'}) }}"
								class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
								<span class="filterBar-filterToggle-label">{{ phrase('show_only:') }}</span>
								{{ phrase('filter_watched') }}</a></li>
						</xf:if>
						<xf:if is="$findNew.filters.participated">
							<li><a href="{{ link($rerunRoute, $rerunData, $rerunQuery + {'remove': 'participated'}) }}"
								class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
								<span class="filterBar-filterToggle-label">{{ phrase('show_only:') }}</span>
								{{ phrase('filter_participated') }}</a></li>
						</xf:if>
						<xf:if is="$findNew.filters.started">
							<li><a href="{{ link($rerunRoute, $rerunData, $rerunQuery + {'remove': 'started'}) }}"
								class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
								<span class="filterBar-filterToggle-label">{{ phrase('show_only:') }}</span>
								{{ phrase('filter_started') }}</a></li>
						</xf:if>
						<xf:if is="$findNew.filters.unanswered">
							<li><a href="{{ link($rerunRoute, $rerunData, $rerunQuery + {'remove': 'unanswered'}) }}"
								class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
								<span class="filterBar-filterToggle-label">{{ phrase('show_only:') }}</span>
								{{ phrase('filter_unanswered') }}</a></li>
						</xf:if>
						<!--[XF:filters:bottom]-->
					</xf:contentcheck>
					</ul>
				</xf:if>

				<a class="filterBar-menuTrigger" data-xf-click="menu" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{{ phrase('filters') }}</a>
				<xf:macro id="filter_menu" arg-findNew="{$findNew}" arg-submitRoute="{$filterRoute}" />
			</div>
		</div>
	</xf:if>
</xf:macro>

<xf:macro id="filter_menu" arg-findNew="!" arg-submitRoute="!">
	<div class="menu" data-menu="menu" aria-hidden="true">
		<div class="menu-content">
			<h4 class="menu-header">{{ phrase('show_only:') }}</h4>
			<xf:form action="{{ link($submitRoute) }}">
				<div class="menu-row">
					<xf:checkbox>
						<xf:option name="unread" selected="{$findNew.filters.unread}">{{ phrase('unread_threads') }}</xf:option>
						<xf:option name="watched" selected="{$findNew.filters.watched}">{{ phrase('watched_content') }}</xf:option>
						<xf:option name="participated" selected="{$findNew.filters.participated}">{{ phrase('threads_in_which_youve_participated') }}</xf:option>
						<xf:option name="started" selected="{$findNew.filters.started}">{{ phrase('threads_youve_started') }}</xf:option>
						<xf:option name="unanswered" selected="{$findNew.filters.unanswered}">{{ phrase('unanswered_threads') }}</xf:option>
						<!--[XF:filter_menu:filters_extra]-->
					</xf:checkbox>
				</div>
				<!--[XF:filter_menu:below_filters]-->

				<xf:macro id="filter_macros::find_new_filter_footer" />
			</xf:form>
		</div>
	</div>
</xf:macro>

<xf:macro id="results" arg-findNew="!" arg-threads="!" arg-latestRoute="!">
	<xf:if is="$findNew.result_count">
		<xf:set var="$activityBarShown" value="{{ false }}" />
		<div class="structItemContainer">
			<xf:foreach loop="$threads" value="$thread">
				<xf:if is="$xf.visitor.user_id AND !$activityBarShown AND $thread.last_post_date < $xf.session.previousActivity">
					<div class="structItem structItem--note">
						<div class="structItem-cell">{{ phrase('threads_below_not_updated_since_your_last_visit') }}</div>
					</div>
					<xf:set var="$activityBarShown" value="{{ true }}" />
				</xf:if>

				<xf:macro id="thread_list_macros::item" arg-thread="{$thread}" />
			</xf:foreach>
		</div>
	<xf:else />
		<div class="block-row">
			<xf:if is="$xf.visitor.user_id AND ($findNew.filters.unread AND count($findNew.filters) == 1)">
				{{ phrase('no_unread_posts_view_latest', {'link': link($latestRoute, null, {'skip': 1})}) }}
			<xf:else />
				{{ phrase('no_results_found') }}
			</xf:if>
		</div>
	</xf:if>
</xf:macro>]]></template>
  <template type="public" title="whats_new_profile_posts" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:title page="{$page}">{{ phrase('new_profile_posts') }}</xf:title>

<xf:wrap template="whats_new_wrapper">
	<xf:set var="$pageSelected">new_profile_post</xf:set>
</xf:wrap>

<xf:if is="$canInlineMod">
	<xf:js src="xf/inline_mod.js" min="1" />
</xf:if>

<xf:macro id="lightbox_macros::setup" arg-canViewAttachments="{$canViewAttachments}" />

<div class="block" data-xf-init="lightbox {{ $canInlineMod ? 'inline-mod' : '' }}" data-type="profile_post" data-href="{{ link('inline-mod') }}">
	<xf:if is="$findNew.result_count">
		<div class="block-outer">
			<xf:pagenav
				page="{$page}" perpage="{$perPage}" total="{$findNew.result_count}"
				link="whats-new/profile-posts" data="{$findNew}"
				wrapperclass="block-outer-main" />

			<xf:if contentcheck="true">
				<div class="block-outer-opposite">
					<div class="buttonGroup">
					<xf:contentcheck>
						<xf:if is="$canInlineMod">
							<xf:macro id="inline_mod_macros::button" />
						</xf:if>
					</xf:contentcheck>
					</div>
				</div>
			</xf:if>
		</div>
	</xf:if>

	<div class="block-container">
		<xf:if is="$xf.visitor.user_id">
			<div class="block-filterBar">
				<div class="filterBar">
					<xf:if contentcheck="true">
						<ul class="filterBar-filters">
							<xf:contentcheck>
								<!--[XF:filters:top]-->
								<xf:if is="$findNew.filters.followed">
									<li><a href="{{ link('whats-new/profile-posts', $findNew, {'remove': 'followed'}) }}"
										class="filterBar-filterToggle" data-xf-init="tooltip" title="{{ phrase('remove_this_filter')|for_attr }}">
										<span class="filterBar-filterToggle-label">{{ phrase('show_only') }}</span>
										{{ phrase('filter_followed_members') }}</a></li>
								</xf:if>
								<!--[XF:filters:bottom]-->
							</xf:contentcheck>
						</ul>
					</xf:if>

					<a class="filterBar-menuTrigger" data-xf-click="menu" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{{ phrase('filters') }}</a>
					<div class="menu" data-menu="menu" aria-hidden="true">
						<div class="menu-content">
							<h4 class="menu-header">{{ phrase('show_only:') }}</h4>
							<xf:form action="{{ link('whats-new/profile-posts') }}">
								<div class="menu-row">
									<xf:checkbox>
										<xf:option name="followed" selected="{$findNew.filters.followed}"
											label="{{ phrase('members_you_follow') }}" />
									</xf:checkbox>
								</div>

								<xf:macro id="filter_macros::find_new_filter_footer" />
							</xf:form>
						</div>
					</div>
				</div>
			</div>
		</xf:if>

		<xf:if is="$findNew.result_count">
			<xf:foreach loop="$profilePosts" value="$profilePost">
				<xf:macro id="profile_post_macros::profile_post"
					arg-profilePost="{$profilePost}"
					arg-attachmentData="{$profilePostAttachData.{$profilePost.profile_post_id}}"
					arg-showTargetUser="{{ true }}" />
			</xf:foreach>
		<xf:else />
			<div class="block-row">{{ phrase('no_results_found') }}</div>
		</xf:if>
	</div>

	<xf:if is="$findNew.result_count">
		<div class="block-outer block-outer--after">
			<xf:pagenav
				page="{$page}" perpage="{$perPage}" total="{$findNew.result_count}"
				link="whats-new/profile-posts" data="{$findNew}"
				wrapperclass="block-outer-main" />
			<xf:showignored wrapperclass="block-outer-opposite" />
		</div>
	</xf:if>
</div>]]></template>
  <template type="public" title="whats_new_wrapper" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="{$pageSelected} != 'overview'">
	<xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>
</xf:if>

<xf:if is="property('whatsNewNavStyle') == 'tabs'">
	<div class="tabs tabs--standalone">
		<div class="hScroller" data-xf-init="h-scroller">
			<span class="hScroller-scroll">
				<xf:macro id="links"
					arg-pageSelected="{$pageSelected}"
					arg-baseClass="tabs-tab"
					arg-selectedClass="is-active" />
			</span>
		</div>
	</div>
<xf:else />
	<xf:sidenav>
		<div class="block">
			<div class="block-container">
				<h3 class="block-header">{{ phrase('whats_new') }}</h3>
				<div class="block-body">
					<xf:macro id="links"
						arg-pageSelected="{$pageSelected}"
						arg-baseClass="blockLink"
						arg-selectedClass="is-selected" />
				</div>
			</div>
		</div>

		<xf:widgetpos id="whats_new_sidenav" />
	</xf:sidenav>
	<xf:page option="sideNavTitle">{{ phrase('whats_new') }}</xf:page>
</xf:if>

{$innerContent|raw}

<xf:macro id="links" arg-pageSelected="!" arg-baseClass="!" arg-selectedClass="!">
	<a class="{$baseClass} {{ $pageSelected == 'overview' ? {$selectedClass} : '' }}" href="{{ link('whats-new') }}">{{ phrase('whats_new') }}</a>
	<!--[XF:links:start]-->
	<a class="{$baseClass} {{ $pageSelected == 'featured' ? {$selectedClass} : '' }}" href="{{ link('featured') }}">{{ phrase('featured_content') }}</a>
	<!--[XF:links:after_featured]-->
	<a class="{$baseClass} {{ $pageSelected == 'new_thread' ? {$selectedClass} : '' }}" href="{{ link('whats-new/posts') }}" rel="nofollow">{{ phrase('new_posts') }}</a>
	<!--[XF:links:after_thread]-->
	<xf:if is="$xf.visitor.canViewProfilePosts()">
		<a class="{$baseClass} {{ $pageSelected == 'new_profile_post' ? {$selectedClass} : '' }}" href="{{ link('whats-new/profile-posts') }}" rel="nofollow">{{ phrase('new_profile_posts') }}</a>
	</xf:if>
	<!--[XF:links:after_profile_post]-->
	<xf:if is="$xf.options.enableNewsFeed">
		<xf:if is="$xf.visitor.user_id">
			<a class="{$baseClass} {{ $pageSelected == 'news_feed' ? {$selectedClass} : '' }}" href="{{ link('whats-new/news-feed') }}" rel="nofollow">{{ phrase('your_news_feed') }}</a>
		</xf:if>

		<a class="{$baseClass} {{ $pageSelected == 'latest_activity' ? {$selectedClass} : '' }}" href="{{ link('whats-new/latest-activity') }}" rel="nofollow">{{ phrase('latest_activity') }}</a>
	</xf:if>
	<!--[XF:links:end]-->
</xf:macro>]]></template>
  <template type="public" title="widget_birthdays" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:if is="$users is not empty">
	<div class="block"{{ widget_data($widget) }}>
		<div class="block-container">
			<h3 class="block-minorHeader">{$title}</h3>
			<div class="block-body block-row">
				<ul class="listHeap">
					<xf:foreach loop="$users" value="$user">
						<li>
							<xf:avatar user="$user" size="s" img="true" />
						</li>
					</xf:foreach>
				</ul>
			</div>
		</div>
	</div>
</xf:if>]]></template>
  <template type="public" title="widget_featured_content" version_id="2030033" version_string="2.3.0 Beta 3"><![CDATA[<xf:if is="$features is not empty">
	<xf:if is="$style == 'simple'">
		<div class="block" {{ widget_data($widget) }}>
			<div class="block-container">
				<h3 class="block-minorHeader">
					<a href="{$link}">{{ $title ?: phrase('featured_content') }}</a>
				</h3>

				<ul class="block-body">
					<xf:foreach loop="$features" value="$feature">
						<li class="block-row">
							{{ $feature.render('simple', $snippetLength)|raw }}
						</li>
					</xf:foreach>
				</ul>
			</div>
		</div>
	<xf:elseif is="$style == 'carousel'" />
		<xf:macro name="carousel_macros::setup" />

		<div class="carousel {{ $hasMore ? 'carousel--withFooter' : '' }}" {{ widget_data($widget) }}>
			<ul class="carousel-body carousel-body--show2" data-xf-init="carousel">
				<xf:foreach loop="$features" value="$feature">
					<li class="carousel-container">
						<div class="carousel-item">
							{{ $feature.render('carousel', $snippetLength)|raw }}
						</div>
					</li>
				</xf:foreach>
			</ul>

			<xf:if is="$hasMore">
				<div class="carousel-footer">
					<a href="{$link}">{{ phrase('view_all_featured_content') }}</a>
				</div>
			</xf:if>
		</div>
	<xf:else />
		<xf:css src="message.less" />

		<div class="block block--articles block--messages block--previews" {{ widget_data($widget) }}>
			<div class="block-container">
				<div class="block-body">
					<xf:foreach loop="$features" value="$feature">
						{{ $feature.render('article', $snippetLength)|raw }}
					</xf:foreach>
				</div>
			</div>
		</div>
	</xf:if>
</xf:if>]]></template>
  <template type="public" title="widget_find_member" version_id="2030038" version_string="2.3.0 Beta 8"><![CDATA[<xf:form action="{{ link('members') }}" class="block" attributes="{{ widget_data($widget, true) }}">
	<div class="block-container">
		<h3 class="block-minorHeader">{$title}</h3>
		<div class="block-body block-row">
			<xf:textbox name="username" ac="single" data-autosubmit="true"
				maxlength="{{ max_length($xf.visitor, 'username') }}"
				placeholder="{{ phrase('name...') }}" />
		</div>
	</div>
</xf:form>]]></template>
  <template type="public" title="widget_forum_statistics" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<div class="block"{{ widget_data($widget) }}>
	<div class="block-container">
		<h3 class="block-minorHeader">{$title}</h3>
		<div class="block-body block-row">
			<dl class="pairs pairs--justified count--threads">
				<dt>{{ phrase('threads') }}</dt>
				<dd>{$forumStatistics.threads|number}</dd>
			</dl>

			<dl class="pairs pairs--justified count--messages">
				<dt>{{ phrase('messages') }}</dt>
				<dd>{$forumStatistics.messages|number}</dd>
			</dl>

			<dl class="pairs pairs--justified count--users">
				<dt>{{ phrase('members') }}</dt>
				<dd>{$forumStatistics.users|number}</dd>
			</dl>

			<dl class="pairs pairs--justified">
				<dt>{{ phrase('latest_member') }}</dt>
				<dd><xf:username user="{$forumStatistics.latestUser}" /></dd>
			</dl>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="widget_html" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="!$options.advanced_mode">
	<div class="block">
		<div class="block-container" {{ widget_data($widget) }}>
			<xf:if is="$title">
				<h3 class="block-minorHeader">{$title}</h3>
			</xf:if>
			<div class="block-body block-row">
				{$template|raw}
			</div>
		</div>
	</div>
<xf:else />
	{$template|raw}
</xf:if>]]></template>
  <template type="public" title="widget_member_stat" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:css src="member.less" />

<xf:if contentcheck="true">
	<div class="block"{{ widget_data($widget) }}>
		<div class="block-container">
			<h3 class="block-minorHeader">
				<a href="{{ link('members', null, {'key': $memberStat.member_stat_key}) }}">
					{$title}
				</a>
			</h3>
			<ol class="block-body">
				<xf:contentcheck>
					<xf:foreach loop="$results" key="$userId" value="$data">
						<li class="block-row">
							<xf:macro id="member_notable::overview_row" arg-data="{$data}" />
						</li>
					</xf:foreach>
				</xf:contentcheck>
			</ol>
		</div>
	</div>
</xf:if>]]></template>
  <template type="public" title="widget_members_online" version_id="2000270" version_string="2.0.2"><![CDATA[<xf:if is="$options.staffOnline">
	<xf:if contentcheck="true">
		<div class="block" data-widget-section="staffMembers"{{ widget_data($widget) }}>
			<div class="block-container">
				<h3 class="block-minorHeader"><a href="{{ link('members', null, {'key': 'staff_members'}) }}">{{ phrase('staff_online') }}</a></h3>
				<ul class="block-body">
				<xf:contentcheck>
					<xf:foreach loop="$online.users" value="$user">
						<xf:if is="$user.is_staff">
							<li class="block-row">
								<div class="contentRow">
									<div class="contentRow-figure">
										<xf:avatar user="$user" size="xs" />
									</div>
									<div class="contentRow-main contentRow-main--close">
										<xf:username user="$user" rich="true" />
										<div class="contentRow-minor">
											<xf:usertitle user="$user" />
										</div>
									</div>
								</div>
							</li>
						</xf:if>
					</xf:foreach>
				</xf:contentcheck>
				</ul>
			</div>
		</div>
	</xf:if>
</xf:if>

<div class="block" data-widget-section="onlineNow"{{ widget_data($widget) }}>
	<div class="block-container">
		<h3 class="block-minorHeader"><a href="{{ link('online') }}">{$title}</a></h3>
		<div class="block-body">
			<xf:if contentcheck="true">
				<div class="block-row block-row--minor">
					<h4 class="block-textHeader block-textHeader--scaled">
						{{ phrase('people_you_follow') }}
					</h4>
					<ul class="listHeap">
						<xf:contentcheck>
							<xf:if is="$options.followedOnline">
								<xf:foreach loop="$online.users" value="$user">
									<xf:if is="in_array($user.user_id, $xf.visitor.Profile.following)">
										<li>
											<xf:avatar user="$user" size="xxs" img="true" />
										</li>
									</xf:if>
								</xf:foreach>
							</xf:if>
						</xf:contentcheck>
					</ul>
				</div>

				<div class="block-row block-row--minor">
					<h4 class="block-textHeader block-textHeader--scaled">
						{{ phrase('members') }}
					</h4>
			<xf:else />
				<div class="block-row block-row--minor">
			</xf:if>

				<xf:if is="$online.users is not empty">
					<ul class="listInline listInline--comma">
						<xf:foreach loop="$online.users" value="$user"><xf:trim>
							<li><xf:username user="$user" rich="true" class="{{ !$user.visible ? 'username--invisible' : '' }}" /></li>
						</xf:trim></xf:foreach>
					</ul>
					<xf:if is="$online.counts.unseen">
						<a href="{{ link('online') }}">{{ phrase('ellipsis_and_x_more', {'count': $online.counts.unseen}) }}</a>
					</xf:if>
				<xf:else />
					{{ phrase('no_members_online_now') }}
				</xf:if>
			</div>
		</div>
		<div class="block-footer">
			<span class="block-footer-counter">{{ phrase('online_now_x_members_y_guests_z',{
				'total': number($online.counts.total),
				'members': number($online.counts.members),
				'guests': number($online.counts.guests)})
			}}</span>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="widget_new_posts" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$threads is not empty OR ($threads is empty AND $filter != 'latest')">
	<div class="block"{{ widget_data($widget) }}>
		<div class="block-container">
			<xf:if is="$style == 'full'">
				<h3 class="block-header">
					<a href="{$link}" rel="nofollow">{$title}</a>
				</h3>
				<div class="block-body">
					<div class="structItemContainer">
						<xf:if is="$threads is not empty">
							<xf:foreach loop="$threads" value="$thread">
								<xf:macro id="thread_list_macros::item"
									arg-allowInlineMod="{{ false }}"
									arg-thread="{$thread}" />
							</xf:foreach>
						<xf:elseif is="$filter == 'unread'" />
							<div class="block-row">
								{{ phrase('no_unread_posts_view_latest', {'link': link('whats-new/posts', null, {'skip': 1})}) }}
							</div>
						<xf:else />
							<div class="block-row">
								{{ phrase('no_results_found') }}
							</div>
						</xf:if>
					</div>
				</div>
				<xf:if is="$hasMore">
					<div class="block-footer">
						<span class="block-footer-controls">
							<xf:button href="{$link}" rel="nofollow">{{ phrase('view_more...') }}</xf:button>
						</span>
					</div>
				</xf:if>
			<xf:else />
				<h3 class="block-minorHeader">
					<a href="{$link}" rel="nofollow">{$title}</a>
				</h3>
				<ul class="block-body">
					<xf:if is="$threads is not empty">
						<xf:foreach loop="$threads" value="$thread">
							<li class="block-row">
								<xf:macro id="thread_list_macros::item_new_posts"
									arg-thread="{$thread}" />
							</li>
						</xf:foreach>
					<xf:elseif is="$filter == 'unread'" />
						<li class="block-row block-row--minor">
							{{ phrase('no_unread_posts_view_latest', {'link': link('whats-new/posts', null, {'skip': 1})}) }}
						</li>
					<xf:else />
						<li class="block-row block-row--minor">
							{{ phrase('no_results_found') }}
						</li>
					</xf:if>
				</ul>
			</xf:if>
		</div>
	</div>
</xf:if>]]></template>
  <template type="public" title="widget_new_profile_posts" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$profilePosts is not empty">
	<xf:macro id="lightbox_macros::setup" arg-canViewAttachments="{$canViewAttachments}" />

	<div class="block"{{ widget_data($widget) }}
		data-xf-init="lightbox">
		<div class="block-container">
			<xf:if is="$style == 'full'">
				<h3 class="block-header">
					<a href="{$link}" rel="nofollow">{$title}</a>
				</h3>
			<xf:else />
				<h3 class="block-minorHeader">
					<a href="{$link}" rel="nofollow">{$title}</a>
				</h3>
			</xf:if>
			<div class="block-body js-replyNewMessageContainer">
				<xf:if is="$xf.visitor.canPostOnProfile()">
					<xf:set var="$firstProfilePost" value="{$profilePosts|first}" />
					<xf:macro id="profile_post_macros::submit"
						arg-user="{$xf.visitor}"
						arg-lastDate="{{ $firstProfilePost.post_date ?: 0 }}"
						arg-containerSelector="< .js-replyNewMessageContainer"
						arg-style="{$style}"
						arg-context="all"
						arg-attachmentData="{$attachmentData}" />
				</xf:if>
				<xf:foreach loop="$profilePosts" value="$profilePost">
					<xf:if is="$style == 'full'">
						<xf:macro id="profile_post_macros::profile_post"
							arg-profilePost="{$profilePost}"
							arg-attachmentData="{$profilePostAttachData.{$profilePost.profile_post_id}}"
							arg-showTargetUser="{{ true }}"
							arg-allowInlineMod="{{ false }}" />
					<xf:else />
						<div class="block-row">
							<xf:macro id="profile_post_macros::profile_post_simple"
								arg-profilePost="{$profilePost}"
								arg-limitHeight="{{ true }}" />
						</div>
					</xf:if>
				</xf:foreach>
			</div>
			<xf:if is="$style == 'full'">
				<div class="block-footer">
					<span class="block-footer-controls">
						<xf:button href="{$link}" rel="nofollow">{{ phrase('view_more...') }}</xf:button>
					</span>
				</div>
			</xf:if>
		</div>
	</div>
</xf:if>]]></template>
  <template type="public" title="widget_new_threads" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$threads is not empty">
	<xf:if is="$style != 'expanded'">
		<div class="block"{{ widget_data($widget) }}>
			<div class="block-container">
				<xf:if is="$style == 'full'">
					<h3 class="block-header">
						<a href="{$link}" rel="nofollow">{$title}</a>
					</h3>
					<div class="block-body">
						<div class="structItemContainer">
							<xf:foreach loop="$threads" value="$thread">
								<xf:macro id="thread_list_macros::item"
									arg-allowInlineMod="{{ false }}"
									arg-thread="{$thread}" />
							</xf:foreach>
						</div>
					</div>
				<xf:else />
					<h3 class="block-minorHeader">
						<a href="{$link}" rel="nofollow">{$title}</a>
					</h3>
					<ul class="block-body">
						<xf:foreach loop="$threads" value="$thread">
							<li class="block-row">
								<xf:macro id="thread_list_macros::item_new_threads"
									arg-thread="{$thread}" />
							</li>
						</xf:foreach>
					</ul>
				</xf:if>
			</div>
		</div>
	<xf:else />
		<xf:css src="message.less" />

		<div class="blocks" {{ widget_data($widget) }}>
			<xf:if is="$showExpandedTitle">
				<h2 class="blocks-header">
					{$title}
				</h2>
			</xf:if>

			<xf:foreach loop="$threads" value="$thread">
				<xf:set var="$post" value="{$thread.FirstPost}" />

				<div class="block">
					<div class="block-container"
						data-xf-init="lightbox">

						<h4 class="block-header">
							<a href="{{ link('threads', $thread) }}">{$thread.title}</a>
						</h4>
						<div class="block-body">
							<div class="message message--post">
								<div class="message-inner">
									<div class="message-cell message-cell--main">
										<div class="message-content js-messageContent">
											<header class="message-attribution">
												<ul class="listInline listInline--bullet u-muted">
													<li><xf:username user="{$thread.User}" defaultname="{$thread.username}" /></li>
													<li><xf:date time="{$post.post_date}" /></li>
													<li><a href="{{ link('forums', $thread.Forum) }}">{$thread.Forum.title}</a></li>
													<li>{{ phrase('replies:') }} {$thread.reply_count|number}</li>
												</ul>
											</header>
											<div class="message-userContent lbContainer js-lbContainer"
												data-lb-id="post-{$post.post_id}"
												data-lb-caption-desc="{{ $post.User ? $post.User.username : $post.username }} &middot; {{ date_time($post.post_date) }}">

												<article class="message-body">
													{{ bb_code($post.message, 'post', $post) }}
												</article>
											</div>
										</div>
									</div>
								</div>
							</div>
						</div>
					</div>
				</div>
			</xf:foreach>
		</div>
	</xf:if>
</xf:if>]]></template>
  <template type="public" title="widget_newest_members" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:if is="$users is not empty">
	<div class="block"{{ widget_data($widget) }}>
		<div class="block-container">
			<h3 class="block-minorHeader">{$title}</h3>
			<div class="block-body block-row">
				<ul class="listHeap">
					<xf:foreach loop="$users" value="$user">
						<li>
							<xf:avatar user="$user" size="s" img="true" />
						</li>
					</xf:foreach>
				</ul>
			</div>
		</div>
	</div>
</xf:if>]]></template>
  <template type="public" title="widget_online_statistics" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<div class="block"{{ widget_data($widget) }}>
	<div class="block-container">
		<h3 class="block-minorHeader">{$title}</h3>
		<div class="block-body block-row">
			<dl class="pairs pairs--justified">
				<dt>{{ phrase('members_online') }}</dt>
				<dd>{$counts.members|number}</dd>
			</dl>

			<dl class="pairs pairs--justified">
				<dt>{{ phrase('guests_online') }}</dt>
				<dd>{$counts.guests|number}</dd>
			</dl>

			<dl class="pairs pairs--justified">
				<dt>{{ phrase('total_visitors') }}</dt>
				<dd>{$counts.total|number}</dd>
			</dl>
		</div>
		<div class="block-footer">
			{{ phrase('totals_may_include_hidden_visitors') }}
		</div>
	</div>
</div>]]></template>
  <template type="public" title="widget_search_forum" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$style != 'expanded'">
	<div class="block" {{ widget_data($widget) }}>
		<div class="block-container">
			<xf:if is="$style == 'full'">
				<h3 class="block-header">
					<a href="{{ link('search-forums', $searchForum) }}">
						{{ $title ?: $searchForum.title }}
					</a>
				</h3>

				<div class="block-body">
					<div class="structItemContainer">
						<xf:foreach loop="$threads" value="$thread">
							<xf:macro id="thread_list_macros::item"
								arg-allowInlineMod="{{ false }}"
								arg-thread="{$thread}" />
						</xf:foreach>
					</div>
				</div>
			<xf:else />
				<h3 class="block-minorHeader">
					<a href="{{ link('search-forums', $searchForum) }}">
						{{ $title ?: $searchForum.title }}
					</a>
				</h3>

				<ul class="block-body">
					<xf:foreach loop="$threads" value="$thread">
						<li class="block-row">
							<xf:macro id="thread_list_macros::item_new_threads"
								arg-thread="{$thread}" />
						</li>
					</xf:foreach>
				</ul>
			</xf:if>
		</div>
	</div>
<xf:else />
	<xf:css src="message.less" />

	<div class="blocks" {{ widget_data($widget) }}>
		<xf:if is="$showExpandedTitle">
			<h2 class="blocks-header">
				{{ $title ?: $searchForum.title }}
			</h2>
		</xf:if>

		<xf:foreach loop="$threads" value="$thread">
			<xf:set var="$post" value="{$thread.FirstPost}" />

			<div class="block">
				<div class="block-container" data-xf-init="lightbox">
					<h4 class="block-header">
						<a href="{{ link('threads', $thread) }}">{$thread.title}</a>
					</h4>

					<div class="block-body">
						<div class="message message--post">
							<div class="message-inner">
								<div class="message-cell message-cell--main">
									<div class="message-content js-messageContent">
										<header class="message-attribution">
											<ul class="listInline listInline--bullet u-muted">
												<li><xf:username user="{$thread.User}" defaultname="{$thread.username}" /></li>
												<li><xf:date time="{$post.post_date}" /></li>
												<li><a href="{{ link('forums', $thread.Forum) }}">{$thread.Forum.title}</a></li>
												<li>{{ phrase('replies:') }} {$thread.reply_count|number}</li>
											</ul>
										</header>

										<div class="message-userContent lbContainer js-lbContainer"
											data-lb-id="post-{$post.post_id}"
											data-lb-caption-desc="{{ $post.User ? $post.User.username : $post.username }} &middot; {{ date_time($post.post_date) }}">

											<article class="message-body">
												{{ bb_code($post.message, 'post', $post) }}
											</article>
										</div>
									</div>
								</div>
							</div>
						</div>
					</div>
				</div>
			</div>
		</xf:foreach>
	</div>
</xf:if>]]></template>
  <template type="public" title="widget_share_page" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if contentcheck="true">
	<div class="block"{{ widget_data($widget) }}>
		<div class="block-container">
			<h3 class="block-minorHeader">{$title}</h3>
			<div class="block-body block-row">
				<xf:contentcheck>
					<xf:macro id="share_page_macros::buttons" arg-iconic="{$options.iconic}" />
				</xf:contentcheck>
			</div>
		</div>
	</div>
</xf:if>]]></template>
  <template type="public" title="widget_thread_poll" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:macro id="poll_macros::poll_block" arg-poll="{$poll}" arg-simpleDisplay="{{ true }}" arg-forceTitle="{$title}" />]]></template>
  <template type="public" title="widget_thread_statistics" version_id="2030037" version_string="2.3.0 Beta 7"><![CDATA[<xf:comment>You MUST have $thread context in your selected widget position for this to work!</xf:comment>
<div class="block" {{ widget_data($widget) }}>
	<div class="block-container">
		<h3 class="block-minorHeader">{$title}</h3>

		<div class="block-body block-row">
			<dl class="pairs pairs--spaced pairs--small">
				<dt>{{ phrase('created') }}</dt>
				<dd>
					<xf:username user="{$thread}" />,
					<a href="{{ link('threads', $thread) }}" class="u-concealed">
						<xf:date time="$thread.post_date"/>
					</a>
				</dd>
			</dl>

			<xf:if is="$thread.reply_count">
				<dl class="pairs pairs--spaced">
					<dt>{{ phrase('last_reply_from') }}</dt>
					<dd>
						<xf:username user="{$thread.last_post_cache}" />,
						<a href="{{ link('threads/latest', $thread) }}" class="u-concealed">
							<xf:date time="$thread.last_post_date" />
						</a>
					</dd>
				</dl>
			</xf:if>

			<dl class="pairs pairs--justified count--replies">
				<dt>{{ phrase('replies') }}</dt>
				<dd>{$thread.reply_count|number}</dd>
			</dl>

			<dl class="pairs pairs--justified count--views">
				<dt>{{ phrase('views') }}</dt>
				<dd>{$thread.view_count|number}</dd>
			</dl>
			<xf:comment>
				TODO: unique users?
				potential new fields in thread table:
				-	unique_user_count int unsigned not null
				-   reaction_score int unsigned not null
			</xf:comment>
		</div>
	</div>
</div>]]></template>
  <template type="public" title="widget_trending_content" version_id="2030055" version_string="2.3.0 Release Candidate 5"><![CDATA[<xf:if is="$content is not empty">
	<xf:if is="$style == 'simple'">
		<div class="block" {{ widget_data($widget) }}>
			<div class="block-container">
				<h3 class="block-minorHeader">{{ $title ?: phrase('trending_content') }}</h3>

				<ul class="block-body">
					<xf:foreach loop="$content" value="$item">
						<li class="block-row">
							{{ $result.renderContent($item, 'simple', $snippetLength)|raw }}
						</li>
					</xf:foreach>
				</ul>
			</div>
		</div>
	<xf:elseif is="$style == 'carousel'" />
		<xf:macro name="carousel_macros::setup" />

		<div class="carousel" {{ widget_data($widget) }}>
			<ul class="carousel-body carousel-body--show2" data-xf-init="carousel">
				<xf:foreach loop="$content" value="$item">
					<li class="carousel-container">
						<div class="carousel-item">
							{{ $result.renderContent($item, 'carousel', $snippetLength)|raw }}
						</div>
					</li>
				</xf:foreach>
			</ul>
		</div>
	<xf:else />
		<xf:css src="message.less" />

		<div class="block block--articles block--messages block--previews" {{ widget_data($widget) }}>
			<div class="block-container">
				<div class="block-body">
					<xf:foreach loop="$content" value="$item">
						{{ $result.renderContent($item, 'article', $snippetLength)|raw }}
					</xf:foreach>
				</div>
			</div>
		</div>
	</xf:if>
</xf:if>]]></template>
  <template type="public" title="widget_visitor_panel" version_id="2030010" version_string="2.3.0 Alpha"><![CDATA[<xf:if is="$xf.visitor.user_id">
	<div class="block"{{ widget_data($widget) }}>
		<div class="block-container">
			<div class="block-body block-row">
				<xf:macro id="account_visitor_menu::visitor_panel_row" />
			</div>
		</div>
	</div>
</xf:if>]]></template>
</templates>
