public bool Decode(PduMarshaler marshaler)
 {
     try
     {
         byte t = marshaler.ReadByte();
         c = (EIGHT_BYTE_C_Values)(t >> 5);
         val1 = (byte)(t & 0x1F);
         if (c >= EIGHT_BYTE_C_Values.TWO_BYTE_VAL)
         {
             val2 = marshaler.ReadByte();
         }
         if (c >= EIGHT_BYTE_C_Values.THREE_BYTE_VAL)
         {
             val3 = marshaler.ReadByte();
         }
         if (c >= EIGHT_BYTE_C_Values.FOUR_BYTE_VAL)
         {
             val4 = marshaler.ReadByte();
         }
         if (c >= EIGHT_BYTE_C_Values.FIVE_BYTE_VAL)
         {
             val5 = marshaler.ReadByte();
         }
         if (c >= EIGHT_BYTE_C_Values.SIX_BYTE_VAL)
         {
             val6 = marshaler.ReadByte();
         }
         if (c >= EIGHT_BYTE_C_Values.SEVEN_BYTE_VAL)
         {
             val7 = marshaler.ReadByte();
         }
         if (c == EIGHT_BYTE_C_Values.EIGHT_BYTE_VAL)
         {
             val8 = marshaler.ReadByte();
         }
         return true;
     }
     catch
     {
         return false;
     }
 }
 public EIGHT_BYTE_UNSIGNED_INTEGER(ulong num)
 {
     if (num > 0x1FFFFFFFFFFFFFFF)
     {
         throw new ArgumentException("The integer is out of the valid range of EIGHT_BYTE_UNSIGNED_INTEGER.", "num");
     }
     if (num <= 0x1F)
     {
         c = EIGHT_BYTE_C_Values.ONE_BYTE_VAL;
         val1 = (byte)num;
     }
     else if (num <= 0x1FFF)
     {
         c = EIGHT_BYTE_C_Values.TWO_BYTE_VAL;
         val1 = (byte)(num >> 8);
         val2 = (byte)num;
     }
     else if (num <= 0x1FFFFF)
     {
         c = EIGHT_BYTE_C_Values.THREE_BYTE_VAL;
         val1 = (byte)(num >> 16);
         val2 = (byte)(num >> 8);
         val3 = (byte)num;
     }
     else if (num <= 0x1FFFFFFF)
     {
         c = EIGHT_BYTE_C_Values.FOUR_BYTE_VAL;
         val1 = (byte)(num >> 24);
         val2 = (byte)(num >> 16);
         val3 = (byte)(num >> 8);
         val4 = (byte)num;
     }
     else if (num <= 0x1FFFFFFFFF)
     {
         c = EIGHT_BYTE_C_Values.FIVE_BYTE_VAL;
         val1 = (byte)(num >> 32);
         val2 = (byte)(num >> 24);
         val3 = (byte)(num >> 16);
         val4 = (byte)(num >> 8);
         val5 = (byte)num;
     }
     else if (num <= 0x1FFFFFFFFFFF)
     {
         c = EIGHT_BYTE_C_Values.SIX_BYTE_VAL;
         val1 = (byte)(num >> 40);
         val2 = (byte)(num >> 32);
         val3 = (byte)(num >> 24);
         val4 = (byte)(num >> 16);
         val5 = (byte)(num >> 8);
         val6 = (byte)num;
     }
     else if (num <= 0x1FFFFFFFFFFFFF)
     {
         c = EIGHT_BYTE_C_Values.SEVEN_BYTE_VAL;
         val1 = (byte)(num >> 48);
         val2 = (byte)(num >> 40);
         val3 = (byte)(num >> 32);
         val4 = (byte)(num >> 24);
         val5 = (byte)(num >> 16);
         val6 = (byte)(num >> 8);
         val7 = (byte)num;
     }
     else
     {
         c = EIGHT_BYTE_C_Values.EIGHT_BYTE_VAL;
         val1 = (byte)(num >> 56);
         val2 = (byte)(num >> 48);
         val3 = (byte)(num >> 40);
         val4 = (byte)(num >> 32);
         val5 = (byte)(num >> 24);
         val6 = (byte)(num >> 16);
         val7 = (byte)(num >> 8);
         val8 = (byte)num;
     }
 }