// Path: leotask/src/core/org/leores/util/U.java
// public class U extends SerialUtil {
// 
// }
// 
// Path: leotask/src/core/org/leores/util/able/NewInstanceable.java
// public interface NewInstanceable<E> {
// 	public E newInstance();
// }
// 
// Path: leotask/src/core/org/leores/util/able/Processable1.java
// public interface Processable1<R, A> {
// 	public R process(A a);
// 
// 	public static class MaxListOutSize<A> implements Processable1<String, A> {
// 		protected Integer mSize;// null means do no limit list out size
// 
// 		public MaxListOutSize(Integer mSize) {
// 			this.mSize = mSize;
// 		}
// 
// 		public String process(A a) {
// 			String rtn = null;
// 			if (a != null && U.bAssignable(List.class, a.getClass())) {
// 				List lObj = (List) a;
// 				if (mSize != null && mSize >= 0 && mSize < lObj.size()) {
// 					List lOut = lObj.subList(0, mSize);
// 					rtn = lOut + "...";
// 				} else {
// 					rtn = lObj + "";
// 				}
// 			}
// 			return rtn;
// 		}
// 	}
// 
// 	public static class ArrayToString<A> implements Processable1<String, A> {
// 		public String process(A a) {
// 			String rtn = a + "";
// 			if (a != null && a instanceof Object[]) {
// 				rtn = "[";
// 				Object[] aa = (Object[]) a;
// 				for (int i = 0; i < aa.length; i++) {
// 					rtn += aa[i];
// 					if (i + 1 < aa.length) {
// 						rtn += ",";
// 					}
// 				}
// 				rtn += "]";
// 			}
// 			return rtn;
// 		}
// 	}
// 
// 	public static class Expression<A> implements Processable1<A, A> {
// 		public String sElement, sExpression;
// 
// 		public Expression(String sElement, String sExpression) {
// 			this.sElement = sElement;
// 			this.sExpression = sExpression;
// 		}
// 
// 		public Expression(String sExpression) {
// 			this("%", sExpression);
// 		}
// 
// 		public A process(A a) {
// 			A rtn = a;
// 			if (a != null) {
// 				String sExpToEval = sExpression.replace(sElement, a + "");
// 				BigDecimal bdEvalRtn = U.eval1Expression(sExpToEval);
// 				if (bdEvalRtn != null) {
// 					rtn = (A) U.newInstance(a.getClass(), bdEvalRtn + "");
// 				} else {
// 					rtn = null;
// 				}
// 			}
// 			return rtn;
// 		}
// 
// 	}
// }


import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.leores.util.U;
import org.leores.util.able.NewInstanceable;
import org.leores.util.able.Processable1;

								boolean bData = false;
								do {
									sLine = fReader.readLine();
									if (sLine != null) {
										sLine = sLine.trim();
										if (fileSection != null) {
											bData = true;
										}
										tokens = sLine.split(sDeRegex);
										if (tokens.length >= 1) {
											if ("NodeInfo".equals(tokens[0]) || "SubNetworks".equals(tokens[0])) {
												fileSection = tokens[0];
												bData = false;
											}
											if (bData) {
												if ("NodeInfo".equals(fileSection)) {
													if (tokens.length >= 1) {
														Integer nid = Integer.parseInt(tokens[0]);
														Integer nid2 = null;
														String ninfo = null;
														if (tokens.length >= 2 && !"null".equals(tokens[1])) {
															nid2 = Integer.parseInt(tokens[1]);
														}
														if (tokens.length >= 3 && !"null".equals(tokens[2])) {
															ninfo = tokens[2];
														}
														Node node = nets.getNode(nid);
														if (node != null) {
															node.initial(nid, nid2, ninfo);
														} else {

// Path: leotask/src/core/org/leores/util/U.java
// public class U extends SerialUtil {
// 
// }
// 
// Path: leotask/src/core/org/leores/util/able/NewInstanceable.java
// public interface NewInstanceable<E> {
// 	public E newInstance();
// }
// 
// Path: leotask/src/core/org/leores/util/able/Processable1.java
// public interface Processable1<R, A> {
// 	public R process(A a);
// 
// 	public static class MaxListOutSize<A> implements Processable1<String, A> {
// 		protected Integer mSize;// null means do no limit list out size
// 
// 		public MaxListOutSize(Integer mSize) {
// 			this.mSize = mSize;
// 		}
// 
// 		public String process(A a) {
// 			String rtn = null;
// 			if (a != null && U.bAssignable(List.class, a.getClass())) {
// 				List lObj = (List) a;
// 				if (mSize != null && mSize >= 0 && mSize < lObj.size()) {
// 					List lOut = lObj.subList(0, mSize);
// 					rtn = lOut + "...";
// 				} else {
// 					rtn = lObj + "";
// 				}
// 			}
// 			return rtn;
// 		}
// 	}
// 
// 	public static class ArrayToString<A> implements Processable1<String, A> {
// 		public String process(A a) {
// 			String rtn = a + "";
// 			if (a != null && a instanceof Object[]) {
// 				rtn = "[";
// 				Object[] aa = (Object[]) a;
// 				for (int i = 0; i < aa.length; i++) {
// 					rtn += aa[i];
// 					if (i + 1 < aa.length) {
// 						rtn += ",";
// 					}
// 				}
// 				rtn += "]";
// 			}
// 			return rtn;
// 		}
// 	}
// 
// 	public static class Expression<A> implements Processable1<A, A> {
// 		public String sElement, sExpression;
// 
// 		public Expression(String sElement, String sExpression) {
// 			this.sElement = sElement;
// 			this.sExpression = sExpression;
// 		}
// 
// 		public Expression(String sExpression) {
// 			this("%", sExpression);
// 		}
// 
// 		public A process(A a) {
// 			A rtn = a;
// 			if (a != null) {
// 				String sExpToEval = sExpression.replace(sElement, a + "");
// 				BigDecimal bdEvalRtn = U.eval1Expression(sExpToEval);
// 				if (bdEvalRtn != null) {
// 					rtn = (A) U.newInstance(a.getClass(), bdEvalRtn + "");
// 				} else {
// 					rtn = null;
// 				}
// 			}
// 			return rtn;
// 		}
// 
// 	}
// }


// Path: leotask/src/core/org/leores/net/Networks.java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.leores.util.U;
import org.leores.util.able.NewInstanceable;
import org.leores.util.able.Processable1;

								boolean bData = false;
								do {
									sLine = fReader.readLine();
									if (sLine != null) {
										sLine = sLine.trim();
										if (fileSection != null) {
											bData = true;
										}
										tokens = sLine.split(sDeRegex);
										if (tokens.length >= 1) {
											if ("NodeInfo".equals(tokens[0]) || "SubNetworks".equals(tokens[0])) {
												fileSection = tokens[0];
												bData = false;
											}
											if (bData) {
												if ("NodeInfo".equals(fileSection)) {
													if (tokens.length >= 1) {
														Integer nid = Integer.parseInt(tokens[0]);
														Integer nid2 = null;
														String ninfo = null;
														if (tokens.length >= 2 && !"null".equals(tokens[1])) {
															nid2 = Integer.parseInt(tokens[1]);
														}
														if (tokens.length >= 3 && !"null".equals(tokens[2])) {
															ninfo = tokens[2];
														}
														Node node = nets.getNode(nid);
														if (node != null) {
															node.initial(nid, nid2, ninfo);
														} else {

															U.tLog("Error NodeInfo: node.id=" + nid + " does not exist!");
