package Ġcom . program mers box . help ful tools Ċ Ċ import Ġandroid . content . Context Ċ // import Ġcom . program mers box . dsl annotations . Dsl Class Ċ // import Ġcom . program mers box . dsl annotations . Dsl Field Ċ import Ġcom . program mers box . gson utils . fromJson Ċ import Ġcom . program mers box . help ful utils . random Remove Ċ import Ġcom . program mers box . help ful utils . shared Pref Delegate Ċ import Ġorg . intellij . lang . annotations . Language Ċ Ċ fun ĠgetRandom Name () Ġ= Ġtry Ġ{ ĊĠĠĠ ĠNames . names . random Remove () Ċ } Ġcatch Ġ( e : ĠIndex OutOfBoundsException ) Ġ{ ĊĠĠĠ Ġ" Hello " Ċ } Ċ Ċ var ĠContext . random Number : ĠInt ? Ġby Ġshared Pref Delegate () Ċ Ċ @ Dsl Marker Ċ annotation Ġclass ĠD sl Test Marker Ċ Ċ @ Dsl Marker Ċ annotation Ġclass ĠD sl Test 2 Marker Ċ Ċ //@ Dsl Class ( dsl Marker Ġ= ĠD sl Test Marker :: class ) Ċ class ĠNew Dsl < T , ĠR > Ġ{ ĊĠĠĠ Ġ//@ Dsl Field (" item Number ") ĊĠĠĠ Ġvar Ġnumber Item Ġ= Ġ 4 ĊĊĠĠĠ Ġ//@ Dsl Field ( name Ġ= Ġ" thing To Test ", Ġd sl Marker Ġ= ĠD sl Test 2 Marker :: class , Ġcomment Ġ= Ġ" This Ġis Ġa Ġcomment ") ĊĠĠĠ Ġvar Ġtest Thing : Ġ() Ġ-> ĠUnit Ġ= Ġ{} ĊĠĠĠ Ġvar Ġrun Action : Ġ() Ġ-> ĠUnit Ġ= Ġ{} ĊĠĠĠ Ġvar Ġparam One : Ġ( Int , ĠString ) Ġ-> ĠUnit Ġ= Ġ{ Ġ_, Ġ_ Ġ-> Ġ} ĊĠĠĠ Ġvar Ġparam Two : Ġ( Int ) Ġ-> ĠUnit Ġ= Ġ{} ĊĠĠĠ Ġvar Ġparam Three : Ġ( Int ) Ġ-> ĠString Ġ= Ġ{ Ġ"$ it " Ġ} ĊĠĠĠ Ġvar Ġparam Four Ġ= Ġfun (_ : ĠInt ) Ġ= ĠUnit ĊĠĠĠ Ġvar Ġparam Five Ġ= Ġfun (_ : ĠT , Ġ_: ĠR ) Ġ= ĠUnit ĊĠĠĠ Ġvar Ġparam Six Ġ= Ġfun (_ : ĠT ) Ġ= ĠUnit ĊĠĠĠ Ġvar Ġt Item : ĠT ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġr Item : ĠR ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġbuild () Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Thing () ĊĠĠĠĠĠĠĠ Ġrun Action () ĊĠĠĠĠĠĠĠ Ġparam One ( number Item , Ġparam Three ( number Item )) ĊĠĠĠĠĠĠĠ Ġparam Two ( number Item ) ĊĠĠĠĠĠĠĠ Ġparam Four ( number Item ) ĊĠĠĠĠĠĠĠ Ġr Item ?. let Ġ{ Ġt Item ?. let Ġ{ Ġit 1 Ġ-> Ġparam Five ( it 1 , Ġit ) Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġt Item ?. let Ġ{ Ġparam Six ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġ< T , ĠR > Ġbuild Dsl ( block : ĠNew Dsl < T , ĠR >. () Ġ-> ĠUnit ) Ġ= ĠNew Dsl < T , ĠR >(). apply ( block ). build () ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Language (" JSON ") Ċ val Ġcolor Api Black Ġ= Ġ""" ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġ" XYZ ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" X ": Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Y ": Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Z ": Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" fraction ": Ġ{}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" value ": Ġ" XYZ ( 0 , Ġ 0 , Ġ 0 )" ĊĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠ Ġ"_ embedded ": Ġ{}, ĊĠĠĠĠĠĠĠĠĠ Ġ"_ links ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" self ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" href ": Ġ"/ id ? hex \ u 0 0 3 d 0 0 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠ Ġ" c my k ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" fraction ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" k ": Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" k ": Ġ 1 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" value ": Ġ" c my k ( NaN , ĠNaN , ĠNaN , Ġ 1 0 0 )" ĊĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠ Ġ" contrast ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" value ": Ġ"# ffffff " ĊĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠ Ġ" hex ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" clean ": Ġ" 0 0 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" value ": Ġ"# 0 0 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠ Ġ" h sl ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" fraction ": Ġ{}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" h ": Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" l ": Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" s ": Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" value ": Ġ" h sl ( 0 , Ġ 0 %, Ġ 0 % )" ĊĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠ Ġ" h sv ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" fraction ": Ġ{}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" h ": Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" s ": Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" v ": Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" value ": Ġ" h sv ( 0 , Ġ 0 %, Ġ 0 % )" ĊĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠ Ġ" image ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" bare ": Ġ" http :// www . the color api . com / id ? format \ u 0 0 3 d svg \ u 0 0 2 6 named \ u 0 0 3 df alse \ u 0 0 2 6 hex \ u 0 0 3 d 0 0 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" named ": Ġ" http :// www . the color api . com / id ? format \ u 0 0 3 d svg \ u 0 0 2 6 hex \ u 0 0 3 d 0 0 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠ Ġ" name ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" closest _ named _ hex ": Ġ"# 0 0 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" distance ": Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" exact _ match _ name ": Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" value ": Ġ" Black " ĊĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠ Ġ" rgb ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" b ": Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" fraction ": Ġ{}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" g ": Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" r ": Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" value ": Ġ" rgb ( 0 , Ġ 0 , Ġ 0 )" ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ """. trim Indent (). fromJson < Color Api >() !!