/// <inheritdoc />
        public override int GetHashCode()
        {
            unchecked
            {
                int hashCode = Expiry != null?Expiry.GetHashCode() : 0;

                hashCode = (hashCode * 397) ^ (Retry != null ? Retry.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (Logout != null ? Logout.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (Takeover != null ? Takeover.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (LearnMore != null ? LearnMore.GetHashCode() : 0);
                return(hashCode);
            }
        }
        private void DoWireUp()
        {
            V.ConnectTo(_d0.V).ConnectTo(_d1.V).ConnectTo(_d2.V).ConnectTo(_d3.V)
            .ConnectTo(_d4.V).ConnectTo(_d5.V).ConnectTo(_d6.V).ConnectTo(_d7.V)
            .ConnectTo(_a0.V).ConnectTo(_a1.V).ConnectTo(_a2.V).ConnectTo(_a3.V)
            .ConnectTo(_a4.V).ConnectTo(_a5.V).ConnectTo(_a6.V).ConnectTo(_a7.V)
            .ConnectTo(_a8.V).ConnectTo(_a9.V).ConnectTo(_a10.V).ConnectTo(_a11.V)
            .ConnectTo(_a12.V).ConnectTo(_a13.V).ConnectTo(_a14.V).ConnectTo(_a15.V)
            .ConnectTo(_write.V);

            Takeover.ConnectTo(_d0.Select).ConnectTo(_d1.Select).ConnectTo(_d2.Select).ConnectTo(_d3.Select)
            .ConnectTo(_d4.Select).ConnectTo(_d5.Select).ConnectTo(_d6.Select).ConnectTo(_d7.Select)
            .ConnectTo(_a0.Select).ConnectTo(_a1.Select).ConnectTo(_a2.Select).ConnectTo(_a3.Select)
            .ConnectTo(_a4.Select).ConnectTo(_a5.Select).ConnectTo(_a6.Select).ConnectTo(_a7.Select)
            .ConnectTo(_a8.Select).ConnectTo(_a9.Select).ConnectTo(_a10.Select).ConnectTo(_a11.Select)
            .ConnectTo(_a12.Select).ConnectTo(_a13.Select).ConnectTo(_a14.Select).ConnectTo(_a15.Select)
            .ConnectTo(_write.Select);
        }