class DefaultSettingsDecryptionRequest implements SettingsDecryptionRequest {

    private List<Server> servers;

    private List<Proxy> proxies;

    /**
     * Creates an empty request.
     */
    public DefaultSettingsDecryptionRequest() {
        // does nothing
    }

    /**
     * Creates a new request to decrypt the specified settings.
     *
     * @param settings The settings to decrypt, must not be {@code null}.
     */
    public DefaultSettingsDecryptionRequest(Settings settings) {
        setServers(settings.getServers());
        setProxies(settings.getProxies());
    }

    /**
     * Creates a new request to decrypt the specified server.
     *
     * @param server The server to decrypt, must not be {@code null}.
     */
    public DefaultSettingsDecryptionRequest(Server server) {
        this.servers = new ArrayList<>(Arrays.asList(server));
    }

    /**
     * Creates a new request to decrypt the specified proxy.
     *
     * @param proxy The proxy to decrypt, must not be {@code null}.
     */
    public DefaultSettingsDecryptionRequest(Proxy proxy) {
        this.proxies = new ArrayList<>(Arrays.asList(proxy));
    }

    @Override
    public List<Server> getServers() {<FILL_FUNCTION_BODY>}

    @Override
    public DefaultSettingsDecryptionRequest setServers(List<Server> servers) {
        this.servers = servers;

        return this;
    }

    @Override
    public List<Proxy> getProxies() {
        if (proxies == null) {
            proxies = new ArrayList<>();
        }

        return proxies;
    }

    @Override
    public DefaultSettingsDecryptionRequest setProxies(List<Proxy> proxies) {
        this.proxies = proxies;

        return this;
    }
}

        if (servers == null) {
            servers = new ArrayList<>();
        }

        return servers;
    
<no_super_class>