<?php
include_once \dirname(__DIR__, 4).'/vendor/doctrine/persistence/lib/Doctrine/Persistence/ObjectManager.php';
include_once \dirname(__DIR__, 4).'/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManagerInterface.php';
include_once \dirname(__DIR__, 4).'/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php';

class EntityManager_9a5be93 extends \Doctrine\ORM\EntityManager implements \ProxyManager\Proxy\VirtualProxyInterface
{
    /**
     * @var \Doctrine\ORM\EntityManager|null wrapped object, if the proxy is initialized
     */
    private $valueHolder9684d = null;

    /**
     * @var \Closure|null initializer responsible for generating the wrapped object
     */
    private $initializer489f2 = null;

    /**
     * @var bool[] map of public properties of the parent class
     */
    private static $publicPropertiesfd0c3 = [
        
    ];

    public function getConnection()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'getConnection', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->getConnection();
    }

    public function getMetadataFactory()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'getMetadataFactory', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->getMetadataFactory();
    }

    public function getExpressionBuilder()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'getExpressionBuilder', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->getExpressionBuilder();
    }

    public function beginTransaction()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'beginTransaction', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->beginTransaction();
    }

    public function getCache()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'getCache', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->getCache();
    }

    public function transactional($func)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'transactional', array('func' => $func), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->transactional($func);
    }

    public function commit()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'commit', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->commit();
    }

    public function rollback()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'rollback', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->rollback();
    }

    public function getClassMetadata($className)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'getClassMetadata', array('className' => $className), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->getClassMetadata($className);
    }

    public function createQuery($dql = '')
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'createQuery', array('dql' => $dql), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->createQuery($dql);
    }

    public function createNamedQuery($name)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'createNamedQuery', array('name' => $name), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->createNamedQuery($name);
    }

    public function createNativeQuery($sql, \Doctrine\ORM\Query\ResultSetMapping $rsm)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'createNativeQuery', array('sql' => $sql, 'rsm' => $rsm), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->createNativeQuery($sql, $rsm);
    }

    public function createNamedNativeQuery($name)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'createNamedNativeQuery', array('name' => $name), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->createNamedNativeQuery($name);
    }

    public function createQueryBuilder()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'createQueryBuilder', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->createQueryBuilder();
    }

    public function flush($entity = null)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'flush', array('entity' => $entity), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->flush($entity);
    }

    public function find($className, $id, $lockMode = null, $lockVersion = null)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'find', array('className' => $className, 'id' => $id, 'lockMode' => $lockMode, 'lockVersion' => $lockVersion), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->find($className, $id, $lockMode, $lockVersion);
    }

    public function getReference($entityName, $id)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'getReference', array('entityName' => $entityName, 'id' => $id), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->getReference($entityName, $id);
    }

    public function getPartialReference($entityName, $identifier)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'getPartialReference', array('entityName' => $entityName, 'identifier' => $identifier), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->getPartialReference($entityName, $identifier);
    }

    public function clear($entityName = null)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'clear', array('entityName' => $entityName), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->clear($entityName);
    }

    public function close()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'close', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->close();
    }

    public function persist($entity)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'persist', array('entity' => $entity), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->persist($entity);
    }

    public function remove($entity)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'remove', array('entity' => $entity), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->remove($entity);
    }

    public function refresh($entity)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'refresh', array('entity' => $entity), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->refresh($entity);
    }

    public function detach($entity)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'detach', array('entity' => $entity), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->detach($entity);
    }

    public function merge($entity)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'merge', array('entity' => $entity), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->merge($entity);
    }

    public function copy($entity, $deep = false)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'copy', array('entity' => $entity, 'deep' => $deep), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->copy($entity, $deep);
    }

    public function lock($entity, $lockMode, $lockVersion = null)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'lock', array('entity' => $entity, 'lockMode' => $lockMode, 'lockVersion' => $lockVersion), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->lock($entity, $lockMode, $lockVersion);
    }

    public function getRepository($entityName)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'getRepository', array('entityName' => $entityName), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->getRepository($entityName);
    }

    public function contains($entity)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'contains', array('entity' => $entity), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->contains($entity);
    }

    public function getEventManager()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'getEventManager', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->getEventManager();
    }

    public function getConfiguration()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'getConfiguration', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->getConfiguration();
    }

    public function isOpen()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'isOpen', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->isOpen();
    }

    public function getUnitOfWork()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'getUnitOfWork', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->getUnitOfWork();
    }

    public function getHydrator($hydrationMode)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'getHydrator', array('hydrationMode' => $hydrationMode), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->getHydrator($hydrationMode);
    }

    public function newHydrator($hydrationMode)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'newHydrator', array('hydrationMode' => $hydrationMode), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->newHydrator($hydrationMode);
    }

    public function getProxyFactory()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'getProxyFactory', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->getProxyFactory();
    }

    public function initializeObject($obj)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'initializeObject', array('obj' => $obj), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->initializeObject($obj);
    }

    public function getFilters()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'getFilters', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->getFilters();
    }

    public function isFiltersStateClean()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'isFiltersStateClean', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->isFiltersStateClean();
    }

    public function hasFilters()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'hasFilters', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return $this->valueHolder9684d->hasFilters();
    }

    /**
     * Constructor for lazy initialization
     *
     * @param \Closure|null $initializer
     */
    public static function staticProxyConstructor($initializer)
    {
        static $reflection;

        $reflection = $reflection ?? new \ReflectionClass(__CLASS__);
        $instance   = $reflection->newInstanceWithoutConstructor();

        \Closure::bind(function (\Doctrine\ORM\EntityManager $instance) {
            unset($instance->config, $instance->conn, $instance->metadataFactory, $instance->unitOfWork, $instance->eventManager, $instance->proxyFactory, $instance->repositoryFactory, $instance->expressionBuilder, $instance->closed, $instance->filterCollection, $instance->cache);
        }, $instance, 'Doctrine\\ORM\\EntityManager')->__invoke($instance);

        $instance->initializer489f2 = $initializer;

        return $instance;
    }

    protected function __construct(\Doctrine\DBAL\Connection $conn, \Doctrine\ORM\Configuration $config, \Doctrine\Common\EventManager $eventManager)
    {
        static $reflection;

        if (! $this->valueHolder9684d) {
            $reflection = $reflection ?? new \ReflectionClass('Doctrine\\ORM\\EntityManager');
            $this->valueHolder9684d = $reflection->newInstanceWithoutConstructor();
        \Closure::bind(function (\Doctrine\ORM\EntityManager $instance) {
            unset($instance->config, $instance->conn, $instance->metadataFactory, $instance->unitOfWork, $instance->eventManager, $instance->proxyFactory, $instance->repositoryFactory, $instance->expressionBuilder, $instance->closed, $instance->filterCollection, $instance->cache);
        }, $this, 'Doctrine\\ORM\\EntityManager')->__invoke($this);

        }

        $this->valueHolder9684d->__construct($conn, $config, $eventManager);
    }

    public function & __get($name)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, '__get', ['name' => $name], $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        if (isset(self::$publicPropertiesfd0c3[$name])) {
            return $this->valueHolder9684d->$name;
        }

        $realInstanceReflection = new \ReflectionClass('Doctrine\\ORM\\EntityManager');

        if (! $realInstanceReflection->hasProperty($name)) {
            $targetObject = $this->valueHolder9684d;

            $backtrace = debug_backtrace(false, 1);
            trigger_error(
                sprintf(
                    'Undefined property: %s::$%s in %s on line %s',
                    $realInstanceReflection->getName(),
                    $name,
                    $backtrace[0]['file'],
                    $backtrace[0]['line']
                ),
                \E_USER_NOTICE
            );
            return $targetObject->$name;
        }

        $targetObject = $this->valueHolder9684d;
        $accessor = function & () use ($targetObject, $name) {
            return $targetObject->$name;
        };
        $backtrace = debug_backtrace(true, 2);
        $scopeObject = isset($backtrace[1]['object']) ? $backtrace[1]['object'] : new \ProxyManager\Stub\EmptyClassStub();
        $accessor = $accessor->bindTo($scopeObject, get_class($scopeObject));
        $returnValue = & $accessor();

        return $returnValue;
    }

    public function __set($name, $value)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, '__set', array('name' => $name, 'value' => $value), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        $realInstanceReflection = new \ReflectionClass('Doctrine\\ORM\\EntityManager');

        if (! $realInstanceReflection->hasProperty($name)) {
            $targetObject = $this->valueHolder9684d;

            $targetObject->$name = $value;

            return $targetObject->$name;
        }

        $targetObject = $this->valueHolder9684d;
        $accessor = function & () use ($targetObject, $name, $value) {
            $targetObject->$name = $value;

            return $targetObject->$name;
        };
        $backtrace = debug_backtrace(true, 2);
        $scopeObject = isset($backtrace[1]['object']) ? $backtrace[1]['object'] : new \ProxyManager\Stub\EmptyClassStub();
        $accessor = $accessor->bindTo($scopeObject, get_class($scopeObject));
        $returnValue = & $accessor();

        return $returnValue;
    }

    public function __isset($name)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, '__isset', array('name' => $name), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        $realInstanceReflection = new \ReflectionClass('Doctrine\\ORM\\EntityManager');

        if (! $realInstanceReflection->hasProperty($name)) {
            $targetObject = $this->valueHolder9684d;

            return isset($targetObject->$name);
        }

        $targetObject = $this->valueHolder9684d;
        $accessor = function () use ($targetObject, $name) {
            return isset($targetObject->$name);
        };
        $backtrace = debug_backtrace(true, 2);
        $scopeObject = isset($backtrace[1]['object']) ? $backtrace[1]['object'] : new \ProxyManager\Stub\EmptyClassStub();
        $accessor = $accessor->bindTo($scopeObject, get_class($scopeObject));
        $returnValue = $accessor();

        return $returnValue;
    }

    public function __unset($name)
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, '__unset', array('name' => $name), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        $realInstanceReflection = new \ReflectionClass('Doctrine\\ORM\\EntityManager');

        if (! $realInstanceReflection->hasProperty($name)) {
            $targetObject = $this->valueHolder9684d;

            unset($targetObject->$name);

            return;
        }

        $targetObject = $this->valueHolder9684d;
        $accessor = function () use ($targetObject, $name) {
            unset($targetObject->$name);

            return;
        };
        $backtrace = debug_backtrace(true, 2);
        $scopeObject = isset($backtrace[1]['object']) ? $backtrace[1]['object'] : new \ProxyManager\Stub\EmptyClassStub();
        $accessor = $accessor->bindTo($scopeObject, get_class($scopeObject));
        $accessor();
    }

    public function __clone()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, '__clone', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        $this->valueHolder9684d = clone $this->valueHolder9684d;
    }

    public function __sleep()
    {
        $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, '__sleep', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;

        return array('valueHolder9684d');
    }

    public function __wakeup()
    {
        \Closure::bind(function (\Doctrine\ORM\EntityManager $instance) {
            unset($instance->config, $instance->conn, $instance->metadataFactory, $instance->unitOfWork, $instance->eventManager, $instance->proxyFactory, $instance->repositoryFactory, $instance->expressionBuilder, $instance->closed, $instance->filterCollection, $instance->cache);
        }, $this, 'Doctrine\\ORM\\EntityManager')->__invoke($this);
    }

    public function setProxyInitializer(\Closure $initializer = null) : void
    {
        $this->initializer489f2 = $initializer;
    }

    public function getProxyInitializer() : ?\Closure
    {
        return $this->initializer489f2;
    }

    public function initializeProxy() : bool
    {
        return $this->initializer489f2 && ($this->initializer489f2->__invoke($valueHolder9684d, $this, 'initializeProxy', array(), $this->initializer489f2) || 1) && $this->valueHolder9684d = $valueHolder9684d;
    }

    public function isProxyInitialized() : bool
    {
        return null !== $this->valueHolder9684d;
    }

    public function getWrappedValueHolderValue() : ?object
    {
        return $this->valueHolder9684d;
    }
}
