@Override
    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        }
        if (!(o instanceof RouteTracker)) {
            return false;
        }

        final RouteTracker that = (RouteTracker) o;
        return
                // Do the cheapest checks first
                this.connected == that.connected &&
                        this.secure == that.secure &&
                        this.tunnelled == that.tunnelled &&
                        this.layered == that.layered &&
                        Objects.equals(this.targetHost, that.targetHost) &&
                        Objects.equals(this.localAddress, that.localAddress) &&
                        Objects.equals(this.unixDomainSocket, that.unixDomainSocket) &&
                        Objects.equals(this.proxyChain, that.proxyChain);
    }
Compares this tracked route to another.

@param o         the object to compare with

@return  {@code true} if the argument is the same tracked route,
         {@code false}
httpclient5/src/main/java/org/apache/hc/client5/http/RouteTracker.java