static class Injection { int vmPort; S injectionID; } static Injection injectTo(int vmPort, S progID) { ret injectTo(String.valueOf(vmPort), progID); } static Injection injectTo(S vmName, S progID) { S line = format3("Please inject program *.", progID); temp DialogIO injectionPoint = findBot(isInteger(vmName) ? vmName : "This is a JavaX VM. " + vmName); if (injectionPoint == null) null; injectionPoint.readLine(); S answer = injectionPoint.askLoudly(line); new Matches m; if (match3("OK. Injection ID: *", answer, m)) { new Injection i; i.vmPort = injectionPoint.getSocket().getPort(); i.injectionID = m.unq(0); ret i; } throw fail(answer); }