// Path: src/com/github/nukc/plugin/axml/utils/Pair.java
// public class Pair<T1,T2> {
// 	public T1 first;
// 	public T2 second;
// 
// 	public Pair(T1 t1, T2 t2){
// 		first = t1;
// 		second = t2;
// 	}
// 	
// 	public Pair(){}
// }


import com.github.nukc.plugin.axml.utils.Pair;
import java.io.IOException;
import java.util.Stack;
		mRoot = new BNSNode();
		mVisitor = new Stack<BXMLNode>();
	}
	
	public void print(IVisitor visitor){
		mRoot.accept(visitor);
	}
	
	public void write(IntWriter writer) throws IOException{
		write(mRoot, writer);
	}
	
	public void prepare(){
		mSize = 0;
		prepare(mRoot);
	}
	
	private void write(BXMLNode node, IntWriter writer) throws IOException{
		node.writeStart(writer);
		
		if(node.hasChild()){
			for(BXMLNode child : node.getChildren()){
				write(child, writer);
			}
		}
		node.writeEnd(writer);
	}
	
	private void prepare(BXMLNode node){
		node.prepare();
// Path: src/com/github/nukc/plugin/axml/utils/Pair.java
// public class Pair<T1,T2> {
// 	public T1 first;
// 	public T2 second;
// 
// 	public Pair(T1 t1, T2 t2){
// 		first = t1;
// 		second = t2;
// 	}
// 	
// 	public Pair(){}
// }


// Path: src/com/github/nukc/plugin/axml/decode/BXMLTree.java
import com.github.nukc.plugin.axml.utils.Pair;
import java.io.IOException;
import java.util.Stack;

		mRoot = new BNSNode();
		mVisitor = new Stack<BXMLNode>();
	}
	
	public void print(IVisitor visitor){
		mRoot.accept(visitor);
	}
	
	public void write(IntWriter writer) throws IOException{
		write(mRoot, writer);
	}
	
	public void prepare(){
		mSize = 0;
		prepare(mRoot);
	}
	
	private void write(BXMLNode node, IntWriter writer) throws IOException{
		node.writeStart(writer);
		
		if(node.hasChild()){
			for(BXMLNode child : node.getChildren()){
				write(child, writer);
			}
		}
		node.writeEnd(writer);
	}
	
	private void prepare(BXMLNode node){
		node.prepare();
		Pair<Integer,Integer> p = node.getSize();