package Ġcom . github . su h inin alex . co def inder . level db Ċ Ċ import Ġjava . io . Data Input Ċ import Ġjava . io . Data Output Ċ Ċ object ĠInt External izer : ĠData External izer < Int > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġread ( data Input : ĠData Input ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdata Input . readInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwrite ( data Output : ĠData Output , Ġdata : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Output . writeInt ( data ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ object ĠString External izer : ĠData External izer < String >{ ĊĠĠĠ Ġoverride Ġfun Ġread ( data Input : ĠData Input ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdata Input . read UTF () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwrite ( data Output : ĠData Output , Ġdata : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Output . write UTF ( data ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ object ĠString List External izer : ĠData External izer < List < String >> Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġread ( data Input : ĠData Input ): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġdata Input . readInt () ĊĠĠĠĠĠĠĠ Ġreturn Ġ( 1 .. size ). map Ġ{ Ġdata Input . read UTF () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwrite ( data Output : ĠData Output , Ġdata : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Output . writeInt ( data . size ) ĊĠĠĠĠĠĠĠ Ġdata . forEach Ġ{ Ġdata Output . write UTF ( it ) Ġ} ĊĠĠĠ Ġ} Ċ }