package Ġcom . mir ce ab ucer z an . kotlin machine . internal Ċ Ċ sealed Ġclass ĠState ( val Ġname : ĠString ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠState ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġother . name ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġname . hashCode () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" State ( name ='$ name ')" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠS 0 Ġ: ĠState (" S 0 ") ĊĠĠĠ Ġclass ĠS 1 Ġ: ĠState (" S 1 ") ĊĠĠĠ Ġclass ĠS 2 Ġ: ĠState (" S 2 ") ĊĠĠĠ Ġclass ĠS 3 Ġ: ĠState (" S 3 ") Ċ } ĊĊ Ċ sealed Ġclass ĠInput ( val Ġname : ĠString ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠInput ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġother . name ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġname . hashCode () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Input ( name ='$ name ')" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠI 0 Ġ: ĠInput (" I 0 ") ĊĠĠĠ Ġclass ĠI 1 Ġ: ĠInput (" I 1 ") ĊĠĠĠ Ġclass ĠI 2 Ġ: ĠInput (" I 2 ") ĊĠĠĠ Ġclass ĠI 3 Ġ: ĠInput (" I 3 ") ĊĠĠĠ Ġclass ĠI 4 Ġ: ĠInput (" I 4 ") ĊĠĠĠ Ġclass ĠI 5 Ġ: ĠInput (" I 5 ") ĊĠĠĠ Ġclass ĠI 6 Ġ: ĠInput (" I 6 ") Ċ }