<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2018 The Android Open Source Project

     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.
 -->

<resources xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <!-- Special New Zealand requirement for the presidential alert title -->
    <string name="cmas_presidential_level_alert" translatable="false">@string/emergency_alert</string>
    <!-- CMAS dialog title for extreme alert. [CHAR LIMIT=50] -->
    <string name="cmas_extreme_alert">@string/emergency_alert</string>
    <!-- CMAS dialog title for extreme alert with extreme severity, immediate urgency, and observed certainty. [CHAR LIMIT=50] -->
    <string name="cmas_extreme_immediate_observed_alert">@string/emergency_alert</string>
    <!-- CMAS dialog title for extreme alert with extreme severity, immediate urgency,  and likely certainty. [CHAR LIMIT=50] -->
    <string name="cmas_extreme_immediate_likely_alert">@string/emergency_alert</string>
    <!-- CMAS dialog title for severe alert. [CHAR LIMIT=50] -->
    <string name="cmas_severe_alert">@string/emergency_alert</string>
</resources>
