package Ġtasks Ċ Ċ import Ġcontributors .* Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ suspend Ġfun Ġload Contribut ors Progress ( ĊĠĠĠ Ġservice : ĠGitHub Service , ĊĠĠĠ Ġreq : ĠRequest Data , ĊĠĠĠ Ġupdate Results : Ġsuspend Ġ( List < User >, Ġcompleted : ĠBoolean ) Ġ-> ĠUnit Ċ ) Ġ Ġ{ ĊĠĠĠ Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrepos Ġ= Ġservice . get Org Repos ( req . org ). body List () ĊĠĠĠĠĠĠĠ Ġval Ġusers Ġ= Ġmutable ListOf < User >() ĊĠĠĠĠĠĠĠ Ġfor Ġ(( index , Ġrepo : Repo ) Ġin Ġrepos . with Index ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontributors Ġ= Ġservice . get Repo Contribut ors ( req . org , Ġrepo . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġlog Users ( repo , Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. body List () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġusers . addAll ( contributors ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser List Ġ= Ġusers . aggregate () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġusers . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusers . addAll ( user List ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Results ( user List , Ġindex Ġ== Ġrepos . last Index ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ