docs: public static Endpoint merge(Endpoint defaults, Endpoint override) {
  
          if (defaults == null) {
              defaults = new Endpoint();
          }
  
          if (override == null) {
              override = new Endpoint();
          }
  
          final Endpoint merged = new Endpoint();
  
          merged.setCredentialScope(override.getCredentialScope() != null
                  ? override.getCredentialScope()
                  : defaults.getCredentialScope());
  
          merged.setHostName(override.getHostName() != null
                  ? override.getHostName()
                  : defaults.getHostName());
  
          merged.setSslCommonName(override.getSslCommonName() != null
                  ? override.getSslCommonName()
                  : defaults.getSslCommonName());
  
          merged.setProtocols(override.getProtocols() != null
                  ? override.getProtocols()
                  : defaults.getProtocols());
  
          merged.setSignatureVersions(override.getSignatureVersions() != null
                  ? override.getSignatureVersions()
                  : defaults.getSignatureVersions()
          );
  
          return merged;
  
      }