# Google App Engine generated folder
appengine-generated/

# Secutiry Key file folder
src/main/resources/keys/
src/main/resources/bug_tracking_system/**/*.tpl

# Gradle
.gradle/
build/

# Java
*.class

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.ear

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

# maven
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties

service-account.json

# intellij
.idea/
*.iml

# Eclipse files
.project
.classpath
.settings

# vim
[._]*.s[a-w][a-z]
[._]s[a-w][a-z]
Session.vim
.netrwhist
*~
tags
