package Ġorg . pro meth ist . core . dialog ue Ċ Ċ import Ġorg . pro meth ist . core . type . DateTime Ċ import Ġorg . pro meth ist . core . type . Location Ċ import Ġorg . pro meth ist . core . type . Memory Ċ import Ġkotlin . math . abs Ċ import Ġkotlin . math . round ToInt Ċ Ċ fun ĠBasic Dialog ue . describe ( data : ĠMap < String , ĠAny >): ĠString Ġ{ ĊĠĠĠ Ġval Ġlist Ġ= Ġmutable ListOf < String >() ĊĠĠĠ Ġval Ġis Word Ġ= Ġwhen Ġ( language ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" en " Ġ-> Ġ" is " ĊĠĠĠĠĠĠĠ Ġ" de " Ġ-> Ġ" ist " ĊĠĠĠĠĠĠĠ Ġ" cs " Ġ-> Ġ" je " ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġunsupported Language () ĊĠĠĠ Ġ} ĊĠĠĠ Ġdata . forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġlist . add ("${ it . key } Ġ$ is Word Ġ" Ġ+ Ġdescribe ( it . value )) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġenumerate ( list ) Ċ } Ċ Ċ fun ĠBasic Dialog ue . describe ( data : ĠCollection < String >) Ġ= Ġenumerate ( data ) Ċ Ċ fun ĠBasic Dialog ue . describe ( data : ĠMemory <* >) Ġ= Ġdescribe ( data . value ) Ġ+ Ġindent ( describe ( data . time , ĠBasic Dialog ue . HIGH )) Ċ Ċ fun ĠBasic Dialog ue . describe ( data : ĠLocation ) Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( data . isEmpty Ġ|| Ġdata . latitude Ġ== Ġnull Ġ|| Ġdata . longitude Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( language ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" en " Ġ-> Ġ" unknown " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" de " Ġ-> Ġ" un be kan nt " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" cs " Ġ-> Ġ" ne zn Ã¡m Ã¡ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġunsupported Language () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlat Sec Ġ= Ġ( data . latitude !! Ġ* Ġ 3 6 0 0 ). round ToInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlat Deg Ġ= Ġlat Sec Ġ/ Ġ 3 6 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlat Sec Ġ= ĠMath . abs ( lat Sec Ġ% Ġ 3 6 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlat Min Ġ= Ġlat Sec Ġ/ Ġ 6 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlat Sec Ġ% = Ġ 6 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlng Sec Ġ= Ġ( data . longitude !! Ġ* Ġ 3 6 0 0 ). round ToInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlng Deg Ġ= Ġlng Sec Ġ/ Ġ 3 6 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlng Sec Ġ= ĠMath . abs ( lng Sec Ġ% Ġ 3 6 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlng Min Ġ= Ġlng Sec Ġ/ Ġ 6 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlng Sec Ġ% = Ġ 6 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlat Dir Ġ= Ġif Ġ( lat Deg Ġ>= Ġ 0 ) Ġ" N " Ġelse Ġ" S " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlon Dir Ġ= Ġif Ġ( lng Deg Ġ>= Ġ 0 ) Ġ" E " Ġelse Ġ" W " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ${ abs ( lat Deg )} Â° Ġ$ lat Min ' Ġ$ lat Sec " Ġ$ lat Dir , Ġ${ abs ( lng Deg )} Â° Ġ$ lng Min ' Ġ$ lng Sec " Ġ$ lon Dir """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ("% 8 . 5 f ", Ġdata . latitude ) Ġ+ Ġ", Ġ" Ġ+ ĠString . format ("% 8 . 5 f ", Ġdata . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ fun ĠBasic Dialog ue . describe ( data : ĠAny ?, Ġdetail : ĠInt Ġ= Ġ 0 ) Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLocation Ġ-> Ġdescribe ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDateTime Ġ-> Ġif Ġ( data . is Date ) Ġdescribe Date ( data , Ġdetail ) Ġelse Ġdescribe Time ( data , Ġdetail ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġ" undefined " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġdata . toString () ĊĠĠĠĠĠĠĠ Ġ}