text:
\section{Introduction}
Let $M$ be a complex $N$-dimensional manifold and $Y\subset M$ an analytic subset. Given a $\debar$-closed
$(p,q)$-current $\mu$ on $M$ with support in $Y$ there are in general also local obstructions to finding a current
$\tau$ with support in $Y$ such that $\mu=\debar\tau$. These obstructions constitute the moderate
cohomology sheaf $\HH^q_{[Y]}(\Om^p_M)$, where $\Om_M^p$ is the sheaf of germs of holomorphic $p$-forms on $M$.
More formally, for an $\hol_M$-module $\F$,
$\HH^0_{[Y]}(\F)$ is defined as $\displaystyle{\lim_{\longrightarrow}} \Hom_{\hol_M}(\hol_M/\J^k_Y,\F)$,
where $\J_Y$ is the radical ideal sheaf defining $Y$;
this defines a left exact functor whose right derived functors are
$\HH^{\bullet}_{[Y]}(-)=\displaystyle{\lim_{\longrightarrow}} \Ext_{\hol_M}^{\bullet}(\hol_M/\J^k_Y,-)$.
Notice that, for any ideal sheaf $\J$, $\Hom_{\hol_M}(\hol_M/\J,\F)$ is naturally identified with the sheaf of
germs of sections of $\F$ annihilated by $\J$.
The connection between the formal definition and the informal one is the following isomorphism:
Let $\mathscr{C}_M^{p,q}$ be the sheaf of germs of currents on $M$ of bidegree $(p,q)$ and let $\mathscr{C}_{Y}^{p,q}$
be the subsheaf of germs of currents with support in $Y$. Then
\begin{equation}\label{DMisom}
\HH^q_{[Y]}(\Om_M^p)\simeq \Ker \left(\debar\colon \mathscr{C}^{p,q}_{Y}\to \mathscr{C}_{Y}^{p,q+1}\right)/
\Image \left(\debar\colon \mathscr{C}^{p,q-1}_{Y}\to \mathscr{C}_{Y}^{p,q}\right),
\end{equation}
cf.\ \cite[Section~6.2]{BjorkAbel}. This isomorphism relies on Malgrange's result that
$\mathscr{C}_M^{p,q}$ is a stalk-wise injective $\hol_M$-module.
In this paper we will use the right-hand side of \eqref{DMisom} as definition of
$\HH^q_{[Y]}(\Om_M^p)$. We notice here the well-known fact that
$\HH^q_{[Y]}(\Om_M^p)=0$ for $q< \text{codim}\, Y$, see, e.g., \cite{BjorkDmod}.

In \cite{DS} Dickenstein and Sessa proved that if $Y$ is a locally
complete intersection of codimension $\kappa$,
then the class in $\HH^{\kappa}_{[Y]}(\Om_M^p)$ of a $\debar$-closed current $\mu$ with support in $Y$ has a unique
``locally residual current'' representative. They extended their results to an arbitrary pure-dimensional $Y$ in \cite{DS2}.
Extracting key properties of the locally residual currents, Bj\"{o}rk
introduced the sheaf of Coleff-Herrera currents, $\CH_Y$, with support in $Y$, see, e.g., \cite[Section~6.2]{BjorkAbel};
for any analytic subset $Y\subset M$
of pure codimension $\kappa$, $\CH_Y^p$ is the sheaf of germs of $\debar$-closed $(p,\kappa)$-currents $\mu$
with the \emph{standard extension property} (see Section~\ref{PMsektion} below),
such that $\overline{\J}_Y\mu=0$, i.e., such that for any holomorphic function $h$ vanishing on $Y$, $\bar{h}\mu=0$.
A non-trivial germ in $\CH_Y^p$ cannot have a $\debar$-potential with support in $Y$ and, in fact, the result of Dickenstein and Sessa
can be formulated elegantly as $\HH^{\kappa}_{[Y]}(\Om_M^p)\simeq \CH_Y^p$. This was
refined by Bj\"{o}rk as follows, see, e.g., Bj\"{o}rk, \emph{op.\ cit.}, see also Andersson \cite{MatsNoether}.
Let $\J\subset\hol_M$ be a coherent sheaf of ideals of codimension $\kappa$, and let $Y$ be the union of the irreducible
components of codimension $\kappa$ of the zero-set of $\J$. Then, locally, if $\nu$ is a $\debar$-closed $(p,\kappa)$-current
with $\J\nu=0$, there is a unique Coleff-Herrera current $\mu$ with $\J\mu=0$ such that $\nu-\mu$ has a $\debar$-potential
annihilated by $\J$. In other words,
the natural map
\begin{equation}\label{ABthm}
\Hom_{\hol_M}(\hol_M/\J,\CH^p_Y) \stackrel{\simeq}{\longrightarrow}
\HH^{\kappa}\big(\Hom_{\hol_M}(\hol_M/\J,\mathscr{C}^{p,\bullet}_M),\debar\big)
\end{equation}
is an isomorphism.
Notice that, since $(\mathscr{C}^{p,\bullet}_M,\debar)$ is a stalk-wise injective resolution of $\Om_M^p$, the right-hand side
of \eqref{ABthm} is isomorphic to $\Ext_{\hol_M}^{\kappa}(\hol_M/\J,\Om_M^p)$.

One objective of this paper is to construct an integral operator $\check{\Proj}$, which is the identity on Coleff-Herrera
currents annihilated by $\J$ and such that if $\mu$ is any $\debar$-closed
$(p,\kappa)$-current with $\J\mu=0$, then $\check{\Proj}\mu$ is a Coleff-Herrera current annihilated by $\J$ representing
the class $[\mu]_{\debar}$, see Definition~\ref{Poperator} and Proposition~\ref{objective1} below.
Given a Hermitian free resolution of $\hol_M/\J$, in \cite{AW1} is introduced an associated vector-valued current
$R=R_{\kappa}+R_{\kappa+1}+\cdots$,
where $R_k$ has bidegree $(0,k)$, such that a holomorphic function $h$ (locally) is a section of $\J$
if and only if $hR=0$.
In \cite{MatsNoether}, Andersson uses the part $R_{\kappa}$ of $R$
and shows, given a $\debar$-closed $(p,\kappa)$-current $\mu$ with $\J\mu=0$, that there is a vector $\xi$ of holomorphic
$p$-forms such that
$\xi\cdot R_{\kappa}$ is a Coleff-Herrera current annihilated by $\J$ representing the class $[\mu]_{\debar}$. Given the free resolution
of $\hol_M/\J$, we will construct an integral kernel $p(\zeta,z)$ such that $z\mapsto p(\zeta,z)$ is a smooth
compactly supported $(N-p,N-\kappa)$-form, $\zeta\mapsto p(\zeta,z)$ is a vector of holomorphic $p$-forms, and
$\xi=\int_z p(\zeta,z)\wedge\mu(z)$, see Proposition~\ref{fundprop} below. Our integral operator is then given as
\begin{equation*}
\check{\Proj}\mu = R_{\kappa}\cdot \int_z p(\zeta,z)\wedge\mu(z).
\end{equation*}

A second objective is to propose a generalization of \eqref{ABthm}.
We will describe
$\HH^{q}\big(\Hom_{\hol_M}(\hol_M/\J,\mathscr{C}^{p,\bullet}_M),\debar\big)$ for $q\geq\kappa$
as the cohomology of a Dolbeault complex $(\mathscr{B}_{\J}^{p,\bullet},\debar)$, where $\mathscr{B}_{\J}^{p,q}$
is a certain fine sheaf of $(p,q)$-currents supported on the zero-set of $\J$ and which in a sense is as small as possible
and without unnecessary singularities.
For instance, if $\J$ is the radical ideal sheaf of a smooth submanifold $i\colon Y\hookrightarrow M$ of codimension $\kappa$, then
$\mathscr{B}_{\J}^{N,q}=i_* \mathscr{E}_Y^{N-\kappa,q-\kappa}$, where $\mathscr{E}_Y^{r,s}$ is the sheaf of germs of
smooth $(r,s)$-forms on $Y$, see Example~\ref{exempel} below.

\begin{theorem}\label{egenDSthm1}
Let $M$ be a complex manifold, let $\J\subset \hol_M$ be a coherent sheaf of ideals of codimension $\kappa$,
and let $Y$ be the union of the irreducible components
of codimension $\kappa$ of the zero-set of $\J$.
There are fine sheaves of currents $\mathscr{B}_{\J}^{p,q}$, $q\geq \kappa$,
such that
\begin{itemize}
\item[(a)] $\J\mathscr{B}_{\J}^{p,q}=\overline{\sqrt{\J}}\mathscr{B}_{\J}^{p,q}=d\overline{\sqrt{\J}}\wedge\mathscr{B}_{\J}^{p,q}=0$;
\item[(b)] $\debar\colon \mathscr{B}_{\J}^{p,q}\to \mathscr{B}_{\J}^{p,q+1}$;
\item[(c)] $\Ker(\debar\colon \mathscr{B}_{\J}^{p,\kappa} \to \mathscr{B}_{\J}^{p,\kappa+1}) \simeq \Hom_{\hol_M}(\hol_M/\J,\CH^p_Y)$;
\end{itemize}
and the natural map
\begin{equation}\label{naturlig}
\HH^q\big(\mathscr{B}_{\J}^{p,\bullet},\debar\big) \to
\mathscr{H}^{q}\left(\Hom_{\hol_M}\big(\hol_M/\J,\mathscr{C}_M^{p,\bullet}\big),\,\debar \right), \quad q\geq \kappa,
\end{equation}
is an isomorphism.
\end{theorem}

In particular, setting $\mathscr{B}_{\J}^{p,q}=0$ for $q<\kappa$, we have a sheaf complex $(\mathscr{B}_{\J}^{p,\bullet},\debar)$
whose cohomology sheaves are isomorphic to $\Ext_{\hol_M}^{\bullet}(\hol_M/\J,\Om_M^p)$.

The definition of the sheaf $\mathscr{B}_{\J}^{p,q}$ relies on certain integral operators $\check{\K}$ associated to $\J$
that we introduce in Section~\ref{intopsektion}, cf.\
\cite{AS}, \cite{RSWSerre}, and \cite{holoforms}. In fact, $\oplus_{p,q}\mathscr{B}_{\J}^{p,q}$ is defined as the smallest
fine sheaf which is closed under such $\check{\K}$-operators and contains all currents of the form $\xi\cdot R$,
where $\xi$ is a vector of smooth
forms and $R$ is a current associated to a Hermitian free resolution of $\hol/\J$.

\begin{theorem}\label{egenDSthm2}
Let $M$ in Theorem~\ref{egenDSthm1} be (biholomorphic to) a pseudoconvex domain $D\Subset\C^N$ and let $D'\Subset D$.
Then there are integral operators
$\check{\Proj}\colon \mathscr{C}^{p,q}(D)\to \mathscr{B}_{\J}^{p,q}(D')$ and
$\check{\K}\colon \mathscr{B}_{\J}^{p,q}(D)\to \mathscr{B}_{\J}^{p,q-1}(D')$ for $q\geq \kappa$ such that
\begin{itemize}
\item[(a)] the inverse of the map \eqref{naturlig} is induced by $\nu\mapsto\check{\Proj}\nu$;
\item[(b)] $\check{\Proj}\debar\tau = \debar\check{\Proj}\tau$ for any $\tau\in\mathscr{C}^{p,q}(D)$ with $\J\tau=0$;
\item[(c)] $\mu_{\restriction_{D'}} = \debar\check{\K}\mu + \check{\K}\debar\mu + \check{\Proj}\mu$
for any $\mu\in \mathscr{B}_{\J}^{p,q}(D)$.
\end{itemize}
\end{theorem}

Notice that if $\mu\in\mathscr{B}_{\J}^{p,\kappa}(D)$ is $\debar$-closed, then it follows from (c) that
$\mu_{\restriction_{D'}}=\check{\Proj}\mu$.

Recall now the sheaf $\PM^{p,q}_M$ of germs of \emph{pseudomeromorphic currents}
of bidegree $(p,q)$ on $M$; see Section~\ref{PMsektion} below for details.
This sheaf was introduced in \cite{AW2}, and modified to our needs in \cite{AS}, to give a unified
framework for questions about residue currents.
Recently, \cite{AW4}, Andersson and Wulcan showed that $\PM^{p,q}_M$
is stalk-wise injective and this readily gives the following generalization of \eqref{ABthm}:
\emph{The natural map}
\begin{equation
\mathscr{H}^{q}\left(\Hom_{\hol_M}\big(\hol_M/\J,\PM_M^{p,\bullet}\big),\,\debar \right) \to
\mathscr{H}^{q}\left(\Hom_{\hol_M}\big(\hol_M/\J,\mathscr{C}_M^{p,\bullet}\big),\,\debar \right)
\end{equation}
\emph{is an isomorphism}. By construction, see Section~\ref{Bsektion} below, our sheaf $\mathscr{B}_{\J}^{p,q}$ is a subsheaf of
$\PM^{p,q}_M$, that, in general, is much smaller and less singular than
$\Hom_{\hol_M}\big(\hol_M/\J,\PM_M^{p,q}\big)$. For instance, if $\J$ is the radical ideal sheaf corresponding to
a smooth submanifold $i\colon Y\hookrightarrow M$ of codimension $\kappa$, then, as we have seen,
$\mathscr{B}_{\J}^{N,q}=i_* \mathscr{E}_Y^{N-\kappa,q-\kappa}$ whereas
$\Hom_{\hol_M}\big(\hol_M/\J,\PM_M^{N,q}\big)$ contains the direct image under $i$ of all germs of semi-meromorphic
$(N-\kappa,q-\kappa)$-currents on $Y$.
We mention also that our operator $\check{\K}$ in fact is defined
on all pseudomeromorphic currents and
$\text{supp}\,\check{\K}\mu\subset Y$ for any $\mu\in \PM^{p,q}(D)$. Moreover, if in addition $\J\mu=0$, then
(c) of Theorem~\ref{egenDSthm2} holds.

We conclude this introduction by noticing an application of our results to factorization of analytic cycles.
To put it in perspective, we first recall that if $f$ is a holomorphic function and $[Z]$ is the current of integration
corresponding to the divisor of $f$,
then, letting $\debar(1/f)$ be the residue current of $f$ in the sense of Herrera-Lieberman \cite{HL},
the Poincar\'e-Lelong formula may be written $[Z]=\debar(1/f)\wedge df/(2\pi i)$.
If instead $f=(f_1,\ldots,f_{\kappa})$ is a tuple of holomorphic functions defining a complete intersection,
$Z$ is the corresponding cycle, and we construe $\debar(1/f)$ as the Coleff-Herrera product
$\debar(1/f_{\kappa})\wedge\cdots\wedge \debar(1/f_1)$ and let
$df=df_1\wedge\cdots \wedge df_{\kappa}$, then Coleff and Herrera, \cite{CH}, showed that $[Z]=\debar(1/f)\wedge df/(2\pi i)^{\kappa}$.
This was globalized to locally complete intersections by Demailly and Passare, \cite{DP}, and further generalized
by Andersson in \cite{MatsLelong}. Moreover, L{\"a}rk{\"a}ng and Wulcan, \cite{LW}, recently proved a quite general factorization result
for the fundamental cycle corresponding to an arbitrary pure-dimensional analytic subspace. From the results in this paper
we get the following result: Let $Z$ be an analytic cycle of pure codimension $\kappa$, let $\J$ be an ideal sheaf
such that $\J[Z]=0$, and let $R$ be the residue current associated to a Hermitian free resolution of $\hol_M/\J$.
Then $[Z]$ is a Coleff-Herrera current annihilated by $\J$ and so, by Theorem~\ref{egenDSthm1} (c), $[Z]$ is a
$\debar$-closed section
of $\mathscr{B}_{\J}^{\kappa,\kappa}$. Hence, by Theorem~\ref{egenDSthm2} (c),
\begin{equation*}
[Z]=\check{\Proj}([Z])=R_{\kappa}\cdot \int_{z\in Z}p(\zeta,z).
\end{equation*}

{\bf Acknowledgment:} I would like to thank Mats Andersson and Elizabeth Wulcan for stimulating discussions
on the topic of this paper.

\section{Pseudomeromorphic currents and weighted integral formulas}
\subsection{Pseudomeromorphic currents}\label{PMsektion}
In one complex variable $z$ it is elementary to see that the principal value current $1/z^m$ exists
and can be defined, e.g., as the limit as $\epsilon \to 0$ in the sense of currents
of $\chi(|h(z)|^2/\epsilon)/z^m$, where $h$ is a non-trivial holomorphic function (or tuple) vanishing at $z=0$
and $\chi$ is a smooth regularization of the characteristic function
of $[1,\infty)\subset \R$; for the rest of the paper $\chi$ will denote such a function.
The current $1/z^m$ can also be defined as the value at $\lambda=0$ of the analytic continuation
of the current-valued function $\lambda \mapsto |h(z)|^{{2\lambda}}/z^m$.
It follows that the \emph{residue current} $\debar(1/z^m)$ can be computed as the
limit of $\debar\chi(|h(z)|^2/\epsilon)/z^m$ or as the value at $\lambda=0$ of
$\lambda \mapsto \debar |h(z)|^{{2\lambda}}/z^m$.
Since tensor products of currents are well-defined we can form the current
\begin{equation}\label{elementary}
\tau=\debar \frac{1}{z_1^{m_1}}\wedge \cdots \wedge \debar \frac{1}{z_r^{m_r}}\wedge
\frac{\gamma(z)}{z_{r+1}^{m_{r+1}}\cdots z_M^{m_M}}
\end{equation}
in $\C^M$, where $m_1,\ldots,m_r$ are positive integers, $m_{r+1},\ldots,m_{M}$ are nonnegative integers, and
$\gamma$ is a smooth compactly supported form. Notice that $\tau$ is anti-commuting in the residue factors
$\debar(1/z_j^{m_j})$ and commuting in the principal value factors $1/z_k^{m_k}$.
We say that a current of the form \eqref{elementary} is an \emph{elementary pseudomeromorphic current}.
By \cite[Theorem~2.15]{AW3}, a current $\mu$ on a complex manifold $X$ is \emph{pseudomeromorphic} if and only if $\mu$ is a locally
finite sum of currents of the form $\pi_*\tau$, where $\tau$ is of the form \eqref{elementary} and $\pi$ is a holomorphic
map from a neighborhood of $\text{supp}\, \gamma$ to $X$; a current $\mu$ on a reduced pure-dimensional complex space $X$ is
pseudomeromorphic if and only if there is a modification $\pi\colon X'\to X$ with $X'$ smooth and a pseudomeromorphic current
$\mu'$ on $X'$ such that $\mu=\pi_*\mu'$, \emph{op.\ cit.}  This yields the subsheaf $\PM_X$ of the sheaf of
germs of currents on any reduced pure-dimensional complex space $X$. Notice that, since $\debar$ maps an elementary
pseudomeromorphic current to a sum of such currents, $\debar$ maps $\PM$ to itself.
Moreover, if $X$ and $Z$ are reduced pure-dimensional complex spaces and $\mu\in\PM(X)$, then $\mu\otimes 1\in \PM(X\times Z)$,
see \cite[Section~2]{AS}. Below, we will omit ``$\otimes 1$'' and write, e.g., $\mu(x)$ to denote on what variables a current
depends.

\medskip

\noindent {\bf Dimension principle.}(\cite[Corollary~2.4]{AW2}, \cite[Proposition~2.3]{AS})
\emph{Let $X$ be a reduced pure-dimensional
complex space, let $\mu\in\PM(X)$, and assume that $\mu$ has support contained in a subvariety $V\subset X$.
If $\mu$ has bidegree $(*,q)$ and $\textrm{codim}_X V>q$, then $\mu=0$.}

\smallskip

For an analytic subset $Y\subset X$ of pure codimension $\kappa$, the sheaf $\CH_Y^p$ is characterized as the
subsheaf of $\PM^{p,\kappa}_X$ of germs of $\debar$-closed currents with support in $Y$, see \cite{MatsUnique}.

Pseudomeromorphic currents can be ``restricted''
to analytic (or constructible) subsets: Let $\mu\in\PM(X)$, let $V\subset X$ be an analytic subset,
and set $V^c:=X\setminus V$. Then the restriction of $\mu$ to the open subset $V^c$ has a natural
pseudomeromorphic extension $\ett_{V^c}\mu$ to $X$. In \cite{AW2}, $\ett_{V^c}\mu$ is defined as the
value at $0$ of the analytic continuation of the current-valued function $\lambda\mapsto |h|^{2\lambda}\mu$,
where $h$ is any holomorphic tuple with zero set $V$; $\ett_{V^c}\mu$ can also be defined as
$\lim_{\epsilon\to 0}\chi(|h|^2v/\epsilon)\mu$, where $v$ is any smooth strictly positive function,
see \cite[Lemma~2.6]{AW3}, cf.\ also \cite[Lemma~6]{LSprodukter}.
The current $\ett_V\mu:=\mu-\ett_{V^c}\mu$ thus
is a pseudomeromorphic current with support contained in $V$, and if $\text{supp}\,\mu\subset V$, then $\ett_V\mu=\mu$.
Moreover, see \cite[Section~2.2]{AW3}, if $V$ and $W$ are any
constructible subsets then $\ett_V\ett_W\mu=\ett_{V\cap W}\mu$.
A current $\mu\in \PM(X)$ has the standard extension property (SEP) with respect to an
analytic subsets $V\subset X$ if $\ett_W\mu=0$ for all germs of analytic subsets $W\subset X$ such that $\text{codim}_V W\cap V>0$.

Recall that a current on $X$ is said to be semi-meromorphic if it a principal value current of the form
$\alpha/f$, where $\alpha$ is a smooth form and $f$ is a holomorphic function or section
of a line bundle such that $f$ does not vanish identically on any component of $X$.
Following \cite{AS}, see also \cite[Section~4]{AW3}, we say that a current $a$ on $X$ is
\emph{almost semi-meromorphic} if there is a modification $\pi\colon X'\to X$ and a semi-meromorphic
current $\alpha/f$ on $X'$ such that $a=\pi_*(\alpha/f)$; if $f$ takes values in $L\to X'$ we need
also $\alpha$ to take values in $L\to X'$ if we want $a$ to be scalar valued.
If $a$ is almost semi-meromorphic on $X$, then the smallest Zariski-closed set outside of which $a$ is smooth
has positive codimension and is denoted $ZSS(a)$, the \emph{Zariski-singular support} of $a$, see \cite[Section~4]{AW3}.

For proofs of the statements in this paragraph we refer to \cite[Section~4]{AW3}, see also \cite[Section~2]{AS}.
Let $a$ be an almost semi-meromorphic current on $X$ and let $\mu\in\PM(X)$. Then there is a
unique pseudomeromorphic current $T$ on $X$ coinciding with $a\wedge\mu$ outside of $ZSS(a)$ and
such that $\ett_{ZSS(a)}T=0$. If $h$ is a holomorphic tuple, or section of a
Hermitian vector bundle, such that $\{h=0\}=ZSS(a)$, then $T=\lim_{\epsilon\to 0}\chi(|h|^2/\epsilon)a\wedge\mu$;
henceforth we will write $a\wedge\mu$ in place of $T$. One defines $\debar a\wedge \mu$ so that Leibniz' rule holds,
i.e., $\debar a\wedge \mu:=\debar(a\wedge\mu)-(-1)^{\textrm{deg}\, a}a\wedge\debar\mu$.
If $\mu$ is almost semi-meromorphic then $a\wedge \mu$ is almost semi-meromorphic and, in fact,
$a\wedge\mu=(-1)^{\textrm{deg}\, a \, \textrm{deg}\, \mu}\mu\wedge a$.

\subsection{Currents associated to generically exact complexes}\label{URsektion}
Let $M$ be an $N$-dimensional complex manifold and let $\J\subset\hol_M$ be a coherent sheaf of ideals.
Suppose that we have a complex
\begin{equation*}
0\to E_m\stackrel{f_m}{\longrightarrow} \cdots \stackrel{f_1}{\longrightarrow} E_0\to 0
\end{equation*}
of holomorphic Hermitian vector bundles, with $E_0$ being the trivial line bundle,
such that the associated sheaf complex $(\hol(E_{\bullet}),f_{\bullet})$
is a resolution of $\hol_M/\J$. The bundle $E:=\oplus_jE_j$ gets a natural superstructure by setting $E^+:=\oplus_jE_{2j}$
and $E^-:=\oplus_jE_{2j+1}$.
Following \cite{AW1} we define pseudomeromorphic currents $U$ and $R$ with values in $\textrm{End}(E)$ associated with the
Hermitian complex $(E_{\bullet},f_{\bullet})$. Notice that $\textrm{End}(E)$
gets an induced superstructure and so spaces of forms and currents with values in $E$ or $\textrm{End}(E)$
get superstructures as well.
Let $f:=\oplus_jf_j$ and set
$\nabla:=f-\debar$, which then becomes an odd mapping on spaces of forms or currents with values in $E$
such that $\nabla^2=0$;
notice that $\nabla$ induces an odd mapping $\nabla_{\textrm{End}}$ on $\textrm{End}(E)$-valued forms or currents
such that $\nabla^2_{\textrm{End}}=0$.
Outside of $Z$, the zero set of $\J$, $(E_{\bullet},f_{\bullet})$ is pointwise exact and we
let $\sigma_k\colon E_{k-1}\to E_k$ be the pointwise minimal inverse of $f_k$.
Set $\sigma:=\sigma_1+\sigma_2+\cdots$ and let $u:=\sigma+\sigma\debar\sigma + \sigma(\debar\sigma)^2+\cdots$.
Notice that $u=\sum_{0\leq \ell <k}u^{\ell}_k$,
where $u^{\ell}_k:=\sigma_{k}\debar\sigma_{k-1}\cdots\debar\sigma_{\ell+1}$ is a smooth
$\textrm{Hom}(E_{\ell},E_{k})$-valued $(0,k-\ell-1)$-form outside of $Z$.
One can show that $\nabla_{\textrm{End}}u=\textrm{Id}_{E}$.
The form $u$ can be exended as a current across $Z$ by setting
\begin{equation}\label{Ureg}
U:=\lim_{\epsilon\to 0}\chi(|F|^2/\epsilon)u,
\end{equation}
where $F$ is a (non-trivial) holomorphic tuple vanishing on $Z$, see, e.g., \cite[Section~2]{AW1}.
As with $u$ we will write $U=\sum_{0\leq \ell<k}U^k_{\ell}$, where now $U^{\ell}_k$ is a
$\textrm{Hom}(E_{\ell},E_{k})$-valued $(0,k-\ell-1)$-current; in fact, $U$ is an almost semi-meromorphic current, cf., e.g., \cite{AW3}.
The current $R$ is defined by $\nabla_{\textrm{End}} U=\textrm{Id}_{E} - R$
and hence $R$ is supported on $Z$ and $\nabla_{\textrm{End}}R=0$.
Notice that $R$ is an almost semi-meromorphic current plus $\debar$ of such a current.
One can check that
\begin{equation}\label{Rreg}
R=\lim_{\epsilon\to 0}\, \big(1-\chi(|F|^2/\epsilon)\big)\textrm{Id}_{E} + \debar\chi(|F|^2/\epsilon)\wedge u.
\end{equation}
We write $R=\sum_{0\leq\ell<k}R^{\ell}_k$, where $R^{\ell}_k$ is a
$\textrm{Hom}(E_{\ell},E_{k})$-valued $(0,k-\ell)$-current.

Since the sheaf complex $(\hol(E_{\bullet}),f_{\bullet})$ is supposed to be a resolution of $\hol_M/\J$, it follows
from \cite{AW1} that $R=R_{\kappa}^0+R_{\kappa+1}^0+\cdots$, where $\kappa=\text{codim}\, Z$,
and that a holomorphic function $g$ is a section of $\J$ if and only if the $E$-valued current $Rg$ vanishes.

\subsection{Weighted integral formulas}\label{intformelsektion}
We apply Andersson's method, \cite{MatsIntrep}, of generating weighted integral formulas in a domain
$D\subset \C^N$. To begin with, we notice that if $k(\zeta,z)$ is an integrable
$(N,N-1)$-form in $D\times D$ and $p(\zeta,z)$ is a smooth $(N,N)$-form in $D\times D$ such that
\begin{equation}\label{currentKoppel}
\debar k(\zeta,z) = [\Delta^D] - p(\zeta,z),
\end{equation}
where $[\Delta^D]$ is the current of integration along the diagonal, then, by applying \eqref{currentKoppel}
to test forms of the form $\psi(z)\wedge \varphi(\zeta)$, one obtains the integral formula
\begin{equation}\label{penna}
\varphi(z) = \debar_{z} \int_{D_{\zeta}} k(\zeta,z)\wedge \varphi(\zeta) +
\int_{D_{\zeta}} k(\zeta,z)\wedge \debar\varphi(\zeta) + \int_{D_{\zeta}} p(\zeta,z)\wedge \varphi(\zeta)
\end{equation}
for all $z\in D$ and any form $\varphi$ with compact support in $D$.

Following \cite{MatsIntrep}, let $\eta=(\eta_1,\ldots,\eta_N)$ be a holomorphic tuple in $D\times D$ that defines the diagonal and let
$\Lambda_{\eta}$ be the exterior algebra spanned by $\Lambda^{0,1}T^*(D \times D)$
and the $(1,0)$-forms $d\eta_1,\ldots,d\eta_N$. On forms with values in $\Lambda_{\eta}$ interior multiplication
with $2\pi i \sum\eta_j \partial/\partial \eta_j$, denoted $\delta_{\eta}$, is defined; set $\nabla_{\eta}=\delta_{\eta}-\debar$.
Let $s$ be a smooth $(1,0)$-form in $\Lambda_{\eta}$ such that $|s|\lesssim |\eta|$
and $|\eta|^2\lesssim |\delta_{\eta}s|$ and let $B=\sum_{k=1}^N s\wedge (\debar s)^{k-1}/(\delta_{\eta}s)^k$.
It is proved in \cite{MatsIntrep} that then $\nabla_{\eta} B = 1-[\Delta^D]$. Identifying terms of top degree
we see that $\debar B_{N,N-1} = [\Delta^D]$ and we have found a solution to \eqref{currentKoppel}.
For instance, if we take $s=\partial |\zeta-z|^2$ and $\eta=\zeta-z$, then the resulting $B$ is sometimes called
the full Bochner-Martinelli form and the term of top degree is the classical Bochner-Martinelli kernel.

Let $D_1, D_2\subset D$. A smooth section $g(\zeta,z)=g_{0}+\cdots +g_{N}$ of $\Lambda_{\eta}$
over $D_1\times D_2$ such that $\nabla_{\eta} g=0$ in $D_1\times D_2$ and $g_{0,0}(z,z)=1$ for $z\in D':=D_1\cap D_2$
is called a \emph{weight}
with respect to $D_1\times D_2$; $g_{j}$ is the sum of the terms of $g$ of bidegree $(j,j)$.
Notice that the exterior product of two weights again is a weight
(with respect to a suitable set).
If $g$ is a weight with respect to $D_1\times D_2$, then it follows that $\nabla_{\eta} (g\wedge B) = g-g\wedge[\Delta^D]$
in $D_1\times D_2$ and, identifying
terms of bidegree $(N,N-1)$, we get that
\begin{equation}\label{gulp}
\debar (g\wedge B)_{N,N-1} = g_{0}[\Delta^D] - g_{N}
\end{equation}
in $D_1\times D_2$. It follows that if $\varphi$ is smooth
with compact support in $D_1$, then \eqref{penna}, with $k(\zeta,z)=(g(\zeta,z)\wedge B)_{N,N-1}$ and $p(\zeta,z)=g_{N}(\zeta,z)$,
holds in $D_2$, and vice versa.

\begin{example}\label{hjalpvikt}
Let $D\Subset \C^N$ be pseudoconvex and let $K\subset D$ be a holomorphically convex compact subset. Let
$\rho$ be a smooth compactly supported function in $D$ that is $1$ in a neighborhood of $K$.
One can find a smooth form $\tilde{s}(\zeta,z)=\tilde{s}_1(\zeta,z)d\eta_1 + \cdots + \tilde{s}_N(\zeta,z)d\eta_N$,
defined for $z$ in a neighborhood of $\text{supp}\,\debar\rho$ and $\zeta$ in a neighborhood $\tilde{D}$ of $K$,
such that $\zeta\mapsto \tilde{s}(\zeta,z)$ is holomorphic and $\delta_{\eta}\tilde{s}=1$. Then
\begin{equation*}
g(\zeta,z):=\rho(z) - \debar\rho(z)\wedge \sum_{k=1}^N\tilde{s}\wedge(\debar \tilde{s})^{k-1},
\end{equation*}
is a weight with respect to $\tilde{D}\times D$ that depends holomorphically on $\zeta$ and has
compact support in $D_z$; cf.\ \cite[Example~2]{MatsIntrepII}
or \cite[Example~5.1]{AS} in case $D$ is the unit ball $\B$ in $\C^N$.
\end{example}

\begin{example}\label{divvikt1}
Let $D\Subset \C^N$ be pseudoconvex, let $\J\subset\hol_D$ be a coherent sheaf of ideals in $D$, and assume that
there is a free resolution $(\hol(E_{\bullet}),f_{\bullet})$ of $\hol_D/\J$ in $D$. Let $U=U(\zeta)$ and $R=R(\zeta)$ be associated currents,
let $U^{\epsilon}$ and $R^{\epsilon}$ be the regularizations given by \eqref{Ureg} and \eqref{Rreg}, respectively,
and let $U^{\epsilon,\ell}_k$ and
$R^{\epsilon,\ell}_k$ be the parts taking values in
$\text{Hom}(E_{\ell},E_k)$.
By \cite[Proposition~5.3]{MatsIntrepII}
we can, for $\ell\leq k$, find \emph{Hefer morphisms}
$H^{\ell}_k$, which are holomorphic sections of $\Lambda_{\eta}\otimes \text{Hom}(E^{\zeta},E^z)$,
such that $H^{\ell}_k$ is a holomorphic $k-\ell$-form with values in $\text{Hom}(E^{\zeta}_k,E^z_{\ell})$
and
\begin{equation*}
H_k^{k}\restriction_{\Delta_D} = \textrm{Id}_{E_k} \quad \textrm{and} \quad
\delta_{\eta} H_k^{\ell} = H_{k-1}^{\ell}f_k - f_{\ell+1}(z)H_k^{\ell+1}, \,\, k>\ell,
\end{equation*}
where $f_k=f_k(\zeta)$. One can check that then
\begin{equation*}
G^{\epsilon}:=
\sum_{k\geq 0} H^0_kR^{\epsilon,0}_k + f_1(z)\sum_{k\geq 1}H^1_{k}U^{\epsilon,0}_k,
\end{equation*}
is a weight with respect to $D\times D$ for all $\epsilon>0$; cf.\ \cite{MatsIntrepII}, \cite{AW1}, and \cite{AS}.
\end{example}

\section{Integral operators associated to an ideal sheaf}\label{intopsektion}
Let $D\Subset \C^N$ be pseudoconvex, let $\J\subset \hol_D$ be a coherent sheaf of ideals in $D$,
and let $D'\Subset D$. Let $g(\zeta,z)$ be any weight with respect to $D'\times D$ such that
$z\mapsto g(\zeta,z)$ has compact support in some $D''\Subset D$ for all $\zeta$.
In $D''$ there is a free resolution
$(\hol(E_{\bullet}),f_{\bullet})$ of $\hol_D/\J$, associated currents $U=U(\zeta)$ and $R=R(\zeta)$,
and, moreover, in $D''\times D''$ we can find associated Hefer morphisms $H^{\ell}_k$.
Then
$G^{\epsilon}=HR^{\epsilon}+f_1(z)HU^{\epsilon}$ of Example~\ref{divvikt1} is a weight with respect to $D''\times D''$.
It follows that $G^{\epsilon}\wedge g$ is a weight with respect to $D'\times D$ and has compact support in $D_z$.

Notice, in view of Example~\ref{hjalpvikt}, that we may choose the weight $g$ so that $\zeta\mapsto g(\zeta,z)$ is holomorphic
and does not contain any $d\bar{\zeta}$-differentials.

\begin{lemma}\label{Koppel-test}
If $\varphi$ is a test form in $D'$, then, for all $\epsilon>0$ and all $z\in D$,
\begin{eqnarray*}
\varphi(z) &=& \debar_z \int_{\zeta} (HR^{\epsilon}\wedge g\wedge B)_{N,N-1}\wedge \varphi(\zeta) +
\int_{\zeta} (HR^{\epsilon}\wedge g\wedge B)_{N,N-1}\wedge \debar\varphi(\zeta) \\
& &
+\int_{\zeta} (HR^{\epsilon}\wedge g)_{N,N}\wedge\varphi(\zeta) + \J \psi,
\end{eqnarray*}
where $\psi$ is some test form in $D$, and the integrals on the right-hand side are test forms in $D$.
\end{lemma}

\begin{proof}
Since $G^{\epsilon}\wedge g=HR^{\epsilon}\wedge g + f_1(z)HU^{\epsilon}\wedge g$ is a weight with respect
to $D'\times D$ and the entries of $f_1$ are sections of $\J$,
it follows from Section~\ref{intformelsektion} that the claimed equality holds in $D$.
Since $z\mapsto g(\zeta,z)$ has compact support in $D$, $\psi$ as well as the integrals on the right-hand side
are test forms in $D$.
\end{proof}

Let $\mu$ be an arbitrary current in $D$. Since $z$ and $\zeta-z$ are independent variables in $D\times D$,
the tensor product $B\wedge\mu(z)$ is well-defined, cf.\ \cite[Theorem~5.1.1]{Horm}.
Let $\pi\colon D_{\zeta}\times D_z \to D_{\zeta}$ be the natural projection.
Then, since $z\mapsto g(\zeta,z)$ has compact support,
\begin{equation*}
\pi_* \, (HR^{\epsilon}\wedge g \wedge B)_{N,N-1} \wedge \mu(z)  \quad \text{and} \quad
\pi_*\, (HR^{\epsilon}\wedge g)_{N,N} \wedge\mu(z)
\end{equation*}
are
well-defined current in $D'_{\zeta}$. For notational convenience we will often write $\int_z \tau$ instead
of $\pi_*\tau$ for currents $\tau$ in $D\times D$.

\begin{lemma}\label{Koppel-curr}
Let $\mu$ be a current in $D$ such that $\J\mu=0$. Then, for all $\epsilon>0$,
\begin{eqnarray}\label{berk}
\mu(\zeta) &=& \int_z (HR^{\epsilon}\wedge g \wedge B)_{N,N-1} \wedge \debar\mu(z) +
\debar_{\zeta} \int_z (HR^{\epsilon}\wedge g \wedge B)_{N,N-1} \wedge \mu(z) \nonumber \\
& &
+ \int_z (HR^{\epsilon}\wedge g)_{N,N} \wedge\mu(z)
\end{eqnarray}
holds in $D'$.
\end{lemma}

\begin{proof}
Let $\varphi$ be a test form in $D'$. The action of the current
$\int_z (HR^{\epsilon}\wedge g \wedge B)_{N,N-1} \wedge \debar\mu(z)$ on $\varphi(\zeta)$ is by definition the action
of $(HR^{\epsilon}\wedge g \wedge B)_{N,N-1} \wedge \debar\mu(z)$ on $\varphi(\zeta)\otimes 1$ and this equals,
by \cite[Theorem~5.1.1.]{Horm}, the action of $\debar\mu(z)$ on $\int_{\zeta} (HR^{\epsilon}\wedge g \wedge B)_{N,N-1} \wedge \varphi(\zeta)$.
Hence,
\begin{equation*}
\left(\int_z (HR^{\epsilon}\wedge g \wedge B)_{N,N-1} \wedge \debar\mu(z)\right). \varphi(\zeta)=
\pm \mu(z). \left(\debar_z\int_{\zeta} (HR^{\epsilon}\wedge g \wedge B)_{N,N-1} \wedge \varphi(\zeta)\right).
\end{equation*}
Similar formulas hold for the second and third term on the right-hand side of \eqref{berk} and the lemma thus follows from
Lemma~\ref{Koppel-test}.
\end{proof}

\begin{definition}\label{Poperator}
For a current $\mu$ in $D$ we let $\check{\Proj}\mu$ be the current in $D'$ given by
\begin{equation*}
\check{\Proj}\mu (\zeta) = \int_z (HR\wedge g)_{N,N}\wedge \mu(z).
\end{equation*}
\end{definition}
Notice, since $R=R(\zeta)$, that $(HR\wedge g)_{N,N}\wedge \mu(z)$ is well-defined as a tensor product in $D'\times D$.
Notice also that $\check{\Proj}$ maps arbitrary currents in $D$ to pseudomeromorphic
currents in $D'$ annihilated by $\J$.

The operator $\check{\Proj}$ of Theorem~\ref{egenDSthm2} corresponds to a choice of weight $g$ such that
$\zeta\mapsto g(\zeta,z)$ is holomorphic, but in the definition above we do not require this.

\begin{proposition}\label{fundprop}
Suppose that the weight $g$ in the definition of $\check{\Proj}$ depends holomorphically on $\zeta$.
Then, for any $(p,q)$-current $\mu$ in $D$, $\check{\Proj}\mu$ is of the form $\xi\cdot R_q^0$, where
\begin{equation*}
\xi=\Phi(\mu)=\int_z H^0_q\wedge g_{N-q}\wedge \mu(z)
\end{equation*}
is a holomorphic $p$-form with values in $E_q^*$.
Moreover, if $\J\mu=0$ then $\check{\Proj}\debar\mu=\debar\check{\Proj}\mu$ and $\Phi(\debar\mu)=f_{q+1}^*\Phi(\mu)$,
where $f_{q+1}^*$ is the transpose of the map $f_{q+1}\colon E_{q+1}\to E_q$.
\end{proposition}

For the rest of this section we will fix frames for the trivial $E_j$-bundles and associated dual frames for the $E^*_j$'s;
sections of the $E_j$'s will be represented by column vectors, sections of the $E^*_j$'s by row vectors, and maps between bundles
by matrices. Notice that $E_0$ is assumed to be the trivial line bundle so that $\text{Hom}(E_j,E_0)\simeq E_j^*$.
Recall that $f_k=f_k(\zeta)$.
To prove Proposition~\ref{fundprop} we will need

\begin{lemma}\label{keylemma} Letting $(\cdot)^*$ denote matrix transpose we have
\begin{equation*}
f^*_{q+1}(H^0_q)^*\wedge g_{N-q} = \debar \big((H^0_{q+1})^*\wedge g_{N-q-1}\big) + (f_1(z)H^1_{q+1})^*\wedge g_{N-q}.
\end{equation*}
\end{lemma}
\begin{proof}
This is verified by the following computation.
\begin{eqnarray*}
f^*_{q+1}(H^0_q)^*\wedge g_{N-q} &=& (H^0_qf_{q+1})^*\wedge g_{N-q} \\
&=&
(\delta_{\eta} H^0_{q+1} + f_1(z)H^1_{q+1})^*\wedge g_{N-q} \\
&=&
(\delta_{\eta}H^0_{q+1}\wedge g_{N-q})^* + (f_1(z)H^1_{q+1})^*\wedge g_{N-q} \\
&=&
(\pm H^0_{q+1}\wedge \delta_{\eta} g_{N-q})^* + (f_1(z)H^1_{q+1})^*\wedge g_{N-q} \\
&=&
(\pm H^0_{q+1}\wedge \debar g_{N-q-1})^* + (f_1(z)H^1_{q+1})^*\wedge g_{N-q} \\
&=&
\debar (H^0_{q+1}\wedge g_{N-q-1})^* + (f_1(z)H^1_{q+1})^*\wedge g_{N-q},
\end{eqnarray*}
where the second equality follows from the properties of the Hefer morphisms (see Example~\ref{divvikt1}),
the forth since $0=\delta_{\eta}(H^0_{q+1}\wedge g_{N-q})$
for degree reasons, the fifth since $g$ is a weight, and the sixth since $H^0_{q+1}$ is holomorphic.
\end{proof}

\begin{proof}[Proof of Proposition~\ref{fundprop}]
Since $g$ is holomorphic in $\zeta$ and in particular contains no $d\bar{\zeta}$-differentials,
it follows for degree reasons that
\begin{equation*}
\check{\Proj}\mu(\zeta)=\int_zH^0_qR_q^0\wedge g_{N-q}\wedge\mu(z)
=\pm (R^{0}_q)^*\int_z(H^0_q)^*\wedge g_{N-q}\wedge\mu(z).
\end{equation*}
Since also $H$ is holomorphic in $\zeta$ the first statement of the proposition follows.
For the rest of this proof we will for convenience write $R_j$ instead of $R_j^0$.

Assume that $\J\mu=0$. To see that $\check{\Proj}\debar\mu=\debar\check{\Proj}\mu$ we compute:
\begin{eqnarray*}
\check{\Proj}\debar\mu &=& \int_zH^0_{q+1}R_{q+1}\wedge g_{N-q-1}\wedge\debar\mu(z) \\
&=&
\pm R^*_{q+1}\int_z \debar \big((H^0_{q+1})^*\wedge g_{N-q-1}\big)\wedge\mu(z) \\
&=&
\pm R^*_{q+1} \int_z f^*_{q+1}(H^0_q)^*\wedge g_{N-q}\wedge \mu(z)
\mp R^*_{q+1} \int_z (f_1(z)H^1_{q+1})^*\wedge g_{N-q}\wedge \mu(z) \\
&=&
\pm (f_{q+1}R_{q+1})^* \int_z (H^0_q)^*\wedge g_{N-q}\wedge \mu(z) \\
&=&
\debar \left(R^*_{q} \int_z (H^0_q)^*\wedge g_{N-q}\wedge \mu(z) \right) =\debar \check{\Proj}\mu,
\end{eqnarray*}
where the second equality holds since $R=R(\zeta)$ is independent of $z$, the third by Lemma~\ref{keylemma},
the forth since (the entries of) $f_1(z)$ annihilate $\mu(z)$, and the fifth since
$\nabla_{\text{End}} R=0$ (see Section~\ref{URsektion}) and $H$ and $g$ are holomorphic in $\zeta$.

Moreover, in view of Lemma~\ref{keylemma}, we get that
\begin{eqnarray*}
\Phi(\debar\mu)^* &=& \int_z \debar \big((H^0_{q+1})^*\wedge g_{N-q-1}\big)\wedge\mu(z) \\
&=& f_{q+1}^*\int_z (H^0_{q})^*\wedge g_{N-q}\wedge\mu(z) +
\int_z\big(f_1(z)H^1_{q+1}\big)^*\wedge g_{N-q}\wedge\mu(z) \\
&=& f_{q+1}^*\Phi(\mu)^*
\end{eqnarray*}
since (the entries of) $f_1(z)$ annihilate $\mu(z)$.
\end{proof}

Let $\mu\in\PM(D)$. Since $B$ is almost semi-meromorphic in $D\times D$, the product $B\wedge \mu(z)$
is a well-defined pseudomeromorphic current in $D\times D$, in view of Section~\ref{PMsektion};
by the uniqueness in \cite[Theorem~5.1.1.]{Horm},
$B\wedge \mu(z)$ coincides with the tensor product of $B$ and $\mu$ ($z$ and $\zeta-z$ are independent variables).
Since $R$ is an almost semi-meromorphic current plus $\debar$ of such a current, cf.\ Section~\ref{URsektion},
$R\wedge B\wedge \mu(z)$ is a well-defined
pseudomeromorphic current in $D'\times D$ that can be defined as
$\lim_{\epsilon\to 0}R^{\epsilon}\wedge B \wedge\mu(z)$, cf.\ \eqref{Rreg} and Section~\ref{PMsektion}.
Notice that even though $R^0_j=0$ for $j<\kappa$, where $\kappa$ is the codimension of the zero-set $Z$ of $\J$,
it might happen that $\lim_{\epsilon\to 0}R^{0,\epsilon}_j\wedge B \wedge\mu(z)\neq 0$.
Still, the support of $R\wedge B\wedge\mu(z)$ is contained in $Z\times \text{supp}\,\mu$.
To see this it suffices, in view of \eqref{Rreg} and Section~\ref{PMsektion}, to see that $\ett_{Z\times D} B\wedge\mu(z)=0$.
Since $B$ is smooth outside of the diagonal $\Delta\subset D\times D$ it is clear that
$\text{supp}\,\ett_{Z\times D} B\wedge\mu(z)\subset \Delta$. Moreover, $ZSS(B)\subset \Delta$ and so
$\ett_{\Delta}B\wedge\mu(z)=0$. Hence,
\begin{equation*}
\ett_{Z\times D} B\wedge\mu(z)=\ett_{\Delta}\ett_{Z\times D} B\wedge\mu(z)
=\ett_{Z\times D} \ett_{\Delta}B\wedge\mu(z)=0.
\end{equation*}

\begin{definition}\label{Koperator}
For a pseudomeromorphic current $\mu$ in $D$ we let $\check{\K}\mu$ be the pseudomeromorphic current in $D'$ given by
\begin{equation*}
\check{\K}\mu (\zeta) = \int_z (HR\wedge g\wedge B)_{N,N-1}\wedge \mu(z).
\end{equation*}
\end{definition}
As in the definition of the $\check{\Proj}$-operators, we do not require $g$ to be holomorphic in $\zeta$,
but the $\check{\K}$-operator of Theorem~\ref{egenDSthm2} corresponds to such a choice.

Notice that, since $\text{supp}\,R\wedge B \wedge\mu(z)\subset Z\times D$,
$\check{\K}$ maps pseudomeromorphic currents in $D$ to pseudomeromorphic currents in $D'$ with
support contained in $Z$. We do not know whether or not $\J\check{\K}\mu=0$.

The following proposition follows from Lemma~\ref{Koppel-curr} by letting $\epsilon\to 0$.

\begin{proposition}\label{DSweak}
For any $\mu\in\PM^{p,q}(D)$ such that $\J\mu=0$
we have $\mu_{\restriction_{D'}}=\debar\check{\K}\mu + \check{\K}\debar\mu + \check{\Proj}\mu$.
\end{proposition}

\begin{proposition}\label{objective1}
Let $\check{\Proj}$ be an operator associated to $\J$ and corresponding to a weight $g$ such that $\zeta\mapsto g(\zeta,z)$ is holomorphic.
Let $\kappa$ be the codimension of $\J$ and let $Y$ be the union of the irreducible components of the zero-set $Z$ of $\J$
of codimension $\kappa$.
If $\mu$ is a Coleff-Herrera current in $D$
of bidegree $(p,\kappa)$, annihilated
by $\J$, then $\check{\Proj}\mu=\mu_{\restriction_{D'}}$. Moreover, if $\nu$ is any $\debar$-closed $(p,\kappa)$-current in $D$ annihilated by
$\J$, then $\check{\Proj}\nu$ is a section of $\CH_{Y}^p$ annihilated by $\J$ and there is a current $\tau$ annihilated by
$\J$ such that $\nu-\check{\Proj}\nu=\debar\tau$.
\end{proposition}

\begin{proof}
By Proposition~\ref{DSweak}, $\mu_{\restriction_{D'}}=\debar\check{\K}\mu + \check{\Proj}\mu$. However,
$\check{\K}\tilde{\mu}$ is a pseudomeromorphic $(p,\kappa-1)$-current with support contained in $Z$ and must
thus vanish in view of the Dimension principle.

For the second statement, we notice that, in view of \eqref{ABthm}, there is a Coleff-Herrera current $\mu$ annihilated by $\J$
and a current $\tau'$ annihilated by $\J$ such that $\mu=\nu+\debar\tau'$. Hence, by the first part of the proof and
Proposition~\ref{fundprop},
\begin{equation*}
\mu = \check{\Proj}\mu= \check{\Proj}\nu + \check{\Proj}\debar\tau'=
\check{\Proj}\nu + \debar\check{\Proj}\tau'.
\end{equation*}
Thus, $\nu-\check{\Proj}\nu=\debar(\check{\Proj}\tau'-\tau')$, and it remains to see that $\check{\Proj}\nu$
is a section of $\CH_Y^p$. However, $\check{\Proj}\nu$ is a pseudomeromorphic $(p,\kappa)$-current, which
clearly is $\debar$-closed and has support in $Z$. In view of the Dimension principle it then
must have support in $Y$, and so is a section of $\CH_Y^p$.
\end{proof}

\section{The sheaf $\mathscr{B}_{\mathcal{J}}^{p,q}$ and proof of Theorems~\ref{egenDSthm1} and \ref{egenDSthm2}}\label{Bsektion}
Let $M$ be an $N$-dimensional complex manifold and $\J\subset\hol_M$ a coherent sheaf of ideals.
In analogy with \cite[Definition~7.1]{AS}, \cite[Definition~4.1]{RSWSerre}, and \cite[Section~6.2]{holoforms} we make the following definition.
\begin{definition}
A $(p,q)$-current $\mu$ on $M$ is a section of $\mathscr{B}_{\J}^{p,q}$ over an open set $\mathcal{U}\subset M$
if for each $x\in \mathcal{U}$ there is a neighborhood of $x$ biholomorphic to a pseudoconvex domain $D\Subset \C^N$ such that
$\mu_{\restriction_D}$ is a finite sum of currents of the form
\begin{equation}\label{kram}
\xi_m\wedge \check{\K}_m (\cdots \xi_1\wedge\check{\K}_1(\xi_0\cdot R) \cdots),
\end{equation}
where $R$ is a current corresponding to a Hermitian free resolution $(\hol(E_{\bullet}),f_{\bullet})$ of $\hol/\J$
in $D$,
$\xi_0$ is a smooth form with values in $\oplus_qE^*_q$, $\xi_j$ is a smooth form for $j\geq 1$, and the
$\check{\K}_j$'s are operators as in Definition~\ref{Koperator}.
\end{definition}

It is clear from the definition that $\mathscr{B}_{\J}:=\oplus_{p,q}\mathscr{B}_{\J}^{p,q}$ is a module over
the sheaf of germs of smooth forms and that it is closed under $\check{\K}$-operator.
Notice also, in view of Section~\ref{intopsektion}, that a $\check{\Proj}$-operator maps an arbitrary current to a section of $\mathscr{B}_J$
and that $\mathscr{B}_{\J}^{p,q}$ is a subsheaf of $\PM^{p,q}$.

\begin{example}\label{exempel}
Suppose that $\J$ is the radical ideal sheaf of a complex submanifold $i\colon Y\hookrightarrow M$ of codimension $\kappa$.
Then $\mathscr{B}_{\J}^{N,q}=i_* \mathscr{E}_Y^{N-\kappa,q-\kappa}$.
This may be verified locally and so we assume that $M$ is the unit ball in $\C^N$ with coordinates $(z;w)$
such that $Y=\{z=0\}$ and $\J=\langle z\rangle$. For notational convenience we will also assume that $\kappa=1$. Let $\varphi$ be a smooth
$(N-1,q-1)$-form on $Y$ and let $\tilde{\varphi}$ be any smooth extension of $\varphi$ to $M$.
Then $i_*\varphi=\tilde{\varphi}\wedge [Y]$.
From the free resolution $0\to \hol \stackrel{z\cdot}{\longrightarrow} \hol$ of $\hol/\J$ we get the current $R=\debar(1/z)$
and so, by the Poincar\'e-Lelong formula, $\tilde{\varphi}\wedge [Y]=i\tilde{\varphi}\wedge dz\wedge R/2\pi$. Hence,
$i_* \mathscr{E}_Y^{N-\kappa,q-\kappa}\subset \mathscr{B}_{\J}^{N,q}$.

For the opposite inclusion, let $\mu$ be a section of $\mathscr{B}_{\J}^{N,q}$; we may assume that $\mu$ is of the form \eqref{kram}.
We use induction over $m$ in \eqref{kram} to see that $\mu=\xi\wedge [Y]$ for some smooth $\xi$;
notice that such a $\xi$ exists if there is a continuous $\xi'$, which is smooth along $Y$, such that $\mu=\xi'\wedge [Y]$.
If $(\hol(E_{\bullet}),f_{\bullet})$ is any free Hermitian resolution of $\hol/\J$ with $\text{rank}\, E_0=1$, then the associated
residue current is of the form $\alpha \wedge\debar(1/z)$, where $\alpha$ is a smooth $(0,*)$-form with values in $\oplus_j E_j$, see
\cite[Theorem~4.4]{AW1}. Hence, if $\mu$ is of the form \eqref{kram} with $m=0$, then $\mu=\xi_0\cdot \alpha\wedge\debar (1/z)$,
where $\xi_0$ is a smooth $(N,*)$-form with values in $\oplus_jE^*_j$. Writing $\xi_0\cdot \alpha=\xi\wedge dz$, for some scalar-valued
smooth form $\xi$, we get $\xi_0\cdot \alpha\wedge\debar (1/z)=-2\pi i \xi\wedge [Y]$, and the induction start follows.
Now, if $\check{\K}$ is an integral operator as in
Definition~\ref{Koperator}, then
\begin{equation*}
\check{\K}(\xi\wedge [Y]) = \int_{z\in Y} (HR\wedge g\wedge B)_{N,N-1}\wedge \xi(z)=R\cdot \int_{z\in Y} k(\zeta,z)\wedge \xi(z),
\end{equation*}
where $R=R(\zeta)$ is of the form $\alpha(\zeta)\wedge\debar (1/\zeta)$ as above, and $k(\zeta,z)$ is a kernel in $M\times M$
which is $\mathcal{O}(1/|\zeta-z|^{2(N-1)-1})$.
It follows that $\zeta\mapsto \int_{z\in Y} k(\zeta,z)\wedge \xi(z)$ is a continuous $(N,*)$-form with values in
$\oplus_jE^*_j$ and we write it as $\psi(\zeta)\wedge d\zeta$. Moreover, in view of \cite[Lemma~6.2]{AS}, $\psi_{\restriction_Y}$ is smooth.
We get
\begin{equation*}
\check{\K}(\xi\wedge [Y])=\alpha\wedge\debar (1/\zeta)\cdot \psi\wedge d\zeta=
\pm 2\pi i\alpha\cdot \psi\wedge [Y],
\end{equation*}
and the induction step follows. \hfill \qed
\end{example}

To prove Theorems~\ref{egenDSthm1} and \ref{egenDSthm2} we may assume that $M=D\Subset \C^N$ is a pseudoconvex domain.
Let $D'\Subset D$ and let $D''\Subset D$ be a suitable neighborhood of $\overline{D}'$ as in the beginning of
Section~\ref{intopsektion}. Let $(\hol(E_{\bullet}),f_{\bullet})$ be a Hermitian free resolution of $\hol/\J$ in $D''$,
and let $U$ and $R$ be the associated currents. The cohomology sheaves of the complex
$\big(\hol(E^*_{\bullet})\otimes \Om^p, f^*_{\bullet}\otimes \text{Id}\big)$, where $\Om^p$ is the sheaf of germs of holomorphic $p$-forms
in $D$, are then isomorphic to $\Ext^{\bullet}(\hol/\J,\Om^p)$, and, moreover, naturally isomorphic to the cohomology sheaves
of the complex $\big(\Hom_{\hol}(\hol/\J,\mathscr{C}^{p,\bullet}),\debar\big)$ since $\mathscr{C}^{p,q}$ is stalk-wise injective.
For convenience we will write just $f^*_k$ instead of $f^*_{k}\otimes \text{Id}$.
Following \cite{MatsNoether} we notice that if $\xi$ is a holomorphic $p$-form with values in $E^*_q$ such that
$f^*_{q+1} \xi=0$, then, since $\nabla_{\text{End}}R=0$,
\begin{equation*}
\debar(\xi\cdot R_q) = \pm \xi\cdot\debar R_q=\pm \xi\cdot f_{q+1}R_{q+1}=\pm f^*_{q+1} \xi\cdot R_{q+1}=0.
\end{equation*}
Similarly, if $\xi=f^*_{q} \xi'$, then $\xi\cdot R_q=0$. Hence, we have a map $\Psi$ from the cohomology
of $\big(\Hom_{\hol}(\hol/\J,\mathscr{C}^{p,\bullet}),\debar\big)$ to the cohomology of $(\mathscr{B}_{\J}^{p,\bullet},\debar)$
induced by $\xi\mapsto \xi\cdot R$. Moreover, cf.\ \cite[Section~7]{MatsNoether}, we have the commutative diagram
\begin{equation}\label{diagramm}
\xymatrix{
\mathscr{H}^{q}\big(\hol(E^*_{\bullet})\otimes \Om^p, \,f^*_{\bullet}\big) \ar[r]^{\Psi} \ar[dr] &
\mathscr{H}^{q}\left(\mathscr{B}_{\J}^{p,\bullet},\,\debar \right) \ar[d] \\
& \mathscr{H}^{q}\left(\Hom_{\hol}\big(\hol/\J,\mathscr{C}^{p,\bullet}\big),\,\debar \right),
}
\end{equation}
where the diagonal map is the natural isomorphism, showing that $\Psi$ is injective and that the vertical map is surjective.

\begin{proof}[Proof of Theorems~\ref{egenDSthm1} and \ref{egenDSthm2}]
We have already noticed that any $\check{\Proj}$-operator maps arbitrary currents to sections of $\mathscr{B}_{\J}$ and that
any $\check{\K}$-operator
maps sections of $\mathscr{B}_{\J}$ to sections of $\mathscr{B}_{\J}$. Moreover, part (b) of Theorem~\ref{egenDSthm2} follows from
Proposition~\ref{fundprop}.

Let us now temporarily assume that $\J\mathscr{B}_{\J}^{p,q}=0$ and show how the remaining parts of
Theorems~\ref{egenDSthm1} and \ref{egenDSthm2} follow. Part (c) of Theorem~\ref{egenDSthm2} then follows from
Proposition~\ref{DSweak}. Moreover, the sections of $\mathscr{B}_{\J}^{p,q}$ are then pseudomeromorphic currents
with support in the zero-set of $\J$, and so, by \cite[Proposition~2.3]{AW2},
$\overline{\sqrt{\J}}\mathscr{B}_{\J}^{p,q}=d\overline{\sqrt{\J}}\wedge\mathscr{B}_{\J}^{p,q}=0$.
If $\mu$ is a $\debar$-closed section of $\mathscr{B}_{\J}^{p,\kappa}$, then $\text{supp}\,\mu\subset Y$,
by the Dimension principle, and so $\mu$ is a section of $\CH_Y^p$. Thus, part (c) of Theorem~\ref{egenDSthm1} follows.
To show part (b) of Theorem~\ref{egenDSthm1}, it suffices to show that if $\mu$ is of the form \eqref{kram} with $\xi_m=1$,
then $\debar\mu$ is a section of $\mathscr{B}_{\J}$; we will use induction over $m$ to see this. The case $m=0$ follows since
$\nabla_{\text{End}}R=0$, indeed
\begin{equation*}
\debar(\xi\cdot R)= \debar\xi\cdot R\pm \xi\cdot\debar R= \debar\xi\cdot R\pm \xi\cdot f R=
\debar\xi\cdot R\pm f^*\xi\cdot R.
\end{equation*}
If $m>0$, then we write $\mu=\check{\K}_m\mu'$, where $\mu'$ is of the form \eqref{kram} with $m$ replaced by $m-1$.
By Proposition~\ref{DSweak} we get
\begin{equation*}
\debar\mu=\debar\check{\K}_m\mu'=\mu'-\check{\K}_m\debar\mu' - \check{\Proj}_m\mu',
\end{equation*}
and since $\debar\mu'$ is a section of $\mathscr{B}_{\J}$ by the induction hypothesis, it follows that $\debar\mu$ is a
section of $\mathscr{B}_{\J}$.
To show that the map \eqref{naturlig} is an isomorphism, it remains, in view of the paragraph preceding this proof,
to see that it is injective. Let $\mu$ be a $\debar$-closed section of $\mathscr{B}_{\J}^{p,q}$ and suppose that
there is a current $\tau$ with $\J\tau=0$ such that $\mu=\debar\tau$. By parts (c) and (b) of Theorem~\ref{egenDSthm2}
we have
\begin{equation*}
\mu=\debar\check{\K}\mu + \check{\Proj}\mu=\debar(\check{\K}\mu + \check{\Proj}\tau),
\end{equation*}
showing that the section of $\HH^q(\mathscr{B}_{\J}^{p,\kappa}, \debar)$ defined by $\mu$ is $0$.
Showing part (a) of Theorem~\ref{egenDSthm2} is similar to the proof of Proposition~\ref{objective1}; indeed,
let $\nu$ be a $\debar$-closed current such that $\J\nu=0$. Since \eqref{kram} is an isomorphism there is a
$\debar$-closed section
$\mu$ of $\mathscr{B}_{\J}$ and a current $\tau$ with $\J\tau=0$ such that $\mu=\nu+\debar\tau$.
By parts (c) and (b) of Theorem~\ref{egenDSthm2} we have
\begin{equation*}
\nu+\debar\tau=\mu=\debar\check{\K}\mu + \check{\Proj}\mu = \debar\check{\K}\mu + \check{\Proj}\nu + \debar\check{\Proj}\tau,
\end{equation*}
and so $\nu-\check{\Proj}\nu=\debar(\check{\K}\mu+\check{\Proj}\tau-\tau)$.

To conclude Theorems~\ref{egenDSthm1} and \ref{egenDSthm2} it remains to show that $\J\mu=0$ for any section $\mu$
of $\mathscr{B}_{\J}^{p,q}$;
we may assume that $\mu$ is of the form \eqref{kram}. In view of Section~\ref{PMsektion}, the product
\begin{equation*}
T_{m,q}:=R_{k_m}(z_m)\wedge B_{\ell_m}(z_m,z_{m-1}) \wedge\cdots \wedge B_{\ell_1}(z_1,z_0)\wedge R_q(z_0),\quad
k_j+\ell_j\leq N,
\end{equation*}
is a well-defined pseudomeromorphic current in $D_{z_0}\times \cdots \times D_{z_m}$; here the $R$'s are currents corresponding to
Hermitian resolutions of $\hol/\J$ and the $B$'s are Bochner-Martinelli type forms as in Section~\ref{intformelsektion}; $R_{k_j}$
is a component of the part of the $j^{\text{th}}$ $R$-current of bidegree $(0,k_j)$ and $B_{\ell_j}$ is the part of
the $j^{\text{th}}$ Bochner-Martinelli type form of bidegree $(\ell_j,\ell_j-1)$.
In view of
Definition~\ref{Koperator}, $\mu$ is a sum of push-forwards, under maps $D_{z_0}\times \cdots \times D_{z_m}\to D_{z_m}$,
of $T_{m,q}$-currents times smooth forms, and therefore it is sufficient to
show that $\J T_{m,q}=0$ where $\J=\J(z_m)$; we will do this by double induction over $m$ and $q$.
Since $T_{0,q}=R_q$ it is clear that $\J T_{0,q}=0$ for all $q$. Fix now $m>0$ and notice that $T_{m,q}$ has bidegree
$(\sum_{j=1}^m\ell_j, \sum_{j=1}^mk_j+\ell_j - m +q)$ and that $\sum_{j=1}^mk_j+\ell_j - m +q\leq mN-m+q$.
From the paragraph preceding Definition~\ref{Koperator} it follows that the support of $T_{m,q}$ is contained in
$Z\times\cdots\times Z$ ($m+1$ copies), where $Z$ is the zero-set of $\J$. Moreover, if $z_{s+1}\neq z_s$ for some $0\leq s\leq m-1$,
then $B_{\ell_{s+1}}(z_{s+1},z_s)$ is smooth and so $T_{m,q}$ is a smooth form times the tensor product of two currents
$T_{s,q}$ and $T_{m-s-1,k_{s+1}}$. By induction over $m$ we have $\J T_{m-s-1,k_{s+1}}=0$. It follows that the support
of $\J T_{m,q}$ is contained in $\{z_0=\cdots =z_m\}\cap Z\times\cdots\times Z\simeq Z$, which has codimension
$mN+\kappa$ in $D_{z_0}\times \cdots \times D_{z_m}$. Thus, by the Dimension Principle, $\J T_{m,q}=0$ if
$mN-m+q<mN+\kappa$, i.e., if $q<\kappa+m$. In particular, $\J T_{m,\kappa}=0$, which is the induction start
for showing $\J T_{m,q}=0$ by induction over $q$. Let $R=R(z_0)=R_{\kappa}(z_0)+R_{\kappa+1}(z_0)+\cdots$ be the $R$-current
associated to the Hermitian free resolution $(\hol(E_{\bullet}),f_{\bullet})$ as in Section~\ref{URsektion}.
From (the proof of) \cite[Theorem~4.4]{AW1} it follows that outside of the set $Z_k$, where $f_k$ does not have optimal rank,
there is a smooth $\text{Hom}(E_k,E_{k+1})$-valued $(0,1)$-form $\alpha_k=\alpha_k(z_0)$ such that $R_{k}=\alpha_kR_{k-1}$.
Moreover, since $(\hol(E_{\bullet}),f_{\bullet})$ is exact, it follows from the Buchsbaum-Eisenbud criterion that
$\text{codim}\, Z_k\geq k$, $k\geq 1$. Hence, for $z_0\notin Z_{\kappa+1}$ we have $T_{m,\kappa+1}=\alpha_{\kappa+1}T_{m,\kappa}$
and so the support of $\J T_{m,\kappa+1}$ must be contained in the set where $z_0\in Z_{\kappa+1}$. Since it also has support
contained in $\{z_0=\cdots=z_m\}$ it must in fact have support contained in
$\{z_0=\cdots =z_m\}\cap Z_{\kappa+1}\times\cdots\times Z_{\kappa+1}\simeq Z_{\kappa+1}$, which has codimension
$\geq mN+\kappa+1$ in $D_{z_0}\times \cdots \times D_{z_m}$. By the Dimension principle, then, $\J T_{m,\kappa+1}=0$.
Continuing in this way get that $\J T_{m,q}=0$ for all $q$.
\end{proof}

In particular it follows that the map $\Psi$ of \eqref{diagramm} is an isomorphism. The injectivity relied on
Malgrange's result that $\mathscr{C}^{p,q}$ is stalk-wise injective, but both surjectivity and injectivity can be showed directly using the
methods of this paper. To conclude we sketch how this can be done. For the surjectivity of $\Psi$, let
$\mu$ be a $\debar$-closed section of $\mathscr{B}_{\J}^{p,q}$. Then, by Propositions~\ref{DSweak} and \ref{fundprop},
$\mu=\xi\cdot R^0_q + \debar\check{\K}\mu$, where $f^*_{q+1}\xi=0$, and so the germ of a section of
$\HH^q(\mathscr{B}_{\J}^{p,\bullet}, \debar)$
defined by $\mu$ is in the image of $\Psi$.

For the injectivity we will use a new kind of weight in our integral formulas to see that the map $\Phi$,
defined in Proposition~\ref{fundprop}, induces a left inverse of $\Psi$. Notice that $\Phi$ indeed induces a map on cohomology
since $\Phi(\debar\mu)=f_{q+1}^*\Phi(\mu)$ for sections $\mu$ of $\mathscr{B}_{\J}^{p,q}$.
With the setup of Example~\ref{divvikt1}, consider
\begin{eqnarray*}
\check{G}_q^{\epsilon} &:=& \sum_{\ell=0}^q R^{\ell,\epsilon}_q(z)H^{\ell}_q +
\sum_{\ell=0}^{q-1}U^{\ell,\epsilon}_q(z)H^{\ell}_{q-1}f_q +
\sum_{\ell=0}^{q}f_{q+1}(z)U^{\ell,\epsilon}_{q+1}(z)H^{\ell}_q \\
&=:&
R^{\epsilon}_q(z)H_q + U^{\epsilon}_q(z)H_{q-1}f_q + f_{q+1}(z)U^{\epsilon}_{q+1}(z)H_q,
\end{eqnarray*}
which is a smooth section of $\Lambda_{\eta}\otimes \text{Hom}(E_q^{\zeta},E_q^z)$ for any $\epsilon >0$;
notice that $U^{\epsilon}(z)$ and $R^{\epsilon}(z)$ here depend on $z$.
One can check that $\check{G}_q^{\epsilon}$ satisfies the properties of being a weight, with the property
$\check{G}_{q,0}^{\epsilon}(z,z)=1$ construed as $\check{G}_{q,0}^{\epsilon}(z,z)=\text{Id}_{E_q}$.
Let also $g=g(\zeta,z)$ be a suitable weight such that $\zeta\mapsto g(\zeta,z)$ is holomorphic and $z\mapsto g(\zeta,z)$
has compact support, cf.\ Example~\ref{hjalpvikt}. Identifying sections of the $E_j^*$'s with row vectors,
sections of the $E_j$'s with column vectors, mappings with matrices, and letting $(\cdot)^*$ denote matrix transpose
as in Section~\ref{intopsektion}, we get for any $E_q^*$-valued
holomorphic $p$-form $\xi$, in view of Section~\ref{intformelsektion}, that
\begin{eqnarray*}
\xi^*(\zeta) &=& \int_z\big(\check{G}^{\epsilon}\wedge g\big)_{N,N}^*\wedge\xi^*(z) =
\int_z  \big(R^{\epsilon}_q(z)H_q\wedge g\big)_{N,N}^*\wedge\xi^*(z) \\
&+& \int_z  \big(U^{\epsilon}_q(z)H_{q-1}f_q\wedge g\big)_{N,N}^*\wedge \xi^*(z) +
\int_z  \big(f_{q+1}(z)U^{\epsilon}_{q+1}(z)H_q \wedge g\big)_{N,N}^*\wedge \xi^*(z).
\end{eqnarray*}
Notice that the last integral vanishes if $f_{q+1}^*\xi^*=0$, and that the second last integral is $f^*_q$-exact.
Since $R=R^0_{\kappa}+R^0_{\kappa+1}+\cdots$, it follows that $R^{\epsilon}_q(z)H_q\to R^0_q(z)H^0_q$ as $\epsilon\to 0$,
and so we see that if $f_{q+1}^*\xi^*=0$, then
\begin{equation*}
\xi^*(\zeta)= \int_z\big(R^{0}_q(z)H_q^0\wedge g_{N-q}\big)^*\wedge\xi^*(z) + f_q^*\tilde{\xi}^*=
\Phi(\xi R^0_q)^* + f_q^*\tilde{\xi}^*,
\end{equation*}
where $\tilde{\xi}$ is an $E^*_{q-1}$-valued holomorphic $p$-form. Hence, $\Phi$ induces a left inverse of $\Psi$.

redpajama_set_name: RedPajamaArXiv


Find a great place to stay in Di Linh using the categories below, or search our website for Di Linh Hotels.
Agoda can also help you find things to do in Di Linh. Explore the city, discover important landmarks, points of interest and more!


text:
September 2, 2020 by Zach Leave a Comment
Behind the big wages and TV deals, injuries still happen to professional footballers all the time. Facing a spell on the sidelines can be tough for them. Will players ever be the same again?
Rehab can be gruelling and lengthy depending on the injury, but there are recent examples which show that medical problems and career setbacks can be overcome. These footballers bounced back from injuries and issues, so that can inspire you.
Germany winger Leroy Sane had the world at his feet after playing his part in Manchester City's historic domestic treble in 2018-19. He had his best-ever season, scoring 16 goals in all competitions as Pep Guardiola's side took a clean sweep of the Premier League, FA Cup and EFL Cup.
There was plenty of speculation linking him with a return to his homeland and Bundesliga big boys Bayern Munich. All that was put in jeopardy, however, just a few minutes into the 2019 Community Shield at Wembley when Sane tore his ACL ligament in his knee.
It's a tough injury to recover from, especially for a wide player who does so much running with and off the ball. However, Sane rehabbed and got his big-money move back to Germany this summer. Bayern are reported to have paid around €45,000,000 for his services and he's now joined the Champions League holders.
Antonee Robinson
Everton academy product Antonee Robinson left Goodison Park in search of regular first-team football to kickstart his career, first with Bolton Wanderers and then Wigan Athletic. These were challenging times off the pitch for the United States international left-back as large debts and administration loomed over both Greater Manchester clubs.
Robinson failed a medical at AC Milan this past winter when it emerged that he had an irregular heartbeat. That is a scary thing if you play football, especially when you consider the cardiac issues that cost Marco-Vivien Foe his life and Fabrice Muamba, another Bolton alumnus, experienced.
After ablation treatment, however, Robinson was found that the problem was now corrected. Although he could not save Wigan from relegation to EFL League One, Fulham soon snapped him up after earning promotion via the Championship play-offs.
The bookies expect Robinson to be doing plenty in defense at Craven Cottage, however, as Scott Parker's side are 11/10 in the football betting on Premier League relegation with bet365. Watch his future career with interest.
Imagine picking up an injury in preseason before a competitive game has even been played. That is exactly what happened to Bournemouth and Wales winger David Brooks. His ankle problem required two separate surgeries to repair with a bit of bone floating found to be around in it.
"It was just a bit of bad luck," he told the official Bournemouth website in an interview. "I've just had to get on with it and get back to fitness." That strong, positive mindset worked wonders as, after eight months out, he resumed full training.
Brooks not only returned to action before the end of the season, but scored a goal in the Cherries' Premier League match at Manchester City. As with Robinson, he couldn't save his current club from relegation but, having made a comeback, other Premier League clubs are sure to be interested in signing him.
To read more on topics like this, check out the Sports category
Filed Under: Sports

redpajama_set_name: RedPajamaCommonCrawl


He has rightly described his wife as a 'pillar of strength' Isabella Poole was delivered by early C-Section following the horrific stabbing of her mother, Rachel Poole.Isabella was born ill due to the strong medications that needed to be given to Rachel, but is making a good recovery 'Honestly it's such an encouragement, just to see and hear the support that is being brought to my family right now, through everything, knowing that everyone's really come to stand behind us right now is really helpful for any kind of recovery,' she said.Poole has been in hospital since Wednesday evening when she was brutally attacked by Corey Bernard, 19, while she was in her kitchen speaking to her husband Justin Pele Poole - who was deployed overseas but has since returned - via Face Time.
Horror show: Rachel Poole (left), was nine months pregnant when she was stabbed multiple times by an intruder in her home as her husband Justin (right), who was deployed overseas, watched in horror on video chat Once my wife is out of the hospital, let the nation know she will speak up. In the early '90s she won a visa lottery to the US, and after some confusion about dates, was forced to abandon the Big Goodbye Vacation to the Ring of Kerry with her sister and family, pack up my sisters aged seven and one and book the next flight to the US.My moves might be bigger in terms of distance, but some things about moving are universal, like a new house, new schools, new friends, new community, and a career on hold. Mammy has never said "Don't go", and for that I am grateful.Mammy has visited me in every country l have lived in, and while she obviously wants to experience the new culture she is more keen on meeting my ever-expanding circle of international friends, figuring out what is challenging for me in this new country, trying to get a sense of the community on which I have been imposed, seeing for herself if her grandchildren have settled.They can't believe I'm willing to part with 70CHF (€64) per month just on calls to Ireland; more specifically, on calls to my mother.
We would love to Skype but broadband service in their area is non-existent.We lived in their beautiful house for three years until eventually we also built ourselves a decent, independent life, a better life than we could have dreamed of if we had stayed in Ireland.Our Swiss telephone provider often tries to negotiate a more favourable contract for us.It was chilling to realise what that generation of emigrants left behind for the chance of a better life Stateside in those days. I kept travelling and ended up in New Zealand, and while I was there she met someone. The family joked that I only felt free to meet someone because she had! I asked Mum about the wisdom of starting a long-distance relationship, or LDR as she called it, and she said it was better than an NFR. She was always so gracious in letting me go, with no guilt trips, no tears, only best wishes for the future.And this is how it was a year later when she was diagnosed with cancer." She had a phone specially installed in the house so as I could keep in touch with her. She still sends me pajamas, homemade brown bread, Barry's teabags and Clonakilty black pudding.


At The MENTOR Network, we believe that children belong at home with their family of origin whenever possible. Our goal is to help families overcome the challenges they face and stay together. We offer Family Centered Treatment® (FCT©)—an evidence-based model of family preservation designed to help families who are at risk learn, grow and interact in a positive way. The MENTOR Network is fortunate to leverage the expertise of the original developers of FCT, who joined our organization in 2009, and continue to help us deliver and expand the use of this innovative model in communities across the country.
Using the FCT model, we treat the entire family—not just the child. We work with the child, parents, siblings and members of the extended family who are involved in the child's circle of support. By helping the entire family make positive changes, we are able to produce meaningful, lasting outcomes.
88.5% of families achieved their permanency goals (youth either remained at home, were reunited with their families, or transitioned to planned placement upon discharge).
95% of families and practitioners reported that youth made positive progress.
FCT is a cost-effective family preservation model that is expanding to meet the growing demand for evidence-based, intensive in-home services in several states.
FCT is part of The MENTOR Network's continuum of care for children at risk and their families. For youth being served in The Network's Therapeutic Foster Care and residential programs, we utilize the FCT model to help reunite them with their families when it is in the best interest of the child. For young people living at home, our skilled therapists bring FCT services into their home, where they can learn the skills they need to succeed in their everyday lives.
Our team of master's-level clinicians includes licensed counselors, licensed social workers and licensed marriage and family therapists who undergo rigorous training. They receive a breadth of theoretical and practical knowledge through Wheels of Change©, a training and certification program specifically designed for FCT. Before clinicians begin working with families, they must complete certification and demonstrate a mastery of skills required to practice the core components of the model.
In 2012, "Family Centered Treatment—An Alternative to Residential Treatments for Adjudicated Youth: Outcomes and Cost-Effectiveness" was published in the semi-annual, peer-reviewed journal sponsored by the Office of Juvenile Justice and Delinquency Prevention (OJJDP).
In 2013, FCT was selected for listing with the California Evidence-Based Clearinghouse for Child Welfare (CEBC) as an evidence-based model highly relevant for child welfare needs.
In 2014, FCT was selected as an intervention for listing by SAMHSA's National Registry of Evidence-based Programs and Practices (NREPP).
Contact the location nearest you for more information on the Family Centered Treatment model.
We look forward to speaking with you and will reply to your inquiry as soon as possible.


text:
Karl "Kalle" Erik Valdemar Norwald, född 17 juni 1986, är en svensk sexolog, terapeut och skribent.

Norwald är utbildad socionom i grunden. Han var en av initiativtagarna till HBTQ-ung på Södersjukhuset, landets första mottagning som riktar sig till unga homo-, bi-, trans- och queerpersoner. Sedan 2020 är han en av experterna i SVT:s program Gift vid första ögonkastet.
År 2022 debuterade Norwald som författare med  böckerna Undervisa om sexualitet, samtycke och relationer : Integrera i alla ämnen på Gothia Kompetens samt boken Tack, förlåt och skyll dig själv: Om att leva tillsammans och kanske lyckligt på Bazar förlag. Norwald driver även podden "Hur är det med sexlivet?" samt svarar på frågor och skriver om sex och samlevnad i media.

Norwald och hans make blev 2016 det första svenska samkönade paret i Sverige som blev godkända för att genomföra en internationell adoption via en organisation.

Källor

Externa länkar
 Officiell webbplats

Levande personer
Män
Födda 1986
Svenska sexualupplysare
Svenska författare under 2000-talet

redpajama_set_name: RedPajamaWikipedia


text:
#ifdef HAVE_CONFIG_H
#include "../ext_config.h"
#endif

#include <php.h>
#include "../php_ext.h"
#include "../ext.h"

#include <Zend/zend_operators.h>
#include <Zend/zend_exceptions.h>
#include <Zend/zend_interfaces.h>

#include "kernel/main.h"
#include "kernel/object.h"
#include "kernel/memory.h"
#include "kernel/operators.h"
#include "kernel/fcall.h"
#include "ext/spl/spl_exceptions.h"
#include "kernel/exception.h"
#include "kernel/array.h"
#include "kernel/concat.h"
#include "kernel/string.h"

/**
 * Phalcon\Di
 *
 * Phalcon\Di is a component that implements Dependency Injection/Service Location
 * of services and it's itself a container for them.
 *
 * Since Phalcon is highly decoupled, Phalcon\Di is essential to integrate the different
 * components of the framework. The developer can also use this component to inject dependencies
 * and manage global instances of the different classes used in the application.
 *
 * Basically, this component implements the `Inversion of Control` pattern. Applying this,
 * the objects do not receive their dependencies using setters or constructors, but requesting
 * a service dependency injector. This reduces the overall complexity, since there is only one
 * way to get the required dependencies within a component.
 *
 * Additionally, this pattern increases testability in the code, thus making it less prone to errors.
 *
 *
 * use Phalcon\Di;
 * use Phalcon\Http\Request;
 *
 * $di = new Di();
 *
 * // Using a string definition
 * $di->set("request", Request::class, true);
 *
 * // Using an anonymous function
 * $di->setShared(
 *     "request",
 *     function () {
 *         return new Request();
 *     }
 * );
 *
 * $request = $di->getRequest();
 *
 */
ZEPHIR_INIT_CLASS(Phalcon_Di) {

	ZEPHIR_REGISTER_CLASS(Phalcon, Di, phalcon, di, phalcon_di_method_entry, 0);

	/**
	 * List of registered services
	 */
	zend_declare_property_null(phalcon_di_ce, SL("_services"), ZEND_ACC_PROTECTED TSRMLS_CC);

	/**
	 * List of shared instances
	 */
	zend_declare_property_null(phalcon_di_ce, SL("_sharedInstances"), ZEND_ACC_PROTECTED TSRMLS_CC);

	/**
	 * To know if the latest resolved instance was shared or not
	 */
	zend_declare_property_bool(phalcon_di_ce, SL("_freshInstance"), 0, ZEND_ACC_PROTECTED TSRMLS_CC);

	/**
	 * Events Manager
	 *
	 * @var \Phalcon\Events\ManagerInterface
	 */
	zend_declare_property_null(phalcon_di_ce, SL("_eventsManager"), ZEND_ACC_PROTECTED TSRMLS_CC);

	/**
	 * Latest DI build
	 */
	zend_declare_property_null(phalcon_di_ce, SL("_default"), ZEND_ACC_PROTECTED|ZEND_ACC_STATIC TSRMLS_CC);

	zend_class_implements(phalcon_di_ce TSRMLS_CC, 1, phalcon_diinterface_ce);
	return SUCCESS;

}

/**
 * Phalcon\Di constructor
 */
PHP_METHOD(Phalcon_Di, __construct) {

	zval *di = NULL;

	ZEPHIR_MM_GROW();

	ZEPHIR_OBS_VAR(di);
	zephir_read_static_property_ce(&di, phalcon_di_ce, SL("_default") TSRMLS_CC);
	if (!(zephir_is_true(di))) {
		zephir_update_static_property_ce(phalcon_di_ce, SL("_default"), &this_ptr TSRMLS_CC);
	}
	ZEPHIR_MM_RESTORE();

}

/**
 * Sets the internal event manager
 */
PHP_METHOD(Phalcon_Di, setInternalEventsManager) {

	zval *eventsManager;

	zephir_fetch_params(0, 1, 0, &eventsManager);

	zephir_update_property_this(getThis(), SL("_eventsManager"), eventsManager TSRMLS_CC);

}

/**
 * Returns the internal event manager
 */
PHP_METHOD(Phalcon_Di, getInternalEventsManager) {

	RETURN_MEMBER(getThis(), "_eventsManager");

}

/**
 * Registers a service in the services container
 */
PHP_METHOD(Phalcon_Di, set) {

	zend_long ZEPHIR_LAST_CALL_STATUS;
	zend_bool shared;
	zval *name_param = NULL, *definition, *shared_param = NULL, *service = NULL, *_0;
	zval *name = NULL;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 2, 1, &name_param, &definition, &shared_param);

	if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) {
		zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC);
		RETURN_MM_NULL();
	}
	if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) {
		zephir_get_strval(name, name_param);
	} else {
		ZEPHIR_INIT_VAR(name);
		ZVAL_EMPTY_STRING(name);
	}
	if (!shared_param) {
		shared = 0;
	} else {
		shared = zephir_get_boolval(shared_param);
	}

	ZEPHIR_INIT_VAR(service);
	object_init_ex(service, phalcon_di_service_ce);
	ZEPHIR_INIT_VAR(_0);
	if (shared) {
		ZVAL_BOOL(_0, 1);
	} else {
		ZVAL_BOOL(_0, 0);
	}
	ZEPHIR_CALL_METHOD(NULL, service, "__construct", NULL, 68, name, definition, _0);
	zephir_check_call_status();
	zephir_update_property_array(this_ptr, SL("_services"), name, service TSRMLS_CC);
	RETURN_CCTOR(service);

}

/**
 * Registers an "always shared" service in the services container
 */
PHP_METHOD(Phalcon_Di, setShared) {

	zend_long ZEPHIR_LAST_CALL_STATUS;
	zval *name_param = NULL, *definition, *_0;
	zval *name = NULL;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 2, 0, &name_param, &definition);

	if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) {
		zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC);
		RETURN_MM_NULL();
	}
	if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) {
		zephir_get_strval(name, name_param);
	} else {
		ZEPHIR_INIT_VAR(name);
		ZVAL_EMPTY_STRING(name);
	}

	ZEPHIR_INIT_VAR(_0);
	ZVAL_BOOL(_0, 1);
	ZEPHIR_RETURN_CALL_METHOD(this_ptr, "set", NULL, 0, name, definition, _0);
	zephir_check_call_status();
	RETURN_MM();

}

/**
 * Removes a service in the services container
 * It also removes any shared instance created for the service
 */
PHP_METHOD(Phalcon_Di, remove) {

	zval *name_param = NULL, *_0, *_1;
	zval *name = NULL;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 1, 0, &name_param);

	if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) {
		zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC);
		RETURN_MM_NULL();
	}
	if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) {
		zephir_get_strval(name, name_param);
	} else {
		ZEPHIR_INIT_VAR(name);
		ZVAL_EMPTY_STRING(name);
	}

	_0 = zephir_fetch_nproperty_this(this_ptr, SL("_services"), PH_NOISY_CC);
	zephir_array_unset(&_0, name, PH_SEPARATE);
	_1 = zephir_fetch_nproperty_this(this_ptr, SL("_sharedInstances"), PH_NOISY_CC);
	zephir_array_unset(&_1, name, PH_SEPARATE);
	ZEPHIR_MM_RESTORE();

}

/**
 * Attempts to register a service in the services container
 * Only is successful if a service hasn't been registered previously
 * with the same name
 */
PHP_METHOD(Phalcon_Di, attempt) {

	zend_long ZEPHIR_LAST_CALL_STATUS;
	zend_bool shared;
	zval *name_param = NULL, *definition, *shared_param = NULL, *service = NULL, *_0, *_1$$3;
	zval *name = NULL;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 2, 1, &name_param, &definition, &shared_param);

	if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) {
		zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC);
		RETURN_MM_NULL();
	}
	if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) {
		zephir_get_strval(name, name_param);
	} else {
		ZEPHIR_INIT_VAR(name);
		ZVAL_EMPTY_STRING(name);
	}
	if (!shared_param) {
		shared = 0;
	} else {
		shared = zephir_get_boolval(shared_param);
	}

	_0 = zephir_fetch_nproperty_this(this_ptr, SL("_services"), PH_NOISY_CC);
	if (!(zephir_array_isset(_0, name))) {
		ZEPHIR_INIT_VAR(service);
		object_init_ex(service, phalcon_di_service_ce);
		ZEPHIR_INIT_VAR(_1$$3);
		if (shared) {
			ZVAL_BOOL(_1$$3, 1);
		} else {
			ZVAL_BOOL(_1$$3, 0);
		}
		ZEPHIR_CALL_METHOD(NULL, service, "__construct", NULL, 68, name, definition, _1$$3);
		zephir_check_call_status();
		zephir_update_property_array(this_ptr, SL("_services"), name, service TSRMLS_CC);
		RETURN_CCTOR(service);
	}
	RETURN_MM_BOOL(0);

}

/**
 * Sets a service using a raw Phalcon\Di\Service definition
 */
PHP_METHOD(Phalcon_Di, setRaw) {

	zval *name_param = NULL, *rawDefinition;
	zval *name = NULL;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 2, 0, &name_param, &rawDefinition);

	if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) {
		zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC);
		RETURN_MM_NULL();
	}
	if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) {
		zephir_get_strval(name, name_param);
	} else {
		ZEPHIR_INIT_VAR(name);
		ZVAL_EMPTY_STRING(name);
	}

	zephir_update_property_array(this_ptr, SL("_services"), name, rawDefinition TSRMLS_CC);
	RETVAL_ZVAL(rawDefinition, 1, 0);
	RETURN_MM();

}

/**
 * Returns a service definition without resolving
 */
PHP_METHOD(Phalcon_Di, getRaw) {

	zend_long ZEPHIR_LAST_CALL_STATUS;
	zval *name_param = NULL, *service = NULL, *_0, *_1;
	zval *name = NULL, *_2;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 1, 0, &name_param);

	if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) {
		zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC);
		RETURN_MM_NULL();
	}
	if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) {
		zephir_get_strval(name, name_param);
	} else {
		ZEPHIR_INIT_VAR(name);
		ZVAL_EMPTY_STRING(name);
	}

	ZEPHIR_OBS_VAR(service);
	_0 = zephir_fetch_nproperty_this(this_ptr, SL("_services"), PH_NOISY_CC);
	if (zephir_array_isset_fetch(&service, _0, name, 0 TSRMLS_CC)) {
		ZEPHIR_RETURN_CALL_METHOD(service, "getdefinition", NULL, 0);
		zephir_check_call_status();
		RETURN_MM();
	}
	ZEPHIR_INIT_VAR(_1);
	object_init_ex(_1, phalcon_di_exception_ce);
	ZEPHIR_INIT_VAR(_2);
	ZEPHIR_CONCAT_SVS(_2, "Service '", name, "' wasn't found in the dependency injection container");
	ZEPHIR_CALL_METHOD(NULL, _1, "__construct", NULL, 9, _2);
	zephir_check_call_status();
	zephir_throw_exception_debug(_1, "phalcon/di.zep", 191 TSRMLS_CC);
	ZEPHIR_MM_RESTORE();
	return;

}

/**
 * Returns a Phalcon\Di\Service instance
 */
PHP_METHOD(Phalcon_Di, getService) {

	zend_long ZEPHIR_LAST_CALL_STATUS;
	zval *name_param = NULL, *service = NULL, *_0, *_1;
	zval *name = NULL, *_2;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 1, 0, &name_param);

	if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) {
		zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC);
		RETURN_MM_NULL();
	}
	if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) {
		zephir_get_strval(name, name_param);
	} else {
		ZEPHIR_INIT_VAR(name);
		ZVAL_EMPTY_STRING(name);
	}

	ZEPHIR_OBS_VAR(service);
	_0 = zephir_fetch_nproperty_this(this_ptr, SL("_services"), PH_NOISY_CC);
	if (zephir_array_isset_fetch(&service, _0, name, 0 TSRMLS_CC)) {
		RETURN_CCTOR(service);
	}
	ZEPHIR_INIT_VAR(_1);
	object_init_ex(_1, phalcon_di_exception_ce);
	ZEPHIR_INIT_VAR(_2);
	ZEPHIR_CONCAT_SVS(_2, "Service '", name, "' wasn't found in the dependency injection container");
	ZEPHIR_CALL_METHOD(NULL, _1, "__construct", NULL, 9, _2);
	zephir_check_call_status();
	zephir_throw_exception_debug(_1, "phalcon/di.zep", 205 TSRMLS_CC);
	ZEPHIR_MM_RESTORE();
	return;

}

/**
 * Resolves the service based on its configuration
 */
PHP_METHOD(Phalcon_Di, get) {

	zend_bool _6$$6;
	zval *_1$$3, *_7$$12;
	zend_long ZEPHIR_LAST_CALL_STATUS;
	zval *name_param = NULL, *parameters = NULL, *service = NULL, *eventsManager = NULL, *instance = NULL, *_0, *_2$$3, *_3$$4, *_4$$7, *_8$$12;
	zval *name = NULL, *_5$$7;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 1, 1, &name_param, &parameters);

	if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) {
		zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC);
		RETURN_MM_NULL();
	}
	if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) {
		zephir_get_strval(name, name_param);
	} else {
		ZEPHIR_INIT_VAR(name);
		ZVAL_EMPTY_STRING(name);
	}
	if (!parameters) {
		parameters = ZEPHIR_GLOBAL(global_null);
	}

	ZEPHIR_INIT_VAR(instance);
	ZVAL_NULL(instance);
	_0 = zephir_fetch_nproperty_this(this_ptr, SL("_eventsManager"), PH_NOISY_CC);
	ZEPHIR_CPY_WRT(eventsManager, _0);
	if (Z_TYPE_P(eventsManager) == IS_OBJECT) {
		ZEPHIR_INIT_VAR(_1$$3);
		zephir_create_array(_1$$3, 2, 0 TSRMLS_CC);
		zephir_array_update_string(&_1$$3, SL("name"), &name, PH_COPY | PH_SEPARATE);
		zephir_array_update_string(&_1$$3, SL("parameters"), &parameters, PH_COPY | PH_SEPARATE);
		ZEPHIR_INIT_VAR(_2$$3);
		ZVAL_STRING(_2$$3, "di:beforeServiceResolve", ZEPHIR_TEMP_PARAM_COPY);
		ZEPHIR_CALL_METHOD(&instance, eventsManager, "fire", NULL, 0, _2$$3, this_ptr, _1$$3);
		zephir_check_temp_parameter(_2$$3);
		zephir_check_call_status();
	}
	if (Z_TYPE_P(instance) != IS_OBJECT) {
		ZEPHIR_OBS_VAR(service);
		_3$$4 = zephir_fetch_nproperty_this(this_ptr, SL("_services"), PH_NOISY_CC);
		if (zephir_array_isset_fetch(&service, _3$$4, name, 0 TSRMLS_CC)) {
			ZEPHIR_CALL_METHOD(&instance, service, "resolve", NULL, 0, parameters, this_ptr);
			zephir_check_call_status();
		} else {
			if (!(zephir_class_exists(name, 1 TSRMLS_CC))) {
				ZEPHIR_INIT_VAR(_4$$7);
				object_init_ex(_4$$7, phalcon_di_exception_ce);
				ZEPHIR_INIT_VAR(_5$$7);
				ZEPHIR_CONCAT_SVS(_5$$7, "Service '", name, "' wasn't found in the dependency injection container");
				ZEPHIR_CALL_METHOD(NULL, _4$$7, "__construct", NULL, 9, _5$$7);
				zephir_check_call_status();
				zephir_throw_exception_debug(_4$$7, "phalcon/di.zep", 236 TSRMLS_CC);
				ZEPHIR_MM_RESTORE();
				return;
			}
			_6$$6 = Z_TYPE_P(parameters) == IS_ARRAY;
			if (_6$$6) {
				_6$$6 = ((zephir_fast_count_int(parameters TSRMLS_CC)) ? 1 : 0);
			}
			if (_6$$6) {
				ZEPHIR_INIT_NVAR(instance);
				ZEPHIR_LAST_CALL_STATUS = zephir_create_instance_params(instance, name, parameters TSRMLS_CC);
				zephir_check_call_status();
			} else {
				ZEPHIR_INIT_NVAR(instance);
				ZEPHIR_LAST_CALL_STATUS = zephir_create_instance(instance, name TSRMLS_CC);
				zephir_check_call_status();
			}
		}
	}
	if (Z_TYPE_P(instance) == IS_OBJECT) {
		if (zephir_instance_of_ev(instance, phalcon_di_injectionawareinterface_ce TSRMLS_CC)) {
			ZEPHIR_CALL_METHOD(NULL, instance, "setdi", NULL, 0, this_ptr);
			zephir_check_call_status();
		}
	}
	if (Z_TYPE_P(eventsManager) == IS_OBJECT) {
		ZEPHIR_INIT_VAR(_7$$12);
		zephir_create_array(_7$$12, 3, 0 TSRMLS_CC);
		zephir_array_update_string(&_7$$12, SL("name"), &name, PH_COPY | PH_SEPARATE);
		zephir_array_update_string(&_7$$12, SL("parameters"), &parameters, PH_COPY | PH_SEPARATE);
		zephir_array_update_string(&_7$$12, SL("instance"), &instance, PH_COPY | PH_SEPARATE);
		ZEPHIR_INIT_VAR(_8$$12);
		ZVAL_STRING(_8$$12, "di:afterServiceResolve", ZEPHIR_TEMP_PARAM_COPY);
		ZEPHIR_CALL_METHOD(NULL, eventsManager, "fire", NULL, 0, _8$$12, this_ptr, _7$$12);
		zephir_check_temp_parameter(_8$$12);
		zephir_check_call_status();
	}
	RETURN_CCTOR(instance);

}

/**
 * Resolves a service, the resolved service is stored in the DI, subsequent
 * requests for this service will return the same instance
 *
 * @param string name
 * @param array parameters
 * @return mixed
 */
PHP_METHOD(Phalcon_Di, getShared) {

	zend_long ZEPHIR_LAST_CALL_STATUS;
	zval *name_param = NULL, *parameters = NULL, *instance = NULL, *_0;
	zval *name = NULL;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 1, 1, &name_param, &parameters);

	if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) {
		zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC);
		RETURN_MM_NULL();
	}
	if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) {
		zephir_get_strval(name, name_param);
	} else {
		ZEPHIR_INIT_VAR(name);
		ZVAL_EMPTY_STRING(name);
	}
	if (!parameters) {
		parameters = ZEPHIR_GLOBAL(global_null);
	}

	ZEPHIR_OBS_VAR(instance);
	_0 = zephir_fetch_nproperty_this(this_ptr, SL("_sharedInstances"), PH_NOISY_CC);
	if (zephir_array_isset_fetch(&instance, _0, name, 0 TSRMLS_CC)) {
		if (0) {
			zephir_update_property_this(getThis(), SL("_freshInstance"), ZEPHIR_GLOBAL(global_true) TSRMLS_CC);
		} else {
			zephir_update_property_this(getThis(), SL("_freshInstance"), ZEPHIR_GLOBAL(global_false) TSRMLS_CC);
		}
	} else {
		ZEPHIR_CALL_METHOD(&instance, this_ptr, "get", NULL, 0, name, parameters);
		zephir_check_call_status();
		zephir_update_property_array(this_ptr, SL("_sharedInstances"), name, instance TSRMLS_CC);
		if (1) {
			zephir_update_property_this(getThis(), SL("_freshInstance"), ZEPHIR_GLOBAL(global_true) TSRMLS_CC);
		} else {
			zephir_update_property_this(getThis(), SL("_freshInstance"), ZEPHIR_GLOBAL(global_false) TSRMLS_CC);
		}
	}
	RETURN_CCTOR(instance);

}

/**
 * Check whether the DI contains a service by a name
 */
PHP_METHOD(Phalcon_Di, has) {

	zval *name_param = NULL, *_0;
	zval *name = NULL;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 1, 0, &name_param);

	if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) {
		zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC);
		RETURN_MM_NULL();
	}
	if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) {
		zephir_get_strval(name, name_param);
	} else {
		ZEPHIR_INIT_VAR(name);
		ZVAL_EMPTY_STRING(name);
	}

	_0 = zephir_fetch_nproperty_this(this_ptr, SL("_services"), PH_NOISY_CC);
	RETURN_MM_BOOL(zephir_array_isset(_0, name));

}

/**
 * Check whether the last service obtained via getShared produced a fresh instance or an existing one
 */
PHP_METHOD(Phalcon_Di, wasFreshInstance) {

	RETURN_MEMBER(getThis(), "_freshInstance");

}

/**
 * Return the services registered in the DI
 */
PHP_METHOD(Phalcon_Di, getServices) {

	RETURN_MEMBER(getThis(), "_services");

}

/**
 * Check if a service is registered using the array syntax
 */
PHP_METHOD(Phalcon_Di, offsetExists) {

	zend_long ZEPHIR_LAST_CALL_STATUS;
	zval *name_param = NULL;
	zval *name = NULL;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 1, 0, &name_param);

	if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) {
		zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC);
		RETURN_MM_NULL();
	}
	if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) {
		zephir_get_strval(name, name_param);
	} else {
		ZEPHIR_INIT_VAR(name);
		ZVAL_EMPTY_STRING(name);
	}

	ZEPHIR_RETURN_CALL_METHOD(this_ptr, "has", NULL, 0, name);
	zephir_check_call_status();
	RETURN_MM();

}

/**
 * Allows to register a shared service using the array syntax
 *
 *
 * $di["request"] = new \Phalcon\Http\Request();
 *
 */
PHP_METHOD(Phalcon_Di, offsetSet) {

	zend_long ZEPHIR_LAST_CALL_STATUS;
	zval *name_param = NULL, *definition;
	zval *name = NULL;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 2, 0, &name_param, &definition);

	if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) {
		zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC);
		RETURN_MM_NULL();
	}
	if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) {
		zephir_get_strval(name, name_param);
	} else {
		ZEPHIR_INIT_VAR(name);
		ZVAL_EMPTY_STRING(name);
	}

	ZEPHIR_CALL_METHOD(NULL, this_ptr, "setshared", NULL, 0, name, definition);
	zephir_check_call_status();
	RETURN_MM_BOOL(1);

}

/**
 * Allows to obtain a shared service using the array syntax
 *
 *
 * var_dump($di["request"]);
 *
 */
PHP_METHOD(Phalcon_Di, offsetGet) {

	zend_long ZEPHIR_LAST_CALL_STATUS;
	zval *name_param = NULL;
	zval *name = NULL;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 1, 0, &name_param);

	if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) {
		zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC);
		RETURN_MM_NULL();
	}
	if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) {
		zephir_get_strval(name, name_param);
	} else {
		ZEPHIR_INIT_VAR(name);
		ZVAL_EMPTY_STRING(name);
	}

	ZEPHIR_RETURN_CALL_METHOD(this_ptr, "getshared", NULL, 0, name);
	zephir_check_call_status();
	RETURN_MM();

}

/**
 * Removes a service from the services container using the array syntax
 */
PHP_METHOD(Phalcon_Di, offsetUnset) {

	zval *name_param = NULL;
	zval *name = NULL;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 1, 0, &name_param);

	if (UNEXPECTED(Z_TYPE_P(name_param) != IS_STRING && Z_TYPE_P(name_param) != IS_NULL)) {
		zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'name' must be a string") TSRMLS_CC);
		RETURN_MM_NULL();
	}
	if (EXPECTED(Z_TYPE_P(name_param) == IS_STRING)) {
		zephir_get_strval(name, name_param);
	} else {
		ZEPHIR_INIT_VAR(name);
		ZVAL_EMPTY_STRING(name);
	}

	RETURN_MM_BOOL(0);

}

/**
 * Magic method to get or set services using setters/getters
 */
PHP_METHOD(Phalcon_Di, __call) {

	zend_long ZEPHIR_LAST_CALL_STATUS;
	zephir_fcall_cache_entry *_2 = NULL, *_3 = NULL;
	zval *method_param = NULL, *arguments = NULL, *instance = NULL, *possibleService = NULL, *services = NULL, *definition = NULL, *_7, _0$$3, *_1$$3, _4$$8, *_5$$8, *_6$$8 = NULL;
	zval *method = NULL, *_8;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 1, 1, &method_param, &arguments);

	if (UNEXPECTED(Z_TYPE_P(method_param) != IS_STRING && Z_TYPE_P(method_param) != IS_NULL)) {
		zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'method' must be a string") TSRMLS_CC);
		RETURN_MM_NULL();
	}
	if (EXPECTED(Z_TYPE_P(method_param) == IS_STRING)) {
		zephir_get_strval(method, method_param);
	} else {
		ZEPHIR_INIT_VAR(method);
		ZVAL_EMPTY_STRING(method);
	}
	if (!arguments) {
		arguments = ZEPHIR_GLOBAL(global_null);
	}

	if (zephir_start_with_str(method, SL("get"))) {
		ZEPHIR_OBS_VAR(services);
		zephir_read_property_this(&services, this_ptr, SL("_services"), PH_NOISY_CC);
		ZEPHIR_SINIT_VAR(_0$$3);
		ZVAL_LONG(&_0$$3, 3);
		ZEPHIR_INIT_VAR(_1$$3);
		zephir_substr(_1$$3, method, 3 , 0, ZEPHIR_SUBSTR_NO_LENGTH);
		ZEPHIR_CALL_FUNCTION(&possibleService, "lcfirst", &_2, 69, _1$$3);
		zephir_check_call_status();
		if (zephir_array_isset(services, possibleService)) {
			if (zephir_fast_count_int(arguments TSRMLS_CC)) {
				ZEPHIR_CALL_METHOD(&instance, this_ptr, "get", &_3, 0, possibleService, arguments);
				zephir_check_call_status();
			} else {
				ZEPHIR_CALL_METHOD(&instance, this_ptr, "get", &_3, 0, possibleService);
				zephir_check_call_status();
			}
			RETURN_CCTOR(instance);
		}
	}
	if (zephir_start_with_str(method, SL("set"))) {
		ZEPHIR_OBS_VAR(definition);
		if (zephir_array_isset_long_fetch(&definition, arguments, 0, 0 TSRMLS_CC)) {
			ZEPHIR_SINIT_VAR(_4$$8);
			ZVAL_LONG(&_4$$8, 3);
			ZEPHIR_INIT_VAR(_5$$8);
			zephir_substr(_5$$8, method, 3 , 0, ZEPHIR_SUBSTR_NO_LENGTH);
			ZEPHIR_CALL_FUNCTION(&_6$$8, "lcfirst", &_2, 69, _5$$8);
			zephir_check_call_status();
			ZEPHIR_CALL_METHOD(NULL, this_ptr, "set", NULL, 0, _6$$8, definition);
			zephir_check_call_status();
			RETURN_MM_NULL();
		}
	}
	ZEPHIR_INIT_VAR(_7);
	object_init_ex(_7, phalcon_di_exception_ce);
	ZEPHIR_INIT_VAR(_8);
	ZEPHIR_CONCAT_SVS(_8, "Call to undefined method or service '", method, "'");
	ZEPHIR_CALL_METHOD(NULL, _7, "__construct", NULL, 9, _8);
	zephir_check_call_status();
	zephir_throw_exception_debug(_7, "phalcon/di.zep", 406 TSRMLS_CC);
	ZEPHIR_MM_RESTORE();
	return;

}

/**
 * Registers a service provider.
 *
 *
 * use Phalcon\DiInterface;
 * use Phalcon\Di\ServiceProviderInterface;
 *
 * class SomeServiceProvider implements ServiceProviderInterface
 * {
 *     public function register(DiInterface $di)
 *     {
 *         $di->setShared('service', function () {
 *             // ...
 *         });
 *     }
 * }
 *
 */
PHP_METHOD(Phalcon_Di, register) {

	zend_long ZEPHIR_LAST_CALL_STATUS;
	zval *provider;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 1, 0, &provider);

	ZEPHIR_CALL_METHOD(NULL, provider, "register", NULL, 0, this_ptr);
	zephir_check_call_status();
	ZEPHIR_MM_RESTORE();

}

/**
 * Set a default dependency injection container to be obtained into static methods
 */
PHP_METHOD(Phalcon_Di, setDefault) {

	zval *dependencyInjector;

	zephir_fetch_params(0, 1, 0, &dependencyInjector);

	zephir_update_static_property_ce(phalcon_di_ce, SL("_default"), &dependencyInjector TSRMLS_CC);

}

/**
 * Return the latest DI created
 */
PHP_METHOD(Phalcon_Di, getDefault) {

	zval *_0;

	_0 = zephir_fetch_static_property_ce(phalcon_di_ce, SL("_default") TSRMLS_CC);
	RETURN_CTORW(_0);

}

/**
 * Resets the internal default DI
 */
PHP_METHOD(Phalcon_Di, reset) {

	zephir_update_static_property_ce(phalcon_di_ce, SL("_default"), &ZEPHIR_GLOBAL(global_null) TSRMLS_CC);

}

/**
 * Loads services from a yaml file.
 *
 *
 * $di->loadFromYaml(
 *     "path/services.yaml",
 *     [
 *         "!approot" => function ($value) {
 *             return dirname(__DIR__) . $value;
 *         }
 *     ]
 * );
 *
 *
 * And the services can be specified in the file as:
 *
 *
 * myComponent:
 *     className: \Acme\Components\MyComponent
 *     shared: true
 *
 * group:
 *     className: \Acme\Group
 *     arguments:
 *         - type: service
 *           name: myComponent
 *
 * user:
 *    className: \Acme\User
 *
 *
 * @link https://docs.phalconphp.com/en/latest/reference/di.html
 */
PHP_METHOD(Phalcon_Di, loadFromYaml) {

	zend_long ZEPHIR_LAST_CALL_STATUS;
	zval *callbacks = NULL;
	zval *filePath_param = NULL, *callbacks_param = NULL, *services = NULL;
	zval *filePath = NULL;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 1, 1, &filePath_param, &callbacks_param);

	if (UNEXPECTED(Z_TYPE_P(filePath_param) != IS_STRING && Z_TYPE_P(filePath_param) != IS_NULL)) {
		zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'filePath' must be a string") TSRMLS_CC);
		RETURN_MM_NULL();
	}
	if (EXPECTED(Z_TYPE_P(filePath_param) == IS_STRING)) {
		zephir_get_strval(filePath, filePath_param);
	} else {
		ZEPHIR_INIT_VAR(filePath);
		ZVAL_EMPTY_STRING(filePath);
	}
	if (!callbacks_param) {
		ZEPHIR_INIT_VAR(callbacks);
		array_init(callbacks);
	} else {
	callbacks = callbacks_param;
	}

	ZEPHIR_INIT_VAR(services);
	object_init_ex(services, phalcon_config_adapter_yaml_ce);
	ZEPHIR_CALL_METHOD(NULL, services, "__construct", NULL, 70, filePath, callbacks);
	zephir_check_call_status();
	ZEPHIR_CALL_METHOD(NULL, this_ptr, "loadfromconfig", NULL, 0, services);
	zephir_check_call_status();
	ZEPHIR_MM_RESTORE();

}

/**
 * Loads services from a php config file.
 *
 *
 * $di->loadFromPhp("path/services.php");
 *
 *
 * And the services can be specified in the file as:
 *
 *
 * return [
 *      'myComponent' => [
 *          'className' => '\Acme\Components\MyComponent',
 *          'shared' => true,
 *      ],
 *      'group' => [
 *          'className' => '\Acme\Group',
 *          'arguments' => [
 *              [
 *                  'type' => 'service',
 *                  'service' => 'myComponent',
 *              ],
 *          ],
 *      ],
 *      'user' => [
 *          'className' => '\Acme\User',
 *      ],
 * ];
 *
 *
 * @link https://docs.phalconphp.com/en/latest/reference/di.html
 */
PHP_METHOD(Phalcon_Di, loadFromPhp) {

	zend_long ZEPHIR_LAST_CALL_STATUS;
	zval *filePath_param = NULL, *services = NULL;
	zval *filePath = NULL;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 1, 0, &filePath_param);

	if (UNEXPECTED(Z_TYPE_P(filePath_param) != IS_STRING && Z_TYPE_P(filePath_param) != IS_NULL)) {
		zephir_throw_exception_string(spl_ce_InvalidArgumentException, SL("Parameter 'filePath' must be a string") TSRMLS_CC);
		RETURN_MM_NULL();
	}
	if (EXPECTED(Z_TYPE_P(filePath_param) == IS_STRING)) {
		zephir_get_strval(filePath, filePath_param);
	} else {
		ZEPHIR_INIT_VAR(filePath);
		ZVAL_EMPTY_STRING(filePath);
	}

	ZEPHIR_INIT_VAR(services);
	object_init_ex(services, phalcon_config_adapter_php_ce);
	ZEPHIR_CALL_METHOD(NULL, services, "__construct", NULL, 71, filePath);
	zephir_check_call_status();
	ZEPHIR_CALL_METHOD(NULL, this_ptr, "loadfromconfig", NULL, 0, services);
	zephir_check_call_status();
	ZEPHIR_MM_RESTORE();

}

/**
 * Loads services from a Config object.
 */
PHP_METHOD(Phalcon_Di, loadFromConfig) {

	zend_bool _3$$3;
	HashTable *_1;
	HashPosition _0;
	zephir_fcall_cache_entry *_6 = NULL;
	zend_long ZEPHIR_LAST_CALL_STATUS;
	zval *config, *services = NULL, *name = NULL, *service = NULL, **_2, *_4$$3 = NULL, *_5$$3 = NULL;

	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 1, 0, &config);

	ZEPHIR_CALL_METHOD(&services, config, "toarray", NULL, 0);
	zephir_check_call_status();
	zephir_is_iterable(services, &_1, &_0, 0, 0, "phalcon/di.zep", 551);
	for (
	  ; zend_hash_get_current_data_ex(_1, (void**) &_2, &_0) == SUCCESS
	  ; zend_hash_move_forward_ex(_1, &_0)
	) {
		ZEPHIR_GET_HMKEY(name, _1, _0);
		ZEPHIR_GET_HVALUE(service, _2);
		_3$$3 = zephir_array_isset_string(service, SS("shared"));
		if (_3$$3) {
			ZEPHIR_OBS_NVAR(_4$$3);
			zephir_array_fetch_string(&_4$$3, service, SL("shared"), PH_NOISY, "phalcon/di.zep", 549 TSRMLS_CC);
			_3$$3 = zephir_is_true(_4$$3);
		}
		ZEPHIR_INIT_NVAR(_5$$3);
		ZVAL_BOOL(_5$$3, _3$$3);
		ZEPHIR_CALL_METHOD(NULL, this_ptr, "set", &_6, 0, name, service, _5$$3);
		zephir_check_call_status();
	}
	ZEPHIR_MM_RESTORE();

}

redpajama_set_name: RedPajamaGithub