<?php
namespace Claromentis\Core\Twig;

$GLOBALS["__65da1b1ec2d6653e8a" . "0ab7848e536215"] = (@$GLOBALS["__65da1b1ec2d" . "6653e8a0ab784" . "8e536215"] ?: array()) + array("_75ca9d21af5e" . "fc8ea10443880" . "98af784" => base64_decode("dHdpZy5hcm" . "d1bWVudHM="), "_4c05b95d6" . "bb1191967c" . "cfe58bffbb" . "d86" => base64_decode("b25LZXJuZ" . "WxWaWV3"), "_00b7858db26a1c1cadb1466" . "f573d5d80" => base64_decode("Y29tbW9uL2xheW91dHMvYmFzZV90d2lnX" . "2h5YnJpZC5odG1s"), "_6d3a1bbb0c16fad009bf8" . "7b15802998e" => base64_decode("dHdpZ" . "y50ZW" . "1wbGF" . "0ZQ=="));
use Claromentis\Core\Event\EventSubscriberInterface;
use Claromentis\Core\Http\TemplaterCallResponse;
use Claromentis\Core\Http\TwigResponse;
use Claromentis\Core\Http\TwigTemplaterResponse;
use Claromentis\Core\Twig\Events\TwigPreRenderEvent;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Twig;









class TwigRenderListener implements EventSubscriberInterface
{
    
    
    
    
    protected $twig;
    
    
    
    
    protected $dispatcher;
    
    
    
    
    
    
    
    public function __construct(Twig\Environment $_6b67522fca36b32553cd09de29b97ff8, EventDispatcherInterface $_b497ce6f2af10f67516aed0ecf34d8cf)
    {
        $this->twig = $_6b67522fca36b32553cd09de29b97ff8;
        $this->dispatcher = $_b497ce6f2af10f67516aed0ecf34d8cf;
    }
    public static function getSubscribedEvents()
    {
        return [KernelEvents::VIEW => [$GLOBALS["__65da1b1" . "ec2d6653e" . "8a0ab7848" . "e536215"]["_4c05b95d6bb" . "1191967ccfe5" . "8bffbbd86"], -4]];
    }
    
    
    
    
    
    
    
    
    
    
    
    public function onKernelView(GetResponseForControllerResultEvent $event)
    {
        $_fd5a3a643834299cbdadfc3540ba0bcb = $event->getControllerResult();
        
        
        if (!$_fd5a3a643834299cbdadfc3540ba0bcb instanceof TwigResponse) {
            return;
        }
        
        
        $this->dispatchPreRenderEvent($_fd5a3a643834299cbdadfc3540ba0bcb);
        
        
        $this->updateControllerResultEvent($event, $_fd5a3a643834299cbdadfc3540ba0bcb);
    }
    
    
    
    
    
    
    
    
    protected function dispatchPreRenderEvent(TwigResponse $_fd5a3a643834299cbdadfc3540ba0bcb)
    {
        $event = new TwigPreRenderEvent($_fd5a3a643834299cbdadfc3540ba0bcb->getTemplate(), $_fd5a3a643834299cbdadfc3540ba0bcb->getArguments());
        $this->dispatcher->dispatch(TwigEvents::PRE_RENDER, $event);
        $_fd5a3a643834299cbdadfc3540ba0bcb->setTemplate($event->getTemplate());
        $_fd5a3a643834299cbdadfc3540ba0bcb->setArguments($event->getArguments());
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    protected function updateControllerResultEvent(GetResponseForControllerResultEvent $event, TwigResponse $_fd5a3a643834299cbdadfc3540ba0bcb)
    {
        if ($_fd5a3a643834299cbdadfc3540ba0bcb instanceof TwigTemplaterResponse) {
            
            
            
            $_edae18fae8c53743e7224eb1325ebb6b = new TemplaterCallResponse($GLOBALS["__65da1b1ec2d6653e8" . "a0ab7848e536215"]["_00b7858db26a1c1cadb1" . "466f573d5d80"], [$GLOBALS["__65da1b1e" . "c2d6653e8a" . "0ab7848e53" . "6215"]["_6d3a1bbb0c16fad009bf87b158029" . "98e"] => $_fd5a3a643834299cbdadfc3540ba0bcb->getTemplate(), $GLOBALS["__65da1b1ec2d6653e8a" . "0ab7848e536215"]["_75ca9d2" . "1af5efc8" . "ea104438" . "8098af78" . "4"] => $_fd5a3a643834299cbdadfc3540ba0bcb->getArguments()], $_fd5a3a643834299cbdadfc3540ba0bcb->getPageTitle());
            $_edae18fae8c53743e7224eb1325ebb6b->http_status = $_fd5a3a643834299cbdadfc3540ba0bcb->getHttpStatus();
            $_edae18fae8c53743e7224eb1325ebb6b->http_headers = $_fd5a3a643834299cbdadfc3540ba0bcb->getHttpHeaders();
            $event->setControllerResult($_edae18fae8c53743e7224eb1325ebb6b);
        } else {
            
            
            $_fd5a3a643834299cbdadfc3540ba0bcb = new Response($this->twig->render($_fd5a3a643834299cbdadfc3540ba0bcb->getTemplate(), $_fd5a3a643834299cbdadfc3540ba0bcb->getArguments()), $_fd5a3a643834299cbdadfc3540ba0bcb->getHttpStatus(), $_fd5a3a643834299cbdadfc3540ba0bcb->getHttpHeaders());
            $event->setResponse($_fd5a3a643834299cbdadfc3540ba0bcb);
        }
    }
}