package Ġpw . bin om . builder . web Ċ Ċ import Ġpw . bin om . Base 6 4 Decode Append able Ċ import Ġpw . bin om . URL Ċ import Ġpw . bin om . builder . Resources Ċ import Ġpw . bin om . builder . server . Path Handler Ċ import Ġpw . bin om . builder . server . equal Ċ import Ġpw . bin om . builder . server . method Ċ import Ġpw . bin om . builder . server . plus Ċ import Ġpw . bin om . io . ByteArray OutputStream Ċ import Ġpw . bin om . io . http . Headers Ċ import Ġpw . bin om . io . http Server . HttpRequest Ċ import Ġpw . bin om . io . http Server . HttpResponse Ċ import Ġpw . bin om . io . utf 8 Append able Ċ Ċ class ĠWeb Ui Handler ( val Ġurl : ĠURL ) Ġ: ĠPath Handler () Ġ{ ĊĊĠĠĠ Ġval Ġkotlin _ js Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġval Ġdecoder Ġ= ĠBase 6 4 Decode Append able ( data ) ĊĠĠĠĠĠĠĠ ĠResources . kotlin _ js . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecoder . append ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdata . toByteArray () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġjson _ js Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġval Ġdecoder Ġ= ĠBase 6 4 Decode Append able ( data ) ĊĠĠĠĠĠĠĠ ĠResources . json _ js . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecoder . append ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdata . toByteArray () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġcommon _ js Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġval Ġdecoder Ġ= ĠBase 6 4 Decode Append able ( data ) ĊĠĠĠĠĠĠĠ ĠResources . common _ js . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecoder . append ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdata . toByteArray () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġrpc Json _ js Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġval Ġdecoder Ġ= ĠBase 6 4 Decode Append able ( data ) ĊĠĠĠĠĠĠĠ ĠResources . rpc Json _ js . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecoder . append ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdata . toByteArray () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġmode _ sh _ js Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġval Ġdecoder Ġ= ĠBase 6 4 Decode Append able ( data ) ĊĠĠĠĠĠĠĠ ĠResources . mode _ sh _ js . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecoder . append ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdata . toByteArray () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġrpc _ js Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġval Ġdecoder Ġ= ĠBase 6 4 Decode Append able ( data ) ĊĠĠĠĠĠĠĠ ĠResources . rpc _ js . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecoder . append ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdata . toByteArray () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġcore _ js Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġval Ġdecoder Ġ= ĠBase 6 4 Decode Append able ( data ) ĊĠĠĠĠĠĠĠ ĠResources . core _ js . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecoder . append ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdata . toByteArray () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġcss _ js Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġval Ġdecoder Ġ= ĠBase 6 4 Decode Append able ( data ) ĊĠĠĠĠĠĠĠ ĠResources . css _ js . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecoder . append ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdata . toByteArray () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġace _ js Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġval Ġdecoder Ġ= ĠBase 6 4 Decode Append able ( data ) ĊĠĠĠĠĠĠĠ ĠResources . ace _ js . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecoder . append ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdata . toByteArray () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġtomorrow _ night _ js Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġval Ġdecoder Ġ= ĠBase 6 4 Decode Append able ( data ) ĊĠĠĠĠĠĠĠ ĠResources . tom orrow _ night _ js . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecoder . append ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdata . toByteArray () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġweb _ js Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġval Ġdecoder Ġ= ĠBase 6 4 Decode Append able ( data ) ĊĠĠĠĠĠĠĠ ĠResources . web _ js . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecoder . append ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdata . toByteArray () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġfilter ( method (" GET ")) Ġ{ Ġr , Ġq Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . status Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġout Ġ= Ġq . output . utf 8 Append able () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . add Header ( Headers . CONTENT _ TYPE , Ġ" text / html ; Ġcharset = utf - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout . append ("< html >< script > var Ġserver Url =' "). append ( url . toString ()). append (" '; </ script >") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ("< body ></ body >") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ("< script Ġsrc =\" ${ url . toString (). remove Suffix ("/") }/ web / kotlin . js \"></ script >") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ("< script Ġsrc =\" ${ url . toString (). remove Suffix ("/") }/ web / ace . js \"></ script >") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ("< script Ġsrc =\" ${ url . toString (). remove Suffix ("/") }/ web / mode - sh . js \"></ script >") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ("< script Ġsrc =\" ${ url . toString (). remove Suffix ("/") }/ web / core . js \"></ script >") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ("< script Ġsrc =\" ${ url . toString (). remove Suffix ("/") }/ web / json . js \"></ script >") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ("< script Ġsrc =\" ${ url . toString (). remove Suffix ("/") }/ web / rpc . js \"></ script >") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ("< script Ġsrc =\" ${ url . toString (). remove Suffix ("/") }/ web / rpc Json . js \"></ script >") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ("< script Ġsrc =\" ${ url . toString (). remove Suffix ("/") }/ web / common . js \"></ script >") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ("< script Ġsrc =\" ${ url . toString (). remove Suffix ("/") }/ web / org . tls ys . css . js \"></ script >") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ("< script Ġsrc =\" ${ url . toString (). remove Suffix ("/") }/ web / web . js \"></ script >") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ("< link Ġhref =\" https :// fonts . googleapis . com / css ? family = Roboto & display = swap \" Ġrel =\" stylesheet \"> ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ("</ html >") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . flush () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfilter ( method (" GET ") Ġ+ Ġequal (" web / kotlin . js ")) Ġ{ Ġr , Ġq Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . status Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . add Header ( Headers . CONTENT _ TYPE , Ġ" application / javascript ; Ġcharset = utf - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . write ( kotlin _ js ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . flush () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfilter ( method (" GET ") Ġ+ Ġequal (" web / ace . js ")) Ġ{ Ġr , Ġq Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . status Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . add Header ( Headers . CONTENT _ TYPE , Ġ" application / javascript ; Ġcharset = utf - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . write ( ace _ js ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . flush () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfilter ( method (" GET ") Ġ+ Ġequal (" web / mode - sh . js ")) Ġ{ Ġr , Ġq Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . status Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . add Header ( Headers . CONTENT _ TYPE , Ġ" application / javascript ; Ġcharset = utf - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . write ( mode _ sh _ js ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . flush () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfilter ( method (" GET ") Ġ+ Ġequal (" web / web . js ")) Ġ{ Ġr , Ġq Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . status Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . add Header ( Headers . CONTENT _ TYPE , Ġ" application / javascript ; Ġcharset = utf - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . write ( web _ js ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . flush () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġfilter ( method (" GET ") Ġ+ Ġequal (" web / theme - tom orrow _ night . js ")) Ġ{ Ġr , Ġq Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . status Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . add Header ( Headers . CONTENT _ TYPE , Ġ" application / javascript ; Ġcharset = utf - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . write ( tom orrow _ night _ js ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . flush () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfilter ( method (" GET ") Ġ+ Ġequal (" web / org . tls ys . css . js ")) Ġ{ Ġr , Ġq Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . status Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . add Header ( Headers . CONTENT _ TYPE , Ġ" application / javascript ; Ġcharset = utf - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . write ( css _ js ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . flush () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfilter ( method (" GET ") Ġ+ Ġequal (" web / json . js ")) Ġ{ Ġr , Ġq Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . status Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . add Header ( Headers . CONTENT _ TYPE , Ġ" application / javascript ; Ġcharset = utf - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . write ( json _ js ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . flush () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfilter ( method (" GET ") Ġ+ Ġequal (" web / rpc Json . js ")) Ġ{ Ġr , Ġq Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . status Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . add Header ( Headers . CONTENT _ TYPE , Ġ" application / javascript ; Ġcharset = utf - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . write ( rpc Json _ js ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . flush () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfilter ( method (" GET ") Ġ+ Ġequal (" web / common . js ")) Ġ{ Ġr , Ġq Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . status Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . add Header ( Headers . CONTENT _ TYPE , Ġ" application / javascript ; Ġcharset = utf - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . write ( common _ js ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . flush () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfilter ( method (" GET ") Ġ+ Ġequal (" web / rpc . js ")) Ġ{ Ġr , Ġq Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . status Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . add Header ( Headers . CONTENT _ TYPE , Ġ" application / javascript ; Ġcharset = utf - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . write ( rpc _ js ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . flush () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfilter ( method (" GET ") Ġ+ Ġequal (" web / core . js ")) Ġ{ Ġr , Ġq Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . status Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . add Header ( Headers . CONTENT _ TYPE , Ġ" application / javascript ; Ġcharset = utf - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . write ( core _ js ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq . output . flush () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġrequest ( req : ĠHttpRequest , Ġresp : ĠHttpResponse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . request ( req , Ġresp ) ĊĠĠĠ Ġ} Ċ }