From c688ad1d10fef1e28d4af236e633591cc99bdc01 Mon Sep 17 00:00:00 2001
From: T_Yurkiv <TYurkiv1995@gmail.com>
Date: Thu, 25 Jul 2019 15:24:22 +0300
Subject: [PATCH] Initial commit

---
 .gitignore                                    |  13 +
 .idea/codeStyles/Project.xml                  | 224 +++++++++
 .idea/codeStyles/codeStyleConfig.xml          |   5 +
 .idea/dictionaries/T_Yurkiv.xml               |   3 +
 .idea/encodings.xml                           |   6 +
 .idea/gradle.xml                              |  15 +
 .idea/misc.xml                                |  68 +++
 .idea/runConfigurations.xml                   |  12 +
 .idea/vcs.xml                                 |   6 +
 app/.gitignore                                |   1 +
 app/build.gradle                              |  25 +
 app/proguard-rules.pro                        |  21 +
 app/src/main/AndroidManifest.xml              |  23 +
 .../com/devlight/logcat_app/MainActivity.java |  27 +
 .../drawable-v24/ic_launcher_foreground.xml   |  34 ++
 .../res/drawable/ic_launcher_background.xml   | 170 +++++++
 app/src/main/res/layout/activity_main.xml     |  15 +
 .../res/mipmap-anydpi-v26/ic_launcher.xml     |   5 +
 .../mipmap-anydpi-v26/ic_launcher_round.xml   |   5 +
 app/src/main/res/mipmap-hdpi/ic_launcher.png  | Bin 0 -> 2963 bytes
 .../res/mipmap-hdpi/ic_launcher_round.png     | Bin 0 -> 4905 bytes
 app/src/main/res/mipmap-mdpi/ic_launcher.png  | Bin 0 -> 2060 bytes
 .../res/mipmap-mdpi/ic_launcher_round.png     | Bin 0 -> 2783 bytes
 app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4490 bytes
 .../res/mipmap-xhdpi/ic_launcher_round.png    | Bin 0 -> 6895 bytes
 .../main/res/mipmap-xxhdpi/ic_launcher.png    | Bin 0 -> 6387 bytes
 .../res/mipmap-xxhdpi/ic_launcher_round.png   | Bin 0 -> 10413 bytes
 .../main/res/mipmap-xxxhdpi/ic_launcher.png   | Bin 0 -> 9128 bytes
 .../res/mipmap-xxxhdpi/ic_launcher_round.png  | Bin 0 -> 15132 bytes
 app/src/main/res/values/colors.xml            |   6 +
 app/src/main/res/values/strings.xml           |   3 +
 app/src/main/res/values/styles.xml            |   9 +
 build.gradle                                  |  27 +
 gradle.properties                             |  20 +
 gradle/wrapper/gradle-wrapper.jar             | Bin 0 -> 54329 bytes
 gradle/wrapper/gradle-wrapper.properties      |   6 +
 gradlew                                       | 172 +++++++
 gradlew.bat                                   |  84 ++++
 logcat/.gitignore                             |   1 +
 logcat/build.gradle                           |  27 +
 logcat/proguard-rules.pro                     |  21 +
 logcat/src/main/AndroidManifest.xml           |  12 +
 .../com/devlight/logcat/LogcatActivity.java   | 469 ++++++++++++++++++
 .../devlight/logcat/adapter/LogRvAdapter.java | 191 +++++++
 .../exception/IllegalTraceException.java      |   8 +
 .../com/devlight/logcat/model/LogThread.java  |  77 +++
 .../com/devlight/logcat/model/Logcat.java     | 107 ++++
 .../java/com/devlight/logcat/model/Trace.java |  68 +++
 .../devlight/logcat/model/TraceBuffer.java    |  54 ++
 .../com/devlight/logcat/model/TraceLevel.java |  59 +++
 .../main/res/drawable-v21/bg_btn_floating.xml |  16 +
 .../main/res/drawable-v21/bg_icon_ripple.xml  |   4 +
 .../src/main/res/drawable/bg_btn_floating.xml |  15 +
 .../src/main/res/drawable/bg_icon_ripple.xml  |  10 +
 logcat/src/main/res/drawable/bg_search.xml    |   6 +
 .../src/main/res/drawable/ic_arrow_down.xml   |   9 +
 .../main/res/drawable/ic_bar_search_gray.xml  |  12 +
 .../res/drawable/ic_clear_search_field.xml    |  10 +
 .../src/main/res/drawable/ic_close_black.xml  |  12 +
 .../src/main/res/drawable/ic_content_copy.xml |   9 +
 .../drawable/ic_format_indent_increase.xml    |   9 +
 .../main/res/drawable/ic_gray_arrow_down.xml  |  10 +
 logcat/src/main/res/drawable/ic_share.xml     |   9 +
 .../src/main/res/layout/activity_logcat.xml   | 223 +++++++++
 logcat/src/main/res/layout/item_log.xml       |  31 ++
 .../src/main/res/menu/popup_trace_level.xml   |  28 ++
 logcat/src/main/res/values-v21/styles.xml     |   7 +
 logcat/src/main/res/values-v23/styles.xml     |   9 +
 logcat/src/main/res/values-v27/styles.xml     |  12 +
 logcat/src/main/res/values/colors.xml         |  15 +
 logcat/src/main/res/values/dimens.xml         |  16 +
 logcat/src/main/res/values/strings.xml        |   9 +
 logcat/src/main/res/values/styles.xml         |  17 +
 settings.gradle                               |   1 +
 74 files changed, 2598 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 .idea/codeStyles/Project.xml
 create mode 100644 .idea/codeStyles/codeStyleConfig.xml
 create mode 100644 .idea/dictionaries/T_Yurkiv.xml
 create mode 100644 .idea/encodings.xml
 create mode 100644 .idea/gradle.xml
 create mode 100644 .idea/misc.xml
 create mode 100644 .idea/runConfigurations.xml
 create mode 100644 .idea/vcs.xml
 create mode 100644 app/.gitignore
 create mode 100644 app/build.gradle
 create mode 100644 app/proguard-rules.pro
 create mode 100644 app/src/main/AndroidManifest.xml
 create mode 100644 app/src/main/java/com/devlight/logcat_app/MainActivity.java
 create mode 100644 app/src/main/res/drawable-v24/ic_launcher_foreground.xml
 create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml
 create mode 100644 app/src/main/res/layout/activity_main.xml
 create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
 create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
 create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png
 create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png
 create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png
 create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png
 create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png
 create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
 create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png
 create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
 create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
 create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
 create mode 100644 app/src/main/res/values/colors.xml
 create mode 100644 app/src/main/res/values/strings.xml
 create mode 100644 app/src/main/res/values/styles.xml
 create mode 100644 build.gradle
 create mode 100644 gradle.properties
 create mode 100644 gradle/wrapper/gradle-wrapper.jar
 create mode 100644 gradle/wrapper/gradle-wrapper.properties
 create mode 100755 gradlew
 create mode 100644 gradlew.bat
 create mode 100644 logcat/.gitignore
 create mode 100644 logcat/build.gradle
 create mode 100644 logcat/proguard-rules.pro
 create mode 100644 logcat/src/main/AndroidManifest.xml
 create mode 100644 logcat/src/main/java/com/devlight/logcat/LogcatActivity.java
 create mode 100644 logcat/src/main/java/com/devlight/logcat/adapter/LogRvAdapter.java
 create mode 100644 logcat/src/main/java/com/devlight/logcat/exception/IllegalTraceException.java
 create mode 100644 logcat/src/main/java/com/devlight/logcat/model/LogThread.java
 create mode 100644 logcat/src/main/java/com/devlight/logcat/model/Logcat.java
 create mode 100644 logcat/src/main/java/com/devlight/logcat/model/Trace.java
 create mode 100644 logcat/src/main/java/com/devlight/logcat/model/TraceBuffer.java
 create mode 100644 logcat/src/main/java/com/devlight/logcat/model/TraceLevel.java
 create mode 100644 logcat/src/main/res/drawable-v21/bg_btn_floating.xml
 create mode 100644 logcat/src/main/res/drawable-v21/bg_icon_ripple.xml
 create mode 100644 logcat/src/main/res/drawable/bg_btn_floating.xml
 create mode 100644 logcat/src/main/res/drawable/bg_icon_ripple.xml
 create mode 100644 logcat/src/main/res/drawable/bg_search.xml
 create mode 100644 logcat/src/main/res/drawable/ic_arrow_down.xml
 create mode 100644 logcat/src/main/res/drawable/ic_bar_search_gray.xml
 create mode 100644 logcat/src/main/res/drawable/ic_clear_search_field.xml
 create mode 100644 logcat/src/main/res/drawable/ic_close_black.xml
 create mode 100644 logcat/src/main/res/drawable/ic_content_copy.xml
 create mode 100644 logcat/src/main/res/drawable/ic_format_indent_increase.xml
 create mode 100644 logcat/src/main/res/drawable/ic_gray_arrow_down.xml
 create mode 100644 logcat/src/main/res/drawable/ic_share.xml
 create mode 100644 logcat/src/main/res/layout/activity_logcat.xml
 create mode 100644 logcat/src/main/res/layout/item_log.xml
 create mode 100644 logcat/src/main/res/menu/popup_trace_level.xml
 create mode 100644 logcat/src/main/res/values-v21/styles.xml
 create mode 100644 logcat/src/main/res/values-v23/styles.xml
 create mode 100644 logcat/src/main/res/values-v27/styles.xml
 create mode 100644 logcat/src/main/res/values/colors.xml
 create mode 100644 logcat/src/main/res/values/dimens.xml
 create mode 100644 logcat/src/main/res/values/strings.xml
 create mode 100644 logcat/src/main/res/values/styles.xml
 create mode 100644 settings.gradle

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2b75303
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,13 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..17b11b3
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,224 @@
+<component name="ProjectCodeStyleConfiguration">
+  <code_scheme name="Project" version="173">
+    <option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="99" />
+    <option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="99" />
+    <option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
+      <value />
+    </option>
+    <option name="IMPORT_LAYOUT_TABLE">
+      <value>
+        <package name="android" withSubpackages="true" static="false" />
+        <emptyLine />
+        <package name="com" withSubpackages="true" static="false" />
+        <emptyLine />
+        <package name="junit" withSubpackages="true" static="false" />
+        <emptyLine />
+        <package name="net" withSubpackages="true" static="false" />
+        <emptyLine />
+        <package name="org" withSubpackages="true" static="false" />
+        <emptyLine />
+        <package name="java" withSubpackages="true" static="false" />
+        <emptyLine />
+        <package name="javax" withSubpackages="true" static="false" />
+        <emptyLine />
+        <package name="" withSubpackages="true" static="false" />
+        <emptyLine />
+        <package name="" withSubpackages="true" static="true" />
+        <emptyLine />
+      </value>
+    </option>
+    <option name="RIGHT_MARGIN" value="100" />
+    <AndroidXmlCodeStyleSettings>
+      <option name="USE_CUSTOM_SETTINGS" value="true" />
+    </AndroidXmlCodeStyleSettings>
+    <JavaCodeStyleSettings>
+      <option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="99" />
+      <option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="99" />
+      <option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
+        <value />
+      </option>
+      <option name="IMPORT_LAYOUT_TABLE">
+        <value>
+          <package name="android" withSubpackages="true" static="false" />
+          <emptyLine />
+          <package name="com" withSubpackages="true" static="false" />
+          <emptyLine />
+          <package name="junit" withSubpackages="true" static="false" />
+          <emptyLine />
+          <package name="net" withSubpackages="true" static="false" />
+          <emptyLine />
+          <package name="org" withSubpackages="true" static="false" />
+          <emptyLine />
+          <package name="java" withSubpackages="true" static="false" />
+          <emptyLine />
+          <package name="javax" withSubpackages="true" static="false" />
+          <emptyLine />
+          <package name="" withSubpackages="true" static="false" />
+          <emptyLine />
+          <package name="" withSubpackages="true" static="true" />
+          <emptyLine />
+        </value>
+      </option>
+    </JavaCodeStyleSettings>
+    <XML>
+      <option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
+    </XML>
+    <codeStyleSettings language="XML">
+      <option name="FORCE_REARRANGE_MODE" value="1" />
+      <indentOptions>
+        <option name="CONTINUATION_INDENT_SIZE" value="4" />
+      </indentOptions>
+      <arrangement>
+        <rules>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>xmlns:android</NAME>
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>xmlns:.*</NAME>
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*:id</NAME>
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*:name</NAME>
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>name</NAME>
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>style</NAME>
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*</NAME>
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*:layout_width</NAME>
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*:layout_height</NAME>
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*:layout_.*</NAME>
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*:width</NAME>
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*:height</NAME>
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*</NAME>
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*</NAME>
+                  <XML_NAMESPACE>.*</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+        </rules>
+      </arrangement>
+    </codeStyleSettings>
+  </code_scheme>
+</component>
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..8f1a3b7
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+<component name="ProjectCodeStyleConfiguration">
+  <state>
+    <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default (1)" />
+  </state>
+</component>
\ No newline at end of file
diff --git a/.idea/dictionaries/T_Yurkiv.xml b/.idea/dictionaries/T_Yurkiv.xml
new file mode 100644
index 0000000..57b586b
--- /dev/null
+++ b/.idea/dictionaries/T_Yurkiv.xml
@@ -0,0 +1,3 @@
+<component name="ProjectDictionaryState">
+  <dictionary name="T_Yurkiv" />
+</component>
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..ada92a5
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding" addBOMForNewFiles="with NO BOM">
+    <file url="PROJECT" charset="UTF-8" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000..2996d53
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="GradleSettings">
+    <option name="linkedExternalProjectsSettings">
+      <GradleProjectSettings>
+        <compositeConfiguration>
+          <compositeBuild compositeDefinitionSource="SCRIPT" />
+        </compositeConfiguration>
+        <option name="distributionType" value="DEFAULT_WRAPPED" />
+        <option name="externalProjectPath" value="$PROJECT_DIR$" />
+        <option name="resolveModulePerSourceSet" value="false" />
+      </GradleProjectSettings>
+    </option>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..3238d79
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CMakeSettings">
+    <configurations>
+      <configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" />
+    </configurations>
+  </component>
+  <component name="NullableNotNullManager">
+    <option name="myDefaultNullable" value="org.jetbrains.annotations.Nullable" />
+    <option name="myDefaultNotNull" value="androidx.annotation.RecentlyNonNull" />
+    <option name="myNullables">
+      <value>
+        <list size="10">
+          <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
+          <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
+          <item index="2" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
+          <item index="3" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
+          <item index="4" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
+          <item index="5" class="java.lang.String" itemvalue="androidx.annotation.Nullable" />
+          <item index="6" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" />
+          <item index="7" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" />
+          <item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableDecl" />
+          <item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" />
+        </list>
+      </value>
+    </option>
+    <option name="myNotNulls">
+      <value>
+        <list size="9">
+          <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
+          <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
+          <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
+          <item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
+          <item index="4" class="java.lang.String" itemvalue="androidx.annotation.NonNull" />
+          <item index="5" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNonNull" />
+          <item index="6" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.NonNull" />
+          <item index="7" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" />
+          <item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" />
+        </list>
+      </value>
+    </option>
+  </component>
+  <component name="ProjectInspectionProfilesVisibleTreeState">
+    <entry key="Project Default">
+      <profile-state>
+        <expanded-state>
+          <State>
+            <id />
+          </State>
+        </expanded-state>
+        <selected-state>
+          <State>
+            <id>Android</id>
+          </State>
+        </selected-state>
+      </profile-state>
+    </entry>
+  </component>
+  <component name="ProjectPlainTextFileTypeManager">
+    <file url="file://$PROJECT_DIR$/logcat/src/main/res/values/styles.xml" />
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/build/classes" />
+  </component>
+  <component name="ProjectType">
+    <option name="id" value="Android" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
new file mode 100644
index 0000000..7f68460
--- /dev/null
+++ b/.idea/runConfigurations.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RunConfigurationProducerService">
+    <option name="ignoredProducers">
+      <set>
+        <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
+        <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
+        <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
+      </set>
+    </option>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/app/.gitignore b/app/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/app/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/app/build.gradle b/app/build.gradle
new file mode 100644
index 0000000..3add977
--- /dev/null
+++ b/app/build.gradle
@@ -0,0 +1,25 @@
+apply plugin: 'com.android.application'
+
+android {
+    compileSdkVersion 29
+    buildToolsVersion "29.0.0"
+    defaultConfig {
+        applicationId "com.devlight.logcat"
+        minSdkVersion 14
+        targetSdkVersion 29
+        versionCode 1
+        versionName "1.0"
+    }
+    buildTypes {
+        release {
+            minifyEnabled false
+            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+        }
+    }
+}
+
+dependencies {
+    implementation fileTree(dir: 'libs', include: ['*.jar'])
+    implementation 'androidx.appcompat:appcompat:1.0.2'
+    implementation project(path: ':logcat')
+}
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
new file mode 100644
index 0000000..f1b4245
--- /dev/null
+++ b/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..5427d04
--- /dev/null
+++ b/app/src/main/AndroidManifest.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+	xmlns:tools="http://schemas.android.com/tools"
+	package="com.devlight.logcat_app">
+
+	<application
+		android:allowBackup="true"
+		android:icon="@mipmap/ic_launcher"
+		android:label="@string/app_name"
+		android:roundIcon="@mipmap/ic_launcher_round"
+		android:supportsRtl="true"
+		android:theme="@style/AppTheme"
+		tools:ignore="GoogleAppIndexingWarning">
+		<activity android:name="com.devlight.logcat_app.MainActivity">
+			<intent-filter>
+				<action android:name="android.intent.action.MAIN" />
+
+				<category android:name="android.intent.category.LAUNCHER" />
+			</intent-filter>
+		</activity>
+	</application>
+
+</manifest>
\ No newline at end of file
diff --git a/app/src/main/java/com/devlight/logcat_app/MainActivity.java b/app/src/main/java/com/devlight/logcat_app/MainActivity.java
new file mode 100644
index 0000000..9233778
--- /dev/null
+++ b/app/src/main/java/com/devlight/logcat_app/MainActivity.java
@@ -0,0 +1,27 @@
+package com.devlight.logcat_app;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.devlight.logcat.LogcatActivity;
+
+public class MainActivity extends AppCompatActivity {
+
+	@Override
+	protected void onCreate(Bundle savedInstanceState) {
+		super.onCreate(savedInstanceState);
+		setContentView(R.layout.activity_main);
+
+		findViewById(R.id.btn_main_open_logcat).setOnClickListener(new View.OnClickListener() {
+			@Override
+			public void onClick(View view) {
+				Intent intent = new Intent(MainActivity.this, LogcatActivity.class);
+				intent.putExtra(LogcatActivity.BUFFER_SIZE_EXTRA, 1000);
+				startActivity(intent);
+			}
+		});
+	}
+}
diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..dd73f13
--- /dev/null
+++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,34 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+	xmlns:aapt="http://schemas.android.com/aapt"
+	android:width="108dp"
+	android:height="108dp"
+	android:viewportWidth="108"
+	android:viewportHeight="108">
+	<path
+		android:fillType="evenOdd"
+		android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
+		android:strokeWidth="1"
+		android:strokeColor="#00000000">
+		<aapt:attr name="android:fillColor">
+			<gradient
+				android:endX="78.5885"
+				android:endY="90.9159"
+				android:startX="48.7653"
+				android:startY="61.0927"
+				android:type="linear">
+				<item
+					android:color="#44000000"
+					android:offset="0.0" />
+				<item
+					android:color="#00000000"
+					android:offset="1.0" />
+			</gradient>
+		</aapt:attr>
+	</path>
+	<path
+		android:fillColor="#FFFFFF"
+		android:fillType="nonZero"
+		android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
+		android:strokeWidth="1"
+		android:strokeColor="#00000000" />
+</vector>
diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..fe5102e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+	android:width="108dp"
+	android:height="108dp"
+	android:viewportWidth="108"
+	android:viewportHeight="108">
+	<path
+		android:fillColor="#008577"
+		android:pathData="M0,0h108v108h-108z" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M9,0L9,108"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M19,0L19,108"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M29,0L29,108"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M39,0L39,108"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M49,0L49,108"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M59,0L59,108"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M69,0L69,108"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M79,0L79,108"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M89,0L89,108"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M99,0L99,108"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M0,9L108,9"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M0,19L108,19"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M0,29L108,29"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M0,39L108,39"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M0,49L108,49"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M0,59L108,59"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M0,69L108,69"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M0,79L108,79"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M0,89L108,89"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M0,99L108,99"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M19,29L89,29"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M19,39L89,39"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M19,49L89,49"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M19,59L89,59"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M19,69L89,69"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M19,79L89,79"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M29,19L29,89"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M39,19L39,89"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M49,19L49,89"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M59,19L59,89"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M69,19L69,89"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+	<path
+		android:fillColor="#00000000"
+		android:pathData="M79,19L79,89"
+		android:strokeWidth="0.8"
+		android:strokeColor="#33FFFFFF" />
+</vector>
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..22c42bb
--- /dev/null
+++ b/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+	xmlns:tools="http://schemas.android.com/tools"
+	android:layout_width="match_parent"
+	android:layout_height="match_parent"
+	tools:context=".MainActivity">
+
+<Button
+	android:id="@+id/btn_main_open_logcat"
+	android:layout_width="wrap_content"
+	android:layout_height="wrap_content"
+	android:text="Open LogCat"
+	android:layout_gravity="center"/>
+
+</FrameLayout>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..65bd9d3
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+	<background android:drawable="@drawable/ic_launcher_background" />
+	<foreground android:drawable="@drawable/ic_launcher_foreground" />
+</adaptive-icon>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..65bd9d3
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+	<background android:drawable="@drawable/ic_launcher_background" />
+	<foreground android:drawable="@drawable/ic_launcher_foreground" />
+</adaptive-icon>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..898f3ed59ac9f3248734a00e5902736c9367d455
GIT binary patch
literal 2963
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
JPDHLkV1g@XpTGbB

literal 0
HcmV?d00001

diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000000000000000000000000000000000000..dffca3601eba7bf5f409bdd520820e2eb5122c75
GIT binary patch
literal 4905
zcmV+^6V~jBP)<h;3K|Lk000e1NJLTq002k;002k`1^@s6RqeA!000v3Nkl<Zc-rM$
z33wD$w!Xb2KoVA2lMs>sCJ+Khgs=qzz9*aFfTF@MBLc!81jy1$_D*`qMnYCeSOOSS
zh~l6kD7e75FgOnvP=_arGNJ+k0uBt2?%a3It*Y+o?&`L?*#fV=?@xECZq+^KuXD~l
z_tdQ><aTb9$_OPgqSMJGfyWU4Z#Go6ak>JOSF%q}x5h@>Id>gloHZ!fr_@%N)Qad*
zI}<}@Poh`#X29>b50CkB%{yWf?z(t0rQf48W{j1a($$IrZ9{N{@#9Wqx}%DM^fL-m
z`X#_s9{BwX>^};}KMtudHpmMyRCq34!+|XCtnqeli6}6}7JiE;H+GAtDViHuQ~X9`
zP0^{y>Ov~ufreT-w7!yx_c;QOV>|0UxJK{lqSx`7cx`b!OLV*;Ez4q9Y_XdB$PKk4
z+Aq(kmz%Wb<VG#!pg~yVMzt9cyQ<6_R$;Jk`!vlCu*eM>OV3IpYsa0#_Vd?)>*2Lc
zn)<dS*(2=Suf<uE_|ECIi87OR*YNc<G^jY65`!9HCI%HiZQ=iCh^Z^3p%q3d-scEB
zj_pMIEc~_1!anQ=`rD-}&?ZXCbejV(XEpk?2x8Q{LioEod|fpNo{35{yHegqg2ZS>
zvVw}USbx|rlL2LMl<$^rb@TnK-;J83fd3GKh6#=C5WlXv83lKz{0$(8x1g-%;q}$b
z1=&8M<_eQZO4eJk#nshu9TsZZ11Z~hVkpt8oA4831ZP3Fj3C~EG*%gSnciYD-cpkI
zj{J=o1Bg-kJrjfz${Js8D?vh>vJwR{=4)c@ZtTqt#tHRR<NXUWu87F76SxHsWM|QU
zE3NdZ2{$)*^On=5DE;xojde7jD3dBp8ne=*rH=3~NT;JWJWo3;&!JMs1q@nMMtfD6
z+_u5v*v?%W><9b9ew~kVG6oc8(lNE=Pu>)F6HIf=`kIH3oJBkSO2;+SnG--LDU5kx
zC0($63w`LN)znoR#GhW@M5n&8!EGBnj_usF!G5qm>{qhQ`sdB#K<?+>+CoQF7f-se
z?#7!W#vF7jw48A-)Ulxz@0b)?7iKWQI+f<SY=aoQdIgQBE^ylhk7GM`ZLlBg5Bqi1
z22&2WskBW&`V~LbvcWgT-Gm%Mr)vj(%mOl+Yyxl2u3|!qi9sTuyl6>E6Ud#Le4H#?
z*wIeM>mtaY-X;WO^yfR4Adp*W)N+A4Yv~TqOy)a5g8AjAEfJ4acRWELKhbNNKrc!(
z&!ze1YQkhsw=A3()t7B^pu2=1)CJq>k}s1bv-{fV>=i+J^=8Lh=Pn_L(@77X+QqLi
zSM!u0YfVL$I)-o^+D$g^8iKevTQlfM$<k-Wd+us{(2^O{JGmMTtHTJj9M%!$8#ttj
z_Y1hER7WFg3h7wLJKB|GOSTaZ3khIYrO|C0JdW+$wP_FiJow@&+PkKRC5=*TP+pW9
z<+ttUbdzNyz3*AT#xf~vBi2+7!+H+h6`YmhrvS`YF)2%U;dv_Fj~E5#ynFOp`oo1^
z={rXbK?1kNsf`#j{`wMqq;Z|wHh3J{xob0N(^~q$cSq=n3+L%;|2!bs2IWP$QGQ_`
z(+y-ER=0x28Z={2_vt(bZbz=Rg_&!x2!+WNny(mmhcI)+<jnEd125E4i^alV2E6*s
zmvC1Lo!SW)R$ob@Ru;QFj=<yC&eidLwae*_!~eAQ+hjJgeU9x=UX&Z<w?76t7G=>k
z8A}@MLX0cd>SIdp0%mtcJaTy&g94$WW9QB?a!}a+T)Rd$eDM!(fgHCnNCsx!svv{S
z@9-M<iT~q%cQL3-SsvZ;%>jC~sfoKOK+dN>{)_sV(mjhof{qxwvX-7Df1DQTI(g)o
z>s6XRhgIhE&g6I!q!Sxz>EW}#SnudH5WeBSekYPp`9~Vp)1-G^r@B46=-SWs(Z;X8
z02evPKG%G<kLK>)Nf*Dpl|H<Aog_J14}HZfM(FDwK+XUcWV#^;^CAn$OQrH9a~8P{
z*4!{Bi>NSeWdw0`U#|(mpohWGktDRF;Bo`A2K9T}=|{(p(X*E>(aYDag2maC6ay^+
zk7K(%-yfyPJKv<yD@$m2RROacF*#qI`kBV9siZP*MlmZmU1jQp+kpd#qQCI8a_-zt
z5mg00^TVZ279_NJ=FLWW^0$jt1<>6-`qy{#2oNV$%o|*T^A7!TivIn?ahqEKj{ka&
z1#*R?@}3aHxtTmO=~U-w(|Xu(B2EmI8B50EvnOk9*GGbcJZK_}E{D#X@`(&j@%hg`
zvgc+#<w0WLBPGa*LXs9v=G-h%=@ftDIms%HAhr2M5Y!(=lbuKY_ofnrBUlu;-Srcs
zGRyTU8k(M*!{<awM+=fGbZHGYilD@XI+hDv^U<9=1-jaHAPM`sE`lHq$zfU*mYcTO
zJ`S-ZDC|+OqDN`ohiI<&Bol+F6b7v>V--FuV!3MbUy#-AgE(<BiLndjfW1F_&-!&G
z6UvKnqx>$~;1gULUs<ph>w`94gkTgN-nwH+_TiyxD=9t>#{5GHSR=+VC|3HUj>p$m
zF=5TOh#WCVpZxG0Mfs)VLU~bclwVS}a)Tud>)$I3M@i?-ZEb;CNQ$OT?W!<oPVqt7
z;;W05?%i!2VQw|9G+m=5pM2n>i>WPgI2K-%bDAV3iV{YFpxIA_D~#F;z7mA_2ToA0
zz;J#$$gz?H{f~tykIYwsN^&ofDHEcc3HtMs_ksmo_H~%=S!trXzdzzq@XJ@P(yd>A
zNh?17fF3z>nk9kWDu3|gPt>$~7yTPdOfi9U)o%B9hiOkpO1&hgnGv)+?=lcH(3zlF
z)1$73Anp4*+{T@4Fog)rOQR%n2^~~bNRNp!ZBKCK-@noL+ER9Y8^~8Se*UT3c%<F+
zCMDRPF9bb2evmUkk4=tLnA8`2aWR}{?f>b7TLtsqf14?X2rJH|pTWGz8-n&h;14Ov
z#z`fWWiO*ed){^1em`8ly%A*0PxH#fdX?n<MkXfow-F?aV&fBfDD-Ndg7k!!*V1#B
zFS!-??=a1{zovv)(VW*_a_b^e_!X}I?AA@Ry<S5HR2I@Ne&>dqyYz250dgaflgvo+
zJV<AsCc_7Z+eR^gpw6VNJYRj75oGY3ApC#j|9s+cQg`^5(>{-K7`Kl9diHm3hJcly
zengd6QU#LyA&GQLke(wb%#d-6v?HDD3F1f!>{yWg5#|xN?9J0WD7v<U{&?~HZ5_E>
z;l~T-X%q||!6msgyeyyoVe>kdc~D4&(TwHYfu@{&z(qUzHQHR6u}wE)#*5x&(o-7O
zw@7jXJiKu=?N?bq2i6qRnT;Fhz}ixmnKagt?l)w<id+!8(knMH^OvVC$nthBHfd9R
zizaB&##Q*JnfgN<8o9chDsg1XS4mG+p-qoPb4_fjAu(B1D&{^lnGe#`Q-bEdwWUQ9
zH2;lPtOSi(UBMBgOR*<O&&nNC4(+<kc<c$}!oJ+W`I?;E*RNMZx#1^o3TDO+-*3?b
z8Tahs2~yEfYeWQzNz(HLGwpLHTSZ6T%eZiQ<$+_YeXpXdH#velE4eNN3)=kUemgWC
z*iUzT`wiW4@N=hQVr)P36@BBI1NQq5*aMI6IP|q>-)BzP^3@k~*Wp97@gTqNpbZPR
zy$S@S*a*rO5riY0Ud8DORwP?Adna(v!QOi8<4{14v_(t!#gLwrT(JX4+=L_$A%|pc
zXmt?{(xut$cSLlVo(30Y+4jMCjtGY2uwS_m`dG?inGHD{f(#luthNkXB!$a+a>Yn-
zK~O4(yi`tCXd{2}Q7v*n=1Z+W<4npgXvmO$@_f~4uO9n2kmNBzD-1S*B*<|l$eA1@
z#7Yn<E<p|>NRI?n@&u)dVc}PLoFRSt;=(FF*KZU}pY9KTJIT}LH;AkK9+f+gq?~2G
z5#)j#B*jLMG&xp+>KqBOk%JavBS>X$J^3kS)@II(S5WsDjsv%=Is#fvo%C=}VJ79C
zu4XlR`eZez2+jdtZkwl~W8jW<Go>?<?2u=}kg6iur!*hFt7uTZH2SX4)41nL*mdmy
zqzLE+az3!OinfEB7X;xU$f&i!#Gw<&_TYw<v;*pea^bSP0&O$u8JGhECXRfZx!3P4
zVCXY(BEF;5eaLddd+Zr@eYM%sXY*Y9N;d1B_3}DK5?YcC#ddfMlDG-$YUofPz#hx3
zm<UQuhq>O+mCNa{m8IZH0?Igm<vdVdMQ3l>NQbXlLF4NHs~k~IN5KqX9?a!NuC1W)
zYsz_4m;p2<C-p<nxd*SiM=Q(PlF1XMLo5>B(rNZ|bq7KTK$6gs(A^{fuF@Y|C$u<+
zeYYY<jAR-L(}eyoUBDcLLy8SL4rn<@4i4e?=!PLrj5OLBEG+?u^v8z^5Od`Dsm*e*
zM0t7=CF4f^iRnB)&cl_jiQ%o`Z!lRp_jQ&;`Lcit7aZWZQt^k6G5yL7EXIgqj^k(*
z3<UP8FxkZ%EBJVWZiSYE#0W9RZYT%%gDj(gASK31j6FJ46Ul|oIZth8x^g;uxJ_rV
zs4W>3Gn!;AyU4%y;QbOj@OvR}OAX~1e60jYkYi7fGch)Tw9J(lK@#LJf(#;pbZHir
zB&II7NTQ;~GF=lBy<Df5n23yaC$pyMSSS4a%<C0q;uOGPl(G`!f*d555mae%Ne)_!
zm7u&-NpjF)tOVt&u|8xb86eNpNd-*D5hL38vd&dTqS)h)NV0g&JB)F?#<yj_0!hD1
zkn>QEr3##lyCO%LAbWBIf<~=H3(^R#^&aTfo7d6DH>o+Z>qt5T4kD_BN0|i~wM{;)
zQDk{ivKxY=^BgNdF34d7nZyJ+lfx0Dp`+JSH331CES`Ogv=4}5y2Zs^=PL<uaRKnR
z8yP%!GD%-_QOU1Z_h}KQn51kmL9UZPX@cyNK#rhtHd;xMgT;HWAoFNQDHN%H`HjRz
zJ<4?Abh`mte4lpkH`MQ;v2)twrdq~rT*a2I`Sh*^z72#mVo+>gRUr*8)xq~v8}M$U
zLOie%h{Y~;4ui@DJqJtzG0(xF97ij3CmS@3983s@mls%CJveFs=+cwd>4yDCfvm&e
z!5#1cb>BZeo;3I6^_Foju7YH-rfKy08n55>!E;8!9e--mI{HXM9UTG5-bio}4&^qi
zE~isoTuo;*ZeZWBo`Vxk8!8zvL!O6k1VIoUEds_IbStzRBxm^3Gm}w=_OY=YZzMUw
zCMRKGc;U#1X^+ec$Xs%Pdmk&k3F4CX?~8#O4uI@BY`Kmq!J0Uv+5@a9tSpblLOV<X
zt;iQc#ikD<fiScf9L5>))hr-m%u%E*xX4>hBnb`e#B{kyo18?4;4dFUw7M^53Rybu
z824~aV-c4}JY7hR>xV*sAg3fy6mLS7LnaNbD2_RfLpjc^aO!{=GM5BGo|C6yB@D9o
z>0^ok{idSKZKI>_xtZixNop4pgLk193Gf?Ao}Iaq1y@!>f+5tPYW8ZSJw77VrMS#<
zkU%RzE|Nf;cya`#HnR*FQxeQ`<~;c>Y2!DH$r^KWEyp=Wij2g!i9-Mb<kKb_iRv%s
zSzQI^V+L(ge7zU1h2!YvqS$36$OSoQF*qxaUtQjWb1Qb8l=<i7kB%<{*<zWDoUFI}
zS7T%(I5>cG4!}i^_bU5@kB8)I8_7rlg4C4#@<K_b*;QrI>0J#r1#qtCFoLQJrO9E%
zt`s&x4TB&q*Dj{y&(q&hhKJ${y!SHMP)2fle^N(DLRef11H>ps$3G)mFl*0{%0f#}
zK?dh~_$b?`;>l7qyL_2N&lj^qc}_^Fh@jk*X2^mq@ZAj7%2fh^%)qQ<OMmUMJ&IBH
z&qW!SESyX&=EqJrYw8-<jg1t94D9;g$XRXX&TJ&9^G~uMjLLIlaq~JL3?J6v$}W<x
z=7Kx|zat4bDHvoe!KFHLbWO1tT*=G^1mUR!&h3`XJ4t3e*4R4!J}g%ZWPPIyEx>AA
zZ3@z-Q#;=6kf<1C_wHkrQ^se@o}KxQJaxedR`bDn4a5ufwojD_f5pWfSc3vWaa8IF
z!+Z?HAa-6lxNq{aCuDPGysez_-`RL=-eMvHI(P2D`bHV<fKAakDynT@*RI`I)=CJj
z*otl4rAtDmaS8LfKm9~WkED59;tZL42NYy|+cRJLQ<yRHY_G!X3kdv<`$DslzwMuy
zvUi|5X-n5xPn6)fcn#iK@S0()59sSoA;vjx>O)$w1e0^WP&R`mBpOFQKR>_w07I2s
zIwmM1dOoD+-D@HOzvDhQc0abkw){E0*){N5cul<aEgZUUK3OrupOqIdo9))ED+vtj
zj<sN(xG<Kla0uh~^<ZtVEuMqt;x+CfQrri2R5TGrnmFP|`t)gqOOYAyJMK$lqmcY|
b2HgJxw7%AYvJx@g00000NkvXXu0mjfkw#Z`

literal 0
HcmV?d00001

diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..64ba76f75e9ce021aa3d95c213491f73bcacb597
GIT binary patch
literal 2060
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

literal 0
HcmV?d00001

diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000000000000000000000000000000000000..dae5e082342fcdeee5db8a6e0b27028e2d2808f5
GIT binary patch
literal 2783
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

literal 0
HcmV?d00001

diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..e5ed46597ea8447d91ab1786a34e30f1c26b18bd
GIT binary patch
literal 4490
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

literal 0
HcmV?d00001

diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000000000000000000000000000000000000..14ed0af35023e4f1901cf03487b6c524257b8483
GIT binary patch
literal 6895
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

literal 0
HcmV?d00001

diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..b0907cac3bfd8fbfdc46e1108247f0a1055387ec
GIT binary patch
literal 6387
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

literal 0
HcmV?d00001

diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000000000000000000000000000000000000..d8ae03154975f397f8ed1b84f2d4bf9783ecfa26
GIT binary patch
literal 10413
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
XdJ+W}DiIkV00000NkvXXu0mjfKBlg6

literal 0
HcmV?d00001

diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c18de9e66108411737e910f5c1972476f03ddbf
GIT binary patch
literal 9128
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
I20H400LcNok^lez

literal 0
HcmV?d00001

diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000000000000000000000000000000000000..beed3cdd2c32af5114a7dc70b9ef5b698eb8797e
GIT binary patch
literal 15132
zcmZvDWmr_-8||54h>`B@4yC)hOQZ#cM!EzfhmdZRPLWXQlpaz*O1gvrk&^D_^84TW
z@jlOq4`=WFp4extwb#3MjE<Hv_A`oS003aCswljCIwStuG0>ilFPELs0YL1Js)Fn*
zzr}qsbfZ_wbNOa4S@vf>;bE~>+%RD!>v%IFV#WTd^7(B=#T|Xno7mV6xS4f=u6692
zQq~7{i;;}Y46D{(Y+R?~SpnS3W=+e#JKDJX-SSUi>9(#}mwE5Tv-r0dn5ZY||9_k1
zWM~Q&Gt=O&6oAqZ3T;9&9$g)JWBOFs0NWF6vYJZJ24_?zn}`jXIHjr$^?F69z!2p<
zy%t?XyTRP;!zMXPY^&6kR$$J?UW%?3bCC4XDqr@?ukqAzCEf6lUi%~QE1bZLYf8h#
zNIFjy{z&gk+iBasaZQZklPN%Bhl~H-pewWJX`t_4w;I)?=gcrEWq1%u$-pwhg=Fn&
zj3nJfbY`j%G4F^8@$CZRg?Lweh*w;b>{2YdOIAi*x9?W^yUNov<sQ+UmPU)VO4uj0
zDDQH3K8p7Ks;G!<)!}->n|q?NJ#6TPeU_fVowC-#v9#b~gYH6zAw5m28>MUeJ4Tj*
znI<k2jowvXwz1FqzRTH_Ok0mJ`IJ?muj9Nf&_cE}p?PZ*PG-IdxC|+>Vgljj#XhW$
zhiz?z_2X4xbgPrk6@%1I-IDPigjXj6D_rk=N!MHKhrgxgN|sX9wAG{r8mKBc5uYx!
zD6;oWKPFPVaeKY+;_tfGk8dnA3*mxhD6c6ylsqfXvWFU-T3PF_*(Y_!aR4ycp@UiK
zL{0B(1-*H{F=ezF{RJj(g)4PzJx50@A1Bg2>XU|TM&*KjHze0G!vbN}?9#L0`)Mh&
zSDg1vm!sTu701b=n&--{Q{n2DpuDb{%No!D^gwg<Uj2vl;fNLaN0dNie5%og@3JQi
z-)(XlzBg~YseL5qbu?htPN<|S{XjUXg>^bAW&J!~L20v4&-T0QrdY*80B?ozklkW%
z0rk7=VB9&#oB_RdT&R<N*F#8FK%9DHfWAi+Ir^%BXMO=Bt5+J4q7j3`jI;UH>hUD^
z<%mehua9i+?=)hn7$V<hnfX&)FhVkec6pe?I}a(Xe`A0O?^nb<Yc(D(*Rq`sWY1R~
zN-nW3amL}k2!6HXjbDG5yylPS+|X(?lc;5Z8p@LXyU%D?fI2Fse>mdJdx(xObB8b;
z<S{?XzJ`)H&Az7qG+mJ6Jw4@sqrEgPWkw_5uKi0t8NxxY!YFGoj!_tcb*IDi`f?_V
z6&F=Au;_D<nuvZj{;uU-=jNl?AX{_0na2RSY}rp9dcY2<Gc<^Df3nHT1X!@>d)9+r
z`yz+r{dSM<Y3FULFlEVk6Q<?95a3tLwb)XN9>5hDz=4ys1#(+WoWqC+KtBRNG8x2R
zkNK+s#C-E*)s>kZCpyIRfB`}hQ6FwUXyKlgYs)!v{kjY>{yEe5^Qr5JEe^d*zcU@;
zK#oE%1w&_PZ%A@P#G}S>`1qbU0tkHPO<2-5_Uhe0Y6$FovD9c;Ov~qVD?l$$zpcmn
z8BGk}4~3UeEkzOUc<9FqtY1TqoY%<J>qGS&?kSM=O3g}NY85}H(VQS~6J6eJsX=%$
zf%etV-q-i9X(#Qm$6xDNs6>@0-*1b4*6TC?1v|R@FkpbQLy%N<#0-I&1swvEMn?Y(
zQKWmqz2#a=uq>R|^cdhnkaB3z*DB@@Q=Jpj%9EBXLuo{WDl~W0E}qH^aARnpD#`Dn
zAO=+iepMRRSE1j%9nTDc{=3ACQK(De^37Zvsl54F9`aO8G+M-hmV$3r9l|3HavVov
z=cO%-IO<MiBG5betc0Exb?ZA??sg@Yt^jxuzzfV}RgZ+#5?^zuGU#>Vsvo}L%}Jm>
zX9gR60KV3P&h$KA;XH%c12K@uFzJy5i9S6?U7BKXLk4&WhD>E$HbfP_Ojp5OF9rfm
zT$`)n#dWaGB<22Cl)AZ@Gv7i0;!*>IUJv7##H1X4+Wx!Jki<;jka&jGH6W2$nzJ4>
z6yD|%yOMzcBZj~}DSWA5Qj5Q$P>edSrrCzs=X;k&irN=Q9KBA<jVLfalIBx9QGwJv
z1M{R)VE;9*;S$~5GJi*2oV7iH&#qx&<{V2kez<x->fO4RZ>klxjm*H%`2m5c(y7Pw
zcP@DyYA!WftG!MB6T>V!I>_ym+&LEFyikRHI`-j@U5hGl(;JWZbO|orN^1|6{D4+0
z>5k@1pQ`!&UM0WB;(#4ds`}Zu6)B_YebI)X)jZRhJn}_frc0jF4SFi~JHS=t;knPP
z&yEu(+8%qK><?Utqp=kc>YIlcGahTfF6Ze^7edgT$J`6#2qm|n26OTFDY|d8s~3hl
zpLtuXp@mq2GW8<6|E)D{#yU2)#iuPY!=|5Hmo-<*yo(QYr$3HQqx#%vtHjS|I7N<c
zY$cj1UY%X6wN$tJeGNO~&kwjmhTCJ-m4eYk9uHOHE(YzWrLVYBBtv=!agp4e?@-Xw
z#@@d%cg74l#(ELF^|t-^FR7({=JtNC<VL$kUcR-|b+hOJ{pRqy#fQajq$873%ktez
z)obm-7DbOFZTECm$8#?%C&!6(4ae3HCmok8F5G0J$;d@QIWP+ri_?e3*&omC|0ES&
z%U)<mw&J1}h$k+Q+QOPgDHVk$Mkl1=bNhagblj7)sQQtl;JPOoyc@D>iRxC6lDQq<
zTXIalFx_Ncd(TZ(!iRaFymyh~tc4h-VJo_vaMKP(y_b-@V9j{@6aA&=*?g2r3#HBa
z-Q(IP$--;P*a%%PO{^%D$`G{5nl&>sUgEN|<ob+8jM$#{SCP$0+qsi#@yG5w+QWXn
z7wjB9Eu8Pj4v*yXkaVgLKQI*WUL_Rr&!8iU1R@Y1LAdQW{AO?vo7QmrUkb(%gb<zz
zhtcyA6wiMwgDN>s^PG}Jh>ISvD%;O|psp}p`-pKAK?pbIHTV?a9?u}(q*GCDRrVm>
z0lC9`wd;C96R!Yg%?DnK2`W*_@jf%9IPnwdr@BgGxWS)z)J>cDasy)mt3Y7)p=txP
zM)#~H^+!85n&7b%<Hq6l%gb%8C)dnR*L4=OlNIhlx07*oW#FdgjvgIT_wm7LDLIQ@
z-T31afEb`rrG^))IJ%^bJ<{>$l{U`iUrdD?1+BT#+yClM)OQek##8!6GFE0paMGl~
znJT5wR_VzqeBv^?U47rJ0!hXwG=8QSN^}EyUNDp2J?(D#FGFgCo^@;lRCMe2zczB^
zM%9XHn3ccHp;wqZ^Uy8mD<>D6R1W$5gqQ>%@AfWuiX0~?SIt2=9&6BS)f-v(V+-C6
zBfbm+ypV$sk2v=A1#JUeO~Sbved*o%-1Huvn%MCF?%m%fP5;xCPP|-(b1@laO;e4-
zd6?k_0KN;j`6NXEVgi#X0MXBw38O@O`lZ=y4(f@Vx@QT9*Vpgk{{$@lzYwyh%?NrN
zGtU^<Xp?^sLam{TiaAnSu<!UI1|2>kn)F6?fKBPA{djTaw^L#(7F&HK0b>+C#os)3
zXBq#MC^QE6lzK^4733pD>UE36G;-{`GpU&0a|`(V-vTwp@G~>2EL6F$*&3YMPp-<3
z$pGu8`_-xR9b-}m{9;+irLXejrTbK_!ep%zGnh;U{^iGo^_=F2)RW>Gnr99OXB*dm
zfO+ugGg0L-0>cKR_lG&~a#|_x2{kD1`&ncdCyi6M^Lm931EU`O+-XCCFYRAnjs5f6
zUa^V+z|fk5UB$rN`lRE$u7^I~$Cjw-;Cp6f)HA(2LU;};f)pd4T8-D?I2up<CIE-_
z0BM~3fYu&CvC@lKT)~T`_^r?t_rr_OF~QC}uE3jm?W1tzq?(ssDw<-4)$UN~!5^N7
zuIp1H{Szdjgu<U*<ONwr)R<|#q8qLAbP;vKy@zed#$$gM`u78~!!AwP@sMCx*XkoW
z>+3G(m$&;vg0~+JOD};L`gqqk*eJg+xpbq{T}SE4${0xj>in~=ldQi1rE&?>CiYw2
z#vg0Xtv2hPZfP@t{cR}nkn`imMzN%Ni-Y?Fuhn*~A(k1`mx6vQI)vLRy&;WKU0n}B
z@ZJ|)Fn=>TPu!<>B>2~#eYSLuW5D_)A)V<f*OsqS8u}JIOQ4c#d-MbLo<0s46EY{A
zDm;!R*<T#xOV%2cy%%o9dW}tEfA*H7gL~tKR9uG79r==tbU*8@(G<ES&F_cHF3361
zBE(ese9+URMmmq{w2r)*{#F`lifGeQQz2;z?>?!{Y4XguE!i#eiyl1d{uE|RTBFea
zM(g%RB^85qT#!n<!>$qYwxcyR1CEXmt{nlJiLD0Zs8{OI%+d`MxVXSwT?e&2t6`t3
za4o!LrCv}!1now|E(qC6Hf>E@-0qF^3NbW7_qjxU<9CDT$8j)VXDt{8H;2Pzmw@Nb
zJ}1NB7;d^GlLw5^EU`sTe0n9Pg~GmQIXwnxEAeh@zS%X#f?&FG!fvUXW1I^%m4Huq
zFb9-|D>sEz%pg}Dy}4S#5$%jBg@1FfhQKlNSk?MlP{oDv8s=i*#<tu1V3Ix_fW<(J
zJfe^b3;ryhuK-4@%J*%Rbv+W?wIkbHPNyoO0Z4$3Hk<bluEW50Ee(aixv^zPjV#o%
zTd=x6zN(G{3}E1foJa*5>C%7KTfKRpT((!vAA*0?h5%4doY~|3y<zwG&L#TgF$bYi
zNIhPm7*i{_xSzk6%sHD=KN}hpwotTDjyX^&nHfM0Je#8FI!{3+qTU|;pw&3QlZOIy
z5rT0_Xk2_TvcOf_uPEPjT5PgwOPQDs|NIwhCgdP8ELV(hZ2mb6Axa)6Jv)^ovay7R
z+Mhwte-AdR;PM6`Fg#Q~@Tk}qJ5~O0<vL%)0hNUiU=YYh-SIXcH*JcGy!C0nWRbe<
ze}1<s-27$lW;1EE{2=nZ7|)e(;01`DA#m&cxOD%L>q_DA32&6T2RHbNq-AItD)b&W
z5)Ng>T|a!hlRxqb6(lwy3n#TR>Q{5$zoTQ(7Yp23btrx0L6lb;lMIld_ZsBm;X65W
zhL~-DK~O*?iR1lG`e>ZDti=^0@Hu{22<C9G{5GMA?`hN_MpkF91>rk-ri$|Mhlfjx
zz}x1wtNp{S65T4sf<QQm7FFT+Q1VCP=nD<5Rm~Wdvt{>tJev1F_{R<Kn;g^+4*MKN
z<XUB4CO?VyLZefp!_fqjOBBqkG4S-?j6#3_NA+h?>MAe{B#a1+VB3lE#HN&bH7Rc8
z9d*c27p;2<s6OEf8b2kT)hXp1dpW(E^6DV&D!;;o1j82mqXn;0@F^i&q?fW+7Of+u
zeff1?hHSjG<rE8hQ-Oq_!K-WQ181GfyH|k^KTR9tv9q88Lq!7+2Syy{A5l`lNr|6%
z#0*U^&a$x#IxOE_aPrB2Xum}>oA4ZYZSk)abazBuwEu8=L?5J?TG~{R3V8o868I?F
z#Lt>o_|ohZd7psYl9Vtz6-np(@R<I2C;)T8oILvZc&}!k9l=rnh(SMx>&^Q6yKF@#
zKK_Phwv=G^eE6%t(B0N4(**az{<hbQ4M>Z$|8Nab8SLz)m@0bPk@Wo;!3I&BJu}Fl
z{}e^!Iy||DQ~DlD9=@%{OB>I8fpV4ZTC})4v8^-k&+wR4`hMI|wtCe3@xtk*M_gV&
zT7}a{1ERd3c8RiWPPBv<xo_~|`%6M>InQ4k+GP<n7v_pttFwk+8IrZHab-uhkGCsy
zKju>xSExF}CJt9v>(EoD>AsA|3ioYaprn4PVQ}7|zFbK2=iyU{SL8K#I2+N-*;IUC
zGNwTD;XDPHkYcjzxc(jT?|J#?A9c3l*&Jc_`dkI4Rs7QC{PM6ty6TzkxCMvgm=@WZ
zf59SoAflkydVV7?TYoT5`U(N`-HxGa2z_V)YRIz`HRRE3`12J1-lEtmojvMCPtH+1
z)V=IiqG9TR@`K%FOk2#6!1{1OD;*%xRAYo%)EDc|<)I;%EXi}?^()_B6K<n~w!o^m
z{^B@A7{e})%_k}+m7;q)#Pl|qj(aul-6|g>`pYE*`4Sg)tmZ&*^v8jAGJgK-rh(nO
znii&AGyPojK+Ee9+EI?hH-rm&m>=`lAO7{E>D1JKm7n{&r&z%Cwi})WQZ*k0bJ<u7
zd6Z`^+Vh~3QS&C=uzWkNq0?l}$C|uZiR#V2h?`ss(Gg)$R3rey<bV=Up%131fcyo~
zuYRuRQ*|jB%|Y+Me5=-!GIK)sAe|gwJDy9lY^UhXagIWU^)o*15x0zan~F-$T0Iol
zkE`eS#}A^@eg1Etk=5kFfnOy#C!jRfwXI?m68&w@EICw?K@OP*#v$reszm1rv59NX
z5fitq2x{yk1enIxl2)trdFA+m*MFk~B8z=JkTK!s*+5W}YtO!w!K%W+3)iQL`0(TW
zeI4Xyp+w_<ov2{%@-j$`YC_2j2Hg)uaO=aKo=QInC(3k>6u=B0Pn1}ek~+ch_lXwn
zuc_uu<oWjKV#rOl>@YRZb$iGWq5BG|g|^Wd_oh(t2hEHAQ>~0CE_L3eNN1(NZ={TZ
z*Q&K4gY{whUfZO+x8Pi73^^HTU(N+4u|z~}-7IGjQufEje1K4zazaTk96zyU#Oomt
z{bZ_BZ#I(ren>G~3QNkj-ElHS()&+TCR+bjq4vO-*_o`jyU7mwVd?J!edfIxKubK~
znqmum7Gd^m1|fh?4|kW$?Yo6*!cTvq_fNlm%+Ol<W$IOHKNwa5xAbLOaV}&W!ABGs
zYB|nN1T7s|frHs%iEJW2y|f}8c-ef{Z2l497Iq)}C^Z&vO8o0azOTn<5%U8+m!g@d
z;os(O7`{f-SXo6lO87v+d0kY6*iyn;4ke-4N{C@--M=PHZxaYPQ>mz3Wf^<BjsW!H
zEPF8@r8cFn?CP`|1v<#GSYQK?cZN^~m6l$pqgd70gKk=$yqjMhkj+$LZ5xA>I(4mQ
zO~z#3)9fPojD(VbPK-c6xq)}DM$borMa#X!P?x0&SBqzQG-BST1On6bd~bfeDWpmL
zg;dMkgsT6muQ^9L>bR6T?+9!G07EA3XvMR&Q}8^<F(#gvvQ7#Q$TgpjcoAy&I^5oI
z_d+EO4=&OpCEm=|(frwZ;Y75W5UY)cvuAK%0<Rq0(kdjUn&LLc3hp!Spi>MSfgNeA
zEzFXFy<gB7nMrL~Z){BGS}hdnu*m}fXLrf7Y@)jcL3F@IolN(<h2V#abPcMfVI#d#
z)<;61X0e40^QXbsBksx0u41h-0J3pjo~F_C>ts}my(yK#E3|dx>wH+PW-82HFn_p_
z{;sH%Izw2f?je+3ZGMKbJJ%-MUk6I$Q3lW<rax1QgTLZJqB}itr1=V&KG`VQC8yd`
z9j}wKJg#IzYu*y3N4@Bb%cqox9)eOF(B%TwKPK_mvIQ411a8_I34xP9BsPy-OxP=f
z^$=Rgo=aLuf$|15vr>`X#vZ{OC+X9zuDb|vQX4W2a2z2W*Oj)w$<7+lPbGYqEE4!Y
z5j4*J(;o`UAc^wryi7M1qZAX{UySopT5y$cT@|8wdo0j-F+*z55(QN4-0X9E2(%0w
z->Pj3_BQrPW?JjaUyorsqkqgQ;wow+pkug_qLB3byas`FE+^x`c+_Iv!A2o)GczmY
zAV6d5;m~?7FDJ}pHp;5ORZwuDRq(s2BNghbg+aq0nsM$z_3LiUp~h}O&p9WQTkF%8
zM=j%0_<0RSBT*koU?wS=bWkoexJwQclztyKASoPa^=_gN4ebgz`-%PQ4pC%-=4Vq0
zfe#O}LUsDlrtPI4qXRa|3{g~nzfS$+u@EI(83`y$`zM*F4ZrP)V>J3FyYXx}ZGKDg
zcnAHvt{Rs*n3G9nWAYgvN_?47{`Qg%8)$<Aq7w7Y;i=U#C>u7L&yUCg=`X~0xo?Nm
zOT?BaawiXVZT^N9@PB8m9mlRme!pMhW#CUp&O)q1Ff49V5&%z22#hJ2F`M#8APaP0
z$_Rp4aJOUiQWa7(@mp|%WL)nG$d&Zv_rF<$bdOHX?n0#JYw}R-L?73ZR{Dh~d)_hC
zut16KfP{BGRQ-I6p%4Q2bsb~&j&!tu<3}y`>iw3ht$>i661@OYn_Xr&XV#5d@S|oP
zA@W{))lxW_UJQXd+s5{jYwPj)u*;o$QivH&LtwNF#bMPtindqcy_Sg_0jNOW`<v7!
znJEO8*|0yQ<j#3cQNLl6We)bUW6e|yCa-^2a$l;DheS8^{5s<Nt1Ne}%Cap2BVH(i
zuT&AoSPH9k16RQ62%{Iuvz(S9^H3a+LU~=#Sc&r8O|`!{<aWlnQ0y|KV8S6u=x8Z5
z<;6)4`!|oUKjwj;r5>lS26z`VMFkJaH+Sv!=ug__rdCdmKpW)`?T6Ob{o>w!vsy+D
z-B>}mgAw_|pUbN&6M&;nPF~<=LStpG+Z5n5r71uf?m?gQ-F4dx9x_V$5%CbECK$Gw
zzJ2<^i95T446#0C`xOGneN913e!;7o!R%C)^uMCe0=Tn<*P?H{k7Z&~3QPz=NJW=T
zj3CEU61-h1U6W|>zbw|;d_CCnt>k5|J0cEO>N_La+8&pSKU3E{M-On-Vw%ehQ{LlX
zxIB8%LF!fTxKT!H6<|d62Qh9ehYjV*#xl%&Z~JpAI7ZChyU6I`b9k!^*geM*&r!)0
z`P_*C_$(P{7dfN3zXX2lZVtYo4StL|JW2|=e>3xO1G$K#=;n=dYTEcI0n01mkFdT*
zZlxjCcP7Y<Xe4eK!`8~!(%b0Y7eRosBKBC^`mfl$I^R{l?pp_;1@WD32ai5kdcd3M
z^m+UN=V;a5x_*9(vTzYtR(Heec{Ls)LdV&W7y{V+ZuqPMyu+XY%$fCdKj_hAA412X
z9#03Ex55W|536?9y#sOUVDTF@5$8YaHi%%9&MDkZ)|3Gp8mgcZJl50?7fGwkHO60p
zZhyFar{50Jgv_g8$k>5aQ>oPVpawo8YKRl#hc>oIaxO{*fKmVk?3H*sQ8bIy$$PNS
zm^QUJj;!T<|8X&Tmhjigq?%e(ppMY%uLMndna;mU<hf+(U9BDY8Q!?K2c9o|Cp?z;
z^Pj4|R$@COdz6|--+R3VyzF@q@V^d8Qf<+uE=L)2F(2$~G*r*u$<=O*7m}ns(1{9D
z;Y^{|9oF*p@@9q1kiw^&M)}vDtuk~W`5T^_=WBU3ZEl@0_8<1Y)SggaGLZ!A2#f`s
zbKrEiPfENE9s6MTM4C}Q+(s);GKp&lc$TM^mKI>(!hA{kXVc%0H6AUg<LVxARbB+I
zubB-?iJ!V3Qn!4fXz%tQ2mNOfI{4Q&9U?eom<x@YKL(w>IMB;Y2q3as&sY398#kE0
zW83CIlm!|%<nHchawVWv5AyxXiITYg<9_nbqbH51Hvx={H@rm_lFaDa>OO&SzQ41d
zS$iN9BrRi!79<Ui{~hrneIXRry?g+D;*8pl@}~bWkR^0vcz>O=xyI?ngbQV~+RpO`
zgt2WYwEdm=V<3qZ)gKkzTAP9<tsQxrWc$7BL*3@Y4)#dX=FLeu$Q)WKBe%`??5j6_
zGpXJtq$_g|SJdxLBtN+S%b;aWHg5TSbFIABDVieIv5TfvgPR0+myltdME7weY1tJv
zIi+{V*DR%5%@ab+A>Zf$LsE<)l0?cLpV{+UkiYYIQGnS~Bad;H{xUx0IA93P!Z$Ub
zRs}&&XlPF1+UESgi+B-d`JNY2Bfq~xE9@Kpnx?;#;mg;m75vQ*?*d4Tztw|nTLS^Y
zH-`iqEf>b-r);F3Q~_D`cZH$BGWu)siXg~pRDs3<QlxV3MAV*`OkO*y-}U=6g73RA
z&!q!2FhL9$AfbPBK&?WWip;9TujkAMy8K<br`rsf898zEPQX{lwvyq*G7(Ck|Bds{
z>)1|az7kgqJm2#$NR_{p2Y23-4BY)UL<O0}%Tx&U<y8w{_|@^Jr_<};cMy*m3XeO!
zh9J>yBE<v`ft>a^$KdzDc9uq0^ACB~H-gaD=Y4z@9VVD}V$kHmZY*Zd<tOLK{JHGE
z$tWALwM*HX4GU!Qfar7fAMFkm`pwhW<a=>--RR|Y0w6WlPWsSq`9?!a)pOu312EGz
zk4m+W%p>D^0mr(5WfHSjGm4$@-XbLhSU&;M=<@H`iuaG1?)qq49eVAA5|f{k5V){}
z8uBYG8s*=a?&=i4q?=aPx<^%phdi8kO`X$JJFg~83BLUMcYF-+MJbGo^^<XZ_r1UG
zp!%(v7DBC*GL8_rOxn!kK0_#ed0o~>{rW9<qih$wOO}bQlRZWAg5ImkYkyNRqEwcW
z9Q5*Sgsi-1G0VoPi^P<0E(`<D+5<cy(nK4TFK*euY~BLDZ1+OhYWGBq%9FNyX`0Qo
zey95SWRvrZs>Z@->vG69q4q3;`%j1PYG2lz1;eHL<hBnTu5y~9xtP4yyTU!ozLKep
zdOf9u_~P3$JQyv#Og7IECOzmM(Cee$_5@wJ_lJAS5i^fXgXO~gUWq)fW?g=_vR^MO
zO8V;)F@|ni8GTfoDk>UAMDldZP&8yIZ=zAT!_W^5Gh_b#n<M+3C{!PZ+i&eloZ_|D
zhm3x6UzNX$-HH|Kp())EXHc2epEfRFQXafiIMh=U26yIovzjEqiu!xSNW8?j>%EiU
zZ%Fin+oCFPL;K`A8?8xGtUp%fnKU^o)jCC>R2*P%Cfi#_LmHjMEJxhmc}|a?*)R;#
zbyHfgLFFpb00`ZaHUnRQmT#aiiK}x0gu+pd23%n_RUjE4QhiC3{(j_k)DA`~jo|p#
z#u5J(u73}=8;tpFvdM1RcA}^T|4=?G_T`x+6LdEhU<tF325F#lX@R4G;8tcnT|y8;
zM7RYZbpD7{f^}i}jWC9ixK0IM8zO%8@oO+3hds|;k{}`C@I2t<ubv__!$|%x$Xhi4
zA5onHl!jYyf)v1Ac3`q6kYg%b(<Y*cPg&j8gzJ)g!`ArqxEl=bz$AR>m=K9erRBQI
z%4?gf+wXzRB%6mX!*t}t3Kv1nsQ~!hZbTr0bFyUkaDfV!snDh2##9g(Hhul2EW747
zgi;TxQ%{3b>Mc4N=<s3V+t6sd`1<n_g$zkH2L&lWp2A0?KbSyNVu^_FI3OY%a3BWE
z75dux<p+XFv-h_3W#-m@wY{wQWzL5RBNIn+nhQl|y~--UW#PxD8U?5t{)(xH|I`{D
z`CTKF?#0zLB-2|51B8XrB@4j=2WJ)$Fn(l9IeYy2o-BcyM7wsO!dSiOb5bQ)ahIdW
zbpQJlSsI$4iB`daU+xZ`)Pyp0&|PfMIx1cvoxC&%3lbs-!oj46uOX{hWK<Jf!5FC0
z@eeUJXXsnLvdFo?j(#9kGx{-y>|y#vIG(4HW=>NnpTpmFun$Rj02m`#o`ex0ONfET
z4F{r7@emkC;R~!#dbkG?-M#lhIS+y-buu?tP{T}iowTIQI|Q3D*0|PFM=K&Z8(ngl
zIFhy237n_38l?NRLR4+dQiB2V$&rEkfgtk?a6l=H7ExIM41_<)P%KaggZNGFqMZAL
zMY&tS8=|yPYSZZFA&!dSI@Tu^@(_*Fml5a%4cZC)7jK+63+eEuZ3PCX_~(AjQOo`=
zNPnlQ)GVKn42^BzfT?X|&6O%hoWj^?UbjQVlhMl_0`x{xa=q49T>Mx-$^2R5#O^pn
z>2!Sz?&CdJ65j%GFWASd4pIV3tzxpdURHySx^q=6dV<a9LJ7&|zmM+^-ETMAxR98+
z;3)9nE~i9=C(<H*$MQJ^XE5|xIdYK)4;Zjn8Nk}I(zsDb*jXs2rh@`%|0eBzB9qff
zj4xhW@Ey7nox=HOfR-;2fs#b4GbZAJM`^8d$p4fi{Epn8JL;)duC3j77s``Beu+}6
zee6tiH1#|K#=d)klygO6%l5c+uk(VJs+KO?eoPGx7M!gc=e|8B__ZUxW3Pt;-=DA+
zKVOm^Fvt@PtGDQkmmjD3_7KnieRZ)(y^Fev7YHGFBaLE?{gVLXY_i}AYAS2`_{{{U
z-B!1EKX95m`s(!~Ydmpp#!b2VLVxM3`1Zrmb@>RBZ3a7`JP?PSBjkcQPh@?pe)x&(
zA66UTKY_1wx3-Ur8<y0+O-29COF73sbq*HuuK3fHK-6(by~qTYD7S}=qHBCSt>yZU
zi(!nn?u&oDM9#cLFP7RGZ@liCG@JKro%!fz2GqHc@fk04klM@5*ths6nRZJ%lI|p)
ztyuO1VIcggf?H~xX6i7k&p4~V9`G>zjntUEflyoQ^SD~$lBIr*#v)di`!hHHzZ~Wd
zJ-QNEBRBq)fz4l2#_xXm8YV8KB%v!-2Is(P`1=|D+zIhS-F?ZUgd{4ZvFP};cKr74
zvi0T|HHv$hL!f3guj8b`g!f?>1v<?j45gfkRATgu9tJo<3CbZ93QWlzMw3yj))Xg9
z$!T~{CY_6;N_!AzXl$KEx@6(;47Lrf1(+Qv<!xLi6gTTYXMt8jP|lem^Nhj8+cX|6
zPM;$h^0LAt+C>>B0gS~UEbJ?|HOB?fc^jFhtGDY1pfHBHP3X70`g0Pl;1%{(WPrw)
zLA={hi)#y_&B|CHDe{&@tUa4*`Gx7EV=fZARJ1+2VgS0L3UZC@{Wc`R>bF^Y|J_=)
z6@<ereL`p)6Mc~}dJ$3ptLE%4Bs2y8jxP>zu_xnjZE0yN`sSuL5S5%*$tR?_Sn;IN
zk+q_-5?}{FkQtG0br0boxa+}qf_r@ocNJU^!H6bY#l--XDfxMU;d>>l#G-kxw=U|n
z4oX{wIsAKre7G+PF-<zQIXe6@QBy19fj)^RTNi7+B1;2!j%Z>;OsE5di0T5MG_-(T
zhUl%sTLJ_I(vT32H{#nS1y<Olxi3z)Hb#CHp8wVLJWf{GORQ_rFw%0a!xY7rB9h{E
z?{$OEOmFsm)~q7j=lzb~?2!C->2{d~Bk*>z;1fMDT#15#7$-u6_Yo!o9QuS!|5#-{
z<Ai??f%M(eexmRE$+o#n(O~&4UBt-oteTjh1j}0{f11=tYKtr=GnpyFIp`@dh<?C<
zI7zVl6!rv13P6_+I2t7w_^t(J%9MdC&_kl9wc*h)F3e2#6f10=AMp=&6J`Av2+`g<
z<3bdQ4gN?CUFly$P!!LICyU_sd!u{;m-!1d5NC@Cl#bvEwD$z=G*?eg-k0*kfedfe
zX#weXT6OP3eRVI#^w?%!DTkP<hgnE64Y#XT=oVjWlnH0^GiQWFx@N|Fty2R}bYOum
z2{ANmC;p?XYB{(Z9sE0TP7O#wRObOVO2O+_EQF?wKrxiDNiSZ|aXQp0u{*zKvbc-I
zq7dJ40?9tCq1<NPM<1N@PSsQ6Js$fjRtR3IqNB_U?dRZVtYCex%`Ph(KgZY+Uq<1`
ziACn~!!K#}ui*X&*uvgW!KX-{P9kgU@^yz-q>C0)T!;?6@2clqJa$)sMARqIYV;r+
zk0)L=B>56L<Qz$eI0_7od~&h~5rcWJpDc_-0^&O~Lio>%h)=EE^|VE0=oK*K#|t8-
zuPFs$^fLQzLGuZ2ZmXe@id)*N@}ZDUnL1)Z8A52hime?+&Bx7u|5)K3ImXEMUQge<
zM`(Zo{DDFnt^k6F1jF&@<b^@0(R(0pg?aSf2kS%~jfJHE-FRb>18xC^>12aHE)&2k
zs@Nwb?4XI^>w*cbU-d#dTM%R#VlaWL2MW8>deH&l@xZNi1uJB>M`h5<RPlhBdSkg&
z3fL{^GSKeXOR1<N*apZdjJXcDy-9RxuE|DI;^IiL^(CdfrD9*-z!%yp%$^yef;5;y
zdBB-X3A(Hxg?R+d&d=n2<Nu_}DjgUxh|4`|E^%rhFySlOpBksG?4vD~acWIm9I~&W
z%OWuIOmxXNY)0(e#58#DHw>y{I|JcKhaAgcz;0;FD<ODa{KJ1i@V;j$D%p|cK~%n`
zNYxRa)-Jo*u$vv*)=bCt8-%xF1W+8{@lO%I_S0_gzTkXiTIP^0XP^iqLMVH&7Kci5
zfOTisf2v14W12-K!T~v_4rj_ggW?X<?GVz>w2<~EhliI5igwCTS&^FLFZSoB$eD>H
zD10LcRu|WoR}}rm2%pHJGsgh+eOu9q0~qG^b(v)v%8_%bfYg<>q0IYcTAhF-kNC49
zGRJPK;g!YDNi0#B-0xu-ox&gG{wQ(DTXtXWgzKH6KjnvR?85x$A$ZN+G0#8>XkFb9
z9zWb_5-`)TxAZ%jIz@ik!2)usZWY?tyjjOd<;04s^5^fjU8zy`7I$70NYN82zW6h|
z$X=NbEUMsfM*!<{`)e40n^{H-)`KJX!(mZdv-cC!9L+JvSVnSO(VKcNP;t?UGtk!b
zSPgVYsnD9ejE;FGyPg{6YW6R5Q$rGiy%J(H)2LXP4eT;Slga?wulT3;iy&;Ia=@Rj
z!U(jtPyK}8ZWprMhYw6rMgQS66{Y=o_anEEOn1Vj*{8icX-1vaY{+vNoJDFj0{pO(
zMG_NH%h3QMU|oF!Z9ocohL5ayn*Z36RiYk>2PU&<Rp16`0MZ3Oy(0#K%cs&f!WKkm
z!8pHNY1#d=o1$1MQia~A!QJ)_6tIgs-{?*mojwvw+F$iq%cFzt$w|`z?-9!Ygg%~c
zXVihI-HUA|cnoq2V<JNvpg1-Tvkgs?ZgSbY5uiNT@b3Dy7-rbP056T#ouze0W1k*v
z(z{KmE0MJroUI!0*{S_ljI-Y-3n|nTVug`|%I9bECEOiCj`HQ4<uUBNO(QUl2E0_1
zHz}QUXq$a0^JOuRKpr-x=x&p4&ijADo@1_k9#~AkzW#^zf1xAxf+R(&1dYZ_g5^sn
zCF+I#D9*4gsVGz~OOlc)=Rsi7O_?Si8^ShL@d2Nm3pd+yX`nZV3kDVyeY>{vAU1j?
zkRdJ8tizF;3llfJ+zh|bK4_O(7pI-9<s2)hi0<-%N(U4|E}xH*{=Q4x8<=>w<Ny2p
z@de@1QVZ&>^Y4gTB0F9sU?J)5ad=AE{p>o;579Jw#@~5OWbag~+3Mnyph?f@wbwu8
z=fB{(_w#nycZtQsdzOuJ=!+1W3GvhPtLJ9m8OpCA&1MCEcLm9=MUSexJUgvMnqDuz
zd3!`HT>912mxR#8IDT6FH+LT`QmrCDq@~pdJ?clm$SLSgUD~0uNXRqN&U+KZqw7Df
zzDBzgap!mUAGRk7ciu7Jh?&{>=jdQn1ag0rfaz2*?e8k)dfhWi<lN=lQenN!bXuah
zH>h%4+tNn18&<Eg`QcOFlDB*4Ht$b4D?3qs;0*nwuhWeFfNh-PkKI}J!>)E9RC<4z
zeXoG((fW36d;|?kq_y=zW+bjMr=HBC9G6~Oz67sXY9iWf{^(T=lY^M^#K>_LyRTd#
zP2auGUqc^`u^ubR5w4Vs@kxf)dChil)2=KRi>a|4o@pNTPdUTmaKG~`#_vwS6!#k6
z{+4VvCc;c#xd<Hd&gM!+{y5|=I$W4>y8hCDR;Cl~`TpA&O_}1i*3^LT54QK|MZcr>
z_WFbw0$>}L+Ody2Uo6A7WL7!Jjsi|{&4b%5B5BgX4~e|uY}|YIqYsLi98Q<{`IYRM
zg6GJnsy+;=)vhXW#}ZcT6Xz)uFQxpe`U{DB-KsDH#Ubr*#odC)p9`{S*v9t${JC%W
zNwRP4qvDI=x+u!)g-*90R-vYQbpgwWYEHiCSSi3znGDt6hfK_&?&t8e#l%}MMpBFl
zxE>$Q97^qR@(KeM*(xar8JyGv7=1lKpu)}4U@!(Ggn@EP+h#cPr~OUH-`QqXhlhNd
zjl-d^u9-i0$Gp!aVs!#8LeIRnr-PZYrSHxBwm7LpU-rGj%`%3{jJ$YGlC;!ih7QtL
z?Zt!uX4Po`%PTiH$H>#58o08=3zvG`f%ntyD#+pAjuhI>e65GIil<XG$-yg$1LPbL
z&08B`5qG9S{?N*tQ#yfwU45d~%$?j<Qx-#xKH$$k)?)s)ec^xNnI~*Nd}gU*_CGQU
z29pV#7*00#RAeUEKBXBQ|LsadB;F+^O1?w-TJs+D!7Zj(D5RiYgTUhA;<N%m>-1!j
zY|&2)#*BgVwZTom3H=~rSH4u71~5Evh9-a_APuJ-&g8=GsZ%XZ`qc>;Jya=i6~{(4
zze`0_$3fz?k)M$&6Q&2k9O@)|ms0J}WX+PQI!AD_7a~rK?MmT=*{6>HgTC8@7F?wW
zQvP*i_&d*0XyEkG>uvdgHGS``HxH~dcZ(_r(SdxGqHQ%PTNR$W9pbwF`p%+Ykchrg
zd;ZKP$e_{BKpcRu)<0Yc9BtI9zz>QDE10>pjI*RY^gW>ul4rjnPF^nE9*z_fjWPsx
z;rz(NO!21+*w8E;HQ$iEs5?KQdY&WrS6@)|)f2@QGGUNb`pZ9QAe|~5VNk^MzNK=|
z;9m<V(z6F_O59723H#57{`JNPnsyyl()}m76%JXpBG<DF^T_p2japPb5N<VUavqZw
z$Pvhj7X#aei!s7Wvk-%$TpSR*76*M7a399EC6pk5IEQrXN?FRM&&S~K(&n~;aVhHg
zyi^c_T%OhQbU~|Axk9whq@J(NkSZ|#!g0BUWw<t7LOPg(xm0e|S*Pqjy%Lf4dIrKa
zs{~A492pQ61~&VEnQHz%E3%?w0?W~aAU~T5p#*S;c3L8|Z-?Xd+w9tj&7pT_pEX5l
zRCRSwQacl49EMzV{P7z~%uw1MPS~w4htpAiEC2Fd!-_6!Faf)J4nD=e0$t#PZ77xh
zC$PT02cYd7qem6R>AK2uc9Z4dpSjUqcHr9b7A0l!Z0R|#ihlchp@I~KLoS?6Doh)_
zu=K%3UGOn9lpxZdn;Jp5l_rCG^PfI$I}&ztJSpaMC0Dy0lkx;${plYda`3~ne*P2}
z9ns|~NVrt6b{V?dJkGZr?$|N@3Us`o=$|_;^#S3=1iixlG*FRl!;~WTtHWQYrv4vi
zfe1%Iyo&Usa1;vcWijV9f7lG3%s-7n>1JhqP#>q+%Q)cm8&5xe%t7J#7D4;Pq!ZrW
z*g^ioamw?yQzmW9rs}H{8t5HMq^f8a;yr5&UFlvWAEjU8sr=MHK{6`(@8X=pB5QW2
z)rThuRkfKID&7*$00)V;uz|kjA&u<%qJ(-ftQI~Y0{FUqmAQ!dX>BIlbU4uR1a+&@
zkmj#sFi6@RVdl;od8!Nb$k?GwV+%UZN9AD$I^SFxGhyZiYBo6^FlHMmi!Ic%74vOR
zTbAhK$tdDL$9G>b!@nzjgEd46*Yv8FuSvFht22=+*r<om43#E!xlUF4@<^D9?WWml
z7KrliHrw9zeB7s0Jv5ae@F;ru;4Bk}qNv@M3@4D4@|G!g-rNwjrT5}kWa>v|+4$3b
zZ!3S9Pw}ln%eG1#?EZ^BG{yxDUxw|9&~c^5s(?Zdx-((jv<d4!5hbpJL*0f74rtA>
z13BIiNg7v<)1Ffv6D%?fSr_TBhX^49!*M=iw(6`RQc?jsR0}$}pNjkz<Y_5ag}wty
zT=szx99lFnvS`K7<cjwYs0oJqD*$u`DhN)Rxzu=7_Kc*C2><6%^oMiYn`-l$ug_5e
zS1DRhObQInw-Hk}ce)nOJZ9INf!2B`WzZ4KR@X3E!~FpiZ)K(=-8Jv@E0_O7vHoC^
z*mjWnD^9@x&n<51a}BtoDA5<;<}xSCC+OaWNZ$ME3m&cIdTfwC4Zm$M?e4xF(O$|$
zrSzuPFiN2WDjj&+{!K)`jnAnWe@$`zFB!7C_VUHc>G-^C$sIK&2Yo??dG8%0cY(-P
z1rmXM{)O0gYP&rAn2vYb`0|l9nE3ECc_<5>4C^-IkP5A?DipVEh9TOz&DpiYx%6@C
z#Dno^dc`iX8XU-yP(<05{clKW%B~$F$=^>896~*gwp&*&IxfA9fhpjF$7_{qs|GRM
zLX+R<MN|4&n$SgODsrEQHA?`~#a6OZLvyv8(8kbx`illkNWOa$$Pgmgx4-ZfM!|u;
zqpg&Hb6T&^?OQTGv>8N{JxU6-9q%_r?JeOsI^WN_t7?pj&xEkHMow{;zu80jt}tvI
zFD>(I?F<}NeZm5#`PrYw0M)P3Kz3*VPJFh2r$Th$n@AOsr`1d<ctu$NWw#qFLAr;v
z4!*VWioE3mJeVeZl=V`;WtsTeOMc3EvGMp%!Uf*UanX3hm*pP`R|gVE@%r&s^ooAF
zNn9^k!NQDwHU6_X@!pbet{Mg`(R8ln0~$~D;{91<@p;yAtya#siRn)tbtBNNQIE;@
zEc*qXr-v;|1yxQ;F;)=-i`fovmObTaa(zqNhnYF^16j4|OE7s(Bo#fe444$Z8I3<J
z81hQoH@tCPs%X$o)aQ8liIX@Y{+XN>hA9WkD|k=MnY0PQDYtoFoJo3AVzoQ(6}uJ5
zwBXm2)hE`7bwu6b&XTa}cPj9p2ZnQpcF_<Pk^dW%y=#@k-jVGTyTXWv=+KADPnGuO
z;L_GrjCw!zT*Pg4PV;&%WaRzndDzV+i)$-$Lv(oRc^rOnUJm&|(tfh8O7-?H70vgu
z^5JFy3+QIOS6uA*LQ2`xtIjq_!yUcUUSnb|o%a?JikLR%W8(-(Vdg&vZ;rqJ8z5U2
zWjU)({FWZL;A%Oc?oz7F;V9*e^z_^x_q^<e=Py&jSE|J9%Ls3=7VE}8XF=|M6kupM
zFSkP5;JrhPt_Ir!sog)SJpM=pW<eOspD?YL689`?HL&MYwbD*Ya-&mZ+dqdmPRfn6
zas8m?EaKL>$!1-P{a=mYqW?0lIKJ;w@^$6in|X0*YF`$DQZHSS134zF#>yPW_`4AM
znjWs@7CMvwH&w=voOp3Nmp*fLCy%HIhrP5`8tIG_zpnAcnl=|XlAwc5huL$3P(55h
z>c_yBe?U^0$VIy65!`OulJGuDnbnWNi(Y(X%(q+=wc|?Q2Wu_JnDJ&$*`0Aw!ZUIi
zLNC5ADY4@dQNnc>jc?!5JbOc?nNQyEX>`M5$mfqT$&v=S?+6QQU0tZYtev?)e4p?-
zY{z1l6g8L;7w5*j(|auG#MUb~C2FLD6F18@<AGAjR4usKZ&vu^J%8tiaqKIyhgrMU
zRa?r(T4k33DbqbZe+4yl&%{Xc{4{4uamikkHr&Hj|K7%v4NX$PiDq5O{ilwywXB8+
z0Y}4%Z4KP5&)qmzMkYevVu`1@`IZ%ay2*l9^3p5yIwFr%yR*14Cm))|aO7P~1!-NT
zn$8t+E@<>z+LutDU_~ID;*L^^u`B!#;k#f{-zo9?Ko4_oPY}^K;S}Z+?xf&NYM^|v
z*pkvo9N^|^q7*<0z0x+Hj+W+}ccPQ$H(-$H-?fpVpC<>uExt9k+(1qEU9M}<R@%oV
zI#^MphSytBL_LMpptz_oA=J0^?Q(HaL{hlt6ttS&v6;RnSsuP(?$VI)No=x0N0Res
z2sx-0F;JnkiSaA@BLR(bMLP;7uUIW?Zv<S=$?v2Sb|&{)4TRmhc&^KP;B^pyg=m`+
z%4`y=ck#6vp9z(0Mh|#i`3~;ZV_uILfV*3mp%k!#r-6n#ZjZ$19>vo%HvX0RkxaW5
z=KK>pm4^BzfJRm1U%B1g>RZ@jDfLn$`jQ>x1y$v|mymsRDCL?c!YkXHKGa-HgE^c<
z&YfRD-oQYl9&jEJOV>1l30cc7hM{sP6OEbF4?M=-nqywL<<z<eS}wVc<p0c)^p#)1
zsD>U9Y?sIr@s$(G5wcSm@dzPD$+RR=zaQD*X%5`4WL^3uN+b)z#*3hP*#P%bC@!UE
zZ>`)nYW}1sbTh`W{0WJAY;H1vzX&xGt4PFK9HgI<Bhf5O{|B@{{P2?=(I-n1yNogg
SFP~Pu0;-By3RQBju>S)leN-3#

literal 0
HcmV?d00001

diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..a491964
--- /dev/null
+++ b/app/src/main/res/values/colors.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+	<color name="colorPrimary">#008577</color>
+	<color name="colorPrimaryDark">#00574B</color>
+	<color name="colorAccent">#D81B60</color>
+</resources>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..1541ed7
--- /dev/null
+++ b/app/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+<resources>
+	<string name="app_name">Logcat</string>
+</resources>
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..a00f57d
--- /dev/null
+++ b/app/src/main/res/values/styles.xml
@@ -0,0 +1,9 @@
+<resources>
+
+	<style name="AppTheme" parent="Theme.AppCompat">
+		<item name="colorPrimary">@color/colorPrimary</item>
+		<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
+		<item name="colorAccent">@color/colorAccent</item>
+	</style>
+
+</resources>
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..d357a30
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,27 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+    repositories {
+        google()
+        jcenter()
+        
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:3.4.2'
+
+        // NOTE: Do not place your application dependencies here; they belong
+        // in the individual module build.gradle files
+    }
+}
+
+allprojects {
+    repositories {
+        google()
+        jcenter()
+        
+    }
+}
+
+task clean(type: Delete) {
+    delete rootProject.buildDir
+}
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000..199d16e
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,20 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx1536m
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Automatically convert third-party libraries to use AndroidX
+android.enableJetifier=true
+
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000000000000000000000000000000000..f6b961fd5a86aa5fbfe90f707c3138408be7c718
GIT binary patch
literal 54329
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
F{|7XC?P&l2

literal 0
HcmV?d00001

diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..b55b7ee
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Jul 24 16:44:10 EEST 2019
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.4-all.zip
diff --git a/gradlew b/gradlew
new file mode 100755
index 0000000..cccdd3d
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,172 @@
+#!/usr/bin/env sh
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+    echo "$*"
+}
+
+die () {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+  NONSTOP* )
+    nonstop=true
+    ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+    JAVACMD=`cygpath --unix "$JAVACMD"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Escape application args
+save () {
+    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+    echo " "
+}
+APP_ARGS=$(save "$@")
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+  cd "$(dirname "$0")"
+fi
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..f955316
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,84 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/logcat/.gitignore b/logcat/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/logcat/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/logcat/build.gradle b/logcat/build.gradle
new file mode 100644
index 0000000..3384dfb
--- /dev/null
+++ b/logcat/build.gradle
@@ -0,0 +1,27 @@
+apply plugin: 'com.android.library'
+
+android {
+	compileSdkVersion 29
+	buildToolsVersion "29.0.0"
+
+	defaultConfig {
+		minSdkVersion 14
+		targetSdkVersion 29
+		versionCode 1
+		versionName "1.0"
+
+		vectorDrawables.useSupportLibrary = true
+	}
+
+	buildTypes {
+		release {
+			minifyEnabled false
+			proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+		}
+	}
+}
+
+dependencies {
+	implementation 'androidx.appcompat:appcompat:1.0.2'
+	implementation 'androidx.recyclerview:recyclerview:1.1.0-beta01'
+}
diff --git a/logcat/proguard-rules.pro b/logcat/proguard-rules.pro
new file mode 100644
index 0000000..f1b4245
--- /dev/null
+++ b/logcat/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/logcat/src/main/AndroidManifest.xml b/logcat/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..c9666fa
--- /dev/null
+++ b/logcat/src/main/AndroidManifest.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+	package="com.devlight.logcat">
+
+	<application>
+		<activity
+			android:name=".LogcatActivity"
+			android:theme="@style/LogcatActivityTheme"
+			android:windowSoftInputMode="stateHidden" />
+	</application>
+
+</manifest>
\ No newline at end of file
diff --git a/logcat/src/main/java/com/devlight/logcat/LogcatActivity.java b/logcat/src/main/java/com/devlight/logcat/LogcatActivity.java
new file mode 100644
index 0000000..1bd90a0
--- /dev/null
+++ b/logcat/src/main/java/com/devlight/logcat/LogcatActivity.java
@@ -0,0 +1,469 @@
+package com.devlight.logcat;
+
+import android.content.ClipData;
+import android.content.ClipboardManager;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.animation.AccelerateInterpolator;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.EditText;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.PopupMenu;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.devlight.logcat.adapter.LogRvAdapter;
+import com.devlight.logcat.model.Logcat;
+import com.devlight.logcat.model.Trace;
+import com.devlight.logcat.model.TraceBuffer;
+import com.devlight.logcat.model.TraceLevel;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.TreeSet;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.regex.PatternSyntaxException;
+
+/**
+ * @author Taras Yurkiv
+ * Email TYurkiv1995@gmail.com
+ * @since 19.07.2019
+ */
+public class LogcatActivity extends AppCompatActivity implements
+		Logcat.Listener,
+		View.OnClickListener,
+		CompoundButton.OnCheckedChangeListener,
+		PopupMenu.OnMenuItemClickListener,
+		LogRvAdapter.OnSelectedTraceRangeChangeListener {
+
+	public static final String BUFFER_SIZE_EXTRA = "BUFFER_SIZE_EXTRA";
+	private final long animDuration = 200;
+
+	private View progressView;
+	private RecyclerView rvLog;
+	private LinearLayoutManager linearLayoutManager;
+	private LogRvAdapter logRvAdapter;
+
+	private View btnDown;
+	private TextView txtTraceLevel;
+	private EditText etxtFilter;
+	private View btnClearFilter;
+	private CheckBox cbRegex;
+	private ViewGroup shareContainer;
+	private View btnShare;
+	private View btnCopy;
+	private View btnSelectAllBetween;
+	private View btnCloseSelect;
+
+	private final Logcat log = new Logcat();
+
+	private final TraceBuffer traceBuffer = new TraceBuffer(2500);
+	private boolean isInitialized;
+	private TraceLevel traceLevel = TraceLevel.VERBOSE;
+
+	private boolean hasSelectedTrace;
+	private List<Trace> waitingTraces = new ArrayList<>();
+
+	@Override
+	protected void onCreate(@Nullable Bundle savedInstanceState) {
+		super.onCreate(savedInstanceState);
+
+		setContentView(R.layout.activity_logcat);
+
+		Bundle bundle = getIntent().getExtras();
+		if (bundle != null) {
+			int bufferSize = bundle.getInt(BUFFER_SIZE_EXTRA, 2500);
+			if (bufferSize < 0) bufferSize = 2500;
+			traceBuffer.setBufferSize(bufferSize);
+		}
+		progressView = findViewById(R.id.pw_log_cat);
+		rvLog = findViewById(R.id.rv_log_cat);
+		linearLayoutManager = (LinearLayoutManager) rvLog.getLayoutManager();
+		logRvAdapter = new LogRvAdapter(true, true, this);
+		rvLog.setAdapter(logRvAdapter);
+
+		CheckBox cbTime = findViewById(R.id.cb_log_cat_time);
+		cbTime.setOnCheckedChangeListener(this);
+		CheckBox cbTag = findViewById(R.id.cb_log_cat_tag);
+		cbTag.setOnCheckedChangeListener(this);
+		CheckBox cbWrapLog = findViewById(R.id.cb_log_cat_wrap_log);
+		cbWrapLog.setOnCheckedChangeListener(this);
+
+		btnDown = findViewById(R.id.fab_log_cat);
+		btnDown.setOnClickListener(this);
+		showFab(false, false);
+		setListWidth(false, false);
+
+		rvLog.addOnScrollListener(new RecyclerView.OnScrollListener() {
+			@Override
+			public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
+				if (dy > 0 && rvLog.canScrollVertically(1)) {
+					showFab(true, true);
+				} else showFab(false, true);
+			}
+
+			@Override
+			public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
+				if (!rvLog.canScrollVertically(1)) showFab(false, true);
+			}
+		});
+
+		txtTraceLevel = findViewById(R.id.txt_log_cat_trace_level);
+		txtTraceLevel.setOnClickListener(this);
+		txtTraceLevel.setText(traceLevel.getName());
+
+		etxtFilter = findViewById(R.id.etxt_log_cat_filter);
+		btnClearFilter = findViewById(R.id.btn_log_cat_clear_filter_field);
+		btnClearFilter.setClickable(false);
+		btnClearFilter.setAlpha(0);
+		cbRegex = findViewById(R.id.cb_log_cat_regex);
+
+		etxtFilter.addTextChangedListener(new TextWatcher() {
+			String prevText;
+
+			@Override
+			public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+				if (charSequence == null) prevText = null;
+				else prevText = charSequence.toString();
+
+				if (TextUtils.isEmpty(prevText)) prevText = null;
+			}
+
+			@Override
+			public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+			}
+
+			@Override
+			public void afterTextChanged(Editable editable) {
+				String searchText = String.valueOf(editable);
+				filter();
+				if (TextUtils.isEmpty(searchText) && prevText != null) {
+					btnClearFilter.setClickable(false);
+					btnClearFilter.animate().alpha(0).setDuration(animDuration);
+				} else if (!TextUtils.isEmpty(searchText) && prevText == null) {
+					btnClearFilter.setClickable(true);
+					btnClearFilter.animate().alpha(1).setDuration(animDuration);
+				}
+			}
+		});
+		btnClearFilter.setOnClickListener(this);
+		cbRegex.setOnCheckedChangeListener(this);
+
+		shareContainer = findViewById(R.id.log_cat_share_container);
+		shareContainer.setEnabled(false);
+
+		btnShare = findViewById(R.id.btn_log_cat_share);
+		btnCopy = findViewById(R.id.btn_log_cat_copy);
+		btnSelectAllBetween = findViewById(R.id.btn_log_cat_select_all_between);
+		btnCloseSelect = findViewById(R.id.btn_log_cat_close_select);
+		btnShare.setOnClickListener(this);
+		btnCopy.setOnClickListener(this);
+		btnSelectAllBetween.setOnClickListener(this);
+		btnCloseSelect.setOnClickListener(this);
+	}
+
+	private void showFab(boolean show, boolean animate) {
+		if (animate && show == btnDown.isEnabled()) return;
+
+		btnDown.setEnabled(show);
+		if (animate) {
+			btnDown.animate()
+					.scaleX(show ? 1 : 0)
+					.scaleY(show ? 1 : 0)
+					.setInterpolator(new AccelerateInterpolator())
+					.setDuration(animDuration);
+		} else {
+			btnDown.clearAnimation();
+			btnDown.setScaleX(show ? 1 : 0);
+			btnDown.setScaleY(show ? 1 : 0);
+		}
+	}
+
+	private void showShareContainer(boolean show) {
+		etxtFilter.setEnabled(!show);
+		txtTraceLevel.setEnabled(!show);
+		cbRegex.setEnabled(!show);
+
+		btnShare.setEnabled(show);
+		btnCopy.setEnabled(show);
+		btnSelectAllBetween.setEnabled(show);
+		btnCloseSelect.setEnabled(show);
+
+		if (show != shareContainer.isEnabled()) {
+			shareContainer.setEnabled(show);
+			shareContainer.animate()
+					.translationY(show ? 0 : shareContainer.getHeight())
+					.setDuration(animDuration);
+		}
+
+		if (!show) {
+			hideKeyboard();
+		}
+	}
+
+	private void showSelectAllBetweenButton(boolean show) {
+		if (show != btnSelectAllBetween.isClickable()) {
+			btnSelectAllBetween.setClickable(show);
+			btnSelectAllBetween.animate()
+					.alpha(show ? 1 : 0)
+					.setDuration(animDuration);
+		}
+	}
+
+	private void hideKeyboard() {
+		final View view = getCurrentFocus();
+		if (view != null) {
+			view.clearFocus();
+			InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
+			if (inputMethodManager != null) {
+				inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
+			}
+		}
+	}
+
+	@Override
+	protected void onResume() {
+		super.onResume();
+		if (!isInitialized) {
+			isInitialized = true;
+			log.setListener(this);
+			log.startReading();
+		}
+	}
+
+	@Override
+	protected void onPause() {
+		super.onPause();
+		if (isInitialized) {
+			isInitialized = false;
+			log.stopReading();
+			log.setListener(null);
+		}
+	}
+
+	@Override
+	public void onClick(View v) {
+		int i = v.getId();
+		if (i == R.id.fab_log_cat) {
+			rvLog.scrollToPosition(logRvAdapter.getItemCount() - 1);
+		} else if (i == R.id.txt_log_cat_trace_level) {
+			PopupMenu popup = new PopupMenu(this, txtTraceLevel);
+			popup.getMenuInflater().inflate(R.menu.popup_trace_level, popup.getMenu());
+			popup.setOnMenuItemClickListener(this);
+			popup.show();
+		} else if (i == R.id.btn_log_cat_clear_filter_field) {
+			etxtFilter.setText("");
+		} else if (i == R.id.btn_log_cat_share) {
+			Intent intent = new Intent(Intent.ACTION_SEND);
+			intent.setType("text/plain");
+			intent.putExtra(Intent.EXTRA_TEXT, logRvAdapter.getSelectedTracesAsString());
+			startActivity(Intent.createChooser(intent, ""));
+
+			logRvAdapter.clearSelectedItems(true);
+		} else if (i == R.id.btn_log_cat_copy) {
+			ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
+			if (clipboard != null) {
+				ClipData clip = ClipData.newPlainText("Log", logRvAdapter.getSelectedTracesAsString());
+				clipboard.setPrimaryClip(clip);
+
+				Toast.makeText(this, R.string.title_log_copied, Toast.LENGTH_SHORT).show();
+			}
+
+			logRvAdapter.clearSelectedItems(true);
+		} else if (i == R.id.btn_log_cat_select_all_between) {
+			logRvAdapter.selectAllBetween(true);
+			notifyWithSaveUpScroll();
+		} else if (i == R.id.btn_log_cat_close_select) {
+			logRvAdapter.clearSelectedItems(true);
+		}
+	}
+
+	@Override
+	public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+		int i = buttonView.getId();
+		if (i == R.id.cb_log_cat_time) {
+			logRvAdapter.setShowTime(isChecked);
+			notifyWithSaveUpScroll();
+		} else if (i == R.id.cb_log_cat_tag) {
+			logRvAdapter.setShowTag(isChecked);
+			notifyWithSaveUpScroll();
+		} else if (i == R.id.cb_log_cat_wrap_log) {
+			setListWidth(isChecked, true);
+		} else if (i == R.id.cb_log_cat_regex) {
+			if (!TextUtils.isEmpty(etxtFilter.getText())) {
+				filter();
+			}
+		}
+	}
+
+	@Override
+	public boolean onMenuItemClick(MenuItem item) {
+		TraceLevel traceLevel = TraceLevel.getTraceLevel(String.valueOf(item.getTitle()));
+		if (this.traceLevel != traceLevel) {
+			this.traceLevel = traceLevel;
+			txtTraceLevel.setText(traceLevel.getName());
+
+			filter();
+		}
+		return false;
+	}
+
+	@Override
+	public void onNewTraces(List<Trace> traces) {
+		progressView.setVisibility(View.GONE);
+
+		if (hasSelectedTrace) {
+			waitingTraces.addAll(traces);
+			return;
+		}
+		boolean canScrollDown = rvLog.canScrollVertically(1);
+		boolean canScrollUp = rvLog.canScrollVertically(-1);
+
+		int position = linearLayoutManager.findFirstVisibleItemPosition();
+		Trace firstTrace = logRvAdapter.getItem(position);
+
+		View startView = rvLog.getChildAt(0);
+		int offset = (startView == null) ? 0 : (startView.getTop());
+
+		traceBuffer.add(traces);
+
+		filter(etxtFilter.getText().toString(), cbRegex.isChecked(), firstTrace, offset, canScrollDown, canScrollUp);
+	}
+
+	@Override
+	public void onSelectedTracesRangeChanged(TreeSet<Integer> selectedRange) {
+		hasSelectedTrace = !selectedRange.isEmpty();
+
+		if (!hasSelectedTrace) {
+			showSelectAllBetweenButton(false);
+			if (!waitingTraces.isEmpty()) {
+				onNewTraces(waitingTraces);
+				waitingTraces.clear();
+			} else notifyWithSaveUpScroll();
+
+			showShareContainer(false);
+		} else {
+			showShareContainer(true);
+
+			showSelectAllBetweenButton(selectedRange.last() - selectedRange.first() >= selectedRange.size());
+		}
+	}
+
+	private void notifyWithSaveUpScroll() {
+		boolean canScrollDown = rvLog.canScrollVertically(1);
+		boolean canScrollUp = rvLog.canScrollVertically(-1);
+
+		int position = linearLayoutManager.findFirstVisibleItemPosition();
+		Trace firstTrace = logRvAdapter.getItem(position);
+
+		View startView = rvLog.getChildAt(0);
+		int offset = (startView == null) ? 0 : (startView.getTop());
+		logRvAdapter.notifyDataSetChanged();
+
+		updateScrollPosition(canScrollDown, canScrollUp, offset, firstTrace);
+	}
+
+	private void updateScrollPosition(boolean canScrollDown, boolean canScrollUp, int offset, Trace firstTrace) {
+		int scrollPosition;
+		if (canScrollDown) {
+			scrollPosition = !canScrollUp ? 0 : logRvAdapter.getPosition(firstTrace);
+		} else {
+			scrollPosition = logRvAdapter.getItemCount() - 1;
+			rvLog.scrollToPosition(scrollPosition);
+			return;
+		}
+
+		if (scrollPosition == -1) scrollPosition = 0;
+
+		linearLayoutManager.scrollToPositionWithOffset(scrollPosition, scrollPosition == 0 ? 0 : offset);
+	}
+
+	private void setListWidth(boolean wrapContent, boolean notify) {
+		int displayWidth = Resources.getSystem().getDisplayMetrics().widthPixels;
+
+		if (!wrapContent) {
+			final int orientation = Resources.getSystem().getConfiguration().orientation;
+			displayWidth = orientation == Configuration.ORIENTATION_LANDSCAPE ? displayWidth * 3 : displayWidth * 6;
+		}
+		logRvAdapter.setWidth(displayWidth);
+		if (notify) {
+			notifyWithSaveUpScroll();
+		}
+	}
+
+	private void filter() {
+		boolean canScrollDown = rvLog.canScrollVertically(1);
+		boolean canScrollUp = rvLog.canScrollVertically(-1);
+
+		int position = linearLayoutManager.findFirstVisibleItemPosition();
+		Trace firstTrace = logRvAdapter.getItem(position);
+
+		View startView = rvLog.getChildAt(0);
+		int offset = (startView == null) ? 0 : (startView.getTop());
+
+		filter(etxtFilter.getText().toString(), cbRegex.isChecked(), firstTrace, offset, canScrollDown, canScrollUp);
+	}
+
+	private void filter(String searchText, boolean regex,
+	                    @Nullable Trace firstTrace, int offset, boolean canScrollBottom, boolean canScrollTop
+	) {
+		if (searchText != null) searchText = searchText.toLowerCase();
+
+		if (traceLevel == TraceLevel.VERBOSE && TextUtils.isEmpty(searchText)) {
+			logRvAdapter.setNewData(traceBuffer.getTraces());
+
+			updateScrollPosition(canScrollBottom, canScrollTop, offset, firstTrace);
+			return;
+		}
+
+		List<Trace> traces = new ArrayList<>();
+		Pattern pattern = null;
+		if (regex && !TextUtils.isEmpty(searchText)) try {
+			pattern = Pattern.compile(searchText);
+		} catch (PatternSyntaxException patternSyntaxException) {
+			regex = false;
+		}
+
+		for (Trace trace : traceBuffer.getTraces()) {
+			String tag = trace.tag.toLowerCase();
+			String message = trace.message.toLowerCase();
+			boolean add = traceLevel == TraceLevel.VERBOSE || trace.level.ordinal() >= traceLevel.ordinal();
+
+			if (add && !TextUtils.isEmpty(searchText)) {
+				if (regex) {
+					//noinspection ConstantConditions
+					Matcher m = pattern.matcher(tag);
+
+					add = m.find();
+					if (!add) {
+						m = pattern.matcher(message);
+						add = m.find();
+					}
+				} else {
+					add = tag.contains(searchText) || message.contains(searchText);
+				}
+			}
+			if (add) traces.add(trace);
+		}
+		logRvAdapter.setNewData(traces);
+
+		updateScrollPosition(canScrollBottom, canScrollTop, offset, firstTrace);
+	}
+}
diff --git a/logcat/src/main/java/com/devlight/logcat/adapter/LogRvAdapter.java b/logcat/src/main/java/com/devlight/logcat/adapter/LogRvAdapter.java
new file mode 100644
index 0000000..61ac5ae
--- /dev/null
+++ b/logcat/src/main/java/com/devlight/logcat/adapter/LogRvAdapter.java
@@ -0,0 +1,191 @@
+package com.devlight.logcat.adapter;
+
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.devlight.logcat.R;
+import com.devlight.logcat.model.Trace;
+import com.devlight.logcat.model.TraceLevel;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.TreeSet;
+
+/**
+ * @author Taras Yurkiv
+ * Email TYurkiv1995@gmail.com
+ * @since 19.07.2019
+ */
+public class LogRvAdapter extends RecyclerView.Adapter<LogRvAdapter.ViewHolder> implements
+		View.OnClickListener {
+
+	private final OnSelectedTraceRangeChangeListener rangeChangeListener;
+	private boolean showTag;
+	private boolean showTime;
+	private int width;
+
+	private List<Trace> traces;
+	private int defLogColor;
+	private int errorLogColor;
+
+	private int selectedColor;
+
+	private TreeSet<Integer> selectedItems = new TreeSet<>();
+
+	public LogRvAdapter(boolean showTag, boolean showTime,
+	                    OnSelectedTraceRangeChangeListener rangeChangeListener) {
+		traces = new ArrayList<>();
+		this.showTag = showTag;
+		this.showTime = showTime;
+		this.rangeChangeListener = rangeChangeListener;
+	}
+
+	@NonNull
+	@Override
+	public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+		View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_log, parent, false);
+		return new ViewHolder(v);
+	}
+
+	@Override
+	public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+		holder.itemView.setBackgroundColor(selectedItems.contains(position) ? selectedColor : Color.TRANSPARENT);
+
+		Trace trace = traces.get(position);
+		holder.txtTraceLevel.setText(trace.level.getValue());
+
+		int color = trace.level == TraceLevel.ASSERT || trace.level == TraceLevel.ERROR ? errorLogColor : defLogColor;
+		holder.txtTraceLevel.setTextColor(color);
+		holder.txtMessage.setTextColor(color);
+
+		String log = "";
+		if (showTime) log = trace.time + " ";
+		if (showTag) {
+			log += trace.tag + ": ";
+		}
+		log += trace.message;
+
+		FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) holder.txtMessage.getLayoutParams();
+		layoutParams.width = width;
+		holder.txtMessage.requestLayout();
+		holder.txtMessage.setText(log);
+
+		holder.itemView.setTag(position);
+		holder.itemView.setOnClickListener(this);
+	}
+
+	@Override
+	public void onAttachedToRecyclerView(RecyclerView recyclerView) {
+		defLogColor = ContextCompat.getColor(recyclerView.getContext(), R.color.dark);
+		errorLogColor = ContextCompat.getColor(recyclerView.getContext(), R.color.log_error_color);
+		selectedColor = ContextCompat.getColor(recyclerView.getContext(), R.color.selected_log_color);
+
+		recyclerView.setItemAnimator(null);
+		super.onAttachedToRecyclerView(recyclerView);
+	}
+
+	@Override
+	public int getItemCount() {
+		return traces.size();
+	}
+
+	public void setNewData(List<Trace> newData) {
+		this.traces = newData == null ? new ArrayList<Trace>() : newData;
+
+		notifyDataSetChanged();
+	}
+
+	@Nullable
+	public Trace getItem(int position) {
+		if (position >= 0 && position < traces.size()) {
+			return traces.get(position);
+		}
+		return null;
+	}
+
+	public int getPosition(Trace trace) {
+		return traces.indexOf(trace);
+	}
+
+	public void setShowTag(boolean showTag) {
+		this.showTag = showTag;
+	}
+
+	public void setShowTime(boolean showTime) {
+		this.showTime = showTime;
+	}
+
+	public void setWidth(int width) {
+		this.width = width;
+	}
+
+	public void clearSelectedItems(boolean notifyCallback) {
+		selectedItems.clear();
+		if (notifyCallback) rangeChangeListener.onSelectedTracesRangeChanged(selectedItems);
+	}
+
+	public void selectAllBetween(boolean notifyCallback) {
+		for (int i = selectedItems.first(); i < selectedItems.last(); i++) {
+			selectedItems.add(i);
+		}
+		if (notifyCallback) rangeChangeListener.onSelectedTracesRangeChanged(selectedItems);
+	}
+
+	public String getSelectedTracesAsString() {
+		StringBuilder stringBuilder = new StringBuilder();
+
+		int lastPosition = selectedItems.last();
+		for (Integer selectedItem : selectedItems) {
+			Trace trace = getItem(selectedItem);
+			if (trace != null) {
+				stringBuilder.append(trace.level.getValue())
+						.append(' ')
+						.append(trace.time)
+						.append(' ')
+						.append(trace.tag)
+						.append(": ")
+						.append(trace.message);
+				if (lastPosition != selectedItem) stringBuilder.append("\n");
+			}
+		}
+		return stringBuilder.toString();
+	}
+
+	@Override
+	public void onClick(View v) {
+		int position = (int) v.getTag();
+
+		if (selectedItems.contains(position)) {
+			selectedItems.remove(position);
+			v.setBackgroundColor(Color.TRANSPARENT);
+		} else {
+			selectedItems.add(position);
+			v.setBackgroundColor(selectedColor);
+		}
+		rangeChangeListener.onSelectedTracesRangeChanged(selectedItems);
+	}
+
+	static class ViewHolder extends RecyclerView.ViewHolder {
+		final TextView txtTraceLevel;
+		final TextView txtMessage;
+
+		ViewHolder(View itemView) {
+			super(itemView);
+			txtTraceLevel = itemView.findViewById(R.id.txt_log_level);
+			txtMessage = itemView.findViewById(R.id.txt_log_text);
+		}
+	}
+
+	public interface OnSelectedTraceRangeChangeListener {
+		void onSelectedTracesRangeChanged(TreeSet<Integer> selectedRange);
+	}
+}
diff --git a/logcat/src/main/java/com/devlight/logcat/exception/IllegalTraceException.java b/logcat/src/main/java/com/devlight/logcat/exception/IllegalTraceException.java
new file mode 100644
index 0000000..f8a6768
--- /dev/null
+++ b/logcat/src/main/java/com/devlight/logcat/exception/IllegalTraceException.java
@@ -0,0 +1,8 @@
+package com.devlight.logcat.exception;
+
+public class IllegalTraceException extends Exception {
+
+	public IllegalTraceException(String message) {
+		super(message);
+	}
+}
diff --git a/logcat/src/main/java/com/devlight/logcat/model/LogThread.java b/logcat/src/main/java/com/devlight/logcat/model/LogThread.java
new file mode 100644
index 0000000..d0bc97f
--- /dev/null
+++ b/logcat/src/main/java/com/devlight/logcat/model/LogThread.java
@@ -0,0 +1,77 @@
+package com.devlight.logcat.model;
+
+import android.util.Log;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+class LogThread extends Thread implements Cloneable {
+	private static final String LOGTAG = "LogThread";
+
+	private Process process;
+	private BufferedReader bufferReader;
+	private TraceListener listener;
+	private boolean continueReading = true;
+
+	public void setListener(TraceListener listener) {
+		this.listener = listener;
+	}
+
+	public TraceListener getListener() {
+		return listener;
+	}
+
+	@Override
+	public void run() {
+		super.run();
+		try {
+			process = Runtime.getRuntime().exec("logcat -v time");
+		} catch (IOException e) {
+			Log.e(LOGTAG, "IOException executing logcat command.", e);
+		}
+		readLogcat();
+	}
+
+	public void stopReading() {
+		continueReading = false;
+	}
+
+	private void readLogcat() {
+		BufferedReader bufferedReader = getBufferReader();
+		try {
+			String trace = bufferedReader.readLine();
+			while (trace != null && continueReading) {
+				notifyListener(trace);
+				trace = bufferedReader.readLine();
+			}
+		} catch (IOException e) {
+			Log.e(LOGTAG, "IOException reading logcat trace.", e);
+		}
+	}
+
+	private void notifyListener(String trace) {
+		if (listener != null) {
+			listener.onNewTraceRead(trace);
+		}
+	}
+
+	private BufferedReader getBufferReader() {
+		if (bufferReader == null) {
+			bufferReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
+		}
+		return bufferReader;
+	}
+
+	@Override
+	public Object clone() {
+		LogThread logcat = new LogThread();
+		logcat.setListener(listener);
+		return logcat;
+	}
+
+	interface TraceListener {
+
+		void onNewTraceRead(String trace);
+	}
+}
diff --git a/logcat/src/main/java/com/devlight/logcat/model/Logcat.java b/logcat/src/main/java/com/devlight/logcat/model/Logcat.java
new file mode 100644
index 0000000..d033d0f
--- /dev/null
+++ b/logcat/src/main/java/com/devlight/logcat/model/Logcat.java
@@ -0,0 +1,107 @@
+package com.devlight.logcat.model;
+
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+
+import com.devlight.logcat.exception.IllegalTraceException;
+
+import java.util.LinkedList;
+import java.util.List;
+
+public class Logcat {
+
+	private final int TIME_BETWEEN_TRACE_CONSTANT = 1;
+	private final int MAX_DELAY_TIME_CONSTANT = 2;
+	private final long TIME_BETWEEN_TRACE = 700;
+	private final long MAX_DELAY_TIME = 5000;
+
+	private LogThread logcat;
+	private final Handler mainThreadHandler = new Handler(Looper.getMainLooper()) {
+		@Override
+		public void handleMessage(Message msg) {
+			forceNotifyNewTraces();
+		}
+	};
+	private final List<Trace> tracesToNotify;
+	private Listener listener;
+
+	public Logcat() {
+		this.tracesToNotify = new LinkedList<>();
+		this.logcat = new LogThread();
+	}
+
+	public void startReading() {
+		logcat.setListener(new LogThread.TraceListener() {
+			@Override
+			public void onNewTraceRead(String trace) {
+				try {
+					Logcat.this.addTraceToTheBuffer(trace);
+				} catch (IllegalTraceException e) {
+					return;
+				}
+				Logcat.this.notifyNewTraces();
+			}
+		});
+		boolean logcatWasNotStarted = Thread.State.NEW.equals(logcat.getState());
+		if (logcatWasNotStarted) {
+			logcat.start();
+		} else restart();
+	}
+
+	public void stopReading() {
+		logcat.stopReading();
+		logcat.interrupt();
+	}
+
+	public void restart() {
+		logcat.stopReading();
+		logcat.interrupt();
+		logcat = (LogThread) logcat.clone();
+		tracesToNotify.clear();
+		mainThreadHandler.removeMessages(TIME_BETWEEN_TRACE_CONSTANT);
+		mainThreadHandler.removeMessages(MAX_DELAY_TIME_CONSTANT);
+		logcat.start();
+	}
+
+	public synchronized void setListener(Logcat.Listener listener) {
+		this.listener = listener;
+	}
+
+	private synchronized void addTraceToTheBuffer(String logcatTrace) throws IllegalTraceException {
+		Trace trace = Trace.fromString(logcatTrace);
+		tracesToNotify.add(trace);
+	}
+
+	private void notifyNewTraces() {
+		if (!mainThreadHandler.hasMessages(MAX_DELAY_TIME_CONSTANT)) {
+			mainThreadHandler.sendEmptyMessageDelayed(MAX_DELAY_TIME_CONSTANT, MAX_DELAY_TIME);
+		}
+		mainThreadHandler.removeMessages(TIME_BETWEEN_TRACE_CONSTANT);
+		mainThreadHandler.sendEmptyMessageDelayed(TIME_BETWEEN_TRACE_CONSTANT, TIME_BETWEEN_TRACE);
+	}
+
+	private void forceNotifyNewTraces() {
+		mainThreadHandler.removeMessages(MAX_DELAY_TIME_CONSTANT);
+		mainThreadHandler.sendEmptyMessageDelayed(MAX_DELAY_TIME_CONSTANT, MAX_DELAY_TIME);
+
+		if (tracesToNotify.size() > 0) {
+			final List<Trace> traces = new LinkedList<>(tracesToNotify);
+			tracesToNotify.clear();
+			notifyListeners(traces);
+		}
+	}
+
+	private synchronized void notifyListeners(final List<Trace> traces) {
+		mainThreadHandler.post(new Runnable() {
+			@Override
+			public void run() {
+				if (listener != null) listener.onNewTraces(traces);
+			}
+		});
+	}
+
+	public interface Listener {
+		void onNewTraces(List<Trace> traces);
+	}
+}
diff --git a/logcat/src/main/java/com/devlight/logcat/model/Trace.java b/logcat/src/main/java/com/devlight/logcat/model/Trace.java
new file mode 100644
index 0000000..2883d10
--- /dev/null
+++ b/logcat/src/main/java/com/devlight/logcat/model/Trace.java
@@ -0,0 +1,68 @@
+package com.devlight.logcat.model;
+
+
+import com.devlight.logcat.exception.IllegalTraceException;
+
+public class Trace {
+	private static final String TAG = "TraceLOG";
+	private static final char TRACE_LEVEL_SEPARATOR = '/';
+	private static final int START_OF_DATE_INDEX = 6;
+	private static final int END_OF_DATE_INDEX = 18;
+	private static final int START_OF_MESSAGE_INDEX = 21;
+	private static final int MIN_TRACE_SIZE = 21;
+	static final int TRACE_LEVEL_INDEX = 19;
+
+	public final TraceLevel level;
+	public final String time;
+	public final String tag;
+	public final String message;
+
+	public Trace(TraceLevel level, String time, String tag, String message) {
+		this.level = level;
+		this.time = time;
+		this.tag = tag;
+		this.message = message;
+	}
+
+	public static Trace fromString(String logcatTrace) throws IllegalTraceException {
+		if (logcatTrace == null
+				|| logcatTrace.length() < MIN_TRACE_SIZE
+				|| logcatTrace.charAt(20) != TRACE_LEVEL_SEPARATOR
+				|| logcatTrace.contains(TAG)) {
+			throw new IllegalTraceException(
+					"You are trying to create a Trace object from a invalid String. Your trace have to be "
+							+ "something like: '07-19 15:24:11.162 D/TAG(30345): Some message'.");
+		}
+		TraceLevel level = TraceLevel.getTraceLevel(logcatTrace.charAt(TRACE_LEVEL_INDEX));
+		String time = logcatTrace.substring(START_OF_DATE_INDEX, END_OF_DATE_INDEX);
+		String message = logcatTrace.substring(START_OF_MESSAGE_INDEX);
+
+		String tag = message.substring(0, message.indexOf(':'));
+		tag = tag.replaceFirst(" *\\(.+\\)", "");
+		message = message.substring(message.indexOf(':') + 2);
+
+		return new Trace(level, time, tag, message);
+	}
+
+	@Override
+	public boolean equals(Object o) {
+		if (this == o) return true;
+		if (o == null || getClass() != o.getClass()) return false;
+
+		Trace trace = (Trace) o;
+
+		if (level != trace.level) return false;
+		if (time != null ? !time.equals(trace.time) : trace.time != null) return false;
+		if (tag != null ? !tag.equals(trace.tag) : trace.tag != null) return false;
+		return message != null ? message.equals(trace.message) : trace.message == null;
+	}
+
+	@Override
+	public int hashCode() {
+		int result = level != null ? level.hashCode() : 0;
+		result = 31 * result + (time != null ? time.hashCode() : 0);
+		result = 31 * result + (tag != null ? tag.hashCode() : 0);
+		result = 31 * result + (message != null ? message.hashCode() : 0);
+		return result;
+	}
+}
\ No newline at end of file
diff --git a/logcat/src/main/java/com/devlight/logcat/model/TraceBuffer.java b/logcat/src/main/java/com/devlight/logcat/model/TraceBuffer.java
new file mode 100644
index 0000000..6fb0e89
--- /dev/null
+++ b/logcat/src/main/java/com/devlight/logcat/model/TraceBuffer.java
@@ -0,0 +1,54 @@
+package com.devlight.logcat.model;
+
+import java.util.LinkedList;
+import java.util.List;
+
+public class TraceBuffer {
+
+	private int bufferSize;
+	private final List<Trace> traces;
+
+	public TraceBuffer(int bufferSize) {
+		this.bufferSize = bufferSize;
+		traces = new LinkedList<>();
+	}
+
+	public void setBufferSize(int bufferSize) {
+		this.bufferSize = bufferSize;
+		removeExceededTracesIfNeeded();
+	}
+
+	public int add(List<Trace> traces) {
+		this.traces.addAll(traces);
+		return removeExceededTracesIfNeeded();
+	}
+
+	public List<Trace> getTraces() {
+		return traces;
+	}
+
+	public void clear() {
+		traces.clear();
+	}
+
+	private int removeExceededTracesIfNeeded() {
+		int tracesToDiscard = getNumberOfTracesToDiscard();
+		if (tracesToDiscard > 0) {
+			discardTraces(tracesToDiscard);
+		}
+		return tracesToDiscard;
+	}
+
+	private int getNumberOfTracesToDiscard() {
+		int currentTracesSize = this.traces.size();
+		int tracesToDiscard = currentTracesSize - bufferSize;
+		tracesToDiscard = tracesToDiscard < 0 ? 0 : tracesToDiscard;
+		return tracesToDiscard;
+	}
+
+	private void discardTraces(int tracesToDiscard) {
+		if (tracesToDiscard > 0) {
+			traces.subList(0, tracesToDiscard).clear();
+		}
+	}
+}
diff --git a/logcat/src/main/java/com/devlight/logcat/model/TraceLevel.java b/logcat/src/main/java/com/devlight/logcat/model/TraceLevel.java
new file mode 100644
index 0000000..d038115
--- /dev/null
+++ b/logcat/src/main/java/com/devlight/logcat/model/TraceLevel.java
@@ -0,0 +1,59 @@
+package com.devlight.logcat.model;
+
+/**
+ * Logcat trace levels used to indicate the trace importance.
+ */
+public enum TraceLevel {
+	VERBOSE("V"), DEBUG("D"), INFO("I"), WARN("W"), ERROR("E"), ASSERT("A"), WTF("F");
+
+	private final String value;
+
+	TraceLevel(String value) {
+		this.value = value;
+	}
+
+	public String getValue() {
+		return value;
+	}
+
+	public String getName() {
+		String name = name().toLowerCase();
+		name = name.substring(0, 1).toUpperCase() + name.substring(1);
+		return name;
+	}
+
+	public static TraceLevel getTraceLevel(char trace) {
+		TraceLevel traceLevel;
+		switch (trace) {
+			case 'V':
+				traceLevel = VERBOSE;
+				break;
+			case 'A':
+				traceLevel = ASSERT;
+				break;
+			case 'I':
+				traceLevel = INFO;
+				break;
+			case 'W':
+				traceLevel = WARN;
+				break;
+			case 'E':
+				traceLevel = ERROR;
+				break;
+			case 'F':
+				traceLevel = WTF;
+				break;
+			default:
+				traceLevel = DEBUG;
+		}
+		return traceLevel;
+	}
+
+	public static TraceLevel getTraceLevel(String trace) {
+		trace = trace.toUpperCase();
+		for (TraceLevel value : TraceLevel.values()) {
+			if (value.name().equals(trace)) return value;
+		}
+		return TraceLevel.DEBUG;
+	}
+}
diff --git a/logcat/src/main/res/drawable-v21/bg_btn_floating.xml b/logcat/src/main/res/drawable-v21/bg_btn_floating.xml
new file mode 100644
index 0000000..4c02273
--- /dev/null
+++ b/logcat/src/main/res/drawable-v21/bg_btn_floating.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+	android:color="@color/default_ripple">
+
+	<item android:id="@android:id/mask">
+		<shape android:shape="oval">
+			<solid android:color="#000" />
+		</shape>
+	</item>
+
+	<item>
+		<shape android:shape="oval">
+			<solid android:color="@color/white" />
+		</shape>
+	</item>
+</ripple>
\ No newline at end of file
diff --git a/logcat/src/main/res/drawable-v21/bg_icon_ripple.xml b/logcat/src/main/res/drawable-v21/bg_icon_ripple.xml
new file mode 100644
index 0000000..976bf6d
--- /dev/null
+++ b/logcat/src/main/res/drawable-v21/bg_icon_ripple.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+	android:color="@color/default_ripple"
+	android:radius="24dp" />
\ No newline at end of file
diff --git a/logcat/src/main/res/drawable/bg_btn_floating.xml b/logcat/src/main/res/drawable/bg_btn_floating.xml
new file mode 100644
index 0000000..0614e58
--- /dev/null
+++ b/logcat/src/main/res/drawable/bg_btn_floating.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+	<item android:state_pressed="true">
+		<shape android:shape="oval">
+			<solid android:color="#C9C9C9" />
+		</shape>
+	</item>
+
+	<item>
+		<shape android:shape="oval">
+			<solid android:color="@color/white" />
+		</shape>
+	</item>
+</selector>
diff --git a/logcat/src/main/res/drawable/bg_icon_ripple.xml b/logcat/src/main/res/drawable/bg_icon_ripple.xml
new file mode 100644
index 0000000..8b0d97f
--- /dev/null
+++ b/logcat/src/main/res/drawable/bg_icon_ripple.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+	<item android:state_pressed="true">
+		<shape android:shape="rectangle">
+			<solid android:color="@color/default_ripple" />
+			<corners android:radius="10dp" />
+		</shape>
+	</item>
+</selector>
\ No newline at end of file
diff --git a/logcat/src/main/res/drawable/bg_search.xml b/logcat/src/main/res/drawable/bg_search.xml
new file mode 100644
index 0000000..0d6056e
--- /dev/null
+++ b/logcat/src/main/res/drawable/bg_search.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+	android:shape="rectangle">
+	<solid android:color="#b9f4f6f8" />
+	<corners android:radius="10dp" />
+</shape>
\ No newline at end of file
diff --git a/logcat/src/main/res/drawable/ic_arrow_down.xml b/logcat/src/main/res/drawable/ic_arrow_down.xml
new file mode 100644
index 0000000..22c401f
--- /dev/null
+++ b/logcat/src/main/res/drawable/ic_arrow_down.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="M16.59,8.59L12,13.17 7.41,8.59 6,10l6,6 6,-6z"/>
+</vector>
diff --git a/logcat/src/main/res/drawable/ic_bar_search_gray.xml b/logcat/src/main/res/drawable/ic_bar_search_gray.xml
new file mode 100644
index 0000000..a52c115
--- /dev/null
+++ b/logcat/src/main/res/drawable/ic_bar_search_gray.xml
@@ -0,0 +1,12 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+	android:width="14dp"
+	android:height="14dp"
+	android:viewportWidth="14"
+	android:viewportHeight="14">
+	<path
+		android:pathData="M13.7431,12.5741L9.9101,8.7396C10.5972,7.8025 10.9652,6.6695 10.9601,5.5076C10.947,2.4744 8.4937,0.0176 5.4606,0.0001C4.0091,-0.0065 2.6152,0.5677 1.5895,1.5948C0.5638,2.6219 -0.0085,4.0165 0.0001,5.4681C0.0132,8.5015 2.4667,10.9585 5.5001,10.9761C6.6668,10.9811 7.8039,10.6088 8.7416,9.9146L8.7456,9.9116L12.5751,13.7431C12.7821,13.9603 13.0907,14.0482 13.3811,13.9728C13.6716,13.8973 13.8983,13.6704 13.9735,13.3799C14.0487,13.0894 13.9605,12.7809 13.7431,12.5741L13.7431,12.5741ZM5.4961,9.8781C3.0695,9.8641 1.1067,7.8987 1.0961,5.4721C1.0895,4.311 1.5474,3.1955 2.3678,2.3739C3.1882,1.5523 4.303,1.0927 5.4641,1.0976C7.8907,1.1115 9.8534,3.077 9.8641,5.5036C9.8706,6.6646 9.4128,7.7801 8.5924,8.6017C7.772,9.4233 6.6572,9.8829 5.4961,9.8781Z"
+		android:strokeWidth="1"
+		android:fillColor="#919EAB"
+		android:fillType="evenOdd"
+		android:strokeColor="#00000000" />
+</vector>
diff --git a/logcat/src/main/res/drawable/ic_clear_search_field.xml b/logcat/src/main/res/drawable/ic_clear_search_field.xml
new file mode 100644
index 0000000..130c0f2
--- /dev/null
+++ b/logcat/src/main/res/drawable/ic_clear_search_field.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+	android:width="24dp"
+	android:height="24dp"
+	android:viewportWidth="24"
+	android:viewportHeight="24">
+	<path
+		android:pathData="M13.414,12l2.475,-2.475a0.5,0.5 0,0 0,0 -0.707l-0.707,-0.707a0.5,0.5 0,0 0,-0.707 0L12,10.586 9.525,8.11a0.5,0.5 0,0 0,-0.707 0l-0.707,0.707a0.5,0.5 0,0 0,0 0.707L10.586,12 8.11,14.475a0.5,0.5 0,0 0,0 0.707l0.707,0.707a0.5,0.5 0,0 0,0.707 0L12,13.414l2.475,2.475a0.5,0.5 0,0 0,0.707 0l0.707,-0.707a0.5,0.5 0,0 0,0 -0.707L13.414,12zM3,12a9,9 0,1 1,9 9c-4.97,0 -9,-4.03 -9,-9z"
+		android:fillColor="#C3CDD5"
+		android:fillType="evenOdd" />
+</vector>
diff --git a/logcat/src/main/res/drawable/ic_close_black.xml b/logcat/src/main/res/drawable/ic_close_black.xml
new file mode 100644
index 0000000..23c38fb
--- /dev/null
+++ b/logcat/src/main/res/drawable/ic_close_black.xml
@@ -0,0 +1,12 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+	android:width="24dp"
+	android:height="24dp"
+	android:viewportWidth="24"
+	android:viewportHeight="24">
+	<path
+		android:pathData="M12,10.3921L17.2256,5.1665C17.4476,4.9445 17.8076,4.9445 18.0296,5.1665L18.8335,5.9704C19.0555,6.1924 19.0555,6.5524 18.8335,6.7744L13.6079,12L18.8335,17.2256C19.0555,17.4476 19.0555,17.8076 18.8335,18.0296L18.0296,18.8335C17.8076,19.0555 17.4476,19.0555 17.2256,18.8335L12,13.6079L6.7744,18.8335C6.5524,19.0555 6.1924,19.0555 5.9704,18.8335L5.1665,18.0296C4.9445,17.8076 4.9445,17.4476 5.1665,17.2256L10.3921,12L5.1665,6.7744C4.9445,6.5524 4.9445,6.1924 5.1665,5.9704L5.9704,5.1665C6.1924,4.9445 6.5524,4.9445 6.7744,5.1665L12,10.3921Z"
+		android:strokeWidth="1"
+		android:fillColor="#000000"
+		android:fillType="evenOdd"
+		android:strokeColor="#00000000" />
+</vector>
diff --git a/logcat/src/main/res/drawable/ic_content_copy.xml b/logcat/src/main/res/drawable/ic_content_copy.xml
new file mode 100644
index 0000000..8a894a3
--- /dev/null
+++ b/logcat/src/main/res/drawable/ic_content_copy.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM19,5L8,5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h11c1.1,0 2,-0.9 2,-2L21,7c0,-1.1 -0.9,-2 -2,-2zM19,21L8,21L8,7h11v14z"/>
+</vector>
diff --git a/logcat/src/main/res/drawable/ic_format_indent_increase.xml b/logcat/src/main/res/drawable/ic_format_indent_increase.xml
new file mode 100644
index 0000000..d8a6b90
--- /dev/null
+++ b/logcat/src/main/res/drawable/ic_format_indent_increase.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M3,21h18v-2L3,19v2zM3,8v8l4,-4 -4,-4zM11,17h10v-2L11,15v2zM3,3v2h18L21,3L3,3zM11,9h10L21,7L11,7v2zM11,13h10v-2L11,11v2z"/>
+</vector>
diff --git a/logcat/src/main/res/drawable/ic_gray_arrow_down.xml b/logcat/src/main/res/drawable/ic_gray_arrow_down.xml
new file mode 100644
index 0000000..adf7f19
--- /dev/null
+++ b/logcat/src/main/res/drawable/ic_gray_arrow_down.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+	android:width="16dp"
+	android:height="16dp"
+	android:viewportWidth="16"
+	android:viewportHeight="16">
+	<path
+		android:pathData="M4,4.3l-0.756,0.706a1,1 0,0 0,-0.037 1.426L8.3,11.7l5.093,-5.268a1,1 0,0 0,-0.037 -1.426L12.6,4.3 8.3,8.7 4,4.3z"
+		android:fillColor="#C3CDD5"
+		android:fillType="nonZero" />
+</vector>
diff --git a/logcat/src/main/res/drawable/ic_share.xml b/logcat/src/main/res/drawable/ic_share.xml
new file mode 100644
index 0000000..e3fe874
--- /dev/null
+++ b/logcat/src/main/res/drawable/ic_share.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z"/>
+</vector>
diff --git a/logcat/src/main/res/layout/activity_logcat.xml b/logcat/src/main/res/layout/activity_logcat.xml
new file mode 100644
index 0000000..5accf4f
--- /dev/null
+++ b/logcat/src/main/res/layout/activity_logcat.xml
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout
+	xmlns:android="http://schemas.android.com/apk/res/android"
+	xmlns:app="http://schemas.android.com/apk/res-auto"
+	xmlns:tools="http://schemas.android.com/tools"
+	android:layout_width="match_parent"
+	android:layout_height="match_parent">
+
+	<LinearLayout
+		android:id="@+id/log_cat_toolbar"
+		android:layout_width="match_parent"
+		android:layout_height="wrap_content"
+		android:background="@color/white"
+		android:padding="@dimen/offset_8dp"
+		android:elevation="@dimen/def_elevation"
+		android:orientation="horizontal"
+		tools:targetApi="lollipop">
+
+		<androidx.appcompat.widget.AppCompatCheckBox
+			android:id="@+id/cb_log_cat_time"
+			android:layout_width="wrap_content"
+			android:layout_height="wrap_content"
+			android:checked="true"
+			android:saveEnabled="false"
+			android:text="@string/title_show_time"/>
+
+		<androidx.appcompat.widget.AppCompatCheckBox
+			android:id="@+id/cb_log_cat_tag"
+			android:layout_width="wrap_content"
+			android:layout_height="wrap_content"
+			android:checked="true"
+			android:saveEnabled="false"
+			android:text="@string/title_show_tag"/>
+
+		<androidx.appcompat.widget.AppCompatCheckBox
+			android:id="@+id/cb_log_cat_wrap_log"
+			android:layout_width="wrap_content"
+			android:layout_height="wrap_content"
+			android:saveEnabled="false"
+			android:text="@string/title_wrap_log"/>
+	</LinearLayout>
+
+	<HorizontalScrollView
+		android:layout_width="match_parent"
+		android:layout_height="match_parent"
+		android:layout_above="@+id/search_container"
+		android:layout_below="@+id/log_cat_toolbar"
+		android:background="@color/white"
+		android:overScrollMode="never">
+
+		<androidx.recyclerview.widget.RecyclerView
+			android:id="@+id/rv_log_cat"
+			android:layout_width="wrap_content"
+			android:layout_height="match_parent"
+			android:orientation="vertical"
+			android:overScrollMode="never"
+			app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
+			tools:listitem="@layout/item_log" />
+	</HorizontalScrollView>
+
+	<ProgressBar
+		android:id="@+id/pw_log_cat"
+		android:layout_width="@dimen/progress_size"
+		android:layout_height="@dimen/progress_size"
+		android:layout_centerInParent="true"
+		android:layout_gravity="center"
+		android:indeterminate="true"
+		tools:ignore="UnusedAttribute" />
+
+	<ImageView
+		android:id="@+id/fab_log_cat"
+		android:layout_width="wrap_content"
+		android:layout_height="wrap_content"
+		android:layout_above="@+id/search_container"
+		android:layout_alignParentEnd="true"
+		android:layout_alignParentRight="true"
+		android:elevation="@dimen/def_elevation"
+		tools:targetApi="lollipop"
+		android:layout_margin="@dimen/offset_16dp"
+		android:background="@drawable/bg_btn_floating"
+		app:srcCompat="@drawable/ic_arrow_down"
+		android:padding="@dimen/offset_8dp" />
+
+	<LinearLayout
+		android:id="@+id/search_container"
+		android:layout_width="match_parent"
+		android:layout_height="@dimen/filter_container_height"
+		android:layout_alignParentBottom="true"
+		android:background="@color/white"
+		android:gravity="center_vertical"
+		tools:targetApi="lollipop"
+		android:elevation="@dimen/filter_elevation"
+		android:orientation="horizontal"
+		android:padding="@dimen/offset_8dp">
+
+		<TextView
+			android:id="@+id/txt_log_cat_trace_level"
+			android:layout_width="wrap_content"
+			android:layout_height="match_parent"
+			tools:text="Verbose"
+			android:layout_marginEnd="@dimen/offset_8dp"
+			android:gravity="center"
+			android:drawablePadding="@dimen/offset_4dp"
+			android:paddingEnd="@dimen/offset_8dp"
+			android:paddingStart="@dimen/offset_4dp"
+			android:background="@drawable/bg_search"
+			android:drawableStart="@drawable/ic_gray_arrow_down"
+			android:layout_marginRight="@dimen/offset_8dp"
+			android:paddingLeft="@dimen/offset_4dp"
+			android:paddingRight="@dimen/offset_8dp"
+			android:drawableLeft="@drawable/ic_gray_arrow_down" />
+
+		<LinearLayout
+			android:layout_width="0dp"
+			android:layout_height="match_parent"
+			android:layout_gravity="center_vertical"
+			android:layout_weight="1"
+			android:background="@drawable/bg_search"
+			android:gravity="center_vertical">
+
+			<ImageView
+				android:layout_width="wrap_content"
+				android:layout_height="wrap_content"
+				android:layout_gravity="center_vertical"
+				android:layout_margin="@dimen/offset_12dp"
+				app:srcCompat="@drawable/ic_bar_search_gray"/>
+
+			<EditText
+				android:id="@+id/etxt_log_cat_filter"
+				android:layout_width="0dp"
+				android:layout_height="match_parent"
+				android:layout_weight="1"
+				android:background="@null"
+				android:ellipsize="end"
+				android:hint="@string/title_filter"
+				android:imeOptions="flagNoExtractUi"
+				android:maxLines="1"
+				android:saveEnabled="false"
+				android:singleLine="true"
+				android:textColor="@color/gunmetal"
+				android:textColorHint="@color/hint_color"
+				android:textSize="@dimen/text_14sp"
+				tools:ignore="NestedWeights"/>
+
+			<ImageView
+				android:id="@+id/btn_log_cat_clear_filter_field"
+				android:layout_width="wrap_content"
+				android:layout_height="wrap_content"
+				android:padding="@dimen/offset_4dp"
+				app:srcCompat="@drawable/ic_clear_search_field"/>
+		</LinearLayout>
+
+		<androidx.appcompat.widget.AppCompatCheckBox
+			android:id="@+id/cb_log_cat_regex"
+			android:layout_width="wrap_content"
+			android:layout_height="match_parent"
+			android:gravity="center"
+			android:saveEnabled="false"
+			android:text="@string/title_regex"/>
+	</LinearLayout>
+
+	<LinearLayout
+		android:id="@+id/log_cat_share_container"
+		android:layout_width="match_parent"
+		android:layout_height="@dimen/filter_container_height"
+		android:layout_alignParentBottom="true"
+		android:background="@color/white"
+		android:translationY="@dimen/filter_container_height"
+		android:elevation="@dimen/filter_elevation"
+		tools:targetApi="lollipop"
+		android:gravity="center_vertical"
+		android:orientation="horizontal"
+		android:paddingEnd="@dimen/offset_16dp"
+		android:paddingStart="@dimen/offset_16dp">
+
+		<ImageView
+			android:id="@+id/btn_log_cat_share"
+			android:layout_width="wrap_content"
+			android:layout_height="wrap_content"
+			android:layout_marginEnd="@dimen/offset_8dp"
+			android:background="@drawable/bg_icon_ripple"
+			android:padding="@dimen/offset_12dp"
+			android:scaleType="centerInside"
+			app:srcCompat="@drawable/ic_share"
+			android:layout_marginRight="@dimen/offset_8dp" />
+
+		<ImageView
+			android:id="@+id/btn_log_cat_copy"
+			android:layout_width="wrap_content"
+			android:layout_height="wrap_content"
+			android:layout_marginEnd="@dimen/offset_8dp"
+			android:background="@drawable/bg_icon_ripple"
+			android:padding="@dimen/offset_12dp"
+			android:scaleType="centerInside"
+			app:srcCompat="@drawable/ic_content_copy"
+			android:layout_marginRight="@dimen/offset_8dp" />
+
+		<ImageView
+			android:id="@+id/btn_log_cat_select_all_between"
+			android:layout_width="wrap_content"
+			android:layout_height="wrap_content"
+			android:background="@drawable/bg_icon_ripple"
+			android:padding="@dimen/offset_12dp"
+			android:clickable="false"
+			android:alpha="0"
+			android:scaleType="centerInside"
+			app:srcCompat="@drawable/ic_format_indent_increase"/>
+
+		<Space
+			android:layout_width="0dp"
+			android:layout_height="0dp"
+			android:layout_weight="1"/>
+
+		<ImageView
+			android:id="@+id/btn_log_cat_close_select"
+			android:layout_width="wrap_content"
+			android:layout_height="wrap_content"
+			android:background="@drawable/bg_icon_ripple"
+			android:padding="@dimen/offset_12dp"
+			android:scaleType="centerInside"
+			app:srcCompat="@drawable/ic_close_black"/>
+	</LinearLayout>
+</RelativeLayout>
\ No newline at end of file
diff --git a/logcat/src/main/res/layout/item_log.xml b/logcat/src/main/res/layout/item_log.xml
new file mode 100644
index 0000000..b6f6581
--- /dev/null
+++ b/logcat/src/main/res/layout/item_log.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+	xmlns:tools="http://schemas.android.com/tools"
+	android:layout_width="wrap_content"
+	android:layout_height="wrap_content"
+	android:orientation="horizontal">
+
+	<TextView
+		android:id="@+id/txt_log_level"
+		android:layout_width="wrap_content"
+		android:layout_height="wrap_content"
+		android:layout_marginStart="@dimen/offset_4dp"
+		android:layout_marginLeft="@dimen/offset_4dp"
+		android:textSize="@dimen/text_10sp"
+		android:textStyle="bold"
+		android:typeface="monospace"
+		tools:text="D" />
+
+	<TextView
+		android:id="@+id/txt_log_text"
+		android:layout_width="match_parent"
+		android:layout_height="wrap_content"
+		android:paddingStart="@dimen/offset_16dp"
+		android:paddingLeft="@dimen/offset_16dp"
+		android:paddingEnd="@dimen/offset_8dp"
+		android:paddingRight="@dimen/offset_8dp"
+		android:textSize="@dimen/text_10sp"
+		android:typeface="monospace"
+		tools:text="Some log message" />
+</FrameLayout>
+
diff --git a/logcat/src/main/res/menu/popup_trace_level.xml b/logcat/src/main/res/menu/popup_trace_level.xml
new file mode 100644
index 0000000..2a9aedd
--- /dev/null
+++ b/logcat/src/main/res/menu/popup_trace_level.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu
+	xmlns:android="http://schemas.android.com/apk/res/android">
+
+	<item
+		android:id="@+id/popup_trace_level_verbose"
+		android:title="Verbose"/>
+
+	<item
+		android:id="@+id/popup_trace_level_debug"
+		android:title="Debug"/>
+
+	<item
+		android:id="@+id/popup_trace_level_info"
+		android:title="Info"/>
+
+	<item
+		android:id="@+id/popup_trace_level_warn"
+		android:title="Warn"/>
+
+	<item
+		android:id="@+id/popup_trace_level_error"
+		android:title="Error"/>
+
+	<item
+		android:id="@+id/popup_trace_level_asset"
+		android:title="Assert"/>
+</menu>
\ No newline at end of file
diff --git a/logcat/src/main/res/values-v21/styles.xml b/logcat/src/main/res/values-v21/styles.xml
new file mode 100644
index 0000000..6a79de7
--- /dev/null
+++ b/logcat/src/main/res/values-v21/styles.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+	<style name="LogcatActivityTheme" parent="BaseTheme">
+		<item name="android:statusBarColor">@color/status_bar_color</item>
+	</style>
+</resources>
\ No newline at end of file
diff --git a/logcat/src/main/res/values-v23/styles.xml b/logcat/src/main/res/values-v23/styles.xml
new file mode 100644
index 0000000..2878bda
--- /dev/null
+++ b/logcat/src/main/res/values-v23/styles.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+	<style name="LogcatActivityTheme" parent="BaseTheme">
+		<item name="android:statusBarColor">@color/status_bar_color</item>
+		<item name="android:windowLightStatusBar">true</item>
+	</style>
+
+</resources>
\ No newline at end of file
diff --git a/logcat/src/main/res/values-v27/styles.xml b/logcat/src/main/res/values-v27/styles.xml
new file mode 100644
index 0000000..361b8e7
--- /dev/null
+++ b/logcat/src/main/res/values-v27/styles.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+	<style name="LogcatActivityTheme" parent="BaseTheme">
+		<item name="android:statusBarColor">@color/status_bar_color</item>
+		<item name="android:windowLightStatusBar">true</item>
+		<item name="android:navigationBarColor">@color/white</item>
+		<item name="android:windowLightNavigationBar">true</item>
+		<item name="android:navigationBarDividerColor">@color/nav_bar_divider</item>
+	</style>
+
+</resources>
\ No newline at end of file
diff --git a/logcat/src/main/res/values/colors.xml b/logcat/src/main/res/values/colors.xml
new file mode 100644
index 0000000..ab7bbde
--- /dev/null
+++ b/logcat/src/main/res/values/colors.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+	<color name="status_bar_color">#14000000</color>
+
+	<color name="log_error_color">#C20009</color>
+	<color name="selected_log_color">#8A5C9ABB</color>
+
+	<color name="white">#ffffff</color>
+	<color name="dark">#282b3c</color>
+	<color name="gunmetal">#454f5b</color>
+	<color name="hint_color">#919eab</color>
+
+	<color name="default_ripple">#bddbdbdb</color>
+	<color name="nav_bar_divider">#dadada</color>
+</resources>
\ No newline at end of file
diff --git a/logcat/src/main/res/values/dimens.xml b/logcat/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..36a778f
--- /dev/null
+++ b/logcat/src/main/res/values/dimens.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+	<dimen name="def_elevation">4dp</dimen>
+	<dimen name="filter_elevation">24dp</dimen>
+
+	<dimen name="progress_size">60dp</dimen>
+	<dimen name="filter_container_height">56dp</dimen>
+
+	<dimen name="text_10sp">10sp</dimen>
+	<dimen name="text_14sp">14sp</dimen>
+	<dimen name="offset_4dp">4dp</dimen>
+	<dimen name="offset_8dp">8dp</dimen>
+	<dimen name="offset_12dp">12dp</dimen>
+	<dimen name="offset_16dp">16dp</dimen>
+
+</resources>
\ No newline at end of file
diff --git a/logcat/src/main/res/values/strings.xml b/logcat/src/main/res/values/strings.xml
new file mode 100644
index 0000000..ba1da3b
--- /dev/null
+++ b/logcat/src/main/res/values/strings.xml
@@ -0,0 +1,9 @@
+<resources>
+	<string name="app_name">Logcat</string>
+	<string name="title_filter">Filter</string>
+	<string name="title_regex">Regex</string>
+	<string name="title_show_time">Show time</string>
+	<string name="title_show_tag">Show TAG</string>
+	<string name="title_wrap_log">Wrap log</string>
+	<string name="title_log_copied">Log copied</string>
+</resources>
diff --git a/logcat/src/main/res/values/styles.xml b/logcat/src/main/res/values/styles.xml
new file mode 100644
index 0000000..44fb868
--- /dev/null
+++ b/logcat/src/main/res/values/styles.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+	<style name="BaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
+		<item name="windowActionBar">false</item>
+		<item name="windowNoTitle">true</item>
+		<!--remove windowBackground-->
+		<item name="android:windowBackground">@null</item>
+		<item name="android:windowEnableSplitTouch">false</item>
+		<item name="android:colorBackground">@color/white</item>
+		<item name="android:splitMotionEvents">false</item>
+
+	</style>
+
+	<style name="LogCatActivity" parent="BaseTheme"/>
+
+</resources>
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..872d485
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1 @@
+include ':app', ':logcat'