package ĠObserver Ċ Ċ class ĠM asr Road Ġ( var Ġpath : String ): Subject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcars Ġ= Ġmutable ListOf < Observer r >() ĊĠĠĠ Ġoverride Ġfun Ġregister Observer ( car : ĠObserver r ) Ġ{ ĊĠĠĠĠĠ Ġcars . add ( car ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove Observer ( car : Observer r ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcars . remove ( car ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnotify Observer s () Ġ{ ĊĠĠĠĠĠ Ġcars . forEach { Ġcar Ġ-> ĊĠĠĠĠĠĠĠ Ġcar . update ( path ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġupdate Path (){ ĊĠĠĠĠĠĠĠ Ġnotify Observer s () ĊĠĠĠ Ġ} Ċ }