package Ġcom . tut pro . ba res ip Ċ Ċ class ĠUser Agent ( val Ġu ap : ĠString ) Ġ{ ĊĊĠĠĠ Ġval Ġaccount Ġ= ĠAccount ( Api . ua _ account ( u ap )) ĊĠĠĠ Ġvar Ġregistration Failed Ġ= Ġfalse ĊĊĠĠĠ Ġfun Ġadd ( status : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠB ares ip Service . u as . add ( this ) ĊĠĠĠĠĠĠĠ ĠB ares ip Service . status . add ( status ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġindex Ġ= ĠB ares ip Service . u as . indexOf ( this ) ĊĠĠĠĠĠĠĠ ĠB ares ip Service . u as . remove ( this ) ĊĠĠĠĠĠĠĠ ĠB ares ip Service . status . remove At ( index ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Status ( status : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠB ares ip Service . status [ B ares ip Service . u as . indexOf ( this )] Ġ= Ġstatus ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġu as (): ĠArrayList < UserAgent > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB ares ip Service . u as ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġstatus (): ĠArrayList < Int > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB ares ip Service . status ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġof A or ( a or : ĠString ): ĠUser Agent ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( ua Ġin ĠB ares ip Service . u as ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ua . account . a or Ġ== Ġa or ) Ġreturn Ġua ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġof Domain ( domain : ĠString ): ĠUser Agent ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( ua Ġin ĠB ares ip Service . u as ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Utils . a or Domain ( ua . account . a or ) Ġ== Ġdomain ) Ġreturn Ġua ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġof U ap ( u ap : ĠString ): ĠUser Agent ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( ua Ġin ĠB ares ip Service . u as ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ua . u ap Ġ== Ġu ap ) Ġreturn Ġua ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġua Alloc ( uri : ĠString ): ĠUser Agent ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġu ap Ġ= ĠApi . ua _ alloc ( uri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( u ap Ġ!= Ġ"") Ġreturn ĠUser Agent ( u ap ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" B ares ip ", Ġ" Failed Ġto Ġallocate ĠUser Agent Ġfor Ġ$ uri ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġfind A or Index ( a or : ĠString ): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin ĠB ares ip Service . u as . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( B ares ip Service . u as [ i ]. account . a or Ġ== Ġa or ) Ġreturn Ġi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġregister () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( ua Ġin ĠB ares ip Service . u as ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ua . account . reg int Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Api . ua _ register ( ua . u ap ) Ġ!= Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" B ares ip ", Ġ" Failed Ġto Ġregister Ġ${ ua . account . a or }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ