// Path: src/main/java/net/fs/utils/MLog.java
// public class MLog {
// 
//     public static void info(Object str) {
//         System.out.println(str);
//     }
// 
// //	public static void println(Object str){
// //		System.out.println(str);
// //	}
// 
//     public static void println(String str) {
//         System.out.println(str);
//     }
// 
// //	public static void println(){
// //		System.out.println();
// //	}
// //	
// //	public static void print(String str){
// //		System.out.print(str);
// //	}
// 
// }


import com.alibaba.fastjson.JSONObject;
import net.fs.rudp.*;
import net.fs.utils.MLog;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;

package net.fs.client;



public class PortMapProcess implements ClientProcessorInterface {

    public Socket srcSocket;
    UDPInputStream tis;
    UDPOutputStream tos;
    String serverAddress = "";
    int serverPort;
    ConnectionUDP conn;
    MapClient mapClient;
    DataInputStream srcIs = null;
    DataOutputStream srcOs = null;

    boolean closed = false;
    boolean success = false;

    public PortMapProcess(MapClient mapClient, Route route, final Socket srcSocket, String serverAddress2, int
            serverPort2, String password_proxy_md5,
                          String dstAddress, final int dstPort) {
        this.mapClient = mapClient;
        this.serverAddress = serverAddress2;
        this.serverPort = serverPort2;

        this.srcSocket = srcSocket;

        try {
            srcIs = new DataInputStream(srcSocket.getInputStream());
            srcOs = new DataOutputStream(srcSocket.getOutputStream());
            conn = route.getConnection(serverAddress, serverPort, null);
            tis = conn.uis;
            tos = conn.uos;


// Path: src/main/java/net/fs/utils/MLog.java
// public class MLog {
// 
//     public static void info(Object str) {
//         System.out.println(str);
//     }
// 
// //	public static void println(Object str){
// //		System.out.println(str);
// //	}
// 
//     public static void println(String str) {
//         System.out.println(str);
//     }
// 
// //	public static void println(){
// //		System.out.println();
// //	}
// //	
// //	public static void print(String str){
// //		System.out.print(str);
// //	}
// 
// }


// Path: src/main/java/net/fs/client/PortMapProcess.java
import com.alibaba.fastjson.JSONObject;
import net.fs.rudp.*;
import net.fs.utils.MLog;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;

package net.fs.client;



public class PortMapProcess implements ClientProcessorInterface {

    public Socket srcSocket;
    UDPInputStream tis;
    UDPOutputStream tos;
    String serverAddress = "";
    int serverPort;
    ConnectionUDP conn;
    MapClient mapClient;
    DataInputStream srcIs = null;
    DataOutputStream srcOs = null;

    boolean closed = false;
    boolean success = false;

    public PortMapProcess(MapClient mapClient, Route route, final Socket srcSocket, String serverAddress2, int
            serverPort2, String password_proxy_md5,
                          String dstAddress, final int dstPort) {
        this.mapClient = mapClient;
        this.serverAddress = serverAddress2;
        this.serverPort = serverPort2;

        this.srcSocket = srcSocket;

        try {
            srcIs = new DataInputStream(srcSocket.getInputStream());
            srcOs = new DataOutputStream(srcSocket.getOutputStream());
            conn = route.getConnection(serverAddress, serverPort, null);
            tis = conn.uis;
            tos = conn.uos;


            JSONObject requestJson = new JSONObject();
