private RangeItemHeaderValue(RangeItemHeaderValue source)
 {
     this.from = source.from;
     this.to = source.to;
 }
 internal static int GetRangeItemLength(string input, int startIndex, out RangeItemHeaderValue parsedValue)
 {
     parsedValue = null;
     if (string.IsNullOrEmpty(input) || (startIndex >= input.Length))
     {
         return 0;
     }
     int num = startIndex;
     int num2 = num;
     int length = HttpRuleParser.GetNumberLength(input, num, false);
     if (length > 0x13)
     {
         return 0;
     }
     num += length;
     num += HttpRuleParser.GetWhitespaceLength(input, num);
     if ((num == input.Length) || (input[num] != '-'))
     {
         return 0;
     }
     num++;
     num += HttpRuleParser.GetWhitespaceLength(input, num);
     int num4 = num;
     int num5 = 0;
     if (num < input.Length)
     {
         num5 = HttpRuleParser.GetNumberLength(input, num, false);
         if (num5 > 0x13)
         {
             return 0;
         }
         num += num5;
         num += HttpRuleParser.GetWhitespaceLength(input, num);
     }
     if ((length == 0) && (num5 == 0))
     {
         return 0;
     }
     long result = 0;
     if ((length > 0) && !HeaderUtilities.TryParseInt64(input.Substring(num2, length), out result))
     {
         return 0;
     }
     long num7 = 0;
     if ((num5 > 0) && !HeaderUtilities.TryParseInt64(input.Substring(num4, num5), out num7))
     {
         return 0;
     }
     if (((length > 0) && (num5 > 0)) && (result > num7))
     {
         return 0;
     }
     parsedValue = new RangeItemHeaderValue((length == 0) ? null : new long?(result), (num5 == 0) ? null : new long?(num7));
     return (num - startIndex);
 }