package Ġnet . cord a . tools . shell Ċ Ċ import Ġnet . cord a . core . messaging . C ord a RP CO ps Ċ import Ġjava . lang . reflect . Invocation TargetException Ċ import Ġjava . lang . reflect . Proxy Ċ Ċ fun Ġmake RP CO ps ( getC ord a RP CO ps : Ġ( username : ĠString , Ġcredential : ĠString ) Ġ-> ĠC ord a RP CO ps , Ġusername : ĠString , Ġcredential : ĠString ): ĠC ord a RP CO ps Ġ{ ĊĠĠĠ Ġval Ġc ord a RP CO ps : ĠC ord a RP CO ps Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠgetC ord a RP CO ps ( username , Ġcredential ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn ĠProxy . new Proxy Instance ( C ord a RP CO ps :: class . java . class Loader , ĠarrayOf ( C ord a RP CO ps :: class . java ), Ġ{ Ġ_, Ġmethod , Ġargs Ġ-> ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod . invoke ( cord a RP CO ps , Ġ*( args Ġ?: ĠarrayOf ())) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInvocation TargetException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUn pack Ġexception . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġe . target Exception ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ) Ġas ĠC ord a RP CO ps Ċ } Ċ