package Ġandroid . support . di Ċ Ċ abstract Ġclass ĠProvide Context Ġ{ ĊĊĠĠĠ Ġabstract Ġfun Ġmodules ( var arg Ġmodule : ĠModule ) ĊĊĠĠĠ Ġabstract Ġfun Ġ< T > Ġsingle ( ĊĠĠĠĠĠĠĠ Ġoverride : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġclazz : ĠClass < T >, ĊĠĠĠĠĠĠĠ Ġfunction : ĠLookup Context . () Ġ-> ĠT ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġabstract Ġfun Ġ< T > Ġfactory ( ĊĠĠĠĠĠĠĠ Ġoverride : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġshare In : ĠShare Scope Ġ= ĠShare Scope . None , ĊĠĠĠĠĠĠĠ Ġclazz : ĠClass < T >, ĊĠĠĠĠĠĠĠ Ġfunction : ĠLookup Context . () Ġ-> ĠT ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT > Ġsingle ( ĊĠĠĠĠĠĠĠ Ġoverride : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġno inline Ġfunction : ĠLookup Context . () Ġ-> ĠT ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsingle ( override , ĠT :: class . java , Ġfunction ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT > Ġfactory ( ĊĠĠĠĠĠĠĠ Ġoverride : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġshare In : ĠShare Scope Ġ= ĠShare Scope . None , ĊĠĠĠĠĠĠĠ Ġno inline Ġfunction : ĠLookup Context . () Ġ-> ĠT ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfactory ( override , Ġshare In , ĠT :: class . java , Ġfunction ) ĊĠĠĠ Ġ} Ċ }