// Decompiled by Jad v1.5.7f. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) braces deadcode fieldsfirst 
// Source File Name:   TypeDescriptor.java
// Class Version:      45.3

package oracle.sql;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.PrintStream;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.SQLException;
import oracle.jdbc.OracleConnection;
import oracle.jdbc.OracleTypes;
import oracle.jdbc.dbaccess.DBAccess;
import oracle.jdbc.dbaccess.DBError;
import oracle.jdbc.oracore.OracleNamedType;
import oracle.jdbc.oracore.OracleType;
import oracle.jdbc.oracore.OracleTypeADT;
import oracle.jdbc.oracore.OracleTypeCOLLECTION;
import oracle.jdbc.oracore.OracleTypeOPAQUE;

// Referenced classes of package oracle.sql:
//            ArrayDescriptor, OpaqueDescriptor, SQLName, StructDescriptor

// flag ACC_SUPER is set
public abstract class TypeDescriptor
    implements Serializable
{
    // Constants:          241
    // Interfaces:         1
    // Fields:             5
    // Methods:            22
    // Class Attributes:   1


    public static boolean DEBUG_SERIALIZATION = false;
    static final long serialVersionUID = 0x1c11b6d24ed1cf6bL;
    SQLName m_sqlName;
    OracleNamedType m_pickler;
    transient OracleConnection m_conn;

    // Decompiling method: <init>  Signature: ()V
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 3807
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/TypeDescriptor; At 0 5 Range 0 4 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type V At 0 5 Range 0 4 Init 0 fixed
    protected TypeDescriptor()
    {
        super();
        return;
    }

    // Decompiling method: <init>  Signature: (Ljava/lang/String;Ljava/sql/Connection;)V
    // Max stack: 5, #locals: 3, #params: 3
    // Code length: 41 bytes, Code offset: 3850
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/sql/TypeDescriptor; At 0 41 Range 0 40 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 41 Range 0 40 Init 0
    // Parameter  2 added: Name connection Type Ljava/sql/Connection; At 0 41 Range 0 40 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 41 Range 0 40 Init 0 fixed
    protected TypeDescriptor(String s, Connection connection)
        throws SQLException
    {
        super();
        if(s == null || connection == null)
        {
            DBError.check_error(60, "Invalid arguments");
        }
        _setConnection(connection);
        m_sqlName = new SQLName(s, m_conn);
        return;
    }

    // Decompiling method: <init>  Signature: (Loracle/jdbc/oracore/OracleTypeADT;Ljava/sql/Connection;)V
    // Max stack: 2, #locals: 3, #params: 3
    // Code length: 43 bytes, Code offset: 3959
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/sql/TypeDescriptor; At 0 43 Range 0 42 Init 0 fixed
    // Parameter  1 added: Name oracletypeadt Type Loracle/jdbc/oracore/OracleTypeADT; At 0 43 Range 0 42 Init 0
    // Parameter  2 added: Name connection Type Ljava/sql/Connection; At 0 43 Range 0 42 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 43 Range 0 42 Init 0 fixed
    protected TypeDescriptor(OracleTypeADT oracletypeadt, Connection connection)
        throws SQLException
    {
        super();
        if(oracletypeadt == null || connection == null)
        {
            DBError.check_error(60, "Invalid arguments");
        }
        _setConnection(connection);
        m_sqlName = null;
        m_pickler = oracletypeadt;
        m_pickler.setDescriptor(this);
        return;
    }

    // Decompiling method: <init>  Signature: (Loracle/sql/SQLName;Ljava/sql/Connection;)V
    // Max stack: 2, #locals: 3, #params: 3
    // Code length: 30 bytes, Code offset: 4078
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/sql/TypeDescriptor; At 0 30 Range 0 29 Init 0 fixed
    // Parameter  1 added: Name sqlname Type Loracle/sql/SQLName; At 0 30 Range 0 29 Init 0
    // Parameter  2 added: Name connection Type Ljava/sql/Connection; At 0 30 Range 0 29 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 30 Range 0 29 Init 0 fixed
    protected TypeDescriptor(SQLName sqlname, Connection connection)
        throws SQLException
    {
        super();
        if(sqlname == null || connection == null)
        {
            DBError.check_error(60, "Invalid arguments");
        }
        m_sqlName = sqlname;
        _setConnection(connection);
        return;
    }

    // Decompiling method: <init>  Signature: (Loracle/sql/SQLName;Loracle/jdbc/oracore/OracleTypeADT;Ljava/sql/Connection;)V
    // Max stack: 2, #locals: 4, #params: 4
    // Code length: 47 bytes, Code offset: 4176
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/sql/TypeDescriptor; At 0 47 Range 0 46 Init 0 fixed
    // Parameter  1 added: Name sqlname Type Loracle/sql/SQLName; At 0 47 Range 0 46 Init 0
    // Parameter  2 added: Name oracletypeadt Type Loracle/jdbc/oracore/OracleTypeADT; At 0 47 Range 0 46 Init 0
    // Parameter  3 added: Name connection Type Ljava/sql/Connection; At 0 47 Range 0 46 Init 0
    // RetValue   4 added: Name <returnValue> Type V At 0 47 Range 0 46 Init 0 fixed
    protected TypeDescriptor(SQLName sqlname, OracleTypeADT oracletypeadt, Connection connection)
        throws SQLException
    {
        super();
        if(sqlname == null || oracletypeadt == null || connection == null)
        {
            DBError.check_error(60, "Invalid arguments");
        }
        m_sqlName = sqlname;
        _setConnection(connection);
        m_pickler = oracletypeadt;
        m_pickler.setDescriptor(this);
        return;
    }

    // Decompiling method: _setConnection  Signature: (Ljava/sql/Connection;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 44 bytes, Code offset: 4299
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/TypeDescriptor; At 0 44 Range 0 43 Init 0 fixed
    // Parameter  1 added: Name connection Type Ljava/sql/Connection; At 0 44 Range 0 43 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 44 Range 0 43 Init 0 fixed
    private void _setConnection(Connection connection)
    {
        if(connection != null && ((OracleConnection)connection).isLogicalConnection())
        {
            m_conn = (OracleConnection)((OracleConnection)connection)._getPC();
        } else
        {
            m_conn = (OracleConnection)connection;
        }
        return;
    }

    // Decompiling method: getConnection  Signature: ()Loracle/jdbc/OracleConnection;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 4397
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/TypeDescriptor; At 0 5 Range 0 4 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Loracle/jdbc/OracleConnection; At 0 5 Range 0 4 Init 0 fixed
    public OracleConnection getConnection()
    {
        return m_conn;
    }

    // Decompiling method: getName  Signature: ()Ljava/lang/String;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 19 bytes, Code offset: 4440
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/TypeDescriptor; At 0 19 Range 0 18 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/lang/String; At 0 19 Range 0 18 Init 0 fixed
    public synchronized String getName()
        throws SQLException
    {
        if(m_sqlName == null)
        {
            initSQLName();
        }
        return m_sqlName.getName();
    }

    // Decompiling method: getPickler  Signature: ()Loracle/jdbc/oracore/OracleNamedType;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 4511
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/TypeDescriptor; At 0 5 Range 0 4 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Loracle/jdbc/oracore/OracleNamedType; At 0 5 Range 0 4 Init 0 fixed
    public OracleNamedType getPickler()
    {
        return m_pickler;
    }

    // Decompiling method: getSQLName  Signature: ()Loracle/sql/SQLName;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 16 bytes, Code offset: 4554
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/TypeDescriptor; At 0 16 Range 0 15 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Loracle/sql/SQLName; At 0 16 Range 0 15 Init 0 fixed
    public synchronized SQLName getSQLName()
        throws SQLException
    {
        if(m_sqlName == null)
        {
            initSQLName();
        }
        return m_sqlName;
    }

    // Decompiling method: getSchemaName  Signature: ()Ljava/lang/String;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 8 bytes, Code offset: 4622
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/TypeDescriptor; At 0 8 Range 0 7 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/lang/String; At 0 8 Range 0 7 Init 0 fixed
    public String getSchemaName()
        throws SQLException
    {
        return getSQLName().getSchema();
    }

    // Decompiling method: getSubtypeName  Signature: (Loracle/jdbc/OracleConnection;[BJ)Ljava/lang/String;
    // Max stack: 4, #locals: 4, #params: 4
    // Code length: 25 bytes, Code offset: 4678
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name oracleconnection Type Loracle/jdbc/OracleConnection; At 0 25 Range 0 24 Init 0
    // Parameter  1 added: Name abyte0 Type [B At 0 25 Range 0 24 Init 0
    // Parameter  2 added: Name l Type J At 0 25 Range 0 24 Init 0
    // RetValue   4 added: Name <returnValue> Type Ljava/lang/String; At 0 25 Range 0 24 Init 0 fixed
    public static String getSubtypeName(OracleConnection oracleconnection, byte abyte0[], long l)
        throws SQLException
    {
        if(abyte0 == null || abyte0.length == 0 || oracleconnection == null)
        {
            DBError.throwSqlException(68);
        }
        return OracleTypeADT.getSubtypeName(oracleconnection, abyte0, l);
    }

    // Parameter  0 added: Name this Type Loracle/sql/TypeDescriptor; At 0 0 Range 0 4294967295 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type I At 0 0 Range 0 4294967295 Init 0 fixed
    public abstract int getTypeCode()
        throws SQLException;

    // Decompiling method: getTypeDescriptor  Signature: (Ljava/lang/String;Loracle/jdbc/OracleConnection;)Loracle/sql/TypeDescriptor;
    // Max stack: 5, #locals: 7, #params: 2
    // Code length: 269 bytes, Code offset: 4777
    // Exception table: 1 entries
    //           start  2 end 197 handler 200 type Exception
    // Line Number Table found: 40 entries
    // Parameter  0 added: Name s Type Ljava/lang/String; At 0 269 Range 0 268 Init 0
    // Parameter  1 added: Name oracleconnection Type Loracle/jdbc/OracleConnection; At 0 269 Range 0 268 Init 0
    // RetValue   7 added: Name <returnValue> Type Loracle/sql/TypeDescriptor; At 0 269 Range 0 268 Init 0 fixed
    // LocalVar   2 added: Name obj Type A At 1 267 Range 1 267 Init 1
    // LocalVar   3 added: Name sqlname Type Loracle/sql/SQLName; At 11 154 Range 11 164 Init 11
    // LocalVar   4 added: Name s1 Type Ljava/lang/String; At 16 169 Range 16 184 Init 16
    // LocalVar   2 chged: Name typedescriptor Oname obj Type Loracle/sql/TypeDescriptor; At 29 239 Range 1 267 Init 1
    // LocalVar   5 added: Name oracletypeadt Type Loracle/jdbc/oracore/OracleTypeADT; At 46 25 Range 46 70 Init 46
    // LocalVar   6 added: Name oraclenamedtype Type Loracle/jdbc/oracore/OracleNamedType; At 74 119 Range 74 192 Init 74
    // LocalVar   2 chged: Name obj Oname typedescriptor Type Ljava/lang/Object; At 138 130 Range 1 267 Init 1
    // LocalVar   3 added: Name exception Type Ljava/lang/Exception; At 200 9 Range 200 208 Init 200
    public static TypeDescriptor getTypeDescriptor(String s, OracleConnection oracleconnection)
        throws SQLException
    {
        Object obj = null;
        try
        {
            SQLName sqlname = new SQLName(s, oracleconnection);
            String s1 = sqlname.getName();
            obj = (TypeDescriptor)oracleconnection.getDescriptor(s1);
            if(obj != null)
            {
                return ((TypeDescriptor) (obj));
            }
            OracleTypeADT oracletypeadt = new OracleTypeADT(s1, oracleconnection);
            ((oracle.jdbc.driver.OracleConnection)oracleconnection).db_access.getOracleTypeADT(oracletypeadt);
            oracletypeadt.init((oracle.jdbc.driver.OracleConnection)oracleconnection);
            OracleNamedType oraclenamedtype = oracletypeadt.cleanup();
            switch(oraclenamedtype.getTypeCode())
            {
            case 2002: 
            case 2008: 
                obj = new StructDescriptor(sqlname, (OracleTypeADT)oraclenamedtype, oracleconnection);
                break;

            case 2003: 
                obj = new ArrayDescriptor(sqlname, (OracleTypeCOLLECTION)oraclenamedtype, oracleconnection);
                break;

            case 2007: 
                obj = new OpaqueDescriptor(sqlname, (OracleTypeOPAQUE)oraclenamedtype, oracleconnection);
                break;

            case 2004: 
            case 2005: 
            case 2006: 
            default:
                DBError.throwSqlException(1);
                break;
            }
            oracleconnection.putDescriptor(s1, obj);
            oraclenamedtype.setDescriptor(((TypeDescriptor) (obj)));
        }
        catch(Exception exception)
        {
            if(exception instanceof SQLException)
            {
                DBError.throwSqlException((SQLException)exception, 60, "Unable to resolve type \"" + s + "\"");
            } else
            {
                DBError.throwSqlException(60, "Unable to resolve type \"" + s + "\"");
            }
        }
        return ((TypeDescriptor) (obj));
    }

    // Decompiling method: getTypeDescriptor  Signature: (Ljava/lang/String;Loracle/jdbc/OracleConnection;[BJ)Loracle/sql/TypeDescriptor;
    // Max stack: 5, #locals: 11, #params: 5
    // Code length: 225 bytes, Code offset: 5258
    // Line Number Table found: 29 entries
    // Parameter  0 added: Name s Type Ljava/lang/String; At 0 225 Range 0 224 Init 0
    // Parameter  1 added: Name oracleconnection Type Loracle/jdbc/OracleConnection; At 0 225 Range 0 224 Init 0
    // Parameter  2 added: Name abyte0 Type [B At 0 225 Range 0 224 Init 0
    // Parameter  3 added: Name l Type J At 0 225 Range 0 224 Init 0
    // RetValue  11 added: Name <returnValue> Type Loracle/sql/TypeDescriptor; At 0 225 Range 0 224 Init 0 fixed
    // LocalVar   5 added: Name obj Type A At 1 2 Range 1 2 Init 1
    // LocalVar   6 added: Name abyte1 Type [[B At 8 2 Range 8 9 Init 8
    // LocalVar   7 added: Name s1 Type Ljava/lang/String; At 16 199 Range 16 214 Init 16
    // LocalVar   5 added: Name typedescriptor Type Loracle/sql/TypeDescriptor; At 37 187 Range 37 223 Init 37
    // LocalVar   8 added: Name sqlname Type Loracle/sql/SQLName; At 57 137 Range 57 193 Init 57
    // LocalVar   9 added: Name oracletypeadt Type Loracle/jdbc/oracore/OracleTypeADT; At 69 25 Range 69 93 Init 69
    // LocalVar  10 added: Name oraclenamedtype Type Loracle/jdbc/oracore/OracleNamedType; At 97 99 Range 97 195 Init 97
    // LocalVar   5 chged: Name obj1 Oname typedescriptor Type Ljava/lang/Object; At 163 61 Range 37 223 Init 37
    // LocalVar   5 chged: Name obj Oname obj Type Ljava/lang/Object; At 1 2 Range 1 2 Init 1
    // LocalVar   5 name obj1(Ljava/lang/Object;) merged out into obj(Ljava/lang/Object;)
    public static TypeDescriptor getTypeDescriptor(String s, OracleConnection oracleconnection, byte abyte0[], long l)
        throws SQLException
    {
        Object obj = null;
        byte abyte1[][] = new byte[1][];
        String s1 = getSubtypeName(oracleconnection, abyte0, l);
        if(s1 == null)
        {
            s1 = s;
        }
        obj = (TypeDescriptor)oracleconnection.getDescriptor(s1);
        if(obj != null)
        {
            return ((TypeDescriptor) (obj));
        }
        SQLName sqlname = new SQLName(s1, oracleconnection);
        OracleTypeADT oracletypeadt = new OracleTypeADT(s1, oracleconnection);
        ((oracle.jdbc.driver.OracleConnection)oracleconnection).db_access.getOracleTypeADT(oracletypeadt);
        oracletypeadt.init((oracle.jdbc.driver.OracleConnection)oracleconnection);
        OracleNamedType oraclenamedtype = oracletypeadt.cleanup();
        switch(oraclenamedtype.getTypeCode())
        {
        case 2002: 
        case 2008: 
            obj = new StructDescriptor(sqlname, (OracleTypeADT)oraclenamedtype, oracleconnection);
            break;

        case 2003: 
            obj = new ArrayDescriptor(sqlname, (OracleTypeCOLLECTION)oraclenamedtype, oracleconnection);
            break;

        case 2007: 
            obj = new OpaqueDescriptor(sqlname, (OracleTypeOPAQUE)oraclenamedtype, oracleconnection);
            break;

        case 2004: 
        case 2005: 
        case 2006: 
        default:
            DBError.throwSqlException(1);
            break;
        }
        oracleconnection.putDescriptor(s1, obj);
        return ((TypeDescriptor) (obj));
    }

    // Decompiling method: getTypeName  Signature: ()Ljava/lang/String;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 8 bytes, Code offset: 5643
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/TypeDescriptor; At 0 8 Range 0 7 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/lang/String; At 0 8 Range 0 7 Init 0 fixed
    public String getTypeName()
        throws SQLException
    {
        return getSQLName().getSimpleName();
    }

    // Decompiling method: initSQLName  Signature: ()V
    // Max stack: 5, #locals: 1, #params: 1
    // Code length: 41 bytes, Code offset: 5699
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/TypeDescriptor; At 0 41 Range 0 40 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type V At 0 41 Range 0 40 Init 0 fixed
    void initSQLName()
        throws SQLException
    {
        if(m_pickler == null || m_conn == null)
        {
            DBError.throwSqlException(1);
        }
        m_sqlName = new SQLName(m_pickler.getFullName(), m_conn);
        return;
    }

    // Decompiling method: isInHierarchyOf  Signature: (Ljava/lang/String;)Z
    // Max stack: 1, #locals: 2, #params: 2
    // Code length: 2 bytes, Code offset: 5800
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/TypeDescriptor; At 0 2 Range 0 1 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 2 Range 0 1 Init 0
    // RetValue   2 added: Name <returnValue> Type Z At 0 2 Range 0 1 Init 0 fixed
    public boolean isInHierarchyOf(String s)
        throws SQLException
    {
        return false;
    }

    // Decompiling method: readObject  Signature: (Ljava/io/ObjectInputStream;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 37 bytes, Code offset: 5850
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/TypeDescriptor; At 0 37 Range 0 36 Init 0 fixed
    // Parameter  1 added: Name objectinputstream Type Ljava/io/ObjectInputStream; At 0 37 Range 0 36 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 37 Range 0 36 Init 0 fixed
    private void readObject(ObjectInputStream objectinputstream)
        throws IOException, ClassNotFoundException
    {
        if(DEBUG_SERIALIZATION)
        {
            System.out.println("TypeDescriptor::readObject");
        }
        m_sqlName = (SQLName)objectinputstream.readObject();
        m_pickler = (OracleNamedType)objectinputstream.readObject();
        return;
    }

    // Decompiling method: setConnection  Signature: (Ljava/sql/Connection;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 31 bytes, Code offset: 5953
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/TypeDescriptor; At 0 31 Range 0 30 Init 0 fixed
    // Parameter  1 added: Name connection Type Ljava/sql/Connection; At 0 31 Range 0 30 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 31 Range 0 30 Init 0 fixed
    public void setConnection(Connection connection)
        throws SQLException
    {
        if(DEBUG_SERIALIZATION)
        {
            System.out.println("TypeDescriptor::writeObject");
        }
        _setConnection(connection);
        m_pickler.setConnection((oracle.jdbc.driver.OracleConnection)connection);
        return;
    }

    // Decompiling method: writeObject  Signature: (Ljava/io/ObjectOutputStream;)V
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 36 bytes, Code offset: 6048
    // Exception table: 1 entries
    //           start  0 end 11 handler 14 type SQLException
    // Line Number Table found: 7 entries
    // Parameter  0 added: Name this Type Loracle/sql/TypeDescriptor; At 0 36 Range 0 35 Init 0 fixed
    // Parameter  1 added: Name objectoutputstream Type Ljava/io/ObjectOutputStream; At 0 36 Range 0 35 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 36 Range 0 35 Init 0 fixed
    // LocalVar   2 added: Name sqlexception Type Ljava/sql/SQLException; At 14 2 Range 14 15 Init 14
    private void writeObject(ObjectOutputStream objectoutputstream)
        throws IOException
    {
        try
        {
            if(m_sqlName == null)
            {
                initSQLName();
            }
        }
        catch(SQLException sqlexception)
        {
            DBError.SQLToIOException(sqlexception);
        }
        objectoutputstream.writeObject(m_sqlName);
        objectoutputstream.writeObject(m_pickler);
        return;
    }

    // Decompiling method: <clinit>  Signature: ()V
    // Max stack: 1, #locals: 0, #params: 0
    // Code length: 5 bytes, Code offset: 3760
    // Line Number Table found: 2 entries
    // RetValue   0 added: Name <returnValue> Type V At 0 5 Range 0 4 Init 0 fixed
    static 
    {
        /* DEBUG_SERIALIZATION = false; */
    }
}
