# Target dir in all projects
**/target/*
**/target-ide/*

# Logs dir in all projects
**/logs/*
**/debug-logs/*

# Added for Intellij IDEA IDE
**/.idea/*

# Generated models and features
**/bin/*

# MANIFEST.MF is updated on every clean install
**/src/main/resources/META-INF/
**/src/main/yang-gen-sal
**/src/main/yang-gen-config


**/pom.xml.versionsBackup
**/.fbExcludeFilterFile
**/.flattened-pom.xml
**/.pydevproject
**/.checkstyle
**/.classpath
**/.settings
**/.project

**/*.class
**/*.prefs
**/*.iml

direct-dependencies.txt
