Option IOptionComplexFactory.CreateInstance(byte[] buffer, ref int offset, byte valueLength)
        {
            IpV4Address[] addresses;
            byte          pointedAddressIndex;

            if (!IpV4OptionRoute.TryRead(out addresses, out pointedAddressIndex, buffer, ref offset, valueLength))
            {
                return((Option)null);
            }
            return((Option) new IpV4OptionLooseSourceRouting((IList <IpV4Address>)addresses, pointedAddressIndex));
        }
        Option IOptionComplexFactory.CreateInstance(byte[] buffer, ref int offset, byte valueLength)
        {
            IpV4Address[] addresses;
            byte          pointedAddressIndex;

            if (!IpV4OptionRoute.TryRead(out addresses, out pointedAddressIndex, buffer, ref offset, valueLength))
            {
                return((Option)null);
            }
            return((Option) new IpV4OptionRecordRoute(pointedAddressIndex, addresses));
        }