TypeError
Twig\TwigFunction::__construct(): Argument #1 ($name) must be of type string, array given, called in /home/lakuga/public_html/wp-content/plugins/all-in-one-event-calendar/vendor/twig/Function/Method.php on line 30 TypeError thrown with message "Twig\TwigFunction::__construct(): Argument #1 ($name) must be of type string, array given, called in /home/lakuga/public_html/wp-content/plugins/all-in-one-event-calendar/vendor/twig/Function/Method.php on line 30" Stacktrace: #75 TypeError in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/TwigFunction.php:40 #74 Twig\TwigFunction:__construct in /home/lakuga/public_html/wp-content/plugins/all-in-one-event-calendar/vendor/twig/Function/Method.php:30 #73 Twig_Function_Method:__construct in /home/lakuga/public_html/wp-content/plugins/all-in-one-event-calendar/lib/twig/ai1ec-extension.php:33 #72 Ai1ec_Twig_Ai1ec_Extension:getFunctions in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/ExtensionSet.php:436 #71 Twig\ExtensionSet:initExtension in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/ExtensionSet.php:421 #70 Twig\ExtensionSet:initExtensions in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/ExtensionSet.php:395 #69 Twig\ExtensionSet:getUnaryOperators in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Environment.php:965 #68 Twig\Environment:getUnaryOperators in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Lexer.php:472 #67 Twig\Lexer:getOperatorRegex in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Lexer.php:121 #66 Twig\Lexer:initialize in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Lexer.php:169 #65 Twig\Lexer:tokenize in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Environment.php:541 #64 Twig\Environment:tokenize in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Environment.php:594 #63 Twig\Environment:compileSource in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Environment.php:408 #62 Twig\Environment:loadClass in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Environment.php:381 #61 Twig\Environment:loadTemplate in /home/lakuga/public_html/wp-content/plugins/all-in-one-event-calendar/lib/twig/environment.php:29 #60 Ai1ec_Twig_Environment:loadTemplate in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Environment.php:359 #59 Twig\Environment:load in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Environment.php:318 #58 Twig\Environment:render in /home/lakuga/public_html/wp-content/plugins/all-in-one-event-calendar/lib/twig/environment.php:80 #57 Ai1ec_Twig_Environment:render in /home/lakuga/public_html/wp-content/plugins/all-in-one-event-calendar/lib/theme/file/twig.php:61 #56 Ai1ec_File_Twig:process_file in /home/lakuga/public_html/wp-content/plugins/all-in-one-event-calendar/lib/theme/loader.php:333 #55 Ai1ec_Theme_Loader:get_file in /home/lakuga/public_html/wp-content/plugins/all-in-one-event-calendar/app/view/calendar/widget.php:381 #54 Ai1ec_View_Admin_Widget:get_content in /home/lakuga/public_html/wp-content/plugins/all-in-one-event-calendar/app/view/embeddable.php:131 #53 Ai1ec_Embeddable:widget in /home/lakuga/public_html/wp-includes/widgets.php:1269 #52 the_widget in /home/lakuga/public_html/wp-content/plugins/gantry5/src/classes/Gantry/WordPress/Widgets.php:150 #51 Gantry\WordPress\Widgets:displayWidget in /home/lakuga/public_html/wp-content/plugins/gantry5/src/classes/Gantry/Framework/Platform.php:338 #50 Gantry\Framework\Platform:displayWidget in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Extension/CoreExtension.php:1567 #49 twig_get_attribute in /home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/7c/7ca45ce8c26c91310885d4e9ef18098e.php:51 #48 __TwigTemplate_3407642cd3e61a20bc8b12f1a4b70df8:block_particle in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:182 #47 Twig\Template:displayBlock in /home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/16/16558af42b7569ef475ca4a28e2a1e1b.php:80 #46 __TwigTemplate_24608844b43586d28b1a38e893746c2f:doDisplay in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:405 #45 Twig\Template:displayWithErrorHandling in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:378 #44 Twig\Template:display in /home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/7c/7ca45ce8c26c91310885d4e9ef18098e.php:42 #43 __TwigTemplate_3407642cd3e61a20bc8b12f1a4b70df8:doDisplay in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:405 #42 Twig\Template:displayWithErrorHandling in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:378 #41 Twig\Template:display in /home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/82/8202925dab8ff29758669ceb0aaae910.php:60 #40 __TwigTemplate_4d4b4b189f54923bb54e3ac7d6f1ca8b:doDisplay in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:405 #39 Twig\Template:displayWithErrorHandling in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:378 #38 Twig\Template:display in /home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/2e/2e9abc9328b15579a6d691c2f4d6c021.php:82 #37 __TwigTemplate_f42f32e795f612c1f97914fd97c76fce:doDisplay in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:405 #36 Twig\Template:displayWithErrorHandling in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:378 #35 Twig\Template:display in /home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/b2/b2dedc577c7750396865e49123190ae5.php:65 #34 __TwigTemplate_9bad330c9f2e3038372115bbe7dd0699:doDisplay in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:405 #33 Twig\Template:displayWithErrorHandling in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:378 #32 Twig\Template:display in /home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/12/12f006c3e7d2351ca0e597f99e24562b.php:78 #31 __TwigTemplate_89b4ab31b7ec5a38b5e79b80f2c82e80:doDisplay in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:405 #30 Twig\Template:displayWithErrorHandling in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:378 #29 Twig\Template:display in /home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/2e/2e9abc9328b15579a6d691c2f4d6c021.php:82 #28 __TwigTemplate_f42f32e795f612c1f97914fd97c76fce:doDisplay in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:405 #27 Twig\Template:displayWithErrorHandling in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:378 #26 Twig\Template:display in /home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/b2/b2dedc577c7750396865e49123190ae5.php:65 #25 __TwigTemplate_9bad330c9f2e3038372115bbe7dd0699:doDisplay in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:405 #24 Twig\Template:displayWithErrorHandling in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:378 #23 Twig\Template:display in /home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/74/7449c3a331e55224b5b464f38cb242e9.php:58 #22 __TwigTemplate_095daa50f131b8e7c457960ef8956921:doDisplay in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:405 #21 Twig\Template:displayWithErrorHandling in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:378 #20 Twig\Template:display in /home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/16/1666cb7ef6e32839451e28187204cfdb.php:218 #19 __TwigTemplate_14fd6afed9b876e5849c5de965dec417:block_page_layout in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:182 #18 Twig\Template:displayBlock in /home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/16/1666cb7ef6e32839451e28187204cfdb.php:96 #17 __TwigTemplate_14fd6afed9b876e5849c5de965dec417:doDisplay in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:405 #16 Twig\Template:displayWithErrorHandling in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:378 #15 Twig\Template:display in /home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/d1/d1afb44c1a5ce1c6e8a1b22432052857.php:43 #14 __TwigTemplate_d8fe3cb863a6f7498fce8361533df7ec:doDisplay in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:405 #13 Twig\Template:displayWithErrorHandling in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:378 #12 Twig\Template:display in /home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/d7/d7b30e48f3206e084056b676f9218d2b.php:47 #11 __TwigTemplate_877b9592a6eff2abb3caf4ee8264169e:doDisplay in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:405 #10 Twig\Template:displayWithErrorHandling in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:378 #9 Twig\Template:display in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:390 #8 Twig\Template:render in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/TemplateWrapper.php:45 #7 Twig\TemplateWrapper:render in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/timber/timber/lib/Loader.php:79 #6 Timber\Loader:render in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/timber/timber/lib/Timber.php:334 #5 Timber\Timber:compile in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/timber/timber/lib/Timber.php:383 #4 Timber\Timber:fetch in /home/lakuga/public_html/wp-content/plugins/gantry5/vendor/timber/timber/lib/Timber.php:410 #3 Timber\Timber:render in /home/lakuga/public_html/wp-content/themes/lakuga-theme/archive.php:52 #2 include in /home/lakuga/public_html/wp-includes/template-loader.php:125 #1 require_once in /home/lakuga/public_html/wp-blog-header.php:19 #0 require in /home/lakuga/public_html/index.php:17
Stack frames (76)
75
TypeError
/vendor/twig/twig/src/TwigFunction.php40
74
Twig\TwigFunction __construct
/home/lakuga/public_html/wp-content/plugins/all-in-one-event-calendar/vendor/twig/Function/Method.php30
73
Twig_Function_Method __construct
/home/lakuga/public_html/wp-content/plugins/all-in-one-event-calendar/lib/twig/ai1ec-extension.php33
72
Ai1ec_Twig_Ai1ec_Extension getFunctions
/vendor/twig/twig/src/ExtensionSet.php436
71
Twig\ExtensionSet initExtension
/vendor/twig/twig/src/ExtensionSet.php421
70
Twig\ExtensionSet initExtensions
/vendor/twig/twig/src/ExtensionSet.php395
69
Twig\ExtensionSet getUnaryOperators
/vendor/twig/twig/src/Environment.php965
68
Twig\Environment getUnaryOperators
/vendor/twig/twig/src/Lexer.php472
67
Twig\Lexer getOperatorRegex
/vendor/twig/twig/src/Lexer.php121
66
Twig\Lexer initialize
/vendor/twig/twig/src/Lexer.php169
65
Twig\Lexer tokenize
/vendor/twig/twig/src/Environment.php541
64
Twig\Environment tokenize
/vendor/twig/twig/src/Environment.php594
63
Twig\Environment compileSource
/vendor/twig/twig/src/Environment.php408
62
Twig\Environment loadClass
/vendor/twig/twig/src/Environment.php381
61
Twig\Environment loadTemplate
/home/lakuga/public_html/wp-content/plugins/all-in-one-event-calendar/lib/twig/environment.php29
60
Ai1ec_Twig_Environment loadTemplate
/vendor/twig/twig/src/Environment.php359
59
Twig\Environment load
/vendor/twig/twig/src/Environment.php318
58
Twig\Environment render
/home/lakuga/public_html/wp-content/plugins/all-in-one-event-calendar/lib/twig/environment.php80
57
Ai1ec_Twig_Environment render
/home/lakuga/public_html/wp-content/plugins/all-in-one-event-calendar/lib/theme/file/twig.php61
56
Ai1ec_File_Twig process_file
/home/lakuga/public_html/wp-content/plugins/all-in-one-event-calendar/lib/theme/loader.php333
55
Ai1ec_Theme_Loader get_file
/home/lakuga/public_html/wp-content/plugins/all-in-one-event-calendar/app/view/calendar/widget.php381
54
Ai1ec_View_Admin_Widget get_content
/home/lakuga/public_html/wp-content/plugins/all-in-one-event-calendar/app/view/embeddable.php131
53
Ai1ec_Embeddable widget
/home/lakuga/public_html/wp-includes/widgets.php1269
52
the_widget
/src/classes/Gantry/WordPress/Widgets.php150
51
Gantry\WordPress\Widgets displayWidget
/src/classes/Gantry/Framework/Platform.php338
50
Gantry\Framework\Platform displayWidget
/vendor/twig/twig/src/Extension/CoreExtension.php1567
49
twig_get_attribute
/home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/7c/7ca45ce8c26c91310885d4e9ef18098e.php51
48
__TwigTemplate_3407642cd3e61a20bc8b12f1a4b70df8 block_particle
/vendor/twig/twig/src/Template.php182
47
Twig\Template displayBlock
/home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/16/16558af42b7569ef475ca4a28e2a1e1b.php80
46
__TwigTemplate_24608844b43586d28b1a38e893746c2f doDisplay
/vendor/twig/twig/src/Template.php405
45
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php378
44
Twig\Template display
/home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/7c/7ca45ce8c26c91310885d4e9ef18098e.php42
43
__TwigTemplate_3407642cd3e61a20bc8b12f1a4b70df8 doDisplay
/vendor/twig/twig/src/Template.php405
42
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php378
41
Twig\Template display
/home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/82/8202925dab8ff29758669ceb0aaae910.php60
40
__TwigTemplate_4d4b4b189f54923bb54e3ac7d6f1ca8b doDisplay
/vendor/twig/twig/src/Template.php405
39
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php378
38
Twig\Template display
/home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/2e/2e9abc9328b15579a6d691c2f4d6c021.php82
37
__TwigTemplate_f42f32e795f612c1f97914fd97c76fce doDisplay
/vendor/twig/twig/src/Template.php405
36
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php378
35
Twig\Template display
/home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/b2/b2dedc577c7750396865e49123190ae5.php65
34
__TwigTemplate_9bad330c9f2e3038372115bbe7dd0699 doDisplay
/vendor/twig/twig/src/Template.php405
33
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php378
32
Twig\Template display
/home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/12/12f006c3e7d2351ca0e597f99e24562b.php78
31
__TwigTemplate_89b4ab31b7ec5a38b5e79b80f2c82e80 doDisplay
/vendor/twig/twig/src/Template.php405
30
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php378
29
Twig\Template display
/home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/2e/2e9abc9328b15579a6d691c2f4d6c021.php82
28
__TwigTemplate_f42f32e795f612c1f97914fd97c76fce doDisplay
/vendor/twig/twig/src/Template.php405
27
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php378
26
Twig\Template display
/home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/b2/b2dedc577c7750396865e49123190ae5.php65
25
__TwigTemplate_9bad330c9f2e3038372115bbe7dd0699 doDisplay
/vendor/twig/twig/src/Template.php405
24
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php378
23
Twig\Template display
/home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/74/7449c3a331e55224b5b464f38cb242e9.php58
22
__TwigTemplate_095daa50f131b8e7c457960ef8956921 doDisplay
/vendor/twig/twig/src/Template.php405
21
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php378
20
Twig\Template display
/home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/16/1666cb7ef6e32839451e28187204cfdb.php218
19
__TwigTemplate_14fd6afed9b876e5849c5de965dec417 block_page_layout
/vendor/twig/twig/src/Template.php182
18
Twig\Template displayBlock
/home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/16/1666cb7ef6e32839451e28187204cfdb.php96
17
__TwigTemplate_14fd6afed9b876e5849c5de965dec417 doDisplay
/vendor/twig/twig/src/Template.php405
16
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php378
15
Twig\Template display
/home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/d1/d1afb44c1a5ce1c6e8a1b22432052857.php43
14
__TwigTemplate_d8fe3cb863a6f7498fce8361533df7ec doDisplay
/vendor/twig/twig/src/Template.php405
13
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php378
12
Twig\Template display
/home/lakuga/public_html/wp-content/cache/gantry5/lakuga-theme/twig/d7/d7b30e48f3206e084056b676f9218d2b.php47
11
__TwigTemplate_877b9592a6eff2abb3caf4ee8264169e doDisplay
/vendor/twig/twig/src/Template.php405
10
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php378
9
Twig\Template display
/vendor/twig/twig/src/Template.php390
8
Twig\Template render
/vendor/twig/twig/src/TemplateWrapper.php45
7
Twig\TemplateWrapper render
/vendor/timber/timber/lib/Loader.php79
6
Timber\Loader render
/vendor/timber/timber/lib/Timber.php334
5
Timber\Timber compile
/vendor/timber/timber/lib/Timber.php383
4
Timber\Timber fetch
/vendor/timber/timber/lib/Timber.php410
3
Timber\Timber render
/home/lakuga/public_html/wp-content/themes/lakuga-theme/archive.php52
2
include
/home/lakuga/public_html/wp-includes/template-loader.php125
1
require_once
/home/lakuga/public_html/wp-blog-header.php19
0
require
/home/lakuga/public_html/index.php17
 *
 * @author Fabien Potencier <fabien@symfony.com>
 *
 * @see https://twig.symfony.com/doc/templates.html#functions
 */
class TwigFunction
{
    private $name;
    private $callable;
    private $options;
    private $arguments = [];
 
    /**
     * Creates a template function.
     *
     * @param string        $name     Name of this function
     * @param callable|null $callable A callable implementing the function. If null, you need to overwrite the "node_class" option to customize compilation.
     * @param array         $options  Options array
     */
    public function __construct(string $name, $callable = null, array $options = [])
    {
        if (__CLASS__ !== static::class) {
            @trigger_error('Overriding '.__CLASS__.' is deprecated since Twig 2.4.0 and the class will be final in 3.0.', \E_USER_DEPRECATED);
        }
 
        $this->name = $name;
        $this->callable = $callable;
        $this->options = array_merge([
            'needs_environment' => false,
            'needs_context' => false,
            'is_variadic' => false,
            'is_safe' => null,
            'is_safe_callback' => null,
            'node_class' => FunctionExpression::class,
            'deprecated' => false,
            'alternative' => null,
        ], $options);
    }
 
    public function getName()
 */
 
/**
 * Represents a method template function.
 *
 * Use Twig_SimpleFunction instead.
 *
 * @author Arnaud Le Blanc <arnaud.lb@gmail.com>
 * @deprecated since 1.12 (to be removed in 2.0)
 */
class Twig_Function_Method extends Twig_Function
{
    protected $extension;
    protected $method;
 
    public function __construct(Twig_ExtensionInterface $extension, $method, array $options = array())
    {
        $options['callable'] = array($extension, $method);
 
        parent::__construct($options);
 
        $this->extension = $extension;
        $this->method = $method;
    }
 
    public function compile()
    {
        return sprintf('$this->env->getExtension(\'%s\')->%s', $this->extension->getName(), $this->method);
    }
}
 
    /**
     * @var Ai1ec_Registry_Object
     */
    protected $_registry;
 
    /**
     * Inject the registry object.
     *
     * @param Ai1ec_Registry_Object $registry
     */
    public function set_registry( Ai1ec_Registry_Object $registry ) {
        $this->_registry = $registry;
    }
 
    /* (non-PHPdoc)
     * @see Twig_Extension::getFunctions()
     */
    public function getFunctions() {
        return array(
            'wp_nonce_field'               => new Twig_Function_Method( $this, 'wp_nonce_field' ),
            'do_meta_boxes'                => new Twig_Function_Method( $this, 'do_meta_boxes' ),
            'fb'                           => new Twig_Function_Method( $this, 'fb' ),
            'ai1ec_disable_content_output' => new Twig_Function_Method( $this, 'ai1ec_disable_content_output' )
        );
    }
 
    /**
     * Twig callback - return a list of filters registered by this extension.
     *
     * @return array
     */
    public function getFilters() {
        return array(
            new Twig_SimpleFilter( 'truncate',          array( $this, 'truncate' ) ),
            new Twig_SimpleFilter( 'timespan',          array( $this, 'timespan' ) ),
            new Twig_SimpleFilter( 'avatar',            array( $this, 'avatar' ) ),
            new Twig_SimpleFilter( 'avatar_url',        array( $this, 'avatar_url' ) ),
            new Twig_SimpleFilter( 'remove_avatar_url', array( $this, 'remove_avatar_url' ) ),
            new Twig_SimpleFilter( 'remove_paragraph',  array( $this, 'remove_paragraph' ) ),
            new Twig_SimpleFilter( 'hour_to_datetime',  array( $this, 'hour_to_datetime' ) ),
        $this->unaryOperators = [];
        $this->binaryOperators = [];
 
        foreach ($this->extensions as $extension) {
            $this->initExtension($extension);
        }
        $this->initExtension($this->staging);
        // Done at the end only, so that an exception during initialization does not mark the environment as initialized when catching the exception
        $this->initialized = true;
    }
 
    private function initExtension(ExtensionInterface $extension)
    {
        // filters
        foreach ($extension->getFilters() as $filter) {
            $this->filters[$filter->getName()] = $filter;
        }
 
        // functions
        foreach ($extension->getFunctions() as $function) {
            $this->functions[$function->getName()] = $function;
        }
 
        // tests
        foreach ($extension->getTests() as $test) {
            $this->tests[$test->getName()] = $test;
        }
 
        // token parsers
        foreach ($extension->getTokenParsers() as $parser) {
            if (!$parser instanceof TokenParserInterface) {
                throw new \LogicException('getTokenParsers() must return an array of \Twig\TokenParser\TokenParserInterface.');
            }
 
            $this->parsers[] = $parser;
        }
 
        // node visitors
        foreach ($extension->getNodeVisitors() as $visitor) {
            $this->visitors[] = $visitor;
    {
        if (!$this->initialized) {
            $this->initExtensions();
        }
 
        return $this->binaryOperators;
    }
 
    private function initExtensions()
    {
        $this->parsers = [];
        $this->filters = [];
        $this->functions = [];
        $this->tests = [];
        $this->visitors = [];
        $this->unaryOperators = [];
        $this->binaryOperators = [];
 
        foreach ($this->extensions as $extension) {
            $this->initExtension($extension);
        }
        $this->initExtension($this->staging);
        // Done at the end only, so that an exception during initialization does not mark the environment as initialized when catching the exception
        $this->initialized = true;
    }
 
    private function initExtension(ExtensionInterface $extension)
    {
        // filters
        foreach ($extension->getFilters() as $filter) {
            $this->filters[$filter->getName()] = $filter;
        }
 
        // functions
        foreach ($extension->getFunctions() as $function) {
            $this->functions[$function->getName()] = $function;
        }
 
        // tests
        foreach ($extension->getTests() as $test) {
        foreach ($this->tests as $pattern => $test) {
            $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count);
 
            if ($count) {
                if (preg_match('#^'.$pattern.'$#', $name, $matches)) {
                    array_shift($matches);
                    $test->setArguments($matches);
 
                    return $test;
                }
            }
        }
 
        return false;
    }
 
    public function getUnaryOperators(): array
    {
        if (!$this->initialized) {
            $this->initExtensions();
        }
 
        return $this->unaryOperators;
    }
 
    public function getBinaryOperators(): array
    {
        if (!$this->initialized) {
            $this->initExtensions();
        }
 
        return $this->binaryOperators;
    }
 
    private function initExtensions()
    {
        $this->parsers = [];
        $this->filters = [];
        $this->functions = [];
        $this->tests = [];
        // bigger than globals, this code is faster.
        foreach ($this->getGlobals() as $key => $value) {
            if (!\array_key_exists($key, $context)) {
                $context[$key] = $value;
            }
        }
 
        return $context;
    }
 
    /**
     * Gets the registered unary Operators.
     *
     * @return array An array of unary operators
     *
     * @internal
     */
    public function getUnaryOperators()
    {
        return $this->extensionSet->getUnaryOperators();
    }
 
    /**
     * Gets the registered binary Operators.
     *
     * @return array An array of binary operators
     *
     * @internal
     */
    public function getBinaryOperators()
    {
        return $this->extensionSet->getBinaryOperators();
    }
 
    private function updateOptionsHash()
    {
        $this->optionsHash = implode(':', [
            $this->extensionSet->getSignature(),
            \PHP_MAJOR_VERSION,
            \PHP_MINOR_VERSION,
    {
        // do not push empty text tokens
        if (/* Token::TEXT_TYPE */ 0 === $type && '' === $value) {
            return;
        }
 
        $this->tokens[] = new Token($type, $value, $this->lineno);
    }
 
    private function moveCursor($text)
    {
        $this->cursor += \strlen($text);
        $this->lineno += substr_count($text, "\n");
    }
 
    private function getOperatorRegex()
    {
        $operators = array_merge(
            ['='],
            array_keys($this->env->getUnaryOperators()),
            array_keys($this->env->getBinaryOperators())
        );
 
        $operators = array_combine($operators, array_map('strlen', $operators));
        arsort($operators);
 
        $regex = [];
        foreach ($operators as $operator => $length) {
            // an operator that ends with a character must be followed by
            // a whitespace, a parenthesis, an opening map [ or sequence {
            $r = preg_quote($operator, '/');
            if (ctype_alpha($operator[$length - 1])) {
                $r .= '(?=[\s()\[{])';
            }
 
            // an operator that begins with a character must not have a dot or pipe before
            if (ctype_alpha($operator[0])) {
                $r = '(?<![\.\|])'.$r;
            }
 
            }Ax',
 
            // {% endverbatim %}
            'lex_raw_data' => '{'.
                preg_quote($this->options['tag_block'][0], '#'). // {%
                '('.
                    $this->options['whitespace_trim']. // -
                    '|'.
                    $this->options['whitespace_line_trim']. // ~
                ')?\s*endverbatim\s*'.
                '(?:'.
                    preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1], '#').'\s*'. // -%}
                    '|'.
                    preg_quote($this->options['whitespace_line_trim'].$this->options['tag_block'][1], '#').'['.$this->options['whitespace_line_chars'].']*'. // ~%}[ \t\0\x0B]*
                    '|'.
                    preg_quote($this->options['tag_block'][1], '#'). // %}
                ')
            }sx',
 
            'operator' => $this->getOperatorRegex(),
 
            // #}
            'lex_comment' => '{
                (?:'.
                    preg_quote($this->options['whitespace_trim'].$this->options['tag_comment'][1], '#').'\s*\n?'. // -#}\s*\n?
                    '|'.
                    preg_quote($this->options['whitespace_line_trim'].$this->options['tag_comment'][1], '#').'['.$this->options['whitespace_line_chars'].']*'. // ~#}[ \t\0\x0B]*
                    '|'.
                    preg_quote($this->options['tag_comment'][1], '#').'\n?'. // #}\n?
                ')
            }sx',
 
            // verbatim %}
            'lex_block_raw' => '{
                \s*verbatim\s*
                (?:'.
                    preg_quote($this->options['whitespace_trim'].$this->options['tag_block'][1], '#').'\s*'. // -%}\s*
                    '|'.
                    preg_quote($this->options['whitespace_line_trim'].$this->options['tag_block'][1], '#').'['.$this->options['whitespace_line_chars'].']*'. // ~%}[ \t\0\x0B]*
                    '|'.
                ('.
                    preg_quote($this->options['tag_variable'][0], '#'). // {{
                    '|'.
                    preg_quote($this->options['tag_block'][0], '#'). // {%
                    '|'.
                    preg_quote($this->options['tag_comment'][0], '#'). // {#
                ')('.
                    preg_quote($this->options['whitespace_trim'], '#'). // -
                    '|'.
                    preg_quote($this->options['whitespace_line_trim'], '#'). // ~
                ')?
            }sx',
            'interpolation_start' => '{'.preg_quote($this->options['interpolation'][0], '#').'\s*}A',
            'interpolation_end' => '{\s*'.preg_quote($this->options['interpolation'][1], '#').'}A',
        ];
    }
 
    public function tokenize(Source $source)
    {
        $this->initialize();
 
        $this->source = $source;
        $this->code = str_replace(["\r\n", "\r"], "\n", $source->getCode());
        $this->cursor = 0;
        $this->lineno = 1;
        $this->end = \strlen($this->code);
        $this->tokens = [];
        $this->state = self::STATE_DATA;
        $this->states = [];
        $this->brackets = [];
        $this->position = -1;
 
        // find all token starts in one go
        preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, \PREG_OFFSET_CAPTURE);
        $this->positions = $matches;
 
        while ($this->cursor < $this->end) {
            // dispatch to the lexing functions depending
            // on the current state
            switch ($this->state) {
 
    public function setLexer(Lexer $lexer)
    {
        $this->lexer = $lexer;
    }
 
    /**
     * Tokenizes a source code.
     *
     * @return TokenStream
     *
     * @throws SyntaxError When the code is syntactically wrong
     */
    public function tokenize(Source $source)
    {
        if (null === $this->lexer) {
            $this->lexer = new Lexer($this);
        }
 
        return $this->lexer->tokenize($source);
    }
 
    public function setParser(Parser $parser)
    {
        $this->parser = $parser;
    }
 
    /**
     * Converts a token stream to a node tree.
     *
     * @return ModuleNode
     *
     * @throws SyntaxError When the token stream is syntactically or semantically wrong
     */
    public function parse(TokenStream $stream)
    {
        if (null === $this->parser) {
            $this->parser = new Parser($this);
        }
 
    public function compile(Node $node)
    {
        if (null === $this->compiler) {
            $this->compiler = new Compiler($this);
        }
 
        return $this->compiler->compile($node)->getSource();
    }
 
    /**
     * Compiles a template source code.
     *
     * @return string The compiled PHP source code
     *
     * @throws SyntaxError When there was an error during tokenizing, parsing or compiling
     */
    public function compileSource(Source $source)
    {
        try {
            return $this->compile($this->parse($this->tokenize($source)));
        } catch (Error $e) {
            $e->setSourceContext($source);
            throw $e;
        } catch (\Exception $e) {
            throw new SyntaxError(sprintf('An exception has been thrown during the compilation of a template ("%s").', $e->getMessage()), -1, $source, $e);
        }
    }
 
    public function setLoader(LoaderInterface $loader)
    {
        $this->loader = $loader;
    }
 
    /**
     * Gets the Loader instance.
     *
     * @return LoaderInterface
     */
    public function getLoader()
    {
        $mainCls = $cls;
        if (null !== $index) {
            $cls .= '___'.$index;
        }
 
        if (isset($this->loadedTemplates[$cls])) {
            return $this->loadedTemplates[$cls];
        }
 
        if (!class_exists($cls, false)) {
            $key = $this->cache->generateKey($name, $mainCls);
 
            if (!$this->isAutoReload() || $this->isTemplateFresh($name, $this->cache->getTimestamp($key))) {
                $this->cache->load($key);
            }
 
            $source = null;
            if (!class_exists($cls, false)) {
                $source = $this->getLoader()->getSourceContext($name);
                $content = $this->compileSource($source);
                $this->cache->write($key, $content);
                $this->cache->load($key);
 
                if (!class_exists($mainCls, false)) {
                    /* Last line of defense if either $this->bcWriteCacheFile was used,
                     * $this->cache is implemented as a no-op or we have a race condition
                     * where the cache was cleared between the above calls to write to and load from
                     * the cache.
                     */
                    eval('?>'.$content);
                }
 
                if (!class_exists($cls, false)) {
                    throw new RuntimeError(sprintf('Failed to load Twig template "%s", index "%s": cache might be corrupted.', $name, $index), -1, $source);
                }
            }
        }
 
        // to be removed in 3.0
        $this->extensionSet->initRuntime($this);
    /**
     * Loads a template internal representation.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @param string $name  The template name
     * @param int    $index The index if it is an embedded template
     *
     * @return Template A template instance representing the given template name
     *
     * @throws LoaderError  When the template cannot be found
     * @throws RuntimeError When a previously generated cache is corrupted
     * @throws SyntaxError  When an error occurred during compilation
     *
     * @internal
     */
    public function loadTemplate($name, $index = null)
    {
        return $this->loadClass($this->getTemplateClass($name), $name, $index);
    }
 
    /**
     * @internal
     */
    public function loadClass($cls, $name, $index = null)
    {
        $mainCls = $cls;
        if (null !== $index) {
            $cls .= '___'.$index;
        }
 
        if (isset($this->loadedTemplates[$cls])) {
            return $this->loadedTemplates[$cls];
        }
 
        if (!class_exists($cls, false)) {
            $key = $this->cache->generateKey($name, $mainCls);
 
            if (!$this->isAutoReload() || $this->isTemplateFresh($name, $this->cache->getTimestamp($key))) {
 * @subpackage AI1EC.Twig
 */
class Ai1ec_Twig_Environment extends Twig_Environment {
 
    /**
     * @var Ai1ec_Registry_Object The registry Object.
     */
    protected $_registry = null;
 
    /**
     * Loads a template by name.
     *
     * @param string  $name     The template name
     * @param integer $index The index if it is an embedded template
     *
     * @return Twig_TemplateInterface A template instance representing the given template name
     */
    public function loadTemplate( $name, $index = null ) {
        try {
            return parent::loadTemplate( $name, $index );
        } catch ( RuntimeException $excpt ) {
            /*
             * We should not rely on is_writable - WP Engine case.
             * I've made twig directory read-only and is_writable was returning
             * true.
             */
            $this->_registry->get(
                'twig.cache'
            )->set_unavailable( $this->cache );
            /*
             * Some copy paste from original Twig method. Just to avoid first
             * error during rendering.
             */
            $cls = $this->getTemplateClass( $name, $index );
            eval(
                '?>' .
                $this->compileSource(
                    $this->getLoader()->getSource( $name ),
                    $name
                )
     *
     * @throws LoaderError  When the template cannot be found
     * @throws RuntimeError When a previously generated cache is corrupted
     * @throws SyntaxError  When an error occurred during compilation
     *
     * @return TemplateWrapper
     */
    public function load($name)
    {
        if ($name instanceof TemplateWrapper) {
            return $name;
        }
 
        if ($name instanceof Template) {
            @trigger_error('Passing a \Twig\Template instance to '.__METHOD__.' is deprecated since Twig 2.7.0, use \Twig\TemplateWrapper instead.', \E_USER_DEPRECATED);
 
            return new TemplateWrapper($this, $name);
        }
 
        return new TemplateWrapper($this, $this->loadTemplate($name));
    }
 
    /**
     * Loads a template internal representation.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @param string $name  The template name
     * @param int    $index The index if it is an embedded template
     *
     * @return Template A template instance representing the given template name
     *
     * @throws LoaderError  When the template cannot be found
     * @throws RuntimeError When a previously generated cache is corrupted
     * @throws SyntaxError  When an error occurred during compilation
     *
     * @internal
     */
    public function loadTemplate($name, $index = null)
        $key = $this->getLoader()->getCacheKey($name).$this->optionsHash;
 
        return $this->templateClassPrefix.hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $key).(null === $index ? '' : '___'.$index);
    }
 
    /**
     * Renders a template.
     *
     * @param string|TemplateWrapper $name    The template name
     * @param array                  $context An array of parameters to pass to the template
     *
     * @return string The rendered template
     *
     * @throws LoaderError  When the template cannot be found
     * @throws SyntaxError  When an error occurred during compilation
     * @throws RuntimeError When an error occurred during rendering
     */
    public function render($name, array $context = [])
    {
        return $this->load($name)->render($context);
    }
 
    /**
     * Displays a template.
     *
     * @param string|TemplateWrapper $name    The template name
     * @param array                  $context An array of parameters to pass to the template
     *
     * @throws LoaderError  When the template cannot be found
     * @throws SyntaxError  When an error occurred during compilation
     * @throws RuntimeError When an error occurred during rendering
     */
    public function display($name, array $context = [])
    {
        $this->load($name)->display($context);
    }
 
    /**
     * Loads a template.
     *
     */
    public function set_registry( Ai1ec_Registry_Object $registry ) {
        $this->_registry = $registry;
    }
 
    /**
     * Renders a template.
     *
     * @param string $name    The template name
     * @param array  $context An array of parameters to pass to the template
     *
     * @return string The rendered template
     *
     * @throws Twig_Error_Loader  When the template cannot be found
     * @throws Twig_Error_Syntax  When an error occurred during compilation
     * @throws Twig_Error_Runtime When an error occurred during rendering
     */
    public function render( $name, array $context = array() ) {
        try {
            return parent::render( $name, $context );
        } catch ( Exception $excpt ) {
            if (
                ! defined( 'AI1EC_DEBUG' ) ||
                ! AI1EC_DEBUG
            ) {
                return $this->_handle_render_exception( $name, $context );
            }
            throw $excpt;
        }
    }
 
    /**
     * Switches calendar theme to vortex.
     *
     * @return void Method does not return.
     *
     * @throws Ai1ec_Bootstrap_Exception
     */
    public function switch_to_vortex() {
        $this->_registry->get( 'theme.loader' )->switch_to_vortex();
    }
 
    /**
     * Adds the given search path to the front of the list (high priority).
     *
     * @param string $search_path Path to add to front of list
     */
    public function prepend_path( $search_path ) {
        $loader = $this->_twig->getLoader();
        $loader->prependPath( $search_path );
    }
 
    /* (non-PHPdoc)
     * @see Ai1ec_File::locate_file()
     */
    public function process_file() {
        $loader = $this->_twig->getLoader();
        if ( $loader->exists( $this->_name ) ) {
 
            $this->_content = $this->_twig->render( $this->_name, $this->_args );
 
            return true;
        }
        return false;
    }
 
}
 
                        'theme.file.twig',
                        $filename,
                        $args,
                        $this->_get_twig_instance( $paths, $is_admin )
                    );
                }
                break;
 
            default:
                throw new Ai1ec_Exception(
                    sprintf(
                        Ai1ec_I18n::__( "We couldn't find a suitable loader for filename with extension '%s'" ),
                        $ext
                    )
                );
                break;
        }
 
        // here file is a concrete class otherwise the exception is thrown
        if ( ! $file->process_file() && true === $throw_exception ) {
            throw new Ai1ec_Exception(
                'The specified file "' . $filename . '" doesn\'t exist.'
            );
        }
        return $file;
    }
 
    /**
     * Reuturns loader paths.
     *
     * @return array Loader paths.
     */
    public function get_paths() {
        return $this->_paths;
    }
 
    /**
     * Tries to load a PHP file from the theme. If not present, it falls back to
     * Twig.
     *
            }
            $this->_css_loaded = true;
        }
        $args_for_widget['show_location_in_title']    = $settings->get( 'show_location_in_title' );
        $args_for_widget['show_year_in_agenda_dates'] = $settings->get( 'show_year_in_agenda_dates' );
        $args_for_widget['calendar_url']              = $html->create_href_helper_instance( $limit )->generate_href();
        $args_for_widget['subscribe_url']             = AI1EC_EXPORT_URL . $subscribe_filter;
        $args_for_widget['subscribe_url_no_html']     = AI1EC_EXPORT_URL . '&no_html=true' . $subscribe_filter;
        $args_for_widget['text_upcoming_events']      = __( 'There are no upcoming events.', AI1EC_PLUGIN_NAME );
        $args_for_widget['text_all_day']              = __( 'all-day', AI1EC_PLUGIN_NAME );
        $args_for_widget['text_view_calendar']        = __( 'View Calendar', AI1EC_PLUGIN_NAME );
        $args_for_widget['text_edit']                 = __( 'Edit', AI1EC_PLUGIN_NAME );
        $args_for_widget['text_venue_separator']      = __( '@ %s', AI1EC_PLUGIN_NAME );
        $args_for_widget['text_subscribe_label']      = __( 'Add', AI1EC_PLUGIN_NAME );
        $args_for_widget['subscribe_buttons_text']    = $this->_registry
            ->get( 'view.calendar.subscribe-button' )
            ->get_labels();
        // Display theme
        return $this->_registry->get( 'theme.loader' )->get_file(
            'agenda-widget.twig',
            $args_for_widget
        )->get_content();
    }
 
    /* (non-PHPdoc)
     * @see Ai1ec_Embeddable::get_js_widget_configurable_defaults()
     */
    public function get_js_widget_configurable_defaults() {
        $def = $this->get_defaults();
        unset( $def['title'] );
        unset( $def['link_for_days'] );
        return $def;
    }
 
    /* (non-PHPdoc)
     * @see Ai1ec_Embeddable::javascript_widget()
     */
    public function javascript_widget( $args ) {
        $args['show_calendar_button'] = false;
        $args['link_for_days']        = false;
     * @return array
     */
    public function add_js_translations( array $translations ) {
        $translations['javascript_widgets'][$this->_id] = $this->get_js_widget_configurable_defaults();
        return $translations;
    }
    /**
     * Widget function.
     *
     * Outputs the given instance of the widget to the front-end.
     *
     * @param  array $args     Display arguments passed to the widget
     * @param  array $instance The settings for this widget instance
     * @return void
     */
    public function widget( $args, $instance ) {
        $defaults = $this->get_defaults();
        $instance = wp_parse_args( $instance, $defaults );
        $this->add_js();
        $args['widget_html'] = $this->get_content( $instance );
        if ( ! empty( $args['widget_html'] ) ) {
            $args['title'] = $instance['title'];
            $args          = $this->_filter_widget_args( $args );
            // Display theme
            $this->_registry->get( 'theme.loader' )->get_file(
                'widget.twig',
                $args
            )->render();
        }
 
    }
 
    /**
     * Renders shortcode
     *
     * @param array $atts
     * @param string $content
     */
    public function shortcode( $atts, $content = null ) {
        $defaults = $this->get_defaults();
    /** This filter is documented in wp-includes/class-wp-widget.php */
    $instance = apply_filters( 'widget_display_callback', $instance, $widget_obj, $args );
 
    if ( false === $instance ) {
        return;
    }
 
    /**
     * Fires before rendering the requested widget.
     *
     * @since 3.0.0
     *
     * @param string $widget   The widget's class name.
     * @param array  $instance The current widget instance's settings.
     * @param array  $args     An array of the widget's sidebar arguments.
     */
    do_action( 'the_widget', $widget, $instance, $args );
 
    $widget_obj->_set( -1 );
    $widget_obj->widget( $args, $instance );
}
 
/**
 * Retrieves the widget ID base value.
 *
 * @since 2.8.0
 *
 * @param string $id Widget ID.
 * @return string Widget ID base.
 */
function _get_widget_id_base( $id ) {
    return preg_replace( '/-[0-9]+$/', '', $id );
}
 
/**
 * Handles sidebars config after theme change.
 *
 * @access private
 * @since 3.3.0
 *
            return '';
        }
        $widgetClass   = $widgetData['class'];
        $widgetObj     = $widgetData['widget'];
        $gantry5Widget = !empty($widgetObj->gantry5);
 
        // Do not do anything yet if we are only preparing layout and widget isn't Gantry 5 compatible.
        if (!$gantry5Widget && !empty($params['prepare_layout'])
            && $widgetData['id'] !== 'roksprocket_options'
            && $widgetData['id'] !== 'rokgallery_options'
        ) {
            return '@@DEFERRED@@';
        }
 
        $id = static::displayWidgetId(true);
 
        $args = static::getWidgetChrome($widgetClass, $params['chrome']);
 
        ob_start();
        \the_widget($widgetClass, $options['widget'], $args);
        $html = ob_get_clean();
 
        if (!$gantry5Widget && trim($html)) {
            /** @var Theme $theme */
            $theme = static::gantry()['theme'];
            $theme->wordpress(true);
        }
 
        return $html;
    }
 
    /**
     * @param string|int $sidebar_id
     * @param string|int $id
     * @param array $props
     * @return string|null
     */
    public static function getAjax($sidebar_id, $id, array $props = [])
    {
        global $wp_registered_sidebars, $wp_registered_widgets;
    }
 
    /**
     * @param string $key
     * @param array $params
     * @return string|null
     */
    public function displayWidgets($key, array $params = [])
    {
        return Widgets::displayPosition($key, $params);
    }
 
    /**
     * @param array $instance
     * @param array $params
     * @return string|null
     */
    public function displayWidget($instance = [], array $params = [])
    {
        return Widgets::displayWidget($instance, $params);
    }
 
    /**
     * @return array
     */
    public function listWidgets()
    {
        return Widgets::listWidgets();
    }
 
    /**
     * @param array $params
     * @return string
     */
    public function displaySystemMessages($params = [])
    {
        /** @var Theme $theme */
        $theme = $this->container['theme'];
 
        /** @var Messages $messages */
 
        if ($ignoreStrictCheck || !$env->isStrictVariables()) {
            return;
        }
 
        throw new RuntimeError(sprintf('Neither the property "%1$s" nor one of the methods "%1$s()", "get%1$s()"/"is%1$s()"/"has%1$s()" or "__call()" exist and have public access in class "%2$s".', $item, $class), $lineno, $source);
    }
 
    if ($isDefinedTest) {
        return true;
    }
 
    if ($sandboxed) {
        $env->getExtension(SandboxExtension::class)->checkMethodAllowed($object, $method, $lineno, $source);
    }
 
    // Some objects throw exceptions when they have __call, and the method we try
    // to call is not supported. If ignoreStrictCheck is true, we should return null.
    try {
        $ret = $object->$method(...$arguments);
    } catch (\BadMethodCallException $e) {
        if ($call && ($ignoreStrictCheck || !$env->isStrictVariables())) {
            return;
        }
        throw $e;
    }
 
    return $ret;
}
 
/**
 * Returns the values from a single column in the input array.
 *
 * <pre>
 *  {% set items = [{ 'fruit' : 'apple'}, {'fruit' : 'orange' }] %}
 *
 *  {% set fruits = items|column('fruit') %}
 *
 *  {# fruits now contains ['apple', 'orange'] #}
 * </pre>
    protected function doGetParent(array $context)
    {
        // line 1
        return "@nucleus/partials/particle.html.twig";
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $macros = $this->macros;
        $this->parent = $this->loadTemplate("@nucleus/partials/particle.html.twig", "@particles/widget.html.twig", 1);
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 3
    public function block_particle($context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 4
        echo "    ";
        echo twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "platform", [], "any", false, false, false, 4), "displayWidget", [0 => twig_get_attribute($this->env, $this->source, ($context["particle"] ?? null), "widget", [], "any", false, false, false, 4), 1 => ["chrome" => ((twig_get_attribute($this->env, $this->source, ($context["particle"] ?? null), "chrome", [], "any", true, true, false, 4)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, ($context["particle"] ?? null), "chrome", [], "any", false, false, false, 4), "gantry")) : ("gantry")), "prepare_layout" => ($context["prepare_layout"] ?? null)]], "method", false, false, false, 4);
        echo "
";
    }
 
    public function getTemplateName()
    {
        return "@particles/widget.html.twig";
    }
 
    public function isTraitable()
    {
        return false;
    }
 
    public function getDebugInfo()
    {
        return array (  50 => 4,  46 => 3,  35 => 1,);
    }
 
    public function getSourceContext()
    {
        if ($useBlocks && isset($blocks[$name])) {
            $template = $blocks[$name][0];
            $block = $blocks[$name][1];
        } elseif (isset($this->blocks[$name])) {
            $template = $this->blocks[$name][0];
            $block = $this->blocks[$name][1];
        } else {
            $template = null;
            $block = null;
        }
 
        // avoid RCEs when sandbox is enabled
        if (null !== $template && !$template instanceof self) {
            throw new \LogicException('A block must be a method on a \Twig\Template instance.');
        }
 
        if (null !== $template) {
            try {
                $template->$block($context, $blocks);
            } catch (Error $e) {
                if (!$e->getSourceContext()) {
                    $e->setSourceContext($template->getSourceContext());
                }
 
                // this is mostly useful for \Twig\Error\LoaderError exceptions
                // see \Twig\Error\LoaderError
                if (-1 === $e->getTemplateLine()) {
                    $e->guess();
                }
 
                throw $e;
            } catch (\Exception $e) {
                $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
                $e->guess();
 
                throw $e;
            }
        } elseif (false !== $parent = $this->getParent($context)) {
            $parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false, $templateContext ?? $this);
        $assetFunction($content, $location, $priority);
        // line 9
        $assetFunction = $this->env->getFunction('parse_assets')->getCallable();
        $assetVariables = [];
        if ($assetVariables && !is_array($assetVariables)) {
            throw new UnexpectedValueException('{% scripts with x %}: x is not an array');
        }
        $location = "footer";
        if ($location && !is_string($location)) {
            throw new UnexpectedValueException('{% scripts in x %}: x is not a string');
        }
        $priority = isset($assetVariables['priority']) ? $assetVariables['priority'] : 0;
        ob_start();
        // line 10
        echo "    ";
        $this->displayBlock('javascript_footer', $context, $blocks);
        $content = ob_get_clean();
        $assetFunction($content, $location, $priority);
        // line 14
        $this->displayBlock('particle', $context, $blocks);
    }
 
    // line 2
    public function block_stylesheets($context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 3
        echo "    ";
    }
 
    // line 5
    public function block_javascript($context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 6
        echo "    ";
    }
 
    // line 10
    public function block_javascript_footer($context, array $blocks = [])
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        parent::__construct($env);
 
        $this->source = $this->getSourceContext();
 
        $this->blocks = [
            'particle' => [$this, 'block_particle'],
        ];
    }
 
    protected function doGetParent(array $context)
    {
        // line 1
        return "@nucleus/partials/particle.html.twig";
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $macros = $this->macros;
        $this->parent = $this->loadTemplate("@nucleus/partials/particle.html.twig", "@particles/widget.html.twig", 1);
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 3
    public function block_particle($context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 4
        echo "    ";
        echo twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "platform", [], "any", false, false, false, 4), "displayWidget", [0 => twig_get_attribute($this->env, $this->source, ($context["particle"] ?? null), "widget", [], "any", false, false, false, 4), 1 => ["chrome" => ((twig_get_attribute($this->env, $this->source, ($context["particle"] ?? null), "chrome", [], "any", true, true, false, 4)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, ($context["particle"] ?? null), "chrome", [], "any", false, false, false, 4), "gantry")) : ("gantry")), "prepare_layout" => ($context["prepare_layout"] ?? null)]], "method", false, false, false, 4);
        echo "
";
    }
 
    public function getTemplateName()
    {
        return "@particles/widget.html.twig";
    }
 
    public function isTraitable()
    {
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
                echo "        ";
                $context["enabled"] = twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "config", [], "any", false, false, false, 3), "get", [0 => (("particles." . twig_get_attribute($this->env, $this->source, ($context["segment"] ?? null), "type", [], "any", false, false, false, 3)) . ".enabled"), 1 => 1], "method", false, false, false, 3);
                // line 4
                echo "        ";
                $context["particle"] = twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "config", [], "any", false, false, false, 4), "getJoined", [0 => ("particles." . twig_get_attribute($this->env, $this->source, ($context["segment"] ?? null), "type", [], "any", false, false, false, 4)), 1 => twig_get_attribute($this->env, $this->source, ($context["segment"] ?? null), "attributes", [], "any", false, false, false, 4)], "method", false, false, false, 4);
                // line 5
                echo "    ";
            }
            // line 6
            echo "
    ";
            // line 7
            ob_start(function () { return ''; });
            // line 8
            echo "        ";
            if ((($context["enabled"] ?? null) && ((null === twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["segment"] ?? null), "attributes", [], "any", false, false, false, 8), "enabled", [], "any", false, false, false, 8)) || twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["segment"] ?? null), "attributes", [], "any", false, false, false, 8), "enabled", [], "any", false, false, false, 8)))) {
                // line 9
                echo "            ";
                $this->loadTemplate([0 => (("particles/" . ((twig_get_attribute($this->env, $this->source, ($context["segment"] ?? null), "subtype", [], "any", true, true, false, 9)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, ($context["segment"] ?? null), "subtype", [], "any", false, false, false, 9), "position")) : ("position"))) . ".html.twig"), 1 => (("@particles/" . ((twig_get_attribute($this->env, $this->source,                 // line 10
($context["segment"] ?? null), "subtype", [], "any", true, true, false, 10)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, ($context["segment"] ?? null), "subtype", [], "any", false, false, false, 10), "position")) : ("position"))) . ".html.twig")], "@nucleus/content/position.html.twig", 9)->display($context);
                // line 11
                echo "        ";
            }
            // line 12
            echo "    ";
            $context["html"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
            // line 14
            if (twig_trim_filter(($context["html"] ?? null))) {
                // line 15
                echo "        ";
                if ((twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "debug", [], "any", false, false, false, 15) && twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["segment"] ?? null), "attributes", [], "any", false, false, false, 15), "key", [], "any", false, false, false, 15))) {
                    echo "<!-- START POSITION ";
                    echo twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["segment"] ?? null), "attributes", [], "any", false, false, false, 15), "key", [], "any", false, false, false, 15);
                    echo " -->";
                }
                // line 16
                echo "
        <div class=\"g-content";
                // line 17
                echo ((twig_get_attribute($this->env, $this->source, ($context["segment"] ?? null), "classes", [], "any", false, false, false, 17)) ? ((" " . twig_escape_filter($this->env, twig_join_filter(twig_get_attribute($this->env, $this->source, ($context["segment"] ?? null), "classes", [], "any", false, false, false, 17), " ")))) : (""));
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
            if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
                $length = count($context['_seq']);
                $context['loop']['revindex0'] = $length - 1;
                $context['loop']['revindex'] = $length;
                $context['loop']['length'] = $length;
                $context['loop']['last'] = 1 === $length;
            }
            foreach ($context['_seq'] as $context["_key"] => $context["segment"]) {
                // line 10
                echo "            ";
                if (twig_get_attribute($this->env, $this->source, $context["segment"], "content", [], "any", false, false, false, 10)) {
                    // line 11
                    echo "                ";
                    echo twig_get_attribute($this->env, $this->source, $context["segment"], "content", [], "any", false, false, false, 11);
                    echo "
            ";
                } else {
                    // line 13
                    echo "                ";
                    $this->loadTemplate([0 => (("@nucleus/content/" . twig_get_attribute($this->env, $this->source, $context["segment"], "type", [], "any", false, false, false, 13)) . ".html.twig"), 1 => (("@nucleus/layout/" . twig_get_attribute($this->env, $this->source, $context["segment"], "type", [], "any", false, false, false, 13)) . ".html.twig")], "@nucleus/layout/block.html.twig", 13)->display(twig_array_merge($context, ["segments" => twig_get_attribute($this->env, $this->source, $context["segment"], "children", [], "any", false, false, false, 13)]));
                    // line 14
                    echo "            ";
                }
                // line 15
                echo "        ";
                ++$context['loop']['index0'];
                ++$context['loop']['index'];
                $context['loop']['first'] = false;
                if (isset($context['loop']['length'])) {
                    --$context['loop']['revindex0'];
                    --$context['loop']['revindex'];
                    $context['loop']['last'] = 0 === $context['loop']['revindex0'];
                }
            }
            $_parent = $context['_parent'];
            unset($context['_seq'], $context['_iterated'], $context['_key'], $context['segment'], $context['_parent'], $context['loop']);
            $context = array_intersect_key($context, $_parent) + $_parent;
            // line 16
            echo "    ";
        }
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
            echo "        ";
            $context['_parent'] = $context;
            $context['_seq'] = twig_ensure_traversable(($context["segments"] ?? null));
            $context['loop'] = [
              'parent' => $context['_parent'],
              'index0' => 0,
              'index'  => 1,
              'first'  => true,
            ];
            if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
                $length = count($context['_seq']);
                $context['loop']['revindex0'] = $length - 1;
                $context['loop']['revindex'] = $length;
                $context['loop']['length'] = $length;
                $context['loop']['last'] = 1 === $length;
            }
            foreach ($context['_seq'] as $context["_key"] => $context["segment"]) {
                // line 7
                echo "            ";
                $this->loadTemplate((("@nucleus/layout/" . twig_get_attribute($this->env, $this->source, $context["segment"], "type", [], "any", false, false, false, 7)) . ".html.twig"), "@nucleus/layout/grid.html.twig", 7)->display(twig_array_merge($context, ["segments" => twig_get_attribute($this->env, $this->source, $context["segment"], "children", [], "any", false, false, false, 7)]));
                // line 8
                echo "        ";
                ++$context['loop']['index0'];
                ++$context['loop']['index'];
                $context['loop']['first'] = false;
                if (isset($context['loop']['length'])) {
                    --$context['loop']['revindex0'];
                    --$context['loop']['revindex'];
                    $context['loop']['last'] = 0 === $context['loop']['revindex0'];
                }
            }
            $_parent = $context['_parent'];
            unset($context['_seq'], $context['_iterated'], $context['_key'], $context['segment'], $context['_parent'], $context['loop']);
            $context = array_intersect_key($context, $_parent) + $_parent;
            // line 9
            echo "    ";
        }
        $context["html"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 12
        if (twig_trim_filter(($context["html"] ?? null))) {
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
            echo "        ";
            $context['_parent'] = $context;
            $context['_seq'] = twig_ensure_traversable(($context["segments"] ?? null));
            $context['loop'] = [
              'parent' => $context['_parent'],
              'index0' => 0,
              'index'  => 1,
              'first'  => true,
            ];
            if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
                $length = count($context['_seq']);
                $context['loop']['revindex0'] = $length - 1;
                $context['loop']['revindex'] = $length;
                $context['loop']['length'] = $length;
                $context['loop']['last'] = 1 === $length;
            }
            foreach ($context['_seq'] as $context["_key"] => $context["segment"]) {
                // line 14
                echo "            ";
                $this->loadTemplate((("@nucleus/layout/" . twig_get_attribute($this->env, $this->source, $context["segment"], "type", [], "any", false, false, false, 14)) . ".html.twig"), "@nucleus/layout/section.html.twig", 14)->display(twig_array_merge($context, ["segments" => twig_get_attribute($this->env, $this->source, $context["segment"], "children", [], "any", false, false, false, 14)]));
                // line 15
                echo "        ";
                ++$context['loop']['index0'];
                ++$context['loop']['index'];
                $context['loop']['first'] = false;
                if (isset($context['loop']['length'])) {
                    --$context['loop']['revindex0'];
                    --$context['loop']['revindex'];
                    $context['loop']['last'] = 0 === $context['loop']['revindex0'];
                }
            }
            $_parent = $context['_parent'];
            unset($context['_seq'], $context['_iterated'], $context['_key'], $context['segment'], $context['_parent'], $context['loop']);
            $context = array_intersect_key($context, $_parent) + $_parent;
            // line 16
            echo "    ";
        }
        $context["html"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 19
        if ((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["segment"] ?? null), "attributes", [], "any", false, false, false, 19), "sticky", [], "any", false, false, false, 19) || twig_trim_filter(($context["html"] ?? null)))) {
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
            if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
                $length = count($context['_seq']);
                $context['loop']['revindex0'] = $length - 1;
                $context['loop']['revindex'] = $length;
                $context['loop']['length'] = $length;
                $context['loop']['last'] = 1 === $length;
            }
            foreach ($context['_seq'] as $context["_key"] => $context["segment"]) {
                // line 10
                echo "            ";
                if (twig_get_attribute($this->env, $this->source, $context["segment"], "content", [], "any", false, false, false, 10)) {
                    // line 11
                    echo "                ";
                    echo twig_get_attribute($this->env, $this->source, $context["segment"], "content", [], "any", false, false, false, 11);
                    echo "
            ";
                } else {
                    // line 13
                    echo "                ";
                    $this->loadTemplate([0 => (("@nucleus/content/" . twig_get_attribute($this->env, $this->source, $context["segment"], "type", [], "any", false, false, false, 13)) . ".html.twig"), 1 => (("@nucleus/layout/" . twig_get_attribute($this->env, $this->source, $context["segment"], "type", [], "any", false, false, false, 13)) . ".html.twig")], "@nucleus/layout/block.html.twig", 13)->display(twig_array_merge($context, ["segments" => twig_get_attribute($this->env, $this->source, $context["segment"], "children", [], "any", false, false, false, 13)]));
                    // line 14
                    echo "            ";
                }
                // line 15
                echo "        ";
                ++$context['loop']['index0'];
                ++$context['loop']['index'];
                $context['loop']['first'] = false;
                if (isset($context['loop']['length'])) {
                    --$context['loop']['revindex0'];
                    --$context['loop']['revindex'];
                    $context['loop']['last'] = 0 === $context['loop']['revindex0'];
                }
            }
            $_parent = $context['_parent'];
            unset($context['_seq'], $context['_iterated'], $context['_key'], $context['segment'], $context['_parent'], $context['loop']);
            $context = array_intersect_key($context, $_parent) + $_parent;
            // line 16
            echo "    ";
        }
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
            echo "        ";
            $context['_parent'] = $context;
            $context['_seq'] = twig_ensure_traversable(($context["segments"] ?? null));
            $context['loop'] = [
              'parent' => $context['_parent'],
              'index0' => 0,
              'index'  => 1,
              'first'  => true,
            ];
            if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
                $length = count($context['_seq']);
                $context['loop']['revindex0'] = $length - 1;
                $context['loop']['revindex'] = $length;
                $context['loop']['length'] = $length;
                $context['loop']['last'] = 1 === $length;
            }
            foreach ($context['_seq'] as $context["_key"] => $context["segment"]) {
                // line 7
                echo "            ";
                $this->loadTemplate((("@nucleus/layout/" . twig_get_attribute($this->env, $this->source, $context["segment"], "type", [], "any", false, false, false, 7)) . ".html.twig"), "@nucleus/layout/grid.html.twig", 7)->display(twig_array_merge($context, ["segments" => twig_get_attribute($this->env, $this->source, $context["segment"], "children", [], "any", false, false, false, 7)]));
                // line 8
                echo "        ";
                ++$context['loop']['index0'];
                ++$context['loop']['index'];
                $context['loop']['first'] = false;
                if (isset($context['loop']['length'])) {
                    --$context['loop']['revindex0'];
                    --$context['loop']['revindex'];
                    $context['loop']['last'] = 0 === $context['loop']['revindex0'];
                }
            }
            $_parent = $context['_parent'];
            unset($context['_seq'], $context['_iterated'], $context['_key'], $context['segment'], $context['_parent'], $context['loop']);
            $context = array_intersect_key($context, $_parent) + $_parent;
            // line 9
            echo "    ";
        }
        $context["html"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 12
        if (twig_trim_filter(($context["html"] ?? null))) {
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        echo "    ";
        $context['_parent'] = $context;
        $context['_seq'] = twig_ensure_traversable(($context["segments"] ?? null));
        $context['loop'] = [
          'parent' => $context['_parent'],
          'index0' => 0,
          'index'  => 1,
          'first'  => true,
        ];
        if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
            $length = count($context['_seq']);
            $context['loop']['revindex0'] = $length - 1;
            $context['loop']['revindex'] = $length;
            $context['loop']['length'] = $length;
            $context['loop']['last'] = 1 === $length;
        }
        foreach ($context['_seq'] as $context["_key"] => $context["segment"]) {
            // line 3
            echo "        ";
            $this->loadTemplate((("@nucleus/layout/" . twig_get_attribute($this->env, $this->source, $context["segment"], "type", [], "any", false, false, false, 3)) . ".html.twig"), "@nucleus/layout/container.html.twig", 3)->display(twig_array_merge($context, ["segments" => twig_get_attribute($this->env, $this->source, $context["segment"], "children", [], "any", false, false, false, 3)]));
            // line 4
            echo "    ";
            ++$context['loop']['index0'];
            ++$context['loop']['index'];
            $context['loop']['first'] = false;
            if (isset($context['loop']['length'])) {
                --$context['loop']['revindex0'];
                --$context['loop']['revindex'];
                $context['loop']['last'] = 0 === $context['loop']['revindex0'];
            }
        }
        $_parent = $context['_parent'];
        unset($context['_seq'], $context['_iterated'], $context['_key'], $context['segment'], $context['_parent'], $context['loop']);
        $context = array_intersect_key($context, $_parent) + $_parent;
        $context["html"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 6
        echo "
";
        // line 7
        if ((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["segment"] ?? null), "attributes", [], "any", false, false, false, 7), "sticky", [], "any", false, false, false, 7) || twig_trim_filter(($context["html"] ?? null)))) {
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        $context['_parent'] = $context;
        $context['_seq'] = twig_ensure_traversable(($context["segments"] ?? null));
        $context['loop'] = [
          'parent' => $context['_parent'],
          'index0' => 0,
          'index'  => 1,
          'first'  => true,
        ];
        if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
            $length = count($context['_seq']);
            $context['loop']['revindex0'] = $length - 1;
            $context['loop']['revindex'] = $length;
            $context['loop']['length'] = $length;
            $context['loop']['last'] = 1 === $length;
        }
        foreach ($context['_seq'] as $context["_key"] => $context["segment"]) {
            // line 34
            if ((twig_get_attribute($this->env, $this->source, $context["segment"], "type", [], "any", false, false, false, 34) != "offcanvas")) {
                // line 35
                $this->loadTemplate((("@nucleus/layout/" . twig_get_attribute($this->env, $this->source, $context["segment"], "type", [], "any", false, false, false, 35)) . ".html.twig"), "@nucleus/page.html.twig", 35)->display(twig_array_merge($context, ["segments" => twig_get_attribute($this->env, $this->source, $context["segment"], "children", [], "any", false, false, false, 35)]));
            }
            ++$context['loop']['index0'];
            ++$context['loop']['index'];
            $context['loop']['first'] = false;
            if (isset($context['loop']['length'])) {
                --$context['loop']['revindex0'];
                --$context['loop']['revindex'];
                $context['loop']['last'] = 0 === $context['loop']['revindex0'];
            }
        }
        $_parent = $context['_parent'];
        unset($context['_seq'], $context['_iterated'], $context['_key'], $context['segment'], $context['_parent'], $context['loop']);
        $context = array_intersect_key($context, $_parent) + $_parent;
    }
 
    // line 42
    public function block_page_top($context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 43
    {
        if ($useBlocks && isset($blocks[$name])) {
            $template = $blocks[$name][0];
            $block = $blocks[$name][1];
        } elseif (isset($this->blocks[$name])) {
            $template = $this->blocks[$name][0];
            $block = $this->blocks[$name][1];
        } else {
            $template = null;
            $block = null;
        }
 
        // avoid RCEs when sandbox is enabled
        if (null !== $template && !$template instanceof self) {
            throw new \LogicException('A block must be a method on a \Twig\Template instance.');
        }
 
        if (null !== $template) {
            try {
                $template->$block($context, $blocks);
            } catch (Error $e) {
                if (!$e->getSourceContext()) {
                    $e->setSourceContext($template->getSourceContext());
                }
 
                // this is mostly useful for \Twig\Error\LoaderError exceptions
                // see \Twig\Error\LoaderError
                if (-1 === $e->getTemplateLine()) {
                    $e->guess();
                }
 
                throw $e;
            } catch (\Exception $e) {
                $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
                $e->guess();
 
                throw $e;
            }
        } elseif (false !== $parent = $this->getParent($context)) {
            $parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false, $templateContext ?? $this);
            }
        }
        $_parent = $context['_parent'];
        unset($context['_seq'], $context['_iterated'], $context['_key'], $context['segment'], $context['_parent'], $context['loop']);
        $context = array_intersect_key($context, $_parent) + $_parent;
        // line 20
        ob_start(function () { return ''; });
        // line 21
        echo "    ";
        $this->displayBlock('page_offcanvas', $context, $blocks);
        $context["page_offcanvas"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 28
        $context["page_offcanvas"] = ((twig_trim_filter(($context["page_offcanvas"] ?? null))) ? (twig_trim_filter(($context["page_offcanvas"] ?? null))) : (""));
        // line 29
        $context["offcanvas_position"] = ((($context["page_offcanvas"] ?? null)) ? (((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["offcanvas"] ?? null), "attributes", [], "any", false, true, false, 29), "position", [], "any", true, true, false, 29)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["offcanvas"] ?? null), "attributes", [], "any", false, true, false, 29), "position", [], "any", false, false, false, 29), "g-offcanvas-left")) : ("g-offcanvas-left"))) : (""));
        // line 31
        ob_start(function () { return ''; });
        // line 32
        echo "    ";
        $this->displayBlock('page_layout', $context, $blocks);
        $context["page_layout"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 41
        ob_start(function () { return ''; });
        // line 42
        echo "    ";
        $this->displayBlock('page_top', $context, $blocks);
        // line 44
        echo "    ";
        echo twig_join_filter(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "document", [], "any", false, false, false, 44), "getHtml", [0 => "top"], "method", false, false, false, 44), "
    ");
        echo "
";
        $context["page_top"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 47
        ob_start(function () { return ''; });
        // line 48
        echo "    ";
        $this->displayBlock('page_bottom', $context, $blocks);
        // line 50
        echo "    ";
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
 
        $this->source = $this->getSourceContext();
 
        $this->blocks = [
            'page_head' => [$this, 'block_page_head'],
            'page_footer' => [$this, 'block_page_footer'],
        ];
    }
 
    protected function doGetParent(array $context)
    {
        // line 1
        return "@nucleus/page.html.twig";
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $macros = $this->macros;
        $this->parent = $this->loadTemplate("@nucleus/page.html.twig", "partials/page.html.twig", 1);
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 3
    public function block_page_head($context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 4
        if (($context["page_head"] ?? null)) {
            // line 5
            echo "        ";
            echo ($context["page_head"] ?? null);
            echo "
    ";
        } else {
            // line 7
            echo "        ";
            $this->displayParentBlock("page_head", $context, $blocks);
            echo "
    ";
        }
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
            'content' => [$this, 'block_content'],
        ];
    }
 
    protected function doGetParent(array $context)
    {
        // line 1
        return "partials/page.html.twig";
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 2
        $context["twigTemplate"] = "archive.html.twig";
        // line 3
        $context["scope"] = "archive";
        // line 1
        $this->parent = $this->loadTemplate("partials/page.html.twig", "archive.html.twig", 1);
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 5
    public function block_content($context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 6
        echo "
    <div class=\"platform-content\">
        <div class=\"archive\">
 
            ";
        // line 11
        echo "            ";
        if (twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "config", [], "any", false, false, false, 11), "get", [0 => (("content." . ($context["scope"] ?? null)) . ".heading.enabled"), 1 => "0"], "method", false, false, false, 11)) {
            // line 12
            echo "                <header class=\"page-header\">
                    <h1>
                        ";
            // line 14
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
     * directly (use Twig\Environment::load() instead).
     *
     * @internal
     */
    public function __construct(Environment $env, Template $template)
    {
        $this->env = $env;
        $this->template = $template;
    }
 
    /**
     * Renders the template.
     *
     * @param array $context An array of parameters to pass to the template
     */
    public function render(array $context = []): string
    {
        // using func_get_args() allows to not expose the blocks argument
        // as it should only be used by internal code
        return $this->template->render($context, \func_get_args()[1] ?? []);
    }
 
    /**
     * Displays the template.
     *
     * @param array $context An array of parameters to pass to the template
     */
    public function display(array $context = [])
    {
        // using func_get_args() allows to not expose the blocks argument
        // as it should only be used by internal code
        $this->template->display($context, \func_get_args()[1] ?? []);
    }
 
    /**
     * Checks if a block is defined.
     *
     * @param string $name    The block name
     * @param array  $context An array of parameters to pass to the template
     */
 
        $key = null;
        $output = false;
        if ( false !== $expires ) {
            ksort($data);
            $key = md5($file.json_encode($data));
            $output = $this->get_cache($key, self::CACHEGROUP, $cache_mode);
        }
 
        if ( false === $output || null === $output ) {
            $twig = $this->get_twig();
            if ( strlen($file) ) {
                $loader = $this->get_loader();
                $result = $loader->getCacheKey($file);
                do_action('timber_loader_render_file', $result);
            }
            $data = apply_filters('timber_loader_render_data', $data);
            $data = apply_filters('timber/loader/render_data', $data, $file);
            $template = $twig->load($file);
            $output = $template->render($data);
        }
 
        if ( false !== $output && false !== $expires && null !== $key ) {
            $this->delete_cache();
            $this->set_cache($key, $output, self::CACHEGROUP, $expires, $cache_mode);
        }
        $output = apply_filters('timber_output', $output);
        return apply_filters('timber/output', $output, $data, $file);
    }
 
    protected function delete_cache() {
        Cleaner::delete_transients();
    }
 
    /**
     * Get first existing template.
     *
     * @param array|string $templates  Name(s) of the Twig template(s) to choose from.
     * @return string|bool             Name of chosen template, otherwise false.
     */
        if ( $via_render ) {
            $file = apply_filters('timber_render_file', $file);
        } else {
            $file = apply_filters('timber_compile_file', $file);
        }
 
        $output = false;
 
        if ($file !== false) {
            if ( is_null($data) ) {
                $data = array();
            }
 
            if ( $via_render ) {
                $data = apply_filters('timber_render_data', $data);
            } else {
                $data = apply_filters('timber_compile_data', $data);
            }
 
            $output = $loader->render($file, $data, $expires, $cache_mode);
        } else {
            if ( is_array($filenames) ) {
                $filenames = implode(", ", $filenames);
            }
            Helper::error_log( 'Error loading your template files: '.$filenames.'. Make sure one of these files exists.' );
        }
 
        do_action('timber_compile_done');
        return $output;
    }
 
    /**
     * Compile a string.
     *
     * @api
     * @example
     * ```php
     * $data = array(
     *     'username' => 'Jane Doe',
     * );
        $twig = $dummy_loader->get_twig();
        $template = $twig->createTemplate($string);
        return $template->render($data);
    }
 
    /**
     * Fetch function.
     *
     * @api
     * @param array|string $filenames  Name of the Twig file to render. If this is an array of files, Timber will
     *                                 render the first file that exists.
     * @param array        $data       Optional. An array of data to use in Twig template.
     * @param bool|int     $expires    Optional. In seconds. Use false to disable cache altogether. When passed an
     *                                 array, the first value is used for non-logged in visitors, the second for users.
     *                                 Default false.
     * @param string       $cache_mode Optional. Any of the cache mode constants defined in TimberLoader.
     * @return bool|string The returned output.
     */
    public static function fetch( $filenames, $data = array(), $expires = false, $cache_mode = Loader::CACHE_USE_DEFAULT ) {
        $output = self::compile($filenames, $data, $expires, $cache_mode, true);
        $output = apply_filters('timber_compile_result', $output);
        return $output;
    }
 
    /**
     * Render function.
     *
     * Passes data to a Twig file and echoes the output.
     *
     * @api
     * @example
     * ```php
     * $context = Timber::context();
     *
     * Timber::render( 'index.twig', $context );
     * ```
     * @param array|string $filenames  Name of the Twig file to render. If this is an array of files, Timber will
     *                                 render the first file that exists.
     * @param array        $data       Optional. An array of data to use in Twig template.
     * @param bool|int     $expires    Optional. In seconds. Use false to disable cache altogether. When passed an
     * Passes data to a Twig file and echoes the output.
     *
     * @api
     * @example
     * ```php
     * $context = Timber::context();
     *
     * Timber::render( 'index.twig', $context );
     * ```
     * @param array|string $filenames  Name of the Twig file to render. If this is an array of files, Timber will
     *                                 render the first file that exists.
     * @param array        $data       Optional. An array of data to use in Twig template.
     * @param bool|int     $expires    Optional. In seconds. Use false to disable cache altogether. When passed an
     *                                 array, the first value is used for non-logged in visitors, the second for users.
     *                                 Default false.
     * @param string       $cache_mode Optional. Any of the cache mode constants defined in TimberLoader.
     * @return bool|string The echoed output.
     */
    public static function render( $filenames, $data = array(), $expires = false, $cache_mode = Loader::CACHE_USE_DEFAULT ) {
        $output = self::fetch($filenames, $data, $expires, $cache_mode);
        echo $output;
        return $output;
    }
 
    /**
     * Render a string with Twig variables.
     *
     * @api
     * @example
     * ```php
     * $data = array(
     *     'username' => 'Jane Doe',
     * );
     *
     * Timber::render_string( 'Hi {{ username }}, I’m a string with a custom Twig variable', $data );
     * ```
     * @param string $string A string with Twig variables.
     * @param array  $data   An array of data to use in Twig template.
     * @return bool|string
     */
$context['title'] = __('Archive', 'g5_hydrogen');
if (is_day()) {
    $context['title'] = __('Archive:', 'g5_hydrogen') . ' ' . get_the_date('j F Y');
} else if (is_month()) {
    $context['title'] = __('Archive:', 'g5_hydrogen') . ' ' . get_the_date('F Y');
} else if (is_year()) {
    $context['title'] = __('Archive:', 'g5_hydrogen') . ' ' . get_the_date('Y');
} else if (is_tag()) {
    $context['title'] = single_tag_title('', false);
} else if (is_category()) {
    $context['title'] = single_cat_title('', false);
    array_unshift($templates, 'archive-' . get_query_var('cat') . '.html.twig');
} else if (is_post_type_archive()) {
    $context['title'] = post_type_archive_title('', false);
    array_unshift($templates, 'archive-' . get_post_type() . '.html.twig');
}
 
$context['posts'] = Timber::get_posts();
 
Timber::render($templates, $context);
 
 
    /**
     * Filters the path of the current template before including it.
     *
     * @since 3.0.0
     *
     * @param string $template The path of the template to include.
     */
    $template = apply_filters( 'template_include', $template );
    if ( $template ) {
        /**
         * Fires immediately before including the template.
         *
         * @since 6.9.0
         *
         * @param string $template The path of the template about to be included.
         */
        do_action( 'wp_before_include_template', $template );
 
        include $template;
    } elseif ( current_user_can( 'switch_themes' ) ) {
        $theme = wp_get_theme();
        if ( $theme->errors() ) {
            wp_die( $theme->errors() );
        }
    }
    return;
}
 
<?php
/**
 * Loads the WordPress environment and template.
 *
 * @package WordPress
 */
 
if ( ! isset( $wp_did_header ) ) {
 
    $wp_did_header = true;
 
    // Load the WordPress library.
    require_once __DIR__ . '/wp-load.php';
 
    // Set up the WordPress query.
    wp();
 
    // Load the theme template.
    require_once ABSPATH . WPINC . '/template-loader.php';
 
}
 
<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */
 
/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define( 'WP_USE_THEMES', true );
 
/** Loads the WordPress Environment and Template */
require __DIR__ . '/wp-blog-header.php';
 

Environment & details:

empty
empty
empty
empty
empty
Key Value
SERVER_SOFTWARE nginx/1.28.0
REQUEST_URI /tag/amerikys-savinuotajuos-valstis/
USER lakuga
HOME /home/lakuga
HTTP_REFERER https://www.lakuga.lv/tag/amerikys-savinuotajuos-valstis
HTTP_ACCEPT_ENCODING gzip, br, zstd, deflate
HTTP_USER_AGENT Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HTTP_ACCEPT */*
HTTP_CONNECTION close
HTTP_HOST www.lakuga.lv
HTTP_X_FORWARDED_PORT 443
HTTP_X_FORWARDED_PROTO https
HTTP_X_FORWARDED_FOR 216.73.216.215
HTTP_X_REAL_IP 216.73.216.215
REDIRECT_STATUS 200
SERVER_NAME www.lakuga.lv
SERVER_PORT 80
SERVER_ADDR 91.107.219.100
REMOTE_USER
REMOTE_PORT 42090
REMOTE_ADDR 65.109.225.119
GATEWAY_INTERFACE CGI/1.1
REQUEST_SCHEME http
SERVER_PROTOCOL HTTP/1.0
DOCUMENT_ROOT /home/lakuga/public_html
DOCUMENT_URI /index.php
SCRIPT_NAME /index.php
CONTENT_LENGTH
CONTENT_TYPE
REQUEST_METHOD GET
QUERY_STRING
SCRIPT_FILENAME /home/lakuga/public_html/index.php
FCGI_ROLE RESPONDER
PHP_SELF /index.php
REQUEST_TIME_FLOAT 1772533520.8635
REQUEST_TIME 1772533520
HTTPS on
empty
0. Whoops\Handler\PrettyPageHandler