ParseError
syntax error, unexpected ''background:transparent url(ht' (T_ENCAPSED_AND_WHITESPACE) ParseError thrown with message "syntax error, unexpected ''background:transparent url(ht' (T_ENCAPSED_AND_WHITESPACE)" Stacktrace: #18 ParseError in /home/u194772797/domains/brazosroofing.com/public_html/cache/gantry5/g5_helium/compiled/yaml/aa3b0d1d14c33d8d5eabe8431c02f418.yaml.php:237 #17 RocketTheme\Toolbox\File\PhpFile:decode in /home/u194772797/domains/brazosroofing.com/public_html/libraries/gantry5/vendor/rockettheme/toolbox/File/src/File.php:300 #16 RocketTheme\Toolbox\File\File:content in /home/u194772797/domains/brazosroofing.com/public_html/libraries/gantry5/classes/Gantry/Component/File/CompiledFile.php:79 #15 Gantry\Component\File\CompiledYamlFile:content in /home/u194772797/domains/brazosroofing.com/public_html/libraries/gantry5/classes/Gantry/Component/Config/CompiledConfig.php:113 #14 Gantry\Component\Config\CompiledConfig:loadFile in /home/u194772797/domains/brazosroofing.com/public_html/libraries/gantry5/classes/Gantry/Component/Config/CompiledBase.php:169 #13 Gantry\Component\Config\CompiledBase:loadFiles in /home/u194772797/domains/brazosroofing.com/public_html/libraries/gantry5/classes/Gantry/Component/Config/CompiledBase.php:108 #12 Gantry\Component\Config\CompiledBase:load in /home/u194772797/domains/brazosroofing.com/public_html/libraries/gantry5/classes/Gantry/Component/Config/CompiledConfig.php:79 #11 Gantry\Component\Config\CompiledConfig:load in /home/u194772797/domains/brazosroofing.com/public_html/libraries/gantry5/classes/Gantry/Framework/Services/ConfigServiceProvider.php:104 #10 Gantry\Framework\Services\ConfigServiceProvider:load in /home/u194772797/domains/brazosroofing.com/public_html/libraries/gantry5/classes/Gantry/Component/Theme/ThemeTrait.php:142 #9 Gantry\Framework\Theme:setLayout in /home/u194772797/domains/brazosroofing.com/public_html/plugins/system/gantry5/gantry5.php:246 #8 plgSystemGantry5:onAfterRouteSite in /home/u194772797/domains/brazosroofing.com/public_html/plugins/system/gantry5/gantry5.php:57 #7 plgSystemGantry5:onAfterRoute in /home/u194772797/domains/brazosroofing.com/public_html/libraries/joomla/event/event.php:70 #6 JEvent:update in /home/u194772797/domains/brazosroofing.com/public_html/libraries/joomla/event/dispatcher.php:160 #5 JEventDispatcher:trigger in /home/u194772797/domains/brazosroofing.com/public_html/libraries/src/Application/BaseApplication.php:108 #4 Joomla\CMS\Application\BaseApplication:triggerEvent in /home/u194772797/domains/brazosroofing.com/public_html/libraries/src/Application/CMSApplication.php:1218 #3 Joomla\CMS\Application\CMSApplication:route in /home/u194772797/domains/brazosroofing.com/public_html/libraries/src/Application/SiteApplication.php:796 #2 Joomla\CMS\Application\SiteApplication:route in /home/u194772797/domains/brazosroofing.com/public_html/libraries/src/Application/SiteApplication.php:218 #1 Joomla\CMS\Application\SiteApplication:doExecute in /home/u194772797/domains/brazosroofing.com/public_html/libraries/src/Application/CMSApplication.php:225 #0 Joomla\CMS\Application\CMSApplication:execute in /home/u194772797/domains/brazosroofing.com/public_html/index.php:49
Stack frames (19)
18
ParseError
/home/u194772797/domains/brazosroofing.com/public_html/cache/gantry5/g5_helium/compiled/yaml/aa3b0d1d14c33d8d5eabe8431c02f418.yaml.php237
17
RocketTheme\Toolbox\File\PhpFile decode
/vendor/rockettheme/toolbox/File/src/File.php300
16
RocketTheme\Toolbox\File\File content
/classes/Gantry/Component/File/CompiledFile.php79
15
Gantry\Component\File\CompiledYamlFile content
/classes/Gantry/Component/Config/CompiledConfig.php113
14
Gantry\Component\Config\CompiledConfig loadFile
/classes/Gantry/Component/Config/CompiledBase.php169
13
Gantry\Component\Config\CompiledBase loadFiles
/classes/Gantry/Component/Config/CompiledBase.php108
12
Gantry\Component\Config\CompiledBase load
/classes/Gantry/Component/Config/CompiledConfig.php79
11
Gantry\Component\Config\CompiledConfig load
/classes/Gantry/Framework/Services/ConfigServiceProvider.php104
10
Gantry\Framework\Services\ConfigServiceProvider load
/classes/Gantry/Component/Theme/ThemeTrait.php142
9
Gantry\Framework\Theme setLayout
/home/u194772797/domains/brazosroofing.com/public_html/plugins/system/gantry5/gantry5.php246
8
plgSystemGantry5 onAfterRouteSite
/home/u194772797/domains/brazosroofing.com/public_html/plugins/system/gantry5/gantry5.php57
7
plgSystemGantry5 onAfterRoute
/home/u194772797/domains/brazosroofing.com/public_html/libraries/joomla/event/event.php70
6
JEvent update
/home/u194772797/domains/brazosroofing.com/public_html/libraries/joomla/event/dispatcher.php160
5
JEventDispatcher trigger
/home/u194772797/domains/brazosroofing.com/public_html/libraries/src/Application/BaseApplication.php108
4
Joomla\CMS\Application\BaseApplication triggerEvent
/home/u194772797/domains/brazosroofing.com/public_html/libraries/src/Application/CMSApplication.php1218
3
Joomla\CMS\Application\CMSApplication route
/home/u194772797/domains/brazosroofing.com/public_html/libraries/src/Application/SiteApplication.php796
2
Joomla\CMS\Application\SiteApplication route
/home/u194772797/domains/brazosroofing.com/public_html/libraries/src/Application/SiteApplication.php218
1
Joomla\CMS\Application\SiteApplication doExecute
/home/u194772797/domains/brazosroofing.com/public_html/libraries/src/Application/CMSApplication.php225
0
Joomla\CMS\Application\CMSApplication execute
/home/u194772797/domains/brazosroofing.com/public_html/index.php49
                'type' => 'section',
                'attributes' => [
                    'boxed' => ''
                ]
            ],
            'showcase' => [
                'type' => 'section',
                'attributes' => [
                    'boxed' => ''
                ]
            ],
            'fullwidth' => [
                'type' => 'section',
                'attributes' => [
                    'boxed' => '',
                    'class' => '',
                    'variations' => '',
                    'extra' => [
                        0 => [
                            'style' => 'background:transparent url(https://www.brazo
 
    /**
     * Get/set parsed file contents.
     *
     * @param mixed $var
     * @return string|array
     * @throws \RuntimeException
     */
    public function content($var = null)
    {
        if ($var !== null) {
            $this->content = $this->check($var);
 
            // Update RAW, too.
            $this->raw = $this->encode($this->content);
 
        } elseif ($this->content === null) {
            // Decode RAW file.
            try {
                $this->content = $this->decode($this->raw());
            } catch (\Exception $e) {
                throw new \RuntimeException(sprintf('Failed to read %s: %s', $this->filename, $e->getMessage()), 500, $e);
            }
        }
 
        return $this->content;
    }
 
    /**
     * Save file.
     *
     * @param  mixed  $data  Optional data to be saved, usually array.
     * @throws \RuntimeException
     */
    public function save($data = null)
    {
        if ($data !== null) {
            $this->content($data);
        }
 
    {
        if (!$this->cachePath) {
            throw new \BadMethodCallException("Cache path not defined for compiled file ({$this->filename})!");
        }
 
        try {
            // If nothing has been loaded, attempt to get pre-compiled version of the file first.
            if ($var === null && $this->raw === null && $this->content === null) {
                $modified = $this->modified();
 
                if (!$modified || !$this->caching) {
                    return $this->decode($this->raw());
                }
 
                $key = md5($this->filename);
                $file = PhpFile::instance($this->cachePath . "/{$key}{$this->extension}.php");
 
                $class = get_class($this);
 
                $cache = $file->exists() ? $file->content() : null;
 
                // Load real file if cache isn't up to date (or is invalid).
                if (!isset($cache['@class'])
                    || $cache['@class'] != $class
                    || $cache['modified'] != $modified
                    || $cache['filename'] != $this->filename
                ) {
                    // Attempt to lock the file for writing.
                    try {
                        $file->lock(false);
                    } catch (\Exception $e) {
                        // Another process has locked the file; we will check this in a bit.
                    }
 
                    // Decode RAW file into compiled array.
                    $data = $this->decode($this->raw());
                    $cache = [
                        '@class' => $class,
                        'filename' => $this->filename,
                        'modified' => $modified,
        $this->object = new Config($data, $this->callable);
    }
 
    /**
     * Finalize configuration object.
     */
    protected function finalizeObject()
    {
    }
 
    /**
     * Load single configuration file and append it to the correct position.
     *
     * @param  string  $name  Name of the position.
     * @param  string  $filename  File to be loaded.
     */
    protected function loadFile($name, $filename)
    {
        $file = CompiledYamlFile::instance($filename);
        $this->object->join($name, $file->content(), '/');
        $file->free();
    }
}
 
     *
     * @param  string  $name  Name of the position.
     * @param  string  $filename  File to be loaded.
     */
    abstract protected function loadFile($name, $filename);
 
    /**
     * Load and join all configuration files.
     *
     * @return bool
     * @internal
     */
    protected function loadFiles()
    {
        $this->createObject();
 
        $list = array_reverse($this->files);
        foreach ($list as $files) {
            foreach ($files as $name => $item) {
                $this->loadFile($name, $this->path . $item['file']);
            }
        }
 
        $this->finalizeObject();
 
        return true;
    }
 
    /**
     * Load compiled file.
     *
     * @param  string  $filename
     * @return bool
     * @internal
     */
    protected function loadCompiledFile($filename)
    {
        $gantry = Gantry::instance();
 
        /** @var Config $global */
    }
 
    /**
     * Function gets called when cached configuration is saved.
     */
    public function modified() {}
 
    /**
     * Load the configuration.
     *
     * @return mixed
     */
    public function load()
    {
        if ($this->object) {
            return $this->object;
        }
 
        $filename = $this->createFilename();
        if (!$this->loadCompiledFile($filename) && $this->loadFiles()) {
            $this->saveCompiledFile($filename);
        }
 
        return $this->object;
    }
 
    /**
     * Returns checksum from the configuration files.
     *
     * You can set $this->checksum = false to disable this check.
     *
     * @return bool|string
     */
    public function checksum()
    {
        if (!isset($this->checksum)) {
            $this->checksum = md5(json_encode($this->files) . $this->version);
        }
 
        return $this->checksum;
     *
     * @param callable $blueprints
     * @return $this
     */
    public function setBlueprints(callable $blueprints)
    {
        $this->callable = $blueprints;
 
        return $this;
    }
 
    /**
     * @param bool $withDefaults
     * @return mixed
     */
    public function load($withDefaults = false)
    {
        $this->withDefaults = $withDefaults;
 
        return parent::load();
    }
 
    /**
     * Create configuration object.
     *
     * @param  array  $data
     */
    protected function createObject(array $data = [])
    {
        if ($this->withDefaults && empty($data) && is_callable($this->callable)) {
            $blueprints = $this->callable;
            $data = $blueprints()->getDefaults();
        }
 
        $this->object = new Config($data, $this->callable);
    }
 
    /**
     * Finalize configuration object.
     */
        $paths = [];
        foreach ($uris as $uri) {
            $paths = array_merge($paths, $locator->findResources($uri));
        }
 
        // Locate all configuration files to be compiled.
        $files = (new ConfigFileFinder)->locateFiles($paths);
 
        $cache = $locator->findResource('gantry-cache://theme/compiled/config', true, true);
 
        if (!$cache) {
            throw new \RuntimeException('Who just removed Gantry 5 cache folder? Try reloading the page if it fixes the issue');
        }
 
        $compiled = new CompiledConfig($cache, $files, GANTRY5_ROOT);
        $compiled->setBlueprints(function() use ($container) {
            return $container['blueprints'];
        });
 
        $config = $compiled->load($withDefaults);
 
        // Set atom inheritance.
        $atoms = $config->get('page.head.atoms');
        if (is_array($atoms)) {
            $config->set('page.head.atoms', (new Atoms($atoms))->init()->toArray());
        }
 
        return $config;
    }
}
 
 
        // Force new layout to be set.
        if ($force) {
            unset($gantry['configuration']);
        }
 
        // Set default name only if configuration has not been set before.
        if ($name === null && !isset($gantry['configuration'])) {
            $name = 'default';
        }
 
        $outline = isset($gantry['configuration']) ? $gantry['configuration'] : null;
 
        // Set configuration if given.
        if ($name && $name != $outline) {
            GANTRY_DEBUGGER && \Gantry\Debugger::addMessage("Using Gantry outline {$name}");
 
            $gantry['configuration'] = $name;
            unset($gantry['config']);
            $gantry['config'] = ConfigServiceProvider::load($gantry, $name);
        }
 
        return $this;
    }
 
    /**
     * Get current preset.
     *
     * @param  bool $forced     If true, return only forced preset or null.
     * @return string|null $preset
     */
    public function preset($forced = false)
    {
        $presets = $this->presets()->toArray();
 
        $preset = $this->preset;
 
        if (!$preset && !$forced) {
            $preset = static::gantry()['config']->get('styles.preset', '-undefined-');
        }
 
            include_once $themePath;
        }
 
        GANTRY_DEBUGGER && \Gantry\Debugger::addMessage("Using Gantry 5 template {$templateName}");
 
        /** @var Gantry\Framework\Theme $theme */
        $theme = $gantry['theme'];
 
        $assignments = new \Gantry\Framework\Assignments();
 
        if (GANTRY_DEBUGGER) {
            \Gantry\Debugger::addMessage('Selecting outline (rules, matches, scores):', 'debug');
            \Gantry\Debugger::addMessage($assignments->getPage(), 'debug');
            \Gantry\Debugger::addMessage($assignments->loadAssignments(), 'debug');
            \Gantry\Debugger::addMessage($assignments->matches(), 'debug');
            \Gantry\Debugger::addMessage($assignments->scores(), 'debug');
        }
 
        $theme->setLayout($assignments->select());
 
        if ($this->params->get('asset_timestamps', 1)) {
            $age = (int) ($this->params->get('asset_timestamps_period', 7) * 86400);
            Gantry\Framework\Document::$timestamp_age = $age > 0 ? $age : PHP_INT_MAX;
        } else {
            Gantry\Framework\Document::$timestamp_age = 0;
        }
    }
 
    /**
     * Re-route Gantry templates to Gantry Administration component.
     */
    private function onAfterRouteAdmin()
    {
        $input = $this->app->input;
 
        $option = $input->getCmd('option');
        $task   = $input->getCmd('task');
 
        if (in_array($option, array('com_templates', 'com_advancedtemplates'))) {
                );
            }
            return;
        }
 
        parent::__construct($subject, $config);
    }
 
    /**
     * Return global configuration for Gantry5.
     */
    public function onGantryGlobalConfig(&$global)
    {
        $global = $this->params->toArray();
    }
 
    public function onAfterRoute()
    {
        if ($this->app->isSite()) {
            $this->onAfterRouteSite();
 
        } elseif ($this->app->isAdmin()) {
            $this->onAfterRouteAdmin();
        }
    }
 
    public function onAfterRender()
    {
        if ($this->app->isSite() && class_exists('Gantry\Framework\Gantry')) {
            $this->onAfterRenderSite();
 
        } elseif ($this->app->isAdmin()) {
            $this->onAfterRenderAdmin();
        }
    }
 
    /**
     * @param object $module
     * @param array $attribs
     */
     * @param   array  &$args  Arguments
     *
     * @return  mixed  Routine return value
     *
     * @since   1.5
     */
    public function update(&$args)
    {
        // First let's get the event from the argument array.  Next we will unset the
        // event argument as it has no bearing on the method to handle the event.
        $event = $args['event'];
        unset($args['event']);
 
        /*
         * If the method to handle an event exists, call it and return its return
         * value.  If it does not exist, return null.
         */
        if (method_exists($this, $event))
        {
            return call_user_func_array(array($this, $event), array_values($args));
        }
    }
}
 
        if (!isset($this->_methods[$event]) || empty($this->_methods[$event]))
        {
            // No Plugins Associated To Event!
            return $result;
        }
 
        // Loop through all plugins having a method matching our event
        foreach ($this->_methods[$event] as $key)
        {
            // Check if the plugin is present.
            if (!isset($this->_observers[$key]))
            {
                continue;
            }
 
            // Fire the event for an object based observer.
            if (is_object($this->_observers[$key]))
            {
                $args['event'] = $event;
                $value = $this->_observers[$key]->update($args);
            }
            // Fire the event for a function based observer.
            elseif (is_array($this->_observers[$key]))
            {
                $value = call_user_func_array($this->_observers[$key]['handler'], array_values($args));
            }
 
            if (isset($value))
            {
                $result[] = $value;
            }
        }
 
        return $result;
    }
 
    /**
     * Attach an observer object
     *
     * @param   object  $observer  An observer object to attach
        }
 
        return $this;
    }
 
    /**
     * Calls all handlers associated with an event group.
     *
     * @param   string  $event  The event name.
     * @param   array   $args   An array of arguments (optional).
     *
     * @return  array   An array of results from each function call, or null if no dispatcher is defined.
     *
     * @since   3.0.0
     */
    public function triggerEvent($event, array $args = null)
    {
        if ($this->dispatcher instanceof \JEventDispatcher)
        {
            return $this->dispatcher->trigger($event, $args);
        }
 
        return;
    }
 
    /**
     * Allows the application to load a custom or default dispatcher.
     *
     * The logic and options for creating this object are adequately generic for default cases
     * but for many applications it will make sense to override this method and create event
     * dispatchers, if required, based on more specific needs.
     *
     * @param   \JEventDispatcher  $dispatcher  An optional dispatcher object. If omitted, the factory dispatcher is created.
     *
     * @return  BaseApplication This method is chainable.
     *
     * @since   3.0.0
     */
    public function loadDispatcher(\JEventDispatcher $dispatcher = null)
    {
 
                    $this->setHeader('Expires', 'Wed, 17 Aug 2005 00:00:00 GMT', true);
                    $this->setHeader('Last-Modified', gmdate('D, d M Y H:i:s') . ' GMT', true);
                    $this->setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0', false);
                    $this->setHeader('Pragma', 'no-cache');
                    $this->sendHeaders();
 
                    $this->redirect((string) $oldUri, 301);
                }
            }
        }
 
        foreach ($result as $key => $value)
        {
            $this->input->def($key, $value);
        }
 
        // Trigger the onAfterRoute event.
        \JPluginHelper::importPlugin('system');
        $this->triggerEvent('onAfterRoute');
    }
 
    /**
     * Sets the value of a user state variable.
     *
     * @param   string  $key    The path of the state.
     * @param   mixed   $value  The value of the variable.
     *
     * @return  mixed  The previous state, if one existed.
     *
     * @since   3.2
     */
    public function setUserState($key, $value)
    {
        $session = \JFactory::getSession();
        $registry = $session->get('registry');
 
        if ($registry !== null)
        {
            return $registry->set($key, $value);
 
        parent::render();
    }
 
    /**
     * Route the application.
     *
     * Routing is the process of examining the request environment to determine which
     * component should receive the request. The component optional parameters
     * are then set in the request object to be processed when the application is being
     * dispatched.
     *
     * @return  void
     *
     * @since   3.2
     */
    protected function route()
    {
        // Execute the parent method
        parent::route();
 
        $Itemid = $this->input->getInt('Itemid', null);
        $this->authorise($Itemid);
    }
 
    /**
     * Set the current state of the detect browser option.
     *
     * @param   boolean  $state  The new state of the detect browser option
     *
     * @return    boolean     The previous state
     *
     * @since    3.2
     */
    public function setDetectBrowser($state = false)
    {
        $old = $this->_detect_browser;
        $this->_detect_browser = $state;
 
        return $old;
        $this->triggerEvent('onAfterDispatch');
    }
 
    /**
     * Method to run the Web application routines.
     *
     * @return  void
     *
     * @since   3.2
     */
    protected function doExecute()
    {
        // Initialise the application
        $this->initialiseApp();
 
        // Mark afterInitialise in the profiler.
        JDEBUG ? $this->profiler->mark('afterInitialise') : null;
 
        // Route the application
        $this->route();
 
        // Mark afterRoute in the profiler.
        JDEBUG ? $this->profiler->mark('afterRoute') : null;
 
        /*
         * Check if the user is required to reset their password
         *
         * Before $this->route(); "option" and "view" can't be safely read using:
         * $this->input->getCmd('option'); or $this->input->getCmd('view');
         * ex: due of the sef urls
         */
        $this->checkUserRequireReset('com_users', 'profile', 'edit', 'com_users/profile.save,com_users/profile.apply,com_users/user.logout');
 
        // Dispatch the application
        $this->dispatch();
 
        // Mark afterDispatch in the profiler.
        JDEBUG ? $this->profiler->mark('afterDispatch') : null;
    }
 
            array('option', 'view', 'format', 'lang', 'Itemid', 'template', 'templateStyle', 'task'),
            function($systemVariable) use ($input) {
                return $input->exists($systemVariable) && is_array($input->getRaw($systemVariable));
            }
        );
 
        // Unset invalid system variables
        foreach ($invalidInputVariables as $systemVariable)
        {
            $input->set($systemVariable, null);
        }
 
        // Abort when there are invalid variables
        if ($invalidInputVariables)
        {
            throw new \RuntimeException('Invalid input, aborting application.');
        }
 
        // Perform application routines.
        $this->doExecute();
 
        // If we have an application document object, render it.
        if ($this->document instanceof \JDocument)
        {
            // Render the application output.
            $this->render();
        }
 
        if ($this->get('block_floc', 1))
        {
            $headers = $this->getHeaders();
 
            $notPresent = true;
 
            foreach ($headers as $header)
            {
                if (strtolower($header['name']) === 'permissions-policy')
                {
                    // Append interest-cohort if the Permissions-Policy is not set
                    if (strpos($header['value'], 'interest-cohort') === false)
{
    include_once __DIR__ . '/defines.php';
}
 
if (!defined('_JDEFINES'))
{
    define('JPATH_BASE', __DIR__);
    require_once JPATH_BASE . '/includes/defines.php';
}
 
require_once JPATH_BASE . '/includes/framework.php';
 
// Set profiler start time and memory usage and mark afterLoad in the profiler.
JDEBUG ? JProfiler::getInstance('Application')->setStart($startTime, $startMem)->mark('afterLoad') : null;
 
// Instantiate the application.
$app = JFactory::getApplication('site');
 
// Execute the application.
$app->execute();
 

Environment & details:

empty
empty
empty
empty
empty
Key Value
LSPHP_ProcessGroup on
PATH /usr/local/bin:/bin:/usr/bin
HTTP_ACCEPT */*
HTTP_HOST www.brazosroofing.com
HTTP_USER_AGENT claudebot
DOCUMENT_ROOT /home/u194772797/domains/brazosroofing.com/public_html
REMOTE_ADDR 18.205.114.205
REMOTE_PORT 50296
SERVER_ADDR 191.101.13.111
SERVER_NAME www.brazosroofing.com
SERVER_ADMIN
SERVER_PORT 80
REQUEST_SCHEME http
REQUEST_URI /
CRAWLER_USLEEP 1000
CRAWLER_LOAD_LIMIT_ENFORCE 25
SCRIPT_FILENAME /home/u194772797/domains/brazosroofing.com/public_html/index.php
QUERY_STRING
SCRIPT_URI http://www.brazosroofing.com/
SCRIPT_URL /
SCRIPT_NAME /index.php
SERVER_PROTOCOL HTTP/1.1
SERVER_SOFTWARE LiteSpeed
REQUEST_METHOD GET
X-LSCACHE on,crawler,esi,combine
PHP_SELF /index.php
REQUEST_TIME_FLOAT 1710835580.3874
REQUEST_TIME 1710835580
Key Value
LSPHP_ProcessGroup on
PATH /usr/local/bin:/bin:/usr/bin
0. Whoops\Handler\PrettyPageHandler