Apache ManifoldCF Plugin for Elastic Search
Original work Copyright 2010-2013 The Apache Software Foundation
Modified work Copyright 2015 Bartlomiej Superson

This product includes software developed by
The Apache Software Foundation (http://www.apache.org/).

This product includes software developed by Elasticsearch.