import java.util.* ;
import java.lang.* ;
import java.util.concurrent.* ;
class Main
{
{
ExecutorService executorService = Executors.newFixedThreadPool ( 1 ) ;
FutureTask
< Object
> futureTask
= new FutureTask
< Object
> ( new Runnable ( ) { public void run( )
{
System .
out .
println ( "Hello async world!" ) ; try
{
}
{
System .
out .
println ( "Err: " + interruptedException
) ; }
System .
out .
println ( "I'm finally done" ) ; }
} , null ) ;
System .
out .
println ( "Defined" ) ; executorService.execute ( futureTask) ;
System .
out .
println ( "Running" ) ; while ( ! futureTask.isDone ( ) )
{
System .
out .
println ( "Task not yet completed." ) ;
try
{
}
{
}
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLnV0aWwuY29uY3VycmVudC4qOwoKY2xhc3MgTWFpbgp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkJlZm9yZSIpOwogICAgICAgIEV4ZWN1dG9yU2VydmljZSBleGVjdXRvclNlcnZpY2UgPSBFeGVjdXRvcnMubmV3Rml4ZWRUaHJlYWRQb29sKDEpOwoJCUZ1dHVyZVRhc2s8T2JqZWN0PiBmdXR1cmVUYXNrID0gbmV3IEZ1dHVyZVRhc2s8T2JqZWN0PihuZXcgUnVubmFibGUoKSB7CiAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSGVsbG8gYXN5bmMgd29ybGQhIik7CiAgICAgICAgICAgIHRyeQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDEwMDApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBpbnRlcnJ1cHRlZEV4Y2VwdGlvbikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcnI6ICIgKyBpbnRlcnJ1cHRlZEV4Y2VwdGlvbik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSSdtIGZpbmFsbHkgZG9uZSIpOwogICAgICAgICAgICB9CgkJfSwgbnVsbCk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEZWZpbmVkIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKG5ldyBEYXRlKCkpOwogICAgICAgIGV4ZWN1dG9yU2VydmljZS5leGVjdXRlKGZ1dHVyZVRhc2spOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUnVubmluZyIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihuZXcgRGF0ZSgpKTsKICAgICAgICB3aGlsZSAoIWZ1dHVyZVRhc2suaXNEb25lKCkpCiAgICAgICAgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRhc2sgbm90IHlldCBjb21wbGV0ZWQuIik7CgogICAgICAgICAgICB0cnkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFRocmVhZC5zbGVlcCgzMDApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBpbnRlcnJ1cHRlZEV4Y2VwdGlvbikKICAgICAgICAgICAgewogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRG9uZSIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihuZXcgRGF0ZSgpKTsKCX0KfQ==