<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2011 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">
    <string name="app_label" msgid="2102435118079140813">"Mobile Broadcast Tests"</string>
    <string name="button_etws_normal_type" msgid="3852703138521119537">"Send ETWS Normal Broadcast"</string>
    <string name="button_etws_cancel_type" msgid="7194264116649371175">"Send ETWS Cancel Broadcast"</string>
    <string name="button_etws_test_type" msgid="6353906188028139901">"Send ETWS Test Broadcast"</string>
    <string name="button_cmas_pres_alert" msgid="5905111586384766558">"Send CMAS Presidential Alert"</string>
    <string name="button_cmas_extreme_alert" msgid="6111658124447111920">"Send CMAS Extreme Alert"</string>
    <string name="button_cmas_severe_alert" msgid="9051731172452500819">"Send CMAS Severe Alert"</string>
    <string name="button_cmas_amber_alert" msgid="4217147800913845288">"Send CMAS AMBER Alert"</string>
    <string name="button_cmas_monthly_test" msgid="1609320625517248393">"Send CMAS Monthly Test Alert"</string>
    <string name="button_gsm_7bit_type" msgid="4757698592787955850">"Send GSM 7-Bit Test Broadcast"</string>
    <string name="button_gsm_7bit_umts_type" msgid="4377077702628367387">"Send UMTS 7-Bit Test Broadcast"</string>
    <string name="button_gsm_7bit_nopadding_type" msgid="5289528095948674862">"Send GSM 7-Bit Full-Length Broadcast"</string>
    <string name="button_gsm_7bit_nopadding_umts_type" msgid="7953047238483884846">"Send UMTS 7-Bit Full-Length Broadcast"</string>
    <string name="button_gsm_7bit_multipage_type" msgid="8516540964071070491">"Send GSM 7-Bit Multi-Page Broadcast"</string>
    <string name="button_gsm_7bit_multipage_umts_type" msgid="474883728254547100">"Send UMTS 7-Bit Multi-Page Broadcast"</string>
    <string name="button_gsm_7bit_with_language_type" msgid="7414138913180046493">"Send GSM 7 Bit With Language"</string>
    <string name="button_gsm_7bit_with_language_body_gsm_type" msgid="7365993929355114874">"Send GSM 7-Bit With Language in Body"</string>
    <string name="button_gsm_7bit_with_language_body_umts_type" msgid="1201329758881885921">"Send UMTS 7 Bit With Language"</string>
    <string name="button_gsm_ucs2_type" msgid="6652864601384080678">"Send GSM UCS-2 Test Broadcast"</string>
    <string name="button_gsm_ucs2_umts_type" msgid="2985879481785569626">"Send UMTS UCS-2 Test Broadcast"</string>
    <string name="button_gsm_ucs2_multipage_umts_type" msgid="4557772309524939206">"Send UMTS UCS-2 Multi-Page Broadcast"</string>
    <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Send GSM UCS-2 With Language"</string>
    <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Send UMTS UCS-2 With Language"</string>
    <string name="button_delay_broadcast" msgid="5138650276363839541">"Delay 5 seconds before sending"</string>
    <string name="message_id_label" msgid="4365322663037110887">"Message-ID:"</string>
</resources>
