<?xml version="1.0" encoding="UTF-8"?>
<!-- 
    Copyright (C) 2015 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-array name="empty_subject_strings">
    <item msgid="8900116186849071724">"без темы"</item>
    <item msgid="272485471009191934">"без темы"</item>
  </string-array>
  <string-array name="notification_reply_choices">
    <item msgid="1875991048685328264">"Да"</item>
    <item msgid="6049132459802288033">"Нет"</item>
    <item msgid="3084376867445867895">"ОК"</item>
    <item msgid="3155097332660174689">"Ха-ха"</item>
    <item msgid="2611328818571146775">"Спасибо!"</item>
    <item msgid="4881335087096496747">"Хорошо"</item>
    <item msgid="2422296858597420738">"Отлично"</item>
    <item msgid="4805581752819452687">"Скоро буду"</item>
    <item msgid="4746700499431366214">"ОК, отвечу позже"</item>
    <item msgid="4342041517788201970">":)"</item>
    <item msgid="7439437911747961187">":("</item>
  </string-array>
</resources>
