<?xml version="1.0"?>
<!--
   ============LICENSE_START=======================================================
   SDC
   ================================================================================
   Copyright (C) 2019 Nokia. All rights reserved.
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
   ============LICENSE_END=========================================================
  -->

<!DOCTYPE suppressions PUBLIC
        "-//Checkstyle//DTD SuppressionFilter Configuration 1.0//EN"
        "https://checkstyle.org/dtds/suppressions_1_0.dtd">
<suppressions>
    <suppress checks=".*" files="\.java" lines="1-20"/>
    <suppress checks=".*" files="\.properties"/>
    <suppress checks="javadoc" files="\.java"/>
    <suppress checks="LineLength" files="\.java"/>
    <suppress checks="HiddenField" files="\.java"/>
    <suppress checks="FinalClass" files="\.java"/>
    <suppress checks="FinalParameters" files="\.java"/>
    <suppress checks="AvoidInlineConditionals" files="\.java"/>
    <suppress checks="DesignForExtension" files="\.java"/>
    <suppress checks="ImportOrder" files="\.java"/>
    <suppress checks="LocalVariableName" files="\.java"/>
    <suppress checks="AbbreviationAsWordInName" files="\.java"/>
</suppressions>