package Ġjmp 0 . app dbg . external . impl . i ore direct Ċ Ċ import Ġjmp 0 . app dbg . external . impl . Generator Base Ċ import Ġjmp 0 . app dbg . external . osx . creator . java . io . File Creator Ċ import Ġjmp 0 . app dbg . external . osx . creator . java . io . I Path Interceptor Creator Ċ import Ġjmp 0 . app dbg . external . osx . creator . java . io . Path Interceptor Manager Creator Ċ import Ġjava . lang . reflect . Invocation Handler Ċ import Ġjava . lang . reflect . Method Ċ import Ġjava . lang . reflect . Proxy Ċ import Ġjava . net . URI Ċ Ċ object ĠI OR ed irect Generator : ĠGenerator Base () Ġ{ ĊĊĠĠĠ Ġfun Ġgenerate (){ ĊĠĠĠĠĠĠĠ Ġval Ġgenerate List Ġ= ĠlistOf ( I Path Interceptor Creator (), ĠPath Interceptor Manager Creator () Ġ, ĠFile Creator ()) ĊĠĠĠĠĠĠĠ Ġgenerate List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . create ( dir , true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest (){ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclazz Ġ= ĠClass . forName (" java . io . Path Interceptor Manager ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi Path Interceptor Clazz Ġ= ĠClass . forName (" java . io . I Path Interceptor ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmethod Ġ= Ġclazz . getDeclared Method (" getInstance ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġins Ġ= Ġmethod . invoke ( null ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfield Ġ= Ġclazz . getDeclared Field (" name Interceptor ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield . set ( ins , ĠProxy . new Proxy Instance ( null , ĠarrayOf ( i Path Interceptor Clazz ), object : ĠInvocation Handler Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinvoke ( proxy : ĠAny ?, Ġmethod : ĠMethod , Ġargs : ĠArray < out ĠAny >): ĠAny Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( method . name Ġ== Ġ" path Filter "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( args [ 0 ]){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString ->{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstr Ġ= Ġargs [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġstr ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠURI Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuri Ġ= Ġargs [ 0 ] Ġas ĠURI ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġuri ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAny () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠĠĠĠĠ Ġ} catch Ġ( e : Exception ){} ĊĠĠĠ Ġ} Ċ }