package Ġcom . ba ul supp . ok url . tracing Ċ Ċ import Ġcom . ba ul supp . ok social . output . Usage Exception Ċ import Ġcom . ba ul supp . ok url . tracing . Uri Handler . Companion . load Services Ċ import Ġzip kin 2 . Span Ċ import Ġzip kin 2 . reporter . Reporter Ċ import Ġjava . net . URI Ċ Ċ /** Ċ Ġ* ĠRegistry Ġfor Ġlooking Ġup Ġtransport s Ġby ĠURI . Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠUses Ġthe ĠJar ĠServices Ġmechanism Ġwith Ġservices Ġdefined Ġby Ġ[ Uri Handler ]. Ċ Ġ*/ Ċ class ĠUri Transport Registry ( val Ġhandlers : ĠList < Uri Handler >) Ġ{ ĊĠ Ġprivate Ġfun Ġfind Client ( uri String : ĠString ): ĠReport er < Span > Ġ{ ĊĠĠĠ Ġval Ġuri Ġ= ĠURI . create ( uri String ) ĊĊĠĠĠ Ġreturn Ġhandlers . map NotNull Ġ{ Ġit . build Sender ( uri ) Ġ}. first OrNull () ĊĠĠĠĠĠ Ġ?: Ġthrow ĠUsage Exception (" unknown Ġzip kin Ġsender : Ġ$ uri String ") ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠ Ġfun Ġfrom Services (): ĠUri Transport Registry Ġ{ ĊĠĠĠĠĠ Ġval Ġservices Ġ= Ġload Services () ĊĊĠĠĠĠĠ Ġreturn ĠUri Transport Registry ( services ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfor Uri ( uri : ĠString ): ĠReport er < Span > Ġ{ ĊĠĠĠĠĠ Ġreturn ĠUri Transport Registry . from Services (). find Client ( uri ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ