docs: public Reader create(Reader input, MtasConfiguration config)
        throws IOException {
      MtasFetchData fetchData = new MtasFetchData(input);
      if (config.attributes
          .containsKey(MtasConfiguration.CHARFILTER_CONFIGURATION_TYPE)) {
        if (config.attributes.get(MtasConfiguration.CHARFILTER_CONFIGURATION_TYPE)
            .equals(VALUE_TYPE_URL)) {
          try {
            return fetchData.getUrl(
                config.attributes
                    .get(MtasConfiguration.CHARFILTER_CONFIGURATION_PREFIX),
                config.attributes
                    .get(MtasConfiguration.CHARFILTER_CONFIGURATION_POSTFIX));
          } catch (MtasParserException e) {
            log.debug(e);
            throw new IOException(e.getMessage());
          }
        } else if (config.attributes
            .get(MtasConfiguration.CHARFILTER_CONFIGURATION_TYPE)
            .equals(VALUE_TYPE_FILE)) {
          try {
            return fetchData.getFile(
                config.attributes
                    .get(MtasConfiguration.CHARFILTER_CONFIGURATION_PREFIX),
                config.attributes
                    .get(MtasConfiguration.CHARFILTER_CONFIGURATION_POSTFIX));
          } catch (MtasParserException e) {
            throw new IOException(e);
          }
        } else {
          return fetchData.getDefault();
        }
      } else {
        return fetchData.getDefault();
      }
    }