From fe2ae1d22b2177980b911d8f20855eab0fb4889f Mon Sep 17 00:00:00 2001 From: Martin Valba Date: Sat, 9 Sep 2023 17:57:54 +0000 Subject: [PATCH 1/9] Big list of bugfixes and features * Fixed the issue where some devices didnt like certain chmod option ( caused permission denied for initial scripts ) * Fixed up broken packages with values of null and weird names * Issue was how some perl packages had double :: in description * Overall cahnges for layout where we move forwards for MaterialUI * Kotlin upgrade 1.5.30 -> 1.6.10 * Removed vibrate functions fully ( no one likes it anyway ) * Updated dependencies * Half implemented package manager with functions of ( view packages, update and upgrade ) * Root shell now has proper PS1 with a change how shell is started by script ( su -mm -s pathtoshell ) * Bumped api levels - min: 21 - target: 29 - compile: 30 * Now is hardware accelerated * Forced script recovery with correct chmod ( Runs on every new launch ) * Settings -> about -> Reset App ( Now uses LibSU module for command execution ) * Android SU session now has nethunter scripts path in PATH export --- build.gradle | 8 +- .../tabswitcher/view/TabSwitcherButton.java | 6 +- chrome-tabs/src/main/res/values/attrs.xml | 73 ++++++++++++---- gradle.properties | 2 + gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 0 nhterm/build.gradle | 22 +++-- nhterm/src/main/AndroidManifest.xml | 2 + nhterm/src/main/assets/bin/android-su | 6 +- nhterm/src/main/assets/eks/README.txt | 3 + .../src/main/assets/scripts/extract-archive | 57 ------------- nhterm/src/main/assets/scripts/open-bash | 5 ++ nhterm/src/main/assets/scripts/open-in-vim | 12 --- nhterm/src/main/java/com/offsec/nhterm/App.kt | 8 +- .../com/offsec/nhterm/backend/KeyHandler.java | 83 ++++++++++++++++--- .../offsec/nhterm/component/config/comp.kt | 7 -- .../nhterm/component/config/defaults.kt | 5 +- .../nhterm/component/pm/NeoPackageParser.java | 16 ++-- .../nhterm/component/pm/PackageComponent.java | 4 +- .../com/offsec/nhterm/component/pm/data.kt | 6 +- .../com/offsec/nhterm/component/pm/helper.kt | 52 ++++++++++-- .../offsec/nhterm/component/session/shell.kt | 3 - .../nhterm/component/userscript/comp.kt | 25 +++++- .../offsec/nhterm/frontend/floating/dialog.kt | 11 ++- .../frontend/session/terminal/term-basic.kt | 8 ++ .../session/terminal/term-standard.kt | 37 +++------ .../frontend/session/view/TerminalView.java | 59 +++++++------ .../session/view/TerminalViewClient.java | 4 + .../session/view/extrakey/ExtraKeysView.kt | 15 ++-- .../frontend/session/view/extrakey/buttons.kt | 3 + .../offsec/nhterm/ui/other/AboutActivity.kt | 52 +++++------- .../offsec/nhterm/ui/other/SetupActivity.kt | 4 +- .../nhterm/ui/pm/PackageManagerActivity.kt | 35 ++++---- .../java/com/offsec/nhterm/ui/pm/model.kt | 8 +- .../nhterm/ui/pm/view/RecyclerTabLayout.java | 7 +- .../offsec/nhterm/ui/term/NeoTermActivity.kt | 28 ++++--- .../com/offsec/nhterm/utils/NeoPermission.kt | 25 ++++-- .../java/com/offsec/nhterm/utils/utils.kt | 4 +- nhterm/src/main/res/layout/item_package.xml | 6 +- nhterm/src/main/res/layout/ui_pm.xml | 5 +- nhterm/src/main/res/layout/ui_term_dialog.xml | 5 +- nhterm/src/main/res/menu/menu_main.xml | 5 ++ nhterm/src/main/res/menu/menu_pm.xml | 3 +- nhterm/src/main/res/values/colors.xml | 6 ++ nhterm/src/main/res/values/dimens.xml | 2 +- nhterm/src/main/res/values/strings.xml | 3 +- nhterm/src/main/res/values/styles.xml | 70 ++++++++++++++++ nhterm/src/main/res/xml/setting_general.xml | 6 -- 48 files changed, 518 insertions(+), 300 deletions(-) mode change 100755 => 100644 gradlew create mode 100644 nhterm/src/main/assets/eks/README.txt delete mode 100644 nhterm/src/main/assets/scripts/extract-archive create mode 100644 nhterm/src/main/assets/scripts/open-bash delete mode 100644 nhterm/src/main/assets/scripts/open-in-vim diff --git a/build.gradle b/build.gradle index f58a7c1..c45e3e3 100644 --- a/build.gradle +++ b/build.gradle @@ -1,12 +1,12 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.5.30' + ext.kotlin_version = '1.6.10' ext.android = [ - KOTLIN_VERSION : '1.5.30', + KOTLIN_VERSION : '1.6.10', MIN_SDK_VERSION : 21, COMPILE_SDK_VERSION: 31, - TARGET_SDK_VERSION : 32, + TARGET_SDK_VERSION : 28, JUNIT_VERSION : "4.12" ] @@ -35,7 +35,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:7.3.1' + classpath 'com.android.tools.build:gradle:8.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath rootProject.ext.deps["kotlin-gradle-plugin"] diff --git a/chrome-tabs/src/main/java/de/mrapp/android/tabswitcher/view/TabSwitcherButton.java b/chrome-tabs/src/main/java/de/mrapp/android/tabswitcher/view/TabSwitcherButton.java index 2eb3239..7a9a539 100644 --- a/chrome-tabs/src/main/java/de/mrapp/android/tabswitcher/view/TabSwitcherButton.java +++ b/chrome-tabs/src/main/java/de/mrapp/android/tabswitcher/view/TabSwitcherButton.java @@ -41,13 +41,13 @@ public class TabSwitcherButton extends AppCompatImageButton implements TabSwitch private TabSwitcherDrawable drawable; /** - * Initializes the view. + * Initializes the view. // selectableItemBackgroundBorderless */ private void initialize() { drawable = new TabSwitcherDrawable(getContext()); setImageDrawable(drawable); ViewUtil.setBackground(this, - ThemeUtil.getDrawable(getContext(), R.attr.selectableItemBackgroundBorderless)); + ThemeUtil.getDrawable(getContext(), androidx.appcompat.R.attr.selectableItemBackgroundBorderless)); setContentDescription(null); setClickable(true); setFocusable(true); @@ -144,4 +144,4 @@ public class TabSwitcherButton extends AppCompatImageButton implements TabSwitch drawable.onAllTabsRemoved(tabSwitcher, tabs, animation); } -} \ No newline at end of file +} diff --git a/chrome-tabs/src/main/res/values/attrs.xml b/chrome-tabs/src/main/res/values/attrs.xml index 220eb8e..c13a503 100644 --- a/chrome-tabs/src/main/res/values/attrs.xml +++ b/chrome-tabs/src/main/res/values/attrs.xml @@ -15,20 +15,63 @@ License. --> - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gradle.properties b/gradle.properties index 1eb1d68..a8d1527 100644 --- a/gradle.properties +++ b/gradle.properties @@ -14,3 +14,5 @@ org.gradle.jvmargs=-Xmx1536m # 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 + +ndkVersion=25.1.8937393 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ec7c7ff..9ec9d1f 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-bin.zip diff --git a/gradlew b/gradlew old mode 100755 new mode 100644 diff --git a/nhterm/build.gradle b/nhterm/build.gradle index d841496..f54001c 100644 --- a/nhterm/build.gradle +++ b/nhterm/build.gradle @@ -15,7 +15,7 @@ android { externalNativeBuild { cmake { cppFlags "-std=c++11" - abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86', 'x86_64' + abiFilters 'arm64-v8a', 'armeabi-v7a' } } signingConfigs { @@ -63,18 +63,22 @@ dependencies { implementation rootProject.ext.deps["kotlin-stdlib"] - implementation 'org.greenrobot:eventbus:3.0.0' - implementation 'com.github.wrdlbrnft:modular-adapter:0.2.0.6' - implementation 'com.github.wrdlbrnft:sorted-list-adapter:0.2.0.19' + implementation 'org.greenrobot:eventbus:3.3.1' + implementation 'com.github.wrdlbrnft:modular-adapter:0.3.0.22' + implementation 'com.github.wrdlbrnft:sorted-list-adapter:0.3.0.27' implementation 'com.simplecityapps:recyclerview-fastscroll:1.0.16' - implementation 'de.psdev.licensesdialog:licensesdialog:1.8.3' + implementation 'de.psdev.licensesdialog:licensesdialog:1.9.0' implementation 'com.github.GrenderG:Color-O-Matic:1.1.5' + implementation 'com.github.topjohnwu.libsu:core:5.2.1' - implementation 'androidx.annotation:annotation:1.2.0' + implementation 'androidx.annotation:annotation:1.3.0' + implementation "androidx.core:core:1.6.0" implementation 'androidx.cardview:cardview:1.0.0' - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.appcompat:appcompat-resources:1.2.0' - implementation 'androidx.preference:preference:1.0.0' + implementation 'androidx.appcompat:appcompat:1.3.0' + implementation 'androidx.appcompat:appcompat-resources:1.3.0' + implementation 'com.google.android.material:material:1.5.0' + implementation 'androidx.preference:preference:1.1.0' + implementation "androidx.compose.material:material:1.0.0" implementation project(':chrome-tabs') implementation project(':NeoLang') diff --git a/nhterm/src/main/AndroidManifest.xml b/nhterm/src/main/AndroidManifest.xml index a09d398..425d7c1 100644 --- a/nhterm/src/main/AndroidManifest.xml +++ b/nhterm/src/main/AndroidManifest.xml @@ -38,6 +38,8 @@ android:label="@string/app_name" android:usesCleartextTraffic="true" android:resizeableActivity="true" + android:hardwareAccelerated="true" + android:largeHeap="true" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="false" tools:replace="android:supportsRtl" diff --git a/nhterm/src/main/assets/bin/android-su b/nhterm/src/main/assets/bin/android-su index 5b04a16..66eb1fb 100644 --- a/nhterm/src/main/assets/bin/android-su +++ b/nhterm/src/main/assets/bin/android-su @@ -2,14 +2,14 @@ # Version: 1.0.3 # export path for android bins/tools -export PATH=/data/data/com.offsec.nhterm/files/home/.nhterm/script:/data/data/com.offsec.nhterm/files/usr/bin:/data/data/com.offsec.nhterm/files/usr/sbin:/sbin:/system/bin:/system/xbin:/apex/com.android.runtime/bin:/apex/com.android.art/bin:/odm/bin:/vendor/bin:. +export PATH="/data/data/com.offsec.nethunter/files/scripts:/data/data/com.offsec.nethunter/files/scripts/bin:/data/data/com.offsec.nhterm/files/home/.nhterm/script:/data/data/com.offsec.nhterm/files/usr/bin:/data/data/com.offsec.nhterm/files/usr/sbin:/sbin:/system/bin:/system/xbin:/apex/com.android.runtime/bin:/apex/com.android.art/bin:/odm/bin:/vendor/bin:." # Remove some exports that break default android binaries from running unset LD_LIBRARY_PATH unset LD_PRELOAD - +export PS1="\\[\\e[1;32m\\]\\u [ \\[\\e[0m\\]\\w\\[\\e[1;32m\\] ]\$ \\[\\e[0m\\]" # Find and remember su location SU1=$(which su) -SU2="$SU1 -mm -c $@" +SU2="$SU1 -mm -s $@" # clear out old view clear diff --git a/nhterm/src/main/assets/eks/README.txt b/nhterm/src/main/assets/eks/README.txt new file mode 100644 index 0000000..41d07f0 --- /dev/null +++ b/nhterm/src/main/assets/eks/README.txt @@ -0,0 +1,3 @@ +// Switching eks profiles +* rename current default to something else +* and now rename the chosen profile to default.nm ( to apply restart the terminal ) diff --git a/nhterm/src/main/assets/scripts/extract-archive b/nhterm/src/main/assets/scripts/extract-archive deleted file mode 100644 index adc8443..0000000 --- a/nhterm/src/main/assets/scripts/extract-archive +++ /dev/null @@ -1,57 +0,0 @@ -#!/data/data/io.neoterm/files/usr/bin/bash - -function file_suffix() { - echo "${1##*.}" -} - -function detect_program() { - case "$1" in - *.tar.* | *.tar ) echo "tar xvf %s" ;; - *.7z ) echo "7za x %s" ;; - *.rar ) echo "unrar x %s" ;; - *.zip ) echo "unzip %s" ;; - * ) echo "" ;; - esac -} - -function do_extract() { - local file="$1" - local dir="$(dirname $file)" - - if [[ ! -f "$file" ]]; then - echo "$file: no such file or directory" - return 1 - fi - - local program="$(detect_program $file)" - - if [[ "$program" == "" ]]; then - echo "Unsupported format: $(file_suffix $file)" - return 1 - fi - - local command="$(printf "$program" "$file")" - - if [[ ! -w "$dir" || ! -r "$file" ]]; then - command="sudo $command" - fi - - cd "$dir" || { - echo "Failed to cd: $dir" - return 1 - } - - eval "$command" -} - -if [[ "$#" == 0 ]]; then - echo "You must specific at least a file to extract." - exit 1 -fi - -clear -while [[ "$#" != 0 ]]; do - file="$1"; shift - echo "[Extracting] $(basename $file)" - do_extract "$file" -done diff --git a/nhterm/src/main/assets/scripts/open-bash b/nhterm/src/main/assets/scripts/open-bash new file mode 100644 index 0000000..2bc062f --- /dev/null +++ b/nhterm/src/main/assets/scripts/open-bash @@ -0,0 +1,5 @@ +#!/data/data/io.neoterm/files/usr/bin/bash + +set -e + +bash diff --git a/nhterm/src/main/assets/scripts/open-in-vim b/nhterm/src/main/assets/scripts/open-in-vim deleted file mode 100644 index d80b0c9..0000000 --- a/nhterm/src/main/assets/scripts/open-in-vim +++ /dev/null @@ -1,12 +0,0 @@ -#!/data/data/io.neoterm/files/usr/bin/bash - -set -e - -VIM="$(which vim)" - -if [[ "$VIM"x == ""x ]]; then - echo "Vim is not installed, now installing..." - apt update && apt install -y vim -fi - -$VIM "$@" diff --git a/nhterm/src/main/java/com/offsec/nhterm/App.kt b/nhterm/src/main/java/com/offsec/nhterm/App.kt index 2cf3049..348a066 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/App.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/App.kt @@ -7,11 +7,13 @@ import android.content.Intent import android.net.Uri import android.view.Gravity import android.widget.Toast -import androidx.appcompat.app.AlertDialog +import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.offsec.nhterm.component.NeoInitializer import com.offsec.nhterm.component.config.NeoPreference import com.offsec.nhterm.ui.other.BonusActivity import com.offsec.nhterm.utils.CrashHandler +import com.offsec.nhterm.utils.NeoPermission +import com.topjohnwu.superuser.Shell /** * @author kiva @@ -21,6 +23,8 @@ class App : Application() { super.onCreate() app = this + Shell.cmd("setenforce 0").exec() + NeoPreference.init(this) CrashHandler.init() NeoInitializer.init(this) @@ -31,7 +35,7 @@ class App : Application() { } fun errorDialog(context: Context, message: String, dismissCallback: (() -> Unit)?) { - AlertDialog.Builder(context) + MaterialAlertDialogBuilder(context, R.style.DialogStyleCompat) .setTitle(R.string.error) .setMessage(message) .setNegativeButton(android.R.string.no, null) diff --git a/nhterm/src/main/java/com/offsec/nhterm/backend/KeyHandler.java b/nhterm/src/main/java/com/offsec/nhterm/backend/KeyHandler.java index 112c58d..e74e64c 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/backend/KeyHandler.java +++ b/nhterm/src/main/java/com/offsec/nhterm/backend/KeyHandler.java @@ -10,6 +10,7 @@ public final class KeyHandler { public static final int KEYMOD_ALT = 0x80000000; public static final int KEYMOD_CTRL = 0x40000000; public static final int KEYMOD_SHIFT = 0x20000000; + public static final int KEYMOD_NUM_LOCK = 0x10000000; private static final Map TERMCAP_TO_KEYCODE = new HashMap<>(); @@ -96,10 +97,16 @@ public final class KeyHandler { keyMod |= KEYMOD_ALT; keyCode &= ~KEYMOD_ALT; } + if ((keyCode & KEYMOD_NUM_LOCK) != 0) { + keyMod |= KEYMOD_NUM_LOCK; + keyCode &= ~KEYMOD_NUM_LOCK; + } return getCode(keyCode, keyMod, cursorKeysApplication, keypadApplication); } public static String getCode(int keyCode, int keyMode, boolean cursorApp, boolean keypadApplication) { + boolean numLockOn = (keyMode & KEYMOD_NUM_LOCK) != 0; + keyMode &= ~KEYMOD_NUM_LOCK; switch (keyCode) { case KEYCODE_DPAD_CENTER: return "\015"; @@ -179,7 +186,11 @@ public final class KeyHandler { // Just do what xterm and gnome-terminal does: return prefix + (((keyMode & KEYMOD_CTRL) == 0) ? "\u007F" : "\u0008"); case KEYCODE_NUM_LOCK: - return "\033OP"; + if (keypadApplication) { + return "\033OP"; + } else { + return null; + } case KEYCODE_SPACE: // If ctrl is not down, return null so that it goes through normal input processing (which may e.g. cause a @@ -200,31 +211,81 @@ public final class KeyHandler { case KEYCODE_NUMPAD_COMMA: return ","; case KEYCODE_NUMPAD_DOT: - return keypadApplication ? "\033On" : "."; + if (numLockOn) { + return keypadApplication ? "\033On" : "."; + } else { + // DELETE + return transformForModifiers("\033[3", keyMode, '~'); + } case KEYCODE_NUMPAD_SUBTRACT: return keypadApplication ? transformForModifiers("\033O", keyMode, 'm') : "-"; case KEYCODE_NUMPAD_DIVIDE: return keypadApplication ? transformForModifiers("\033O", keyMode, 'o') : "/"; case KEYCODE_NUMPAD_0: - return keypadApplication ? transformForModifiers("\033O", keyMode, 'p') : "0"; + if (numLockOn) { + return keypadApplication ? transformForModifiers("\033O", keyMode, 'p') : "0"; + } else { + // INSERT + return transformForModifiers("\033[2", keyMode, '~'); + } case KEYCODE_NUMPAD_1: - return keypadApplication ? transformForModifiers("\033O", keyMode, 'q') : "1"; + if (numLockOn) { + return keypadApplication ? transformForModifiers("\033O", keyMode, 'q') : "1"; + } else { + // END + return (keyMode == 0) ? (cursorApp ? "\033OF" : "\033[F") : transformForModifiers("\033[1", keyMode, 'F'); + } case KEYCODE_NUMPAD_2: - return keypadApplication ? transformForModifiers("\033O", keyMode, 'r') : "2"; + if (numLockOn) { + return keypadApplication ? transformForModifiers("\033O", keyMode, 'r') : "2"; + } else { + // DOWN + return (keyMode == 0) ? (cursorApp ? "\033OB" : "\033[B") : transformForModifiers("\033[1", keyMode, 'B'); + } case KEYCODE_NUMPAD_3: - return keypadApplication ? transformForModifiers("\033O", keyMode, 's') : "3"; + if (numLockOn) { + return keypadApplication ? transformForModifiers("\033O", keyMode, 's') : "3"; + } else { + // PGDN + return "\033[6~"; + } case KEYCODE_NUMPAD_4: - return keypadApplication ? transformForModifiers("\033O", keyMode, 't') : "4"; + if (numLockOn) { + return keypadApplication ? transformForModifiers("\033O", keyMode, 't') : "4"; + } else { + // LEFT + return (keyMode == 0) ? (cursorApp ? "\033OD" : "\033[D") : transformForModifiers("\033[1", keyMode, 'D'); + } case KEYCODE_NUMPAD_5: return keypadApplication ? transformForModifiers("\033O", keyMode, 'u') : "5"; case KEYCODE_NUMPAD_6: - return keypadApplication ? transformForModifiers("\033O", keyMode, 'v') : "6"; + if (numLockOn) { + return keypadApplication ? transformForModifiers("\033O", keyMode, 'v') : "6"; + } else { + // RIGHT + return (keyMode == 0) ? (cursorApp ? "\033OC" : "\033[C") : transformForModifiers("\033[1", keyMode, 'C'); + } case KEYCODE_NUMPAD_7: - return keypadApplication ? transformForModifiers("\033O", keyMode, 'w') : "7"; + if (numLockOn) { + return keypadApplication ? transformForModifiers("\033O", keyMode, 'w') : "7"; + } else { + // HOME + return (keyMode == 0) ? (cursorApp ? "\033OH" : "\033[H") : transformForModifiers("\033[1", keyMode, 'H'); + } case KEYCODE_NUMPAD_8: - return keypadApplication ? transformForModifiers("\033O", keyMode, 'x') : "8"; + if (numLockOn) { + return keypadApplication ? transformForModifiers("\033O", keyMode, 'x') : "8"; + } else { + // UP + return (keyMode == 0) ? (cursorApp ? "\033OA" : "\033[A") : transformForModifiers("\033[1", keyMode, 'A'); + } case KEYCODE_NUMPAD_9: - return keypadApplication ? transformForModifiers("\033O", keyMode, 'y') : "9"; + if (numLockOn) { + return keypadApplication ? transformForModifiers("\033O", keyMode, 'y') : "9"; + } else { + // PGUP + return "\033[5~"; + } case KEYCODE_NUMPAD_EQUALS: return keypadApplication ? transformForModifiers("\033O", keyMode, 'X') : "="; } diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/config/comp.kt b/nhterm/src/main/java/com/offsec/nhterm/component/config/comp.kt index dc71483..7c68e5c 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/component/config/comp.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/component/config/comp.kt @@ -226,13 +226,6 @@ object NeoPreference { ) } - fun isVibrateEnabled(): Boolean { - return loadBoolean( - R.string.key_general_vibrate, - DefaultValues.enableVibrate - ) - } - fun isExecveWrapperEnabled(): Boolean { return loadBoolean( R.string.key_general_use_execve_wrapper, diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/config/defaults.kt b/nhterm/src/main/java/com/offsec/nhterm/component/config/defaults.kt index a3b1a9d..45b2753 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/component/config/defaults.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/component/config/defaults.kt @@ -6,7 +6,7 @@ object DefaultValues { const val fontSize = 30 const val enableBell = false - const val enableVibrate = true + const val enableVibrate = false const val enableExecveWrapper = true const val enableAutoCompletion = false const val enableFullScreen = false @@ -27,6 +27,7 @@ object NeoTermPath { @SuppressLint("SdCardPath") const val ROOT_PATH = "/data/data/com.offsec.nhterm/files" const val USR_PATH = "$ROOT_PATH/usr" + const val BIN_PATH = "$USR_PATH/bin" const val HOME_PATH = "/" const val APT_BIN_PATH = "$USR_PATH/bin/apt" const val LIB_PATH = "$USR_PATH/lib" @@ -43,7 +44,7 @@ object NeoTermPath { const val SOURCE_FILE = "$USR_PATH/etc/apt/sources.list" const val PACKAGE_LIST_DIR = "$USR_PATH/var/lib/apt/lists" - private const val SOURCE = "https://example.com/nhterm" + private const val SOURCE = "http://http.kali.org/kali" val DEFAULT_MAIN_PACKAGE_SOURCE: String diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/pm/NeoPackageParser.java b/nhterm/src/main/java/com/offsec/nhterm/component/pm/NeoPackageParser.java index 92a0ffd..35bf086 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/component/pm/NeoPackageParser.java +++ b/nhterm/src/main/java/com/offsec/nhterm/component/pm/NeoPackageParser.java @@ -4,6 +4,7 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.util.Objects; /** * @author kiva @@ -38,7 +39,7 @@ public class NeoPackageParser { KEY_HOMEPAGE = "Homepage", KEY_DESC = "Description"; - private BufferedReader reader; + private final BufferedReader reader; private ParseStateListener stateListener; NeoPackageParser(InputStream inputStream) { @@ -100,6 +101,9 @@ public class NeoPackageParser { } switch (key) { + case KEY_PACKAGE_NAME: + packageInfo.setPackageName(value); + break; case KEY_ARCH: packageInfo.setArchitecture(Architecture.Companion.parse(value)); break; @@ -149,16 +153,14 @@ public class NeoPackageParser { private String appendToLastValue(NeoPackageInfo packageInfo, String key, String value) { // Currently, only descriptions can be multiline - switch (key) { - case KEY_DESC: - return packageInfo.getDescription() + " " + value; - default: - return value; + if (KEY_DESC.equals(key)) { + return packageInfo.getDescription() + " " + value; } + return value; } private boolean splitKeyAndValue(String line, String[] splits) { - int valueIndex = line.indexOf(':'); + int valueIndex = line.indexOf(": "); if (valueIndex < 0) { return false; } diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/pm/PackageComponent.java b/nhterm/src/main/java/com/offsec/nhterm/component/pm/PackageComponent.java index ffc55c4..7693eca 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/component/pm/PackageComponent.java +++ b/nhterm/src/main/java/com/offsec/nhterm/component/pm/PackageComponent.java @@ -7,6 +7,7 @@ import com.offsec.nhterm.component.NeoComponent; import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.nio.file.Files; import java.util.HashMap; /** @@ -56,7 +57,7 @@ public class PackageComponent implements NeoComponent { } private void tryParsePackages(File packageListFile, final boolean clearPrevious) throws IOException { - NeoPackageParser packageParser = new NeoPackageParser(new FileInputStream(packageListFile)); + NeoPackageParser packageParser = new NeoPackageParser(Files.newInputStream(packageListFile.toPath())); packageParser.setStateListener(new NeoPackageParser.ParseStateListener() { @Override public void onStartState() { @@ -88,6 +89,7 @@ public class PackageComponent implements NeoComponent { neoPackages.put(packageInfo.getPackageName(), packageInfo); } }); + packageParser.parse(); } diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/pm/data.kt b/nhterm/src/main/java/com/offsec/nhterm/component/pm/data.kt index 241a7cd..51e10e2 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/component/pm/data.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/component/pm/data.kt @@ -17,13 +17,13 @@ enum class Architecture { } class NeoPackageInfo { - var packageName: String? = null + var packageName: String = "dummy" var isEssential: Boolean = false var version: String? = null var architecture: Architecture = Architecture.ALL var maintainer: String? = null var installedSizeInBytes: Long = 0L - var fileName: String? = null + var fileName: String = "null" var dependenciesString: String? = null var dependencies: Array? = null var sizeInBytes: Long = 0L @@ -31,5 +31,5 @@ class NeoPackageInfo { var sha1: String? = null var sha256: String? = null var homePage: String? = null - var description: String? = null + var description: String = "Dummy package" } diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/pm/helper.kt b/nhterm/src/main/java/com/offsec/nhterm/component/pm/helper.kt index 9f90435..b8c9aab 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/component/pm/helper.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/component/pm/helper.kt @@ -1,11 +1,14 @@ package com.offsec.nhterm.component.pm +import android.util.Log import com.offsec.nhterm.App import com.offsec.nhterm.R import com.offsec.nhterm.component.ComponentManager +import com.offsec.nhterm.component.config.NeoPreference import com.offsec.nhterm.component.config.NeoTermPath import com.offsec.nhterm.framework.NeoTermDatabase import com.offsec.nhterm.utils.NLog +import com.topjohnwu.superuser.Shell import java.io.File import java.net.URL import java.nio.file.Files @@ -19,7 +22,7 @@ object SourceHelper { fun syncSource(sourceManager: SourceManager) { val content = buildString { - this.append("# Generated by NeoTerm-Preference\n") + this.append("# Generated by NetHunter TerminalPreference\n") sourceManager.getEnabledSources() .joinTo(this, "\n") { "deb [trusted=yes] ${it.url} ${it.repo}\n" } } @@ -29,6 +32,10 @@ object SourceHelper { } fun detectSourceFiles(): List { + // Workaround to get things running + // TODO: ( APT ) Make it prettier? + copySourceFromChroot() + val sourceManager = ComponentManager.getComponent().sourceManager val sourceFiles = ArrayList() try { @@ -38,10 +45,9 @@ object SourceHelper { File(NeoTermPath.PACKAGE_LIST_DIR) .listFiles() - .filterTo(sourceFiles) { file -> - prefixes.filter { file.name.startsWith(it) } - .count() > 0 - } + ?.filterTo(sourceFiles) { file -> + prefixes.count { file.name.startsWith(it) } > 0 + } } catch (e: Exception) { sourceFiles.clear() NLog.e("PM", "Failed to detect source files: ${e.localizedMessage}") @@ -50,7 +56,7 @@ object SourceHelper { return sourceFiles } - fun detectSourceFilePrefix(source: Source): String { + private fun detectSourceFilePrefix(source: Source): String { try { val url = URL(source.url) val builder = StringBuilder(url.host) @@ -65,12 +71,42 @@ object SourceHelper { builder.append(fixedPath) } builder.append("_dists_${source.repo.replace(" ".toRegex(), "_")}_binary-") + Log.e("ERROR:", builder.toString()) return builder.toString() } catch (e: Exception) { NLog.e("PM", "Failed to detect source file prefix: ${e.localizedMessage}") return "" } } + + private fun copySourceFromChroot() { + val APP_MNT = NeoTermPath.USR_PATH + val MNT = "/data/local/nhsystem/kalifs" + val sources = "$MNT/etc/apt/sources.list" + val lists = "$MNT/var/lib/apt/lists" + + // Make sure that nhterm has locally required apt dir's + Shell.cmd("mkdir -p $APP_MNT/etc/apt").exec() + Shell.cmd("mkdir -p $APP_MNT/var/lib/apt/lists").exec() + + // Also we cant be sure that folders are empty from last use so lets remove stuff + Shell.cmd("rm -f $APP_MNT/etc/apt/*").exec() + Shell.cmd("rm -f $APP_MNT/var/lib/apt/lists/*").exec() + + // Now lets copy chroot apt sources.list and lists data to app + // This allows us to read and show list of packages for user in manager + Shell.cmd("cp -f $sources $APP_MNT/etc/apt/sources.list").exec() + Shell.cmd("cp -f $lists/* $APP_MNT/var/lib/apt/lists/").exec() + + // Now play with permissions so things are read/writable + Shell.cmd("chmod -R 775 $APP_MNT/etc/apt").exec() + Shell.cmd("chmod -R 775 $APP_MNT/var/lib/apt/lists").exec() + } + + fun updateChrootSource() { + // TODO: ( APT ) Add option for user to edit and update sources.list in Package Manager option + return + } } class SourceManager internal constructor() { @@ -84,7 +120,7 @@ class SourceManager internal constructor() { database.saveBean( Source( it, - "stable main", + "kali-rolling main", true ) ) @@ -122,7 +158,7 @@ class SourceManager internal constructor() { fun getMainPackageSource(): String { return getEnabledSources() .map { it.repo } - .singleOrNull { it.trim() == "stable main" } + .singleOrNull { it.trim() == "kali-rolling main" } ?: NeoTermPath.DEFAULT_MAIN_PACKAGE_SOURCE } diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/session/shell.kt b/nhterm/src/main/java/com/offsec/nhterm/component/session/shell.kt index 8b78d8b..4b63b45 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/component/session/shell.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/component/session/shell.kt @@ -113,7 +113,6 @@ class ShellProfile : NeoProfile() { var initialCommand = DefaultValues.initialCommand var enableBell = DefaultValues.enableBell - var enableVibrate = DefaultValues.enableVibrate var enableExecveWrapper = DefaultValues.enableExecveWrapper var enableSpecialVolumeKeys = DefaultValues.enableSpecialVolumeKeys var enableAutoCompletion = DefaultValues.enableAutoCompletion @@ -134,7 +133,6 @@ class ShellProfile : NeoProfile() { loginShell = NeoPreference.getLoginShellPath() initialCommand = NeoPreference.getInitialCommand() enableBell = NeoPreference.isBellEnabled() - enableVibrate = NeoPreference.isVibrateEnabled() enableExecveWrapper = NeoPreference.isExecveWrapperEnabled() enableSpecialVolumeKeys = NeoPreference.isSpecialVolumeKeysEnabled() enableAutoCompletion = NeoPreference.isAutoCompletionEnabled() @@ -148,7 +146,6 @@ class ShellProfile : NeoProfile() { loginShell = configVisitor.getProfileString(LOGIN_SHELL, loginShell) initialCommand = configVisitor.getProfileString(INITIAL_COMMAND, initialCommand) enableBell = configVisitor.getProfileBoolean(BELL, enableBell) - enableVibrate = configVisitor.getProfileBoolean(VIBRATE, enableVibrate) enableExecveWrapper = configVisitor.getProfileBoolean(EXECVE_WRAPPER, enableExecveWrapper) enableSpecialVolumeKeys = configVisitor.getProfileBoolean(SPECIAL_VOLUME_KEYS, enableSpecialVolumeKeys) enableAutoCompletion = configVisitor.getProfileBoolean(AUTO_COMPLETION, enableAutoCompletion) diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/userscript/comp.kt b/nhterm/src/main/java/com/offsec/nhterm/component/userscript/comp.kt index ba20b5f..6bbdd2b 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/component/userscript/comp.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/component/userscript/comp.kt @@ -2,18 +2,22 @@ package com.offsec.nhterm.component.userscript import android.content.Context import android.system.Os +import android.util.Log import com.offsec.nhterm.App import com.offsec.nhterm.component.NeoComponent import com.offsec.nhterm.component.config.NeoTermPath import com.offsec.nhterm.utils.NLog import com.offsec.nhterm.utils.extractAssetsDir +import com.topjohnwu.superuser.Shell import java.io.File class UserScript(val scriptFile: File) class UserScriptComponent : NeoComponent { var userScripts = listOf() + var binFiles = listOf() private val scriptDir = File(NeoTermPath.USER_SCRIPT_PATH) + private val binDir = File(NeoTermPath.BIN_PATH) override fun onServiceInit() = checkForFiles() @@ -22,11 +26,23 @@ class UserScriptComponent : NeoComponent { override fun onServiceObtained() = checkForFiles() - private fun extractDefaultScript(context: Context) = kotlin.runCatching { + fun extractDefaultScript(context: Context) = kotlin.runCatching { + Shell.cmd("mkdir -p /data/data/com.offsec.nhterm/files/usr/").exec() + Shell.cmd("rm -rf /data/data/com.offsec.nhterm/files/usr/bin/*") + + // Usual user script extraction context.extractAssetsDir("scripts", NeoTermPath.USER_SCRIPT_PATH) - scriptDir.listFiles().forEach { + + scriptDir.listFiles()?.forEach { Os.chmod(it.absolutePath, 448 /*Dec of 0700*/) } + + // Lets also extract the usual binaries too here + context.extractAssetsDir("bin", NeoTermPath.BIN_PATH) + binDir.listFiles()?.forEach { + Os.chmod(it.absolutePath, 448 /*Dec of 0700*/) + } + }.onFailure { NLog.e("UserScript", "Failed to extract default user scripts: ${it.localizedMessage}") } @@ -41,5 +57,10 @@ class UserScriptComponent : NeoComponent { .takeWhile { it.canExecute() } .map { UserScript(it) } .toList() + + binFiles = binDir.listFiles() + .takeWhile { it.canExecute() } + .map { UserScript(it) } + .toList() } } diff --git a/nhterm/src/main/java/com/offsec/nhterm/frontend/floating/dialog.kt b/nhterm/src/main/java/com/offsec/nhterm/frontend/floating/dialog.kt index 36dc436..f1ec729 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/frontend/floating/dialog.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/frontend/floating/dialog.kt @@ -8,6 +8,7 @@ import android.view.View import androidx.appcompat.app.AlertDialog import com.offsec.nhterm.R import com.offsec.nhterm.backend.TerminalSession +import com.offsec.nhterm.component.config.DefaultValues.initialCommand import com.offsec.nhterm.component.session.ShellParameter import com.offsec.nhterm.component.session.ShellTermSession import com.offsec.nhterm.frontend.session.terminal.BasicSessionCallback @@ -36,7 +37,7 @@ class TerminalDialog(val context: Context) { } } - fun execute(executablePath: String, arguments: Array?): TerminalDialog { + fun execute(executablePath: String, arguments: String, extraarg: String): TerminalDialog { if (terminalSession != null) { terminalSession?.finishIfRunning() } @@ -49,15 +50,19 @@ class TerminalDialog(val context: Context) { } .create() + val cmd = listOf(arguments + " " + extraarg + " && exit 0") + val parameter = ShellParameter() .executablePath(executablePath) - .arguments(arguments) + .initialCommand(cmd.joinToString()) .callback(terminalSessionCallback) .systemShell(false) + terminalSession = Terminals.createSession(context, parameter) if (terminalSession is ShellTermSession) { (terminalSession as ShellTermSession).exitPrompt = context.getString(R.string.process_exit_prompt_press_back) } + termWindowView.attachSession(terminalSession) return this } @@ -107,7 +112,7 @@ class WindowTermView(val context: Context) { Terminals.setupTerminalView(terminalView) } - fun setTerminalViewClient(terminalViewClient: com.offsec.nhterm.frontend.session.view.TerminalViewClient?) { + fun setTerminalViewClient(terminalViewClient: TerminalViewClient?) { terminalView.setTerminalViewClient(terminalViewClient) } diff --git a/nhterm/src/main/java/com/offsec/nhterm/frontend/session/terminal/term-basic.kt b/nhterm/src/main/java/com/offsec/nhterm/frontend/session/terminal/term-basic.kt index 68850a5..431a984 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/frontend/session/terminal/term-basic.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/frontend/session/terminal/term-basic.kt @@ -78,6 +78,14 @@ class BasicViewClient(val terminalView: TerminalView) : return false } + override fun readShiftKey(): Boolean { + return false + } + + override fun readFnKey(): Boolean { + return false + } + override fun onCodePoint(codePoint: Int, ctrlDown: Boolean, session: TerminalSession?): Boolean { return false } diff --git a/nhterm/src/main/java/com/offsec/nhterm/frontend/session/terminal/term-standard.kt b/nhterm/src/main/java/com/offsec/nhterm/frontend/session/terminal/term-standard.kt index 0605822..b27900b 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/frontend/session/terminal/term-standard.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/frontend/session/terminal/term-standard.kt @@ -3,19 +3,13 @@ package com.offsec.nhterm.frontend.session.terminal import android.content.ClipData import android.content.ClipboardManager import android.content.Context -import android.content.Context.VIBRATOR_SERVICE import android.media.AudioManager import android.media.SoundPool -import android.os.VibrationEffect -import android.os.Vibrator -import android.util.Log import android.view.InputDevice import android.view.KeyEvent import android.view.MotionEvent import android.view.View import android.view.inputmethod.InputMethodManager -import androidx.core.content.ContextCompat.getSystemService -import com.offsec.nhterm.BuildConfig import com.offsec.nhterm.R import com.offsec.nhterm.backend.KeyHandler import com.offsec.nhterm.backend.TerminalSession @@ -36,6 +30,7 @@ class TermViewClient(val context: Context) : TerminalViewClient { private var mVirtualControlKeyDown: Boolean = false private var mVirtualFnKeyDown: Boolean = false + private var mVirtualShiftKeyDown: Boolean = false private var lastTitle: String = "" var termSessionData: TermSessionData? = null @@ -69,11 +64,6 @@ class TermViewClient(val context: Context) : return true } - if (NeoPreference.isVibrateEnabled()) { - val vibrator = context.getSystemService(Vibrator::class.java) - vibrator.vibrate(VibrationEffect.createOneShot(40, VibrationEffect.DEFAULT_AMPLITUDE)) - } - val termUI = termSessionData?.termUI when (keyCode) { @@ -140,6 +130,16 @@ class TermViewClient(val context: Context) : return (extraKeysView != null && extraKeysView.readAltButton()) || mVirtualFnKeyDown } + override fun readShiftKey(): Boolean { + val extraKeysView = termSessionData?.extraKeysView + return (extraKeysView != null && extraKeysView.readShiftButton()) || mVirtualShiftKeyDown + } + + override fun readFnKey(): Boolean { + val extraKeysView = termSessionData?.extraKeysView + return (extraKeysView != null && extraKeysView.readFnButton()) || mVirtualFnKeyDown + } + override fun onCodePoint(codePoint: Int, ctrlDown: Boolean, session: TerminalSession?): Boolean { if (mVirtualFnKeyDown) { var resultingKeyCode: Int = -1 @@ -361,13 +361,6 @@ class BellController { } soundPool?.play(bellId, 1f, 1f, 0, 0, 1f) } - - if (session.shellProfile.enableVibrate) { - if (NeoPreference.isVibrateEnabled()) { - val vibrator = context.getSystemService(Vibrator::class.java) - vibrator.vibrate(VibrationEffect.createOneShot(40, VibrationEffect.DEFAULT_AMPLITUDE)) - } - } } } @@ -434,14 +427,6 @@ class TermCompleteListener(var terminalView: TerminalView?) : OnAutoCompleteList } } - if (BuildConfig.DEBUG) { - Log.e( - "NeoTerm-AC", - "currentEditing: $textNeedCompletion, " + - "deleteLength: $deleteLength, completeString: $newText" - ) - } - pushString(newText) session.write(newText) // Trigger next completion diff --git a/nhterm/src/main/java/com/offsec/nhterm/frontend/session/view/TerminalView.java b/nhterm/src/main/java/com/offsec/nhterm/frontend/session/view/TerminalView.java index a7bb0c0..d05b02e 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/frontend/session/view/TerminalView.java +++ b/nhterm/src/main/java/com/offsec/nhterm/frontend/session/view/TerminalView.java @@ -104,6 +104,11 @@ public final class TerminalView extends View { private boolean mAccessibilityEnabled; + public final static int KEY_EVENT_SOURCE_VIRTUAL_KEYBOARD = KeyCharacterMap.VIRTUAL_KEYBOARD; // -1 + + /** The {@link KeyEvent} is generated from a non-physical device, like if 0 value is returned by {@link KeyEvent#getDeviceId()}. */ + public final static int KEY_EVENT_SOURCE_SOFT_KEYBOARD = 0; + public TerminalView(Context context) { super(context); commonInit(context); @@ -334,11 +339,12 @@ public final class TerminalView extends View { // https://github.com/termux/termux-app/issues/87. // https://github.com/termux/termux-app/issues/126. // https://github.com/termux/termux-app/issues/137 (japanese chars and TYPE_NULL). + if (mEnableWordBasedIme) { // Workaround for Google Pinying cannot input Chinese - outAttrs.inputType = InputType.TYPE_CLASS_TEXT; + outAttrs.inputType = InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS; } else { - outAttrs.inputType = InputType.TYPE_NULL; + outAttrs.inputType = InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD | InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL | InputType.TYPE_NULL; } // Note that IME_ACTION_NONE cannot be used as that makes it impossible to input newlines using the on-screen @@ -432,7 +438,7 @@ public final class TerminalView extends View { } } - inputCodePoint(codePoint, ctrlHeld, false); + inputCodePoint(KEY_EVENT_SOURCE_SOFT_KEYBOARD, codePoint, ctrlHeld, false); } } @@ -744,14 +750,16 @@ public final class TerminalView extends View { } final int metaState = event.getMetaState(); - final boolean controlDownFromEvent = event.isCtrlPressed(); - final boolean leftAltDownFromEvent = (metaState & KeyEvent.META_ALT_LEFT_ON) != 0; + final boolean controlDown = event.isCtrlPressed() || mClient.readControlKey(); + final boolean leftAltDown = (metaState & KeyEvent.META_ALT_LEFT_ON) != 0 || mClient.readAltKey(); + final boolean shiftDown = event.isShiftPressed() || mClient.readShiftKey(); final boolean rightAltDownFromEvent = (metaState & KeyEvent.META_ALT_RIGHT_ON) != 0; int keyMod = 0; - if (controlDownFromEvent) keyMod |= KeyHandler.KEYMOD_CTRL; - if (event.isAltPressed()) keyMod |= KeyHandler.KEYMOD_ALT; - if (event.isShiftPressed()) keyMod |= KeyHandler.KEYMOD_SHIFT; + if (controlDown) keyMod |= KeyHandler.KEYMOD_CTRL; + if (event.isAltPressed() || leftAltDown) keyMod |= KeyHandler.KEYMOD_ALT; + if (shiftDown) keyMod |= KeyHandler.KEYMOD_SHIFT; + if (event.isNumLockOn()) keyMod |= KeyHandler.KEYMOD_NUM_LOCK; if (!event.isFunctionPressed() && handleKeyCode(keyCode, keyMod)) { if (LOG_KEY_EVENTS) Log.i(EmulatorDebug.LOG_TAG, "handleKeyCode() took key event"); return true; @@ -778,7 +786,7 @@ public final class TerminalView extends View { if ((result & KeyCharacterMap.COMBINING_ACCENT) != 0) { // If entered combining accent previously, write it out: if (mCombiningAccent != 0) - inputCodePoint(mCombiningAccent, controlDownFromEvent, leftAltDownFromEvent); + inputCodePoint(event.getDeviceId(), mCombiningAccent, controlDown, leftAltDown); mCombiningAccent = result & KeyCharacterMap.COMBINING_ACCENT_MASK; } else { if (mCombiningAccent != 0) { @@ -786,7 +794,7 @@ public final class TerminalView extends View { if (combinedChar > 0) result = combinedChar; mCombiningAccent = 0; } - inputCodePoint(result, controlDownFromEvent, leftAltDownFromEvent); + inputCodePoint(event.getDeviceId(), result, controlDown, leftAltDown); } if (mCombiningAccent != oldCombiningAccent) invalidate(); @@ -804,7 +812,7 @@ public final class TerminalView extends View { return true; } - void inputCodePoint(int codePoint, boolean controlDownFromEvent, boolean leftAltDownFromEvent) { + public void inputCodePoint(int eventSource, int codePoint, boolean controlDownFromEvent, boolean leftAltDownFromEvent) { if (LOG_KEY_EVENTS) { Log.i(EmulatorDebug.LOG_TAG, "inputCodePoint(codePoint=" + codePoint + ", controlDownFromEvent=" + controlDownFromEvent + ", leftAltDownFromEvent=" + leftAltDownFromEvent + ")"); @@ -842,19 +850,22 @@ public final class TerminalView extends View { } if (codePoint > -1) { - // Work around bluetooth keyboards sending funny unicode characters instead - // of the more normal ones from ASCII that terminal programs expect - the - // desire to input the original characters should be low. - switch (codePoint) { - case 0x02DC: // SMALL TILDE. - codePoint = 0x007E; // TILDE (~). - break; - case 0x02CB: // MODIFIER LETTER GRAVE ACCENT. - codePoint = 0x0060; // GRAVE ACCENT (`). - break; - case 0x02C6: // MODIFIER LETTER CIRCUMFLEX ACCENT. - codePoint = 0x005E; // CIRCUMFLEX ACCENT (^). - break; + // If not virtual or soft keyboard. + if (eventSource > KEY_EVENT_SOURCE_SOFT_KEYBOARD) { + // Work around bluetooth keyboards sending funny unicode characters instead + // of the more normal ones from ASCII that terminal programs expect - the + // desire to input the original characters should be low. + switch (codePoint) { + case 0x02DC: // SMALL TILDE. + codePoint = 0x007E; // TILDE (~). + break; + case 0x02CB: // MODIFIER LETTER GRAVE ACCENT. + codePoint = 0x0060; // GRAVE ACCENT (`). + break; + case 0x02C6: // MODIFIER LETTER CIRCUMFLEX ACCENT. + codePoint = 0x005E; // CIRCUMFLEX ACCENT (^). + break; + } } // If left alt, send escape before the code point to make e.g. Alt+B and Alt+F work in readline: diff --git a/nhterm/src/main/java/com/offsec/nhterm/frontend/session/view/TerminalViewClient.java b/nhterm/src/main/java/com/offsec/nhterm/frontend/session/view/TerminalViewClient.java index fa5ca64..04e0267 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/frontend/session/view/TerminalViewClient.java +++ b/nhterm/src/main/java/com/offsec/nhterm/frontend/session/view/TerminalViewClient.java @@ -35,6 +35,10 @@ public interface TerminalViewClient { boolean readAltKey(); + boolean readShiftKey(); + + boolean readFnKey(); + boolean onCodePoint(int codePoint, boolean ctrlDown, TerminalSession session); boolean onLongPress(MotionEvent event); diff --git a/nhterm/src/main/java/com/offsec/nhterm/frontend/session/view/extrakey/ExtraKeysView.kt b/nhterm/src/main/java/com/offsec/nhterm/frontend/session/view/extrakey/ExtraKeysView.kt index f99bcd4..5f76d40 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/frontend/session/view/extrakey/ExtraKeysView.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/frontend/session/view/extrakey/ExtraKeysView.kt @@ -51,6 +51,8 @@ class ExtraKeysView(context: Context, attrs: AttributeSet) : LinearLayout(contex // For avoid memory and context leak. private val CTRL = StatedControlButton(IExtraButton.KEY_CTRL) private val ALT = StatedControlButton(IExtraButton.KEY_ALT) + private val FN = StatedControlButton(IExtraButton.KEY_FN) + private val SHIFT = StatedControlButton(IExtraButton.KEY_SHIFT) private var buttonPanelExpanded = false private val EXPAND_BUTTONS = object : ControlButton(IExtraButton.KEY_SHOW_ALL_BUTTONS) { @@ -103,6 +105,14 @@ class ExtraKeysView(context: Context, attrs: AttributeSet) : LinearLayout(contex return ALT.readState() } + fun readFnButton(): Boolean { + return FN.readState() + } + + fun readShiftButton(): Boolean { + return SHIFT.readState() + } + fun addUserKey(button: IExtraButton) { addKeyButton(userKeys, button) } @@ -208,11 +218,6 @@ class ExtraKeysView(context: Context, attrs: AttributeSet) : LinearLayout(contex outerButton.isAllCaps = false outerButton.setOnClickListener { - if (NeoPreference.isVibrateEnabled()) { - val vibrator = context.getSystemService(Vibrator::class.java) - vibrator.vibrate(VibrationEffect.createOneShot(40, VibrationEffect.DEFAULT_AMPLITUDE)) - } - val root = rootView extraButton.onClick(root) } diff --git a/nhterm/src/main/java/com/offsec/nhterm/frontend/session/view/extrakey/buttons.kt b/nhterm/src/main/java/com/offsec/nhterm/frontend/session/view/extrakey/buttons.kt index 5034dc1..92782a0 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/frontend/session/view/extrakey/buttons.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/frontend/session/view/extrakey/buttons.kt @@ -73,6 +73,7 @@ abstract class IExtraButton : View.OnClickListener { const val KEY_F12 = "F12" // Extra keys + const val KEY_SHIFT = "LShift" const val KEY_DEL = "Del" const val KEY_ENTER = "Enter" @@ -97,6 +98,8 @@ abstract class IExtraButton : View.OnClickListener { KEY_PAGE_DOWN -> keyCode = KeyEvent.KEYCODE_PAGE_DOWN KEY_HOME -> keyCode = KeyEvent.KEYCODE_MOVE_HOME KEY_END -> keyCode = KeyEvent.KEYCODE_MOVE_END + KEY_FN -> keyCode = KeyEvent.KEYCODE_FUNCTION + KEY_SHIFT -> keyCode = KeyEvent.KEYCODE_SHIFT_LEFT "―" -> chars = "-" // Function keys diff --git a/nhterm/src/main/java/com/offsec/nhterm/ui/other/AboutActivity.kt b/nhterm/src/main/java/com/offsec/nhterm/ui/other/AboutActivity.kt index 3704080..497949b 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/ui/other/AboutActivity.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/ui/other/AboutActivity.kt @@ -1,9 +1,11 @@ package com.offsec.nhterm.ui.other +import android.content.Context import android.content.Intent import android.content.pm.PackageManager import android.net.Uri import android.os.Bundle +import android.system.Os import android.view.MenuItem import android.view.View import android.widget.TextView @@ -17,9 +19,13 @@ import de.psdev.licensesdialog.model.Notice import de.psdev.licensesdialog.model.Notices import com.offsec.nhterm.App import com.offsec.nhterm.R +import com.offsec.nhterm.component.config.NeoTermPath +import com.offsec.nhterm.frontend.floating.TerminalDialog import com.offsec.nhterm.utils.extractAssetsDir +import com.topjohnwu.superuser.Shell import de.psdev.licensesdialog.licenses.SILOpenFontLicense11 import java.io.BufferedReader +import java.io.File import java.io.InputStreamReader @@ -163,8 +169,8 @@ class AboutActivity : AppCompatActivity() { findViewById(R.id.about_reset_app_view).setOnClickListener { AlertDialog.Builder(this) .setMessage(R.string.reset_app_warning) - .setPositiveButton(R.string.yes) { _, _ -> - resetApp() + .setPositiveButton("yes") { _, _ -> + resetApp(this) resetisdone() } .setNegativeButton(android.R.string.no, null) @@ -175,39 +181,27 @@ class AboutActivity : AppCompatActivity() { private fun resetisdone() { AlertDialog.Builder(this) .setMessage(R.string.done) - .setPositiveButton(R.string.ok) { _, _ -> + .setPositiveButton("Ok") { _, _ -> return@setPositiveButton } .show() } - fun resetApp() { - // Manual way of resetting required assets - Runtime.getRuntime().exec("mkdir -p "+" "+"/data/data/com.offsec.nhterm/files/usr/").waitFor() - Executer("/system/bin/rm -rf /data/data/com.offsec.nhterm/files/usr/bin") - Thread.sleep(1200) - extractAssetsDir("bin", "/data/data/com.offsec.nhterm/files/usr/bin/") - Thread.sleep(800) - Executer("/system/bin/chmod +x /data/data/com.offsec.nhterm/files/usr/bin/bash") // Static bash for arm ( works for *64 too ) - Executer("/system/bin/chmod +x /data/data/com.offsec.nhterm/files/usr/bin/kali") // Kali chroot scriptlet - Executer("/system/bin/chmod +x /data/data/com.offsec.nhterm/files/usr/bin/android-su") // Android su scriptlet - } + private fun resetApp(context: Context) { + val binDir = File(NeoTermPath.BIN_PATH) + //// + // As some roms act weird and cause issues like no assets are extracted on fresh run then we need to force + // assets extraction + //// + Shell.cmd("mkdir -p /data/data/com.offsec.nhterm/files/usr/").exec() + Shell.cmd("rm -rf /data/data/com.offsec.nhterm/files/usr/bin/*").exec() - fun Executer(command: String?): String? { - val output = StringBuilder() - val p: Process - try { - p = Runtime.getRuntime().exec(command) - p.waitFor() - val reader = BufferedReader(InputStreamReader(p.inputStream)) - var line: String? - while (reader.readLine().also { line = it } != null) { - output.append(line).append('\n') - } - } catch (e: Exception) { - e.printStackTrace() - } - return output.toString() + extractAssetsDir("bin", "/data/data/com.offsec.nhterm/files/usr/bin/") + + context.extractAssetsDir("bin", NeoTermPath.BIN_PATH) + binDir.listFiles()?.forEach { + Os.chmod(it.absolutePath, 448 /*Dec of 0700*/) + } } private fun openUrl(url: String) { diff --git a/nhterm/src/main/java/com/offsec/nhterm/ui/other/SetupActivity.kt b/nhterm/src/main/java/com/offsec/nhterm/ui/other/SetupActivity.kt index b0ce87f..e2d0c73 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/ui/other/SetupActivity.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/ui/other/SetupActivity.kt @@ -228,11 +228,11 @@ class SetupActivity : AppCompatActivity(), View.OnClickListener, ResultListener } } - private fun executeAptUpdate() = runApt("update") { + private fun executeAptUpdate() = runApt("apt","update", "") { it.onSuccess { executeAptUpgrade() } } - private fun executeAptUpgrade() = runApt("upgrade", "-y") { + private fun executeAptUpgrade() = runApt("apt", "upgrade", "") { it.onSuccess { finish() } } } diff --git a/nhterm/src/main/java/com/offsec/nhterm/ui/pm/PackageManagerActivity.kt b/nhterm/src/main/java/com/offsec/nhterm/ui/pm/PackageManagerActivity.kt index c44fa7b..d045f08 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/ui/pm/PackageManagerActivity.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/ui/pm/PackageManagerActivity.kt @@ -21,6 +21,8 @@ import com.offsec.nhterm.component.config.NeoPreference import com.offsec.nhterm.component.pm.* import com.offsec.nhterm.utils.StringDistance import com.offsec.nhterm.utils.runApt +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch import java.util.* /** @@ -29,14 +31,14 @@ import java.util.* class PackageManagerActivity : AppCompatActivity(), SearchView.OnQueryTextListener, SortedListAdapter.Callback { private val comparator = SortedListAdapter.ComparatorBuilder() - .setOrderForModel(PackageModel::class.java) { a, b -> + .setOrderForModel(PackageModel::class.java) { a, b -> a.packageInfo.packageName!!.compareTo(b.packageInfo.packageName!!) } .build() - lateinit var recyclerView: androidx.recyclerview.widget.RecyclerView - lateinit var adapter: PackageAdapter - var models = listOf() + private lateinit var recyclerView: androidx.recyclerview.widget.RecyclerView + private lateinit var adapter: PackageAdapter + private var models = listOf() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -63,11 +65,12 @@ class PackageManagerActivity : AppCompatActivity(), SearchView.OnQueryTextListen recyclerView.layoutManager = LinearLayoutManager(this) recyclerView.adapter = adapter + refreshPackageList() } - private fun installPackage(packageName: String?) = packageName?.let { - runApt("install", "-y", it, autoClose = false) { + private fun installPackage(packageName: String?) = packageName?.let { it -> + runApt("apt install", "-y", it, autoClose = true) { it -> it.onSuccess { it.setTitle(getString(R.string.done)) } } } @@ -81,14 +84,14 @@ class PackageManagerActivity : AppCompatActivity(), SearchView.OnQueryTextListen } override fun onOptionsItemSelected(item: MenuItem): Boolean { - when (item?.itemId) { + when (item.itemId) { android.R.id.home -> finish() R.id.action_source -> changeSource() R.id.action_update_and_refresh -> executeAptUpdate() R.id.action_refresh -> refreshPackageList() R.id.action_upgrade -> executeAptUpgrade() } - return item?.let { super.onOptionsItemSelected(it) } + return item.let { super.onOptionsItemSelected(it) } } private fun changeSource() { @@ -116,7 +119,7 @@ class PackageManagerActivity : AppCompatActivity(), SearchView.OnQueryTextListen val urlEditor = view.findViewById(R.id.dialog_edit_text_editor) val repoEditor = view.findViewById(R.id.dialog_edit_text2_editor) - repoEditor.setText("stable main") + repoEditor.setText("kali-rolling main") AlertDialog.Builder(this) .setTitle(R.string.pref_package_source) @@ -156,14 +159,16 @@ class PackageManagerActivity : AppCompatActivity(), SearchView.OnQueryTextListen executeAptUpdate() } - private fun executeAptUpdate() = runApt("update") { + private fun executeAptUpdate() = runApt("apt","update", "", autoClose = true) { + Toast.makeText(this, R.string.apt_update_ok, Toast.LENGTH_LONG).show() + it.onSuccess { refreshPackageList() } } - private fun executeAptUpgrade() = runApt("update") { update -> + private fun executeAptUpgrade() = runApt("apt", "update", "", autoClose = true) { update -> update.onSuccess { - runApt("upgrade", "-y") { - it.onSuccess { Toast.makeText(this, R.string.apt_upgrade_ok, Toast.LENGTH_SHORT).show() } + runApt("apt", "upgrade", "-y", autoClose = true) { + it.onSuccess { Toast.makeText(this, R.string.apt_upgrade_ok, Toast.LENGTH_LONG).show() } } } } @@ -190,7 +195,7 @@ class PackageManagerActivity : AppCompatActivity(), SearchView.OnQueryTextListen ): List> { return models .map { - it to StringDistance.distance(mapper(it.packageInfo).toLowerCase(Locale.ROOT), query.toLowerCase(Locale.ROOT)) + it to StringDistance.distance(mapper(it.packageInfo).lowercase(Locale.ENGLISH), query.lowercase(Locale.ENGLISH)) } .sortedWith { l, r -> r.second.compareTo(l.second) } .toList() @@ -199,11 +204,9 @@ class PackageManagerActivity : AppCompatActivity(), SearchView.OnQueryTextListen private fun filter(models: List, query: String): List { val prepared = models.filter { it.packageInfo.packageName!!.contains(query, true) - || it.packageInfo.description!!.contains(query, true) } return sortDistance(prepared, query) { it.packageName!! } - .plus(sortDistance(prepared, query) { it.description!! }) .map { it.first } .toList() } diff --git a/nhterm/src/main/java/com/offsec/nhterm/ui/pm/model.kt b/nhterm/src/main/java/com/offsec/nhterm/ui/pm/model.kt index a849965..01f927f 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/ui/pm/model.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/ui/pm/model.kt @@ -14,12 +14,12 @@ import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView class PackageAdapter( context: Context, comparator: Comparator, - private val listener: PackageAdapter.Listener + private val listener: Listener ) : SortedListAdapter(context, PackageModel::class.java, comparator), FastScrollRecyclerView.SectionedAdapter { override fun getSectionName(position: Int): String { - return getItem(position).packageInfo.packageName?.substring(0, 1) ?: "#" + return getItem(position).packageInfo.packageName!!.substring(0, 1) ?: "#" } interface Listener { @@ -53,14 +53,14 @@ class PackageViewHolder(private val rootView: View, private val listener: Packag */ class PackageModel(val packageInfo: NeoPackageInfo) : SortedListAdapter.ViewModel { - override fun isSameModelAs(t: T): Boolean { + override fun isSameModelAs(t: T): Boolean { if (t is PackageModel) { return t.packageInfo.packageName == packageInfo.packageName } return false } - override fun isContentTheSameAs(t: T): Boolean { + override fun isContentTheSameAs(t: T): Boolean { return isSameModelAs(t) } diff --git a/nhterm/src/main/java/com/offsec/nhterm/ui/pm/view/RecyclerTabLayout.java b/nhterm/src/main/java/com/offsec/nhterm/ui/pm/view/RecyclerTabLayout.java index 145539b..987a10a 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/ui/pm/view/RecyclerTabLayout.java +++ b/nhterm/src/main/java/com/offsec/nhterm/ui/pm/view/RecyclerTabLayout.java @@ -36,6 +36,8 @@ import androidx.recyclerview.widget.RecyclerView; import androidx.viewpager.widget.ViewPager; import com.offsec.nhterm.R; +import java.util.Objects; + public class RecyclerTabLayout extends RecyclerView { protected static final long DEFAULT_SCROLL_DURATION = 200; @@ -397,6 +399,7 @@ public class RecyclerTabLayout extends RecyclerView { int center = mRecyclerTabLayout.getWidth() / 2; for (int position = first; position <= last; position++) { View view = mLinearLayoutManager.findViewByPosition(position); + assert view != null; if (view.getLeft() + view.getWidth() >= center) { mRecyclerTabLayout.setCurrentItem(position, false); break; @@ -535,14 +538,14 @@ public class RecyclerTabLayout extends RecyclerView { @Override public void onBindViewHolder(DefaultAdapter.ViewHolder holder, int position) { - CharSequence title = getViewPager().getAdapter().getPageTitle(position); + CharSequence title = Objects.requireNonNull(getViewPager().getAdapter()).getPageTitle(position); holder.title.setText(title); holder.title.setSelected(getCurrentIndicatorPosition() == position); } @Override public int getItemCount() { - return getViewPager().getAdapter().getCount(); + return Objects.requireNonNull(getViewPager().getAdapter()).getCount(); } public void setTabPadding(int tabPaddingStart, int tabPaddingTop, int tabPaddingEnd, diff --git a/nhterm/src/main/java/com/offsec/nhterm/ui/term/NeoTermActivity.kt b/nhterm/src/main/java/com/offsec/nhterm/ui/term/NeoTermActivity.kt index 6db1e04..8322389 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/ui/term/NeoTermActivity.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/ui/term/NeoTermActivity.kt @@ -9,6 +9,7 @@ import android.os.Build import android.os.Bundle import android.os.Handler import android.os.IBinder +import android.util.Log import android.view.* import android.view.inputmethod.InputMethodManager import android.widget.ImageButton @@ -22,7 +23,6 @@ import androidx.core.view.OnApplyWindowInsetsListener import androidx.core.view.ViewCompat import androidx.preference.PreferenceManager import com.offsec.nhterm.App -import com.offsec.nhterm.BuildConfig import com.offsec.nhterm.R import com.offsec.nhterm.backend.TerminalSession import com.offsec.nhterm.component.ComponentManager @@ -34,14 +34,18 @@ import com.offsec.nhterm.component.session.XParameter import com.offsec.nhterm.component.session.XSession import com.offsec.nhterm.frontend.session.terminal.* import com.offsec.nhterm.services.NeoTermService +import com.offsec.nhterm.ui.pm.PackageManagerActivity import com.offsec.nhterm.ui.settings.SettingActivity import com.offsec.nhterm.utils.FullScreenHelper import com.offsec.nhterm.utils.NeoPermission import com.offsec.nhterm.utils.RangedInt +import com.topjohnwu.superuser.Shell import de.mrapp.android.tabswitcher.* import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode +import java.lang.System.`in` +import java.lang.System.out class NeoTermActivity : AppCompatActivity(), ServiceConnection, SharedPreferences.OnSharedPreferenceChangeListener { @@ -73,12 +77,12 @@ class NeoTermActivity : AppCompatActivity(), ServiceConnection, SharedPreference val SDCARD_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE = 1 if (ContextCompat.checkSelfPermission( this, - Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.MANAGE_EXTERNAL_STORAGE, ) != PackageManager.PERMISSION_GRANTED ) { ActivityCompat.requestPermissions( this, - arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), + arrayOf(Manifest.permission.MANAGE_EXTERNAL_STORAGE), SDCARD_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE, ) } @@ -180,6 +184,10 @@ class NeoTermActivity : AppCompatActivity(), ServiceConnection, SharedPreference addNewRootSession("Android SU") true } + R.id.menu_item_package_settings -> { + startActivity(Intent(this, PackageManagerActivity::class.java)) + true + } else -> item?.let { super.onOptionsItemSelected(it) } } } @@ -233,6 +241,7 @@ class NeoTermActivity : AppCompatActivity(), ServiceConnection, SharedPreference } }, ) + val tab = tabSwitcher.selectedTab as NeoTab? tab?.onResume() } @@ -241,7 +250,9 @@ class NeoTermActivity : AppCompatActivity(), ServiceConnection, SharedPreference super.onStart() EventBus.getDefault().register(this) val tab = tabSwitcher.selectedTab as NeoTab? - tab?.onStart() + if (tab != null) { + tab.onStart() + } } override fun onStop() { @@ -605,15 +616,6 @@ class NeoTermActivity : AppCompatActivity(), ServiceConnection, SharedPreference } private fun addXSession() { - if (!BuildConfig.DEBUG) { - AlertDialog.Builder(this) - .setTitle(R.string.error) - .setMessage(R.string.sorry_for_development) - .setPositiveButton(android.R.string.yes, null) - .show() - return - } - if (!tabSwitcher.isSwitcherShown) { toggleSwitcher(showSwitcher = true, easterEgg = false) } diff --git a/nhterm/src/main/java/com/offsec/nhterm/utils/NeoPermission.kt b/nhterm/src/main/java/com/offsec/nhterm/utils/NeoPermission.kt index 0570e34..d5dbcfb 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/utils/NeoPermission.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/utils/NeoPermission.kt @@ -4,10 +4,13 @@ import android.Manifest import android.content.ActivityNotFoundException import android.content.DialogInterface import android.content.pm.PackageManager +import android.os.Build import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat +import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.offsec.nhterm.R /** * @author kiva @@ -28,10 +31,10 @@ object NeoPermission { Manifest.permission.READ_EXTERNAL_STORAGE ) ) { - AlertDialog.Builder(context).setMessage("需要存储权限来访问存储设备上的文件") - .setPositiveButton(android.R.string.ok, { _: DialogInterface, _: Int -> + MaterialAlertDialogBuilder(context, R.style.DialogStyleCompat).setMessage("Please enable Storage permission") + .setPositiveButton(android.R.string.ok) { _: DialogInterface, _: Int -> doRequestPermission(context, requestCode) - }) + } .show() } else { @@ -42,11 +45,17 @@ object NeoPermission { private fun doRequestPermission(context: AppCompatActivity, requestCode: Int) { try { - ActivityCompat.requestPermissions( - context, - arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), - requestCode - ) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + ActivityCompat.requestPermissions( + context, + arrayOf(Manifest.permission.MANAGE_EXTERNAL_STORAGE), + requestCode) + } else { + ActivityCompat.requestPermissions( + context, + arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE), + requestCode) + } } catch (ignore: ActivityNotFoundException) { // for MIUI, we ignore it. } diff --git a/nhterm/src/main/java/com/offsec/nhterm/utils/utils.kt b/nhterm/src/main/java/com/offsec/nhterm/utils/utils.kt index bb8676d..6487407 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/utils/utils.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/utils/utils.kt @@ -52,10 +52,10 @@ fun Context.extractAssetsDir(assetDir: String, extractDir: String) = kotlin.runC } fun Context.runApt( - subCommand: String, vararg extraArgs: String, + command: String, subCommand: String, extraArgs: String, autoClose: Boolean = true, block: (Result) -> Unit ) = TerminalDialog(this) - .execute(NeoTermPath.APT_BIN_PATH, arrayOf(NeoTermPath.APT_BIN_PATH, subCommand, *extraArgs)) + .execute(NeoTermPath.BIN_PATH + "/kali", command + " " + subCommand, extraArgs) .imeEnabled(true) .onFinish { dialog, session -> val exit = session?.exitStatus ?: 1 diff --git a/nhterm/src/main/res/layout/item_package.xml b/nhterm/src/main/res/layout/item_package.xml index b5fa57e..2bebfc3 100644 --- a/nhterm/src/main/res/layout/item_package.xml +++ b/nhterm/src/main/res/layout/item_package.xml @@ -9,7 +9,7 @@ android:orientation="vertical" android:padding="@dimen/package_item_padding"> - - - \ No newline at end of file + diff --git a/nhterm/src/main/res/layout/ui_pm.xml b/nhterm/src/main/res/layout/ui_pm.xml index c6ed556..ef8a60b 100644 --- a/nhterm/src/main/res/layout/ui_pm.xml +++ b/nhterm/src/main/res/layout/ui_pm.xml @@ -27,10 +27,11 @@ android:background="@color/colorPrimary"/> - + android:layout_below="@id/pm_tab_header"> + diff --git a/nhterm/src/main/res/layout/ui_term_dialog.xml b/nhterm/src/main/res/layout/ui_term_dialog.xml index 036582c..9d05a02 100644 --- a/nhterm/src/main/res/layout/ui_term_dialog.xml +++ b/nhterm/src/main/res/layout/ui_term_dialog.xml @@ -4,10 +4,13 @@ android:layout_height="match_parent"> + + - \ No newline at end of file + diff --git a/nhterm/src/main/res/values/colors.xml b/nhterm/src/main/res/values/colors.xml index 8702830..837b84e 100644 --- a/nhterm/src/main/res/values/colors.xml +++ b/nhterm/src/main/res/values/colors.xml @@ -10,4 +10,10 @@ #AE000000 #efefef #363636 + + #202124 + #131415 + #A8D8D8D8 + + #A88B9FBA diff --git a/nhterm/src/main/res/values/dimens.xml b/nhterm/src/main/res/values/dimens.xml index 7122697..30b14d7 100644 --- a/nhterm/src/main/res/values/dimens.xml +++ b/nhterm/src/main/res/values/dimens.xml @@ -9,7 +9,7 @@ 32dp 72dp 36dp - 256dp + 350dp 48dp 36dp 36dp diff --git a/nhterm/src/main/res/values/strings.xml b/nhterm/src/main/res/values/strings.xml index 7a3043f..1fb22d8 100644 --- a/nhterm/src/main/res/values/strings.xml +++ b/nhterm/src/main/res/values/strings.xml @@ -185,8 +185,7 @@ Danger Zone This will delete and re-copy required files to boot kali chroot, confirm? - https://example.com/nhterm - + http://http.kali.org/kali sh diff --git a/nhterm/src/main/res/values/styles.xml b/nhterm/src/main/res/values/styles.xml index 4f637b8..11383e7 100644 --- a/nhterm/src/main/res/values/styles.xml +++ b/nhterm/src/main/res/values/styles.xml @@ -51,4 +51,74 @@ normal + + + + + + + + + + diff --git a/nhterm/src/main/res/xml/setting_general.xml b/nhterm/src/main/res/xml/setting_general.xml index 53f03b2..5e2c073 100644 --- a/nhterm/src/main/res/xml/setting_general.xml +++ b/nhterm/src/main/res/xml/setting_general.xml @@ -5,12 +5,6 @@ android:summary="@string/pref_general_initial_command_desc" android:title="@string/pref_general_initial_command"/> - - Date: Sat, 9 Sep 2023 18:54:33 +0000 Subject: [PATCH 2/9] Style changes and permission ask rollbacks * Main app theme now targets material3 * Permission checker/granter rollback for READ permission --- NeoLang/build.gradle | 4 +- NeoTermBridge/build.gradle | 4 +- Xorg/build.gradle | 4 +- chrome-tabs/build.gradle | 4 +- nhterm/build.gradle | 4 +- nhterm/src/main/AndroidManifest.xml | 22 ++++---- nhterm/src/main/java/com/offsec/nhterm/App.kt | 2 +- .../offsec/nhterm/ui/term/NeoTermActivity.kt | 23 ++++---- .../com/offsec/nhterm/utils/NeoPermission.kt | 44 ++++++--------- nhterm/src/main/res/values/styles.xml | 54 +++++++++---------- 10 files changed, 73 insertions(+), 92 deletions(-) diff --git a/NeoLang/build.gradle b/NeoLang/build.gradle index 574f81b..c459fc7 100644 --- a/NeoLang/build.gradle +++ b/NeoLang/build.gradle @@ -32,6 +32,6 @@ dependencies { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } diff --git a/NeoTermBridge/build.gradle b/NeoTermBridge/build.gradle index d09a6f3..e8ca3cc 100644 --- a/NeoTermBridge/build.gradle +++ b/NeoTermBridge/build.gradle @@ -30,6 +30,6 @@ dependencies { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } diff --git a/Xorg/build.gradle b/Xorg/build.gradle index ab1f764..7278189 100644 --- a/Xorg/build.gradle +++ b/Xorg/build.gradle @@ -35,6 +35,6 @@ dependencies { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } diff --git a/chrome-tabs/build.gradle b/chrome-tabs/build.gradle index 4846b5a..4a6ec4a 100644 --- a/chrome-tabs/build.gradle +++ b/chrome-tabs/build.gradle @@ -25,6 +25,6 @@ dependencies { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } diff --git a/nhterm/build.gradle b/nhterm/build.gradle index f54001c..810c8da 100644 --- a/nhterm/build.gradle +++ b/nhterm/build.gradle @@ -87,6 +87,6 @@ dependencies { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } diff --git a/nhterm/src/main/AndroidManifest.xml b/nhterm/src/main/AndroidManifest.xml index 425d7c1..85f2b64 100644 --- a/nhterm/src/main/AndroidManifest.xml +++ b/nhterm/src/main/AndroidManifest.xml @@ -48,7 +48,7 @@ android:name=".ui.term.NeoTermActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:launchMode="singleTask" - android:theme="@style/AppTheme.NoActionBar.Dark" + android:theme="@style/AppTheme.NoActionBar" android:windowSoftInputMode="adjustResize|stateHidden" android:exported="true"> @@ -81,7 +81,7 @@ android:name=".ui.term.NeoTermRemoteInterface" android:configChanges="orientation|keyboardHidden" android:exported="true" - android:theme="@style/AppTheme.Dark" + android:theme="@style/AppTheme" android:windowSoftInputMode="adjustResize|stateHidden"> @@ -143,12 +143,12 @@ android:name=".ui.other.AboutActivity" android:exported="false" android:label="@string/about" - android:theme="@style/AppTheme.NoActionBar.Dark"/> + android:theme="@style/AppTheme.NoActionBar"/> + android:theme="@style/AppTheme.NoActionBar"/> + android:theme="@style/AppTheme.NoActionBar"/> + android:theme="@style/AppTheme.NoActionBar"/> + android:theme="@style/AppTheme.NoActionBar"/> + android:theme="@style/AppTheme.NoActionBar"/> + android:theme="@style/AppTheme"/> + android:theme="@style/AppTheme"/> + android:theme="@style/AppTheme"/> Unit)?) { - MaterialAlertDialogBuilder(context, R.style.DialogStyleCompat) + MaterialAlertDialogBuilder(context, R.style.DialogStyle) .setTitle(R.string.error) .setMessage(message) .setNegativeButton(android.R.string.no, null) diff --git a/nhterm/src/main/java/com/offsec/nhterm/ui/term/NeoTermActivity.kt b/nhterm/src/main/java/com/offsec/nhterm/ui/term/NeoTermActivity.kt index 8322389..d9dd2a4 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/ui/term/NeoTermActivity.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/ui/term/NeoTermActivity.kt @@ -64,8 +64,18 @@ class NeoTermActivity : AppCompatActivity(), ServiceConnection, SharedPreference override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + val SDCARD_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE = 1 + NeoPermission.initAppPermission(this, NeoPermission.REQUEST_APP_PERMISSION) + if (ContextCompat.checkSelfPermission( + this, + Manifest.permission.READ_EXTERNAL_STORAGE, + ) != PackageManager.PERMISSION_GRANTED + ) { + ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), SDCARD_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE) + } + val fullscreen = NeoPreference.isFullScreenEnabled() if (fullscreen) { window.setFlags( @@ -74,19 +84,6 @@ class NeoTermActivity : AppCompatActivity(), ServiceConnection, SharedPreference ) } - val SDCARD_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE = 1 - if (ContextCompat.checkSelfPermission( - this, - Manifest.permission.MANAGE_EXTERNAL_STORAGE, - ) != PackageManager.PERMISSION_GRANTED - ) { - ActivityCompat.requestPermissions( - this, - arrayOf(Manifest.permission.MANAGE_EXTERNAL_STORAGE), - SDCARD_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE, - ) - } - setContentView(R.layout.ui_main) toolbar = findViewById(R.id.terminal_toolbar) diff --git a/nhterm/src/main/java/com/offsec/nhterm/utils/NeoPermission.kt b/nhterm/src/main/java/com/offsec/nhterm/utils/NeoPermission.kt index d5dbcfb..49cd8fb 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/utils/NeoPermission.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/utils/NeoPermission.kt @@ -19,45 +19,35 @@ object NeoPermission { const val REQUEST_APP_PERMISSION = 10086 fun initAppPermission(context: AppCompatActivity, requestCode: Int) { - if (ContextCompat.checkSelfPermission( - context, - Manifest.permission.READ_EXTERNAL_STORAGE - ) - != PackageManager.PERMISSION_GRANTED - ) { - - if (ActivityCompat.shouldShowRequestPermissionRationale( + if (ContextCompat.checkSelfPermission( context, Manifest.permission.READ_EXTERNAL_STORAGE ) - ) { - MaterialAlertDialogBuilder(context, R.style.DialogStyleCompat).setMessage("Please enable Storage permission") - .setPositiveButton(android.R.string.ok) { _: DialogInterface, _: Int -> - doRequestPermission(context, requestCode) - } - .show() + != PackageManager.PERMISSION_GRANTED) { - } else { - doRequestPermission(context, requestCode) + if (ActivityCompat.shouldShowRequestPermissionRationale( + context, + Manifest.permission.READ_EXTERNAL_STORAGE + )) { + MaterialAlertDialogBuilder(context, R.style.DialogStyle).setMessage("Please enable Storage permission") + .setPositiveButton(android.R.string.ok) { _: DialogInterface, _: Int -> + doRequestPermission(context, requestCode) + }.show() + + } else { + doRequestPermission(context, requestCode) + } } } } private fun doRequestPermission(context: AppCompatActivity, requestCode: Int) { try { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { ActivityCompat.requestPermissions( context, - arrayOf(Manifest.permission.MANAGE_EXTERNAL_STORAGE), + arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), requestCode) - } else { - ActivityCompat.requestPermissions( - context, - arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE), - requestCode) - } - } catch (ignore: ActivityNotFoundException) { - // for MIUI, we ignore it. - } + } catch (ignore: ActivityNotFoundException) { + // for MIUI, we ignore it. } } diff --git a/nhterm/src/main/res/values/styles.xml b/nhterm/src/main/res/values/styles.xml index 11383e7..4799fc9 100644 --- a/nhterm/src/main/res/values/styles.xml +++ b/nhterm/src/main/res/values/styles.xml @@ -1,18 +1,14 @@ - - - - - + @style/Alert.Button.Neutral - - + + + + From 5b90a98f5e691647d633b0d2470c4539346d4d58 Mon Sep 17 00:00:00 2001 From: Re4son <3520622-re4son@users.noreply.gitlab.com> Date: Mon, 13 Nov 2023 08:13:03 +0000 Subject: [PATCH 6/9] Bump to 2023.4 (2023040100) for release --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index c45e3e3..4420201 100644 --- a/build.gradle +++ b/build.gradle @@ -14,8 +14,8 @@ buildscript { ext { //version=YYYYMMVVRR (Either "VV" for stable version OR "RR" for pre-release candidate (e.g. 0001 for rc1)) //noinspection HighAppVersionCode - versionCode=2023030200 - versionName="2023.3" + versionCode=2023040100 + versionName="2023.4" } ext.deps = [ From 84fcd44dc1f36fc2f60923123b3d291d0d5dc8bf Mon Sep 17 00:00:00 2001 From: yesimxev Date: Tue, 14 Nov 2023 16:17:30 +0000 Subject: [PATCH 7/9] Revert gradle version --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 4420201..100eb37 100644 --- a/build.gradle +++ b/build.gradle @@ -35,7 +35,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:8.1.0' + classpath 'com.android.tools.build:gradle:8.0.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath rootProject.ext.deps["kotlin-gradle-plugin"] From 80130d2145c7e79736e172a809adf403ebeab8fa Mon Sep 17 00:00:00 2001 From: yesimxev Date: Thu, 30 Nov 2023 22:21:59 +0000 Subject: [PATCH 8/9] Reverted normal toolbar height --- nhterm/src/main/res/layout/ui_main.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nhterm/src/main/res/layout/ui_main.xml b/nhterm/src/main/res/layout/ui_main.xml index 663e088..a0ce6d5 100644 --- a/nhterm/src/main/res/layout/ui_main.xml +++ b/nhterm/src/main/res/layout/ui_main.xml @@ -9,12 +9,11 @@ - Date: Thu, 7 Dec 2023 22:19:04 +0000 Subject: [PATCH 9/9] Smaller default font size, new icon --- .../nhterm/component/config/defaults.kt | 2 +- .../res/drawable/ic_launcher_background.xml | 78 ++++++++++++++++++ .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2431 -> 3767 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 4639 -> 6310 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 4329 -> 5014 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1456 -> 2195 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 2639 -> 3621 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 2566 -> 2955 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 3530 -> 5279 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 6897 -> 9092 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 6402 -> 7373 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 6129 -> 8054 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 13338 -> 15590 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 10978 -> 11874 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 9176 -> 11872 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 22119 -> 22508 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 16290 -> 17772 bytes .../res/values/ic_launcher_background.xml | 2 +- 18 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 nhterm/src/main/res/drawable/ic_launcher_background.xml diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/config/defaults.kt b/nhterm/src/main/java/com/offsec/nhterm/component/config/defaults.kt index 45b2753..3037820 100644 --- a/nhterm/src/main/java/com/offsec/nhterm/component/config/defaults.kt +++ b/nhterm/src/main/java/com/offsec/nhterm/component/config/defaults.kt @@ -3,7 +3,7 @@ package com.offsec.nhterm.component.config import android.annotation.SuppressLint object DefaultValues { - const val fontSize = 30 + const val fontSize = 18 const val enableBell = false const val enableVibrate = false diff --git a/nhterm/src/main/res/drawable/ic_launcher_background.xml b/nhterm/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..e009ebe --- /dev/null +++ b/nhterm/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nhterm/src/main/res/mipmap-hdpi/ic_launcher.png b/nhterm/src/main/res/mipmap-hdpi/ic_launcher.png index 9547f8a7c18372ac6c37db6502ee27e72f19d627..d46bc0c7f7d9d2769526a3e6a4f04dc469078ad3 100644 GIT binary patch literal 3767 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 literal 4639 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 diff --git a/nhterm/src/main/res/mipmap-hdpi/ic_launcher_round.png b/nhterm/src/main/res/mipmap-hdpi/ic_launcher_round.png index aa68fe6a98cb0cab63948531da956c837e342679..f3ea4caeb2de53310915f2445d6c54f9eb23e4a2 100644 GIT binary patch literal 5014 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 literal 4329 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 diff --git a/nhterm/src/main/res/mipmap-mdpi/ic_launcher.png b/nhterm/src/main/res/mipmap-mdpi/ic_launcher.png index 98719c0581d8fe5e92a44bd138ee22907aa26df4..1918731b5b2ad000bb124943f57027775c6ee1e4 100644 GIT binary patch delta 2184 zcmV;32zU3e3zHF$BYy~5Nkl*gz4%g0U0D z3egpNGzu6{SwVz|C~8D3D}wuB-A%S+|GC-uop{Xg+>XU?3F=H_O3_UxIt{^iS;($v%>H8nMIvnGUKJjlq%kjlzRdHndX^!N9hXI52Jg}gTs;u3J_(j}92BEN0hHuG|y zP$HN!XO1jhyx7#m>({SMog6=YJmmf15R(9k^xCy+@_+8#JGp)Pw&dmIg^(BuV84or z3VHtgxjcRPR8E{Y5yHhsOadT}*Uz3kD+?AZ2zl{PW7Vov(%s!{gq%EiGK5cD0F1iPtSlo2Vg5Do zf=>0~#eWNFX=yPw_W4B>K(`?R@pzsrP>?w}IWe`=AP@xB59~|J_4x$~pwH7P={Ej@ zqah_F#gNa<&6Q=#mVJ{DI^B&MH%unNSt+alR#+lWPfoN|B7#pcQCL_gOO`B2*jD-Z z`DTqkh|e{w0HROY5?Q1mSx``5B9EOGE?g+<*MF~<6)RSl?viLW=!A47f*UA+Vqvyn zJn$b91jx>xKi>f1%t584rKS*f?b>C=jHOGL8ZnC&Eeg3m8a8a$U>3QH7cT}2V5($3 zVYcxf5(KP5y+EANVDH|&UxDv-?AT%KP*hZ8KI5?zosFi_*47p*fJu_6l8E^a0Yx)s zN`K4Pv63@mhEz_OBK70P%e>jMO~Ddr$nM;^Q?_p1YNEDr<3`!OeY+9H-?)aFAWQLD zinh*}?oO^D0+{C+i6cGur->8g)39NZJawwHj~XRiDh9tp5`qwCE#O*P$V8e9m6es5 zYxeBfV??Z8y;|0;T^sRTKCmNu3|taX0Ds+wEVwt$QDkY9mnA1lkCJXxte7-O28Iup z+6faRPsihu;$q`@Y5>CcJv%$wbRRzX9Y6v*0YqRW{_c|v2d<@%;TKT=DWc!HH)d)i zyGM_f{*fc)FOB~13dsMHlqA3EXQx`JRIRdZ-8z}ALg_pRAp;hOq9wB^7OPmBiGNL- zHksdJSu9x~?T#*@08)fs-5b-DK$S-NXN^4esT(s!dPj_q_e%cUB7y>X#NHCu_@(=0%IiQ4Cbem3gw zd|#+N9&6BDlGSGHxFF+`cY$qO0e_6q)I?BcVwj{xLCgZu6iwsC$tR8W-)b4~n`Yr( z{rpou5mKf_TvAeEL=YvSPa*rHU0^ZWnE*|I_fqUW@wf!AKV^WjH_cUSQIB8JZu5r{ zuGLS9cu)l$(H2^+*2+~2;bV%JC}JbB;C3S)e9y>CXR_-CpDc7faSNWwI)A{yKtur? zeQj2-=;&0u$6go(x2q1tcvY-)N+A0JgV=Wa9Rs@S8_q&B{MesXavbwrDvH(s7n1v`v|0Q^v zh`T6IAr0DA8#F`Bx=ME_kxsq#pjwLY0s+913)*&Ci;+#TXh#hz&VNp%F5eIVEMjaU z*#Y@407ROITP)Hn6f5y9pHZRTRjXx+by1^8tpG^ak-~pwI1zUL?TTVk<1S)h1ptow z$U>ye41~yrh4s1}saajgAf818djZA(GJ+*2atfRY(|@)v!~#pfiDSs90=S5FN-_Bh z3nYmSH9~PRwX%Q#CVxyw1HOm2{X0d8C<-0Wb^+gW4K>1Z{rB0xw70h#96Wf?AW#6~ zDrc1(Ymhn~M6`&eCCN(>fDju=-(D`PjjWX*%gltOc$O8&JjHWeAv6Ydh_$t~W{rv} z08k6;LoZ*x{KW$HXvIw}#2{|H&d;vBT(}}40ozjSSPjb&Fn_w@y?gfz@t6ewHuX%W zY(gS=(-qj~<2*A6r6^j-eXq^yerx>#U_Q&{+)r(-pD{|zIGeFYJ3 delta 1439 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 diff --git a/nhterm/src/main/res/mipmap-mdpi/ic_launcher_round.png b/nhterm/src/main/res/mipmap-mdpi/ic_launcher_round.png index 0ef5a4f69fb856c07bd4489cdfeaa1f9da35f8ae..9d1c1ad536e4d5e851a89c1050f5baf111c9fed4 100644 GIT binary patch delta 2949 zcmV;03wrd16pI&-BYz80Nkl%FLryt@j^E%a$#xy?OKIWIn@RhDYe#r11BjY=0a(cI>l>6DQUQ|D7Rl z4Og#T-FD5IHC+&%`CIrs25YcZ`0pQW!~?!!#flyo85!%cva(9HZQJ(E?%lgf4;(n~ zCO0?t2jtM9LvIcqJXpGG*RF45{Sqm(jyb_KK8Yf@-aTW{RjXF5*|1^5bAf$(?%X+Z z>((tRH*VZ8*MF{EGgq%(jmh=v*UinFH_h$ax9xL5LBZRcoSf%UT25N?i+Fo{$YFWz zo>#71xpmW~P2Zk6b;{hkch5Y1`qUH_7DlCvH+Sw_Z}{-xUY|aFytK45E8V+y_XZ3Y z;EfwM&Re>4sV7fFOG--2vuDo?pN9`0{#HtCWoAnVGxx?%i7kJwyqBm-Xw{uN=7Q3W|>zGo}nh9z1w}QOY)M+_)_n@Zn7mEPn=vyL9PdKf~X@k96zS&D+0!zg1$( zmMwdN*b)wxgXON_1T36~HkDbPtb!6fd-gO?jDLsUsfqON-P5M#L! ztB*>2-xa!UY0Y;`Ou);cQuibBS%KW0wa8X6*P-6ZpC))QHkF|o+nk-B-^xa z-+$hUtY-!f9&8nE5KwEZqTr>Zh@=1lMLV3g%vAeXSjW*B{(^V$2P9we)IM995C$LBo1RewYB+cc$ z@SX|8Q*AOzG=CB1|EE$#bVD67N-16(MuL<2iz3@(`NItxnlC^5%mV+V6o2_ro;a`P z?3OLfJXsw;E>$XqVp#}5DdGgcC^3Kje5(Y(P0=IGQUK!s4vQy-a0vQNYc-20Agi~R zTmH^5kdst!(kOAgI62uo6ZqfNs%7rhu5ErJ@I2qq-!FXrxtXU_DI?hTp$=dj_@JN& z^nyAI7cPv^j%WT>1uA(;Hh&y`-Y7k%#uQN6OVh#oUz}Yz0tP2_*2cYL<$PKFmcS2G z;9d}LJTahMJ2OsPo~X?M!28e#x`e?81@G{FI8#+2s67&cdbA&8uwF3*jk)u@s6z#S>Dy+H%>wLEY|3T#shOcQ^nOqpVZ)Yw*(14tNjSbs>TK?SBxooa>Z z9S3+h1w=)gO6^b<>BKb%3UB~-6VkNNC0YB|0{?qa=8-<3&)5F*eJM0UpaD;2p-7;qARelIZQ-FZjvu95!IhNZ4H-YTay;Uod zEvw^!QSwHfsB}}nhkxj~tFloSQ3g5?kXR7#&I=WJg7t|9(yq%)&J)B!0wuhRj0~=2 zzLU3G#T3w}w{`2*KXY%x)kknrH!W0DzrHD~Ti5d6WuZ0--j<4u)(UcRI#~#d0stzt zQ+(hBvP{q$VNihOeR?K}94$>ZTikRpp9Aw0EY$ec!2NWG;zSjSdzvKFCeTz z4X7kQt%vXi27hpwi5|!Sd`up)G-?0Cw%F3pmuTs&wU55q`-|0vK$2G|p8 zryHuu{gLZFZp^|9J0-BVlT;}(q**f?(8x%6Wxm>mS%2a){Sh<@1}=1{%2AVdQQm>~ zC8Be>k&#~rYZD*y|FF9_P!Q(eB5{n4H12T{i$WPE{F{w%GvMflpn$U=|3;vc+7z26 zRqgG&iMn2=L_ngN6D3BMFJBIQ>b!HTbjP#i&6{`Jw{PETVu91_)V!bjLFry0#e)IL`zr=EQl*S=7JWwSiA?QvluRjZcgdP$Vj2L@!>v zXw>rOgYg~fyAjZ+?e^{4UvUed0FM9`Yq|^)bbl?Nhzpl(cn;DlD0~;9MO=Z31UrVp zgECYkFE5V+{ojPG0{|0VGy0m<6Acz>!p~$Rfwxo&ZxmJ}D1c2Q;kk)~J>}i9%*;%F zEcsdVTLw1KGycVv8@>`vMWq4`I66Q?xvTt8N(8A?k?1{sKd?tg<^9uOic6h1gVcnJ z+JC9{en{l!=H}X8TEd%z#eok#Cz9~oIN&{QAyinOfW^mD`Q5d~-T$dM!5ME|sU_3AV1$=)>v?}ksOx{`KEZy7o_yy7Py?kd%NM!7K)0D`z*TO{sDHBl zakNsQ2y%lbW7yx6i;9X~uUxtExYq8&9{yfc3)t!mKL1qXX1>!|8~)So|5)qE+hlrvQ z@YgK=!^OuM#D*VWY|NcKKvE^WWzivOA10_rnvU?y-}ugdhj*D{PgUg_vrjyd0HJ`Z v>vPw6hyVZ3$QPdZTQcu(lJb>*Z=U}bf$1tfdSwQh00000NkvXXu0mjfgXf-G delta 2557 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 delta 3529 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 diff --git a/nhterm/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/nhterm/src/main/res/mipmap-xhdpi/ic_launcher_round.png index 55afe3461fba53589053fe640bae52d42ce06df4..6ac878747d22067f696b26db67e89eef75e8925d 100644 GIT binary patch literal 7373 zcmV;;95UmHP)BOvb z@>eJ6thDKsxR$QOPSmzz%%H37)qiMJ-Tr>Zv&r#rtLnX)D2!*Vz21Ab-o5vnZ}0u> zz0W!CR;^m!v~OAlt@hfrYwIB6#*I6#G_mh-PJEGXT80e(Z@A%x^ASLe|DI{%T)U1} z$~UcqRvWNp&6-uWG{8rX9-T9F>eSrHlP7n&=bn3dOqw*Q7s7jv@i)E`pJy$)$2T5g z7FsI;L&xh)m@uKIK)p+#uFlWTKRkc_{2xB>zyrTpzI^!yk390oUnT!5`9Ckb=h*wp zmM#0$;>C-9IA_kB!}r~H-)gSGwYX+@54GAA^{{icr44-I#EI>vOqnv_-h1!eJA3x* zH&?D)`PtU3Ta$hJ_9cf8A5LC;@x|oi$&<;;FTb3;_S$PD%1bZ3kN(i_ESe9H|P*9NY9Z^prN=e3#AD;{#K0LYp`s>e- z+i$-;k##5Y=FLl1uU?&O-@ZNBzkh$R6dEch(Y2kY?A^OJdGygo-N?40-h0MRM`Q7bhJ% zc1${S=#a5=?%X-K?6S*}fddC7x88bdBKk>o?%WAAIfZaf?v3IP9Xf=PKhbxdp^w(z zwD@$+v=DfK*+Trje#w$0p8~wMcB2aiIu?G%9d{(Xdi6R3%*v8ZojN5~Uww6=!0x;X z4-2UZirTPY!>7uW*3;*-v78I7HmRO{&_E{6ojdp4UAuNAvT%TR17@(BHf>5|aY>&( zeVoO{fK`=TbkRjg_wL=3Yp%H_S-5baqat~QGYII3zO7la=3PaibuJ?@njyd{D@jI-7?Jeo(c=tos#{P-|Ni|G#iZoGfdhD_qbC$W2Bwtu zBx7MrjIG8NbWxBUsX+Jv84a#&mPJq;J9ez2f*6RJAiaC{PLv(FwAXv8qs#T{*T1jy zcx2jGYeWk|bgZQGI?Z@jU_10TyJmt5k4HS}p?Azcq@X- zOEDw)K53p6Mkh|3NECcsu!{$GF3Era1ClLUwh*M zeo7{x4!X3GyqbcjOP4NZ4Cq{xe*O9-D_5?>vt8OsHm5@GXHr7T5Q}PSc0=XuO$7c= z;74;)GKrgRy6KEToa@rHYu9A{{Q0Npm26H*_^GgH9%54E%`yO9MLXZa@(uhQJ9api zJ=gd?Qz1Z8w;Vfm%#9gks9tzOX{@86D$kC>99Y@T5zqOKb^w3KkRfMux+FnK6kkj+ zoJ$IWR-soiq}N}6-O!B#C z&T6pWk=92RkJ+fju5L#YZhQA$yMRLPhkZIl4|0Pap%e_7hZUw1D;t-rUxk8 zvYiF3PPz2bONjv(BGczg@O?01#E1?dW|h(4HYei!6MlNZ1zqy|%1$*=0>XO~!0aVc z(v^Lm$`XtP>n9#iF)vxNR z=+>><8Q(wKa@%dUQ6&?U-7=_R1-klPXfGL3( zbk$W?xi#Oxg9o4WIszkL8XK%g)7b_ChFL4XP7v6g7cXA?XQDgS&&AJHejY0TF)yHY zU{?f+INP*DKNN^vZ6GiB%PqIuaw%BabVWwZxL?-)sJH$i)=61LjBi+#0+4PklBRZm1~_)MvL*V+1_RMh5wSpCumLPHjs-TCAunh=fByWpxCk!A z0{Yol!=)-F^SSG;yAoNGv-VH{1V46D5R{=t7E;L2Pz2M+)lHWOUa6SrGNR3!H@~fz z>87nSnkO>uA3uKlShj9h-p?#xe52|R19jxckxmH)HcFv3AR`(*dUSHZQ0~>qvZ~$`qRq z0&J`r3c=%;Va4*tj2Yt;P@145CIvYc`oaTH0v=JF-pg2oA92&I8z_r>S(rLn_mbYs zMKq8LmM&fTUlx4fw5rT7=r9T%Hf)%)X22xdLSm3J5za$#SUw89`R1FQ=b(`43ed!^ z!-o&MlvJtvf6MwigKep?z&0Q0OLwzT7W!ezmCnaEsBA&O%=ggoOsu^ufs)9I2;NWv z*$LyQu5=ZnTDNZ9X&O>JHQi$yZ8Uz8*Mmz|{mBHf(rP z*t%cuq$bnaF)DS~!rAC+gQvTD5AGv=i9N8aH-|`De+j zoSdXx+qN!f0%Xkj01r@PH}E+C#&rOKb(5}=5wS%*R)8r1K(Ksb0kMWu6^e@cURgr? zQ8wh_z@9yOJ{887gK=t6W(tst-svZmk`pIR6k&Doh0Bs|0%c>vh7SDiN+vXFuFJua)Kr#2UN?g^_i|W2h`qGUF7$ zc1QJLDj27xqsITr|5viWK=oTtP*7~Sbv80kz#cpQdej;Ehv z_39;82rMiYDgiWT#(*Qw$Ff6k0gmYhXoPf=ErbZ?11Q(xI|#=uql%S4Ea2K$KMFt* zctt#p$`Fl*K%+G2jesfvi$V?Y15`1KwDJ56k-f2zGztj&wtkg{frdRL6(mK zrigxwmL6-+z#VHV3W6F?08aMT&~Y*+izi;YDF=+uZ+F4+H_Y-t5`4-(cQ{lgR(e>QpDmXaRn| ztlVU$z%`(sl>+V+*WV}E=e+`XN*=)RS^EAg0cHvyXNP(S$_74tFkrc7Ogo{V5Ih1a zw{>OG(O3z10$yU{K*6M|WsNsmA;;CV!%rh0L3eqn8Ui$ zGAvS36b|)4S9l(tQJM2c7=!|_%?tgyY15|63w?ER&SpQ=(Y6mh_~3uyE+~K>#Kjkk zrKf<}tt=-E3|7hF3nCd5KafYRb| zmRGp{mMvQf3B-!2@5v)OmZ$)wg56fGT=|iupmaLEU@YA=$SF;mCbQ)Qb0j-_mV@jS z<;)cw@wY?gop<^;`Trcz&vJphO4c@6mWl%K0_JT@0T(Ek;|b7DNhxTi0=+PvIMq!P z5&+JL$66kNN`2AhrT~psUo0;6YsI&@(lo4% z3@8*V6$K!817M(tFgq%ba1C4BNfYV@f;Jfu@52?ic>I}2OhLNdRV6AwgS_P7haWy2 zgv(OE^nhB*Bd^Izu9TZ&aabN1kO_g8EXcfof)FJDL`9T9Fz4Da@Uaq@8sR-zQJ8_n z7?dTU0uCHF@UgO>ekCeEeB5EhiWR>@0i>baJicHkqvQdPDCi>FmD!jFF#EYig%-!j zgbeUwI&R-b7K@rL7MK)GmV#0=At=PW00p27VgVTvKvYBt1Y?w*$+`pa!0u@h<4~Fq zN7k)d=hD!9`}VyjWp)SaugnMeLaYu&!lFfse(ATK7nZg2na%(Zfp)TZ-4sA3l@~UgaM)eVu4kr@U*S*GGJ2zmJcse;o3xD3{INFeYW##W|Y8R zk|Hn+>WECP84H#0!Gj0gRK(+tKmKE3OeO3L{woUbF41`U^y!Ce6E2T@$zS+qV3rqnh0}rvZ6e{99G=c(HM@X~KY(V0B zc!X{AN~@UhNLv}q=K7q&78O4kcTyNPv8n%10k(51CoeB=4a<;hMUm?iXEIlQvp^&p z0_Xw(eUXB5YXLnopruvvkhY>9vwDDseoU~GFc>pnVi1B7pdNrn0VaHAvWuXK71Nh& zzzN09!6S%0^dVkTATwfi)3&)}at|35)6vEJm}T0uX>8cdNnMcf2O9{0Nj&BY&f33! ze^EGNm?o_KE)=!cyv`!=d>et^PO?LR*l3BoKct>m0SMG$6LKg3;K@jA;e@r_Pzk(8 zuwJTVJjJFg;(lf#q4MxBz)lO)^oRRpGF30oT?WJ!ADwqU7|ScpT$uN6QBRiE|A{A_ z_zMb9FfM`);){lY0)`9NJX!l)l0JU%h3SXUDzrF`bdp!Z^aJRY>mv*tDzZRqv48KrtTax@lUV0rEr+PrGFFA=n zv{|rV!OyK0;7L>Qh0_Eu!|cX@4v&S$&FT$&3$nx;0I4h` zAnHI^cbgaQBziGsJu3yK{l^|w=^E|Wd-lF@!npX?{L{tyImZ_?C?{)R190@pJo z;GveF#NV^?^Yioh9kJV(CHh6lkIoWT;Y2TQ{)GtTYAKoR0w&_b(fX!OdiGh`t^_e%w7zV$q^S-x8*6OQj!c zK1FJ-3rzD*L2=JT!0O_Tl_jwfEYOCEh~q;joDYbA9tyl0$ADM?2>HCxC!gc~Wh3#m zOB1Yr&YU@pet43AymlU#W~2a5Lpk;9*YCD$*|N9TAx%}x&oHy0ArpWJfwyWl{2a%J zFn+-I1hY^`RpDP~24zqmAQWR{9smzj*rwcY-YD*0wi1J#CREhVKmWY_Wc8hT_3H6s zy__=X$C^N6>qM@Kkd0KuY|`4hcW*K2UEHBeBvwM0Mxs;zB98_*fP`YOe896gqBIHj z5m7MliV&!+fa5dY!*fs^3L`^8L1a_q*@hAW9?SUghR+?h~16T|;Vk>5$H*lQutXMN8nAq;Pn0Hc9-k)VQGzKmzF$R!F)~)X8U>&bXq5>-8KtA1{rmT0 zkjucVWy_XL!7#!!>vq21P}*(c#EGx6Tq!Ro#LaBEup$xzo+hzZWGYpmgiufj-to{w z54oqWv*@C#_d8(aG0QCPFQe6N|78w)L914+2BNIQCjDKj*QCZBrn>TNEk1S)Njwi}m zkgaM3)HEfKt`-y&IO@^s7b+fSgOSJTE4v;lqt#U~&edyoX?-&fY~{w}ygX4hOikmC zW-2k*B}oi$Sz_nK_p69duWZ}4&2~ML|L*`Bk5TH1S4A7{)KJ2{mP_;U@=lVHssrwS zzfgc!;SzT?TZsWrJ62wa?^PZl6)2C0*`lqE8kr>=eB)&$b0_}Lqch7}ezI^%5gh79>s4Cu1Ywp*S z;<`3^?OeBR-TwLc`9ERV4LYJmASO_j#{;M;i2=?O{!YM!^KF(>spr3G>;u8T zV{ztYt14`62ZawfT_jh`m@(rAJ|?*Ah$qTYu*8F@X%eT#k*s)_@vh0XDf%i;PFi#Q>yfldcNVCwiW960jUM5U6%$_~l z<@uKFh;j+IJaV9`A3M`E)egQjrv&eUctRfmzE$mWiZ!^BXXdb)X3u2Ebnvm1c20Oa zzJ8_>UJrv|Zby92mJ&C=vwQdM&&Q1$N2=L}vHCHeRq(AjI%?9SNvj488lZ$;D%NK5 zb62?1yn(8jY3a0?#LAW!+)TvI#p;>WRNtM|GlnOheDZg`$m+!y87pJvo-JCm7$S@LR`9P2`NuwmvMM)on#r!~ibxD_S;CwSwT!sFkSS%Xo@XY_n>X*< z&6_u8Rja2T8~?JTMuBgQ4v~g6YS^&hMS8th(s$6HK}+QgZ~GnBP7yp;Q&~hYvxzL= zRFzl6Aje``((k_e?qcYMU2OD`j832589sdYgN%W(_%Su|W2|xDhmAs{0Rf7g6?%V} zIzMRCs8PFFU-mTvv{cN#`HdSl7V&^PCiSX95i#fnJc}!H=FBOQm1FVz!#0=UD1LpU zg0g@<(|5+;gDtCCRbFIORx?U!qJdDb;SGJ-wQG0lm@#7xtzEnJ4`dWj6FjTeFOD2J zQphvbL|bk(Ds8iCc?H1jsVGX9i+AqaNfqm!_fN9GYTu?!oBl9m%9O+U{s{U?pMBq1 z52=xqQ&uxdYCy)|19T5bUn%02kt0X$R7w99JnR3juqlJZ|013=#lwzx-VTc&wvODT zOBXls2dJ?SSNJ>M18`AD@zkkPi&m{#RYVab(2M*&CwI^1pMM^zc}oa!fIzQ$8dS&hz9B{ss9RkBkvpol(Hk^=?|SUh?1$bHOl!ZiV%ogK3F-_M#g>-8Z+hAdVe z_~kkl--Et+x`FGfwX&^_27ltpP7yw%fSP&eatcdU&FZ$DbGU@KzxfZp)1T_>pZr`)>YIOU5;9O%V=c2e^00000NkvXXu0mjf9Bcm} literal 6402 zcmV+d8U5yoP)-`y32>=kO9|+9+~;CjVY~G3;lo>rs({p$wk^(a zD9Xi_(P*t(ipAnKzWQHkYi@3?&gb(DU0q!ry=a9(VUXZ^e#Y;(jlZAM+;d#?kSejz zDvyl8!NKj_-QE4bY2Z%a0TBHa;NO7n1OE;DFYtc?zUOD(lWo4jePmxAqo2og&w+Ny z8hF^|Y-t0B5jVqvZv;LA0-phX3YawlkM++yHqXIxx#zBm4B>)rnka1p5qn^rH-MB! zK+sDm#2I||bG*K$;NODRJ=o9vZT;g3Ug9}NjQJD;;p>|0*@ zo0gw8O>>EFZ*Q-GyMF|OdsPSQgp2b*dKP$YKUBTSzOv70W7!Pt5-Ig;!{B}agL=Uk zpg-UZ0mmTpvlk%5yL22frVZ~6I#aDeU48(AIOhyV!%SlE8wpN$($CIuEHXZwX>Z6D zCaqj9cTFLv*L4uCWo;I?ef}QDls484(cBmbxBYFW<9?#sY_J7_^Y@3VBn)ksyx??X z3p)5`PG>ix)n~yS%jYmwJLWfC1WmS_%%EdWvV&4{Z}?bWDZFt#g^;w*<>0(GRll>d z^Kx|P>(a3|yR2Mq*s@jLf1|avwbte0yfr~DS_-zNV3 za{I|7e5(zVb5*XFKi>=<)2a zhk|nj=N+_t(Ee!uw7={-$H1|4Mz9oKWS>j1@B}fy)6@uqfA*=}OlOqEA9EyOkbmel1ai$?3T>3N}9Ub?OJK=Ce z&F;u+r8ppO`N*t#d{BT?%f}$Q$MJWu9|T~~#R1bhF_1yLPwJQ%7>h8N0{8n&F=9eE z-e5%tydljK=m8|wAFB`L2ww0CMCcbTD-T5yzi9pU@_=PqKROu*kPJKBqy47sgY~BE zj{T-*3h!^PGwpZOnZB{%bmCot$BFSW;R%u=L{fwy@q}~{$`ybhSKPL}z5O%fu;N^x zJ799ri39#vh%L|h*~#wi1o<3T_f(&0y06-_-m}m2%=Vk62X>m)->*R&_ri>8J1kVu@LA=5D1TQgn z(X-1GKwxLc@PfO^rEpqSvuhdk_4T`PkY{EZ{JJ~}4&~Yc>cK&j+seh`<)c;Kq z&7a=AJnA(PozN6|gDb*tA~ACe97`@QV@nxx8k~ygxxIV$+GT6y zcG>2{{_C6rE?f7z2nFbmLJtSjz1U;gZ#!V>pRO_;zj?rPe5k>a-}!+?({o)RMt
YyXxZ^!wzp-QYyGUbTkhSH2tA72 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 Qpa1{>07*qoM6N<$g2s;`!vFvP diff --git a/nhterm/src/main/res/mipmap-xxhdpi/ic_launcher.png b/nhterm/src/main/res/mipmap-xxhdpi/ic_launcher.png index 1ab22991d50e46a3c531acd25e5cdd5eadce76cb..0987e9165c70b7ea489d71ad71ad4f7f14b1a85c 100644 GIT binary patch literal 8054 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 TL?&D`Py=(9_j4zc^F>EgHzh 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 Lv1XO}-RS=Tzi=Fm diff --git a/nhterm/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/nhterm/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png index 01a91d8358facf64ce30db2a806046fa48da9c2c..e2e7a4ca912c5ae1ddbece442ed3983fcabaa876 100644 GIT binary patch literal 15590 zcmdtJ^;?wR7dEO0ND4>~9fEYtkkYLT;n1A}&LAlWQUcOLD-1)214v1Sq@*;`NP~1Y zNSxvGJ@0kS-|$}7Gr!FB?7g48_S!4%b*~6*O;ut70KtO?4~W&(lwLo0@KEXghlh*# z$6`yh>%oH;CF)A@x?bkH>G1DncIj&*S+gt;u_J;^H4vr>b%hSbY8nsNxPRkeJHV=5 z(ME=TWQBmw4VhEOkS7{i@l)y?9nV>^-4oom`;|U4(4*IK&wRHpvHI;Fx8N}qyUE!P z{4<$${_xi*x#{fY?1f&7MX-v(_DfsV^Gp@gxrAj-&dauO(I-riKRK0Apg11PUkdW|I zaNrBZsi$5ot+px*r4ewSH2C;-Eie2hB}}t66fjmBtlmg<;TITz;4$5Xn@XL_?MK-e zku#&BMMOl3f@m8_y?747uqu(jy2rCo)OBJ`#wHWUsFA6-gIFAYb4xrkyY3in- zSoZU|_ZB8D#m$-i<|K=Z(p}P{{~U}a!nY2V+Bri2LvLB?&-+iav|K)Xkesf11L@_f zolThaJs#kqHuth}Yr~;F!Je1$f09Wno9RAsyp1(mDLt#W_jTT)uR=wRB~Sn3?!v0o3a^-BNic z`wTWs9)0J9KY#(F-(&kj;=Y5kCF-3QnyVr%>xcaKjcOc?29>%fOTWO^X6hd^080YM zreJPp%=&fhb*oWgF{1i-ueNfo#^mcR{uqI6J>vu%s=p~a8uy(L%We>+kFe|HNfK}&ecS6{|q6C`7lWn0@SwviYR2&|6;f5m@<;CSXct@Rq0nhPn=^dS}ric7RlMSI& z*&19XeEUzsDYaH>y0pTcFi3*1&$n^p1Be{u|B|g9a>OW2&N}UQSgWr5s!-8?u`G;z zCO{Z;Lu2lL`FAyS;Tp;x*zcua1i^?6=Q@GrcU?tsJfxi{bx>fo$>+V>&FSQNLKi~p zvxHsQq4tAg%D0gd8!#&?D=^;b0u}bT(D&-k11@gaJ8&m~GZX8VEBzIr=FuoCh=}je zFHU!SYYuX2`IX#{3k_(8=+9fCiRuruszk}Gv(a1)myXe)TfoHg{e{dI2d$4p6%&Jz z%%b6B(R6JC_V7Br{FMIDIj4qAv?(i1Vh9b3KG1)R!VFRs`q~5a3;Tk)`5?sffDVFP z{<@uF&bKD?RkZr#mt&$gSoKf`;}B%wi0|!JPG=LvY>Z+ZnhW6l&Lzr8>8CnRHg!{X z+x(h*6`#wdIj|-ov|;Bzu{btWknQ&NC@b|Ba{1_QUm{OgqwviecX}{PH1n>FPQmce zsA-}ZJhU(cK~^zvQ$1;(YWjZ8;}@sQA-*gE)=@C+dmGt%Gtz^Y^cehX7}zn(rPuA>BiwIu`O9E;A-^Oz4Zj-rH-|~Vt}x#+#slm z@|S-(xPuw-I$8aQ7p)#c5W|x_j}ipCJhmskR;%DbPiREEV2*e~EBTj3(&VvGym$?{ zh$AX)Jq&eVpx?towp z8V{H{z2tpwbq!js#;eNW{Z+;C!yZ|e{^F=Cwl&H=bToPk|M21JGpS+AbG#agnjog+ z^wM!swrgTG(@H4#sJhILul{l^bri5#aPlQaq{BS1o9sG>W}>d9IO()sWQd*#3#KI> z#}Kk^;}91k3=4%J#%NNW`*t(DXRn?A0H0ZRu%YMe$m;s~J&;tv7lshd zg6Ne;*<*N==8DnrGAf9}nmCIx$|jg&VJ!BBNYt zFqS}%oHuB)oHvf+gz4^(iPPftC^=EfZwtbh!uX)WdfYveu6*ZoP~QiYp6>TLn46G< zaWacuZ0tdwWn9R(!1iRB)?VZBU{zPRP(#<0MYwwOC~rqqSG^r*{O8Y~dMqF3M?Xe7 z&Nq5nCzuVC5umq+-$9j7fE9!0BTBKa|M1RJrpCMm4j9Wz4xNm?5)8zUD=aqZkZN$< zTN(W_^K`;4SC!~8T40JniSd_N|9`uxaD*f8Qd{!8qT|zCKrQV&a~EijuSh%F$TdKo zl;Q7E7}Frm5_=Zf;BnFeVOH>4G8<27_*9Y z-veH75Q7>UhFdODhI~18Ef8Hjy~%ccNq=S9-#saR*$<;v4flu+=#%_L%1-@we!MjT z@dtZHQ@aw5Llj3TfMgvW3fK9t`1Kz!nq+r!?%*cw+>#(a`Ew zKo!x1tNZgxFnK4W?Y{lMg z#Qv61z8&g${*NCDj{@dOgY(_Pt)jPyT38+f1&ZwGVdaszBW z0|C%tKHh8$?nARD7=hKpV_Z)J1>Jgjp#@9SMGfL?3MCR!MMb{HFQy+Iw0 zna6NGxda~yj-SbiQ4)C{KlhHqdt6(JbX3pelXr)A5GB^4D{**F&D%e2ZMHFT7K|$4 zuFAoY)lwM~VMblItqt1bh-xLv6sA~}=zw*1T2reQTgHBu8d29D@*XVylK0u3Np^3KO$H^fI0WHj=36CB>$=iMd`ltaS za_ZP^ip;{LwQ|8OSaKzLby~n6%=M!HO)Ivdr-&_+++rWQvVi>l*tD0WE5alC4tGD1 z4J9^#_^+KdTSFT(CMD6s3CXOm>5hqDD9rO#zhiVKNIC9S;}51dA+~;w*c1N3 zp;@~bhELUoCef&FqnEG;b>_r7-wt?Oj1+V$6q6sL9+SB#A9n*pLW2C|31x&Mg1P#+ z^6p|#dS8C&jDFi8!iULcEp7z0ucbp}Z zZ(0#NNL=y)p)cHQ^f-c&S3;HO9?*SoLG#An|8_#V zC*b+>3)_Wezj{krdk6kQr5C85z-K8fs!a3)HY$E^P~Q%TM8i?N_8IlTwrCH zwB`=0GM|B%0M~(OBQGktl$KHt{@{dU+~*ReSsDa0B;ETPJi4Q_ILoV!y9OPrr`6Xn z0@zJViMZuum!vHAz}R9To#%^_Rjq7^&GCvr5*WCDY4o;MC+Joi_QMF0r=n4!{o`?g zwC2@V8pofYCbYM0bRZQKRZ{5B8$bELe3GR@+=tY8xjl%*Z*2%x8cDV_Q-hkdSIHky z(l?02*)p{qgBRgj=c_SmiJ)av(bV)BCgbSA`Ne!;xY$J!AZ~<-jzfGouEDVprcJi$ zd#CZKgHi(Zbyj$G+9JF#{TN})o^LjcVM%A5_KK>4>J9iD9y62@S>Ew&Qj3UGg={CT z=Nq5vih8r^dD*uY(p?meEb`F=m-Aft?3kp;e^30PXjHSWNv2{Ym`Q`52u%Z5R~7^- z6Wh_ZQbdU&vr^LLUh+04?FFd=mEGiyS=*@wIN_hh4bxxOd3q0JNGpz-Hi#gTP)4iO ztqmeW8iO+bcG9@~S=lcfL*o6#Xt=u54Xh*k2S%Z`oCoF_^XSXywqXss-JLH6=H5h( zYjTxI-fIm-2us!!+xeBE@q)Rx*) zn$?K16D7ik)P}XF2Na1*$!S)zp(%b?7WvwQdJu%v+6J7qBqQ$&-)hjB>L>c&jTI`o z*>dObhhhX0yHcaAG}sn+pyu{x)r~DA*T3H6GuXfmvPt}&*FUGPJsGooyP)f~ zgD24_%%-EwL{`Po1IMuoa8l?nQfn(GRR5>Jc#Zhc}jb}Oo}V; z>lPbNmwDSo7bsXY8)>)lnh)W0W_gK^EsyoH-aVuF>k&mw4Op&TdLO31ryU#ND1LL2 zdlSPh%AxW$Tt*5N2YcX=)ums}U{KcTyXovW*->d3IsMp3-tJne+`Cb*Dsj9X!`RdD2j3QH<}|W1U0NbNdz~KpHCXrtz=l3(2`<4)>p2WOS8ye= zy?-xG?y1s03JEf`(5~ZZuQ1(jc=jscGE!%m6Oh|sEcHU*VD=a1x;fMIX&VVga>$wx zxXmFH7Ebhh45S=0Ui~vTNS>~=XmrF?L&u;x&+fHgV5(0?D9y^XSI{>*-_?Y*WRNvM z$c3eR8`=^VKpMQ5Vd)5i8ae$!JY^aUpz$C4G?UvbbF{v+PvkY+Z~K8TxAvq{NIQ^A zMG+g9?wdwD*{Y{%42u&-n?2-Fdw<1<#E2d@7+h=Fn~5p?8aYTc1lr8TJVlISpp7 zqVIlaEq~139*nY>2XY5j7EDse7fRY zDMN1Ww9QKHi(D4r{U^N|WaO=RV{uz@7HriJT&0})4*NoF5uDqkU1~(Y`n8}o1Es#; zjHYUiP-l+6j)u-Y{#|!#HE;JrH-%$%1^zewMr>$d#k7nJP53JS>CM^-%jOeZjau*9 zyu<|eS63u0kaEet&Whx|Mk{qYdg5olS z?p!_^&q4eMR3OupltgBoh}eNS&|u~8%KHRv-S}azL=FsrM{4Ur5NL5Hkg{9Q?67Y+ zOH3dX3QhVHXjMHv{`!jj(*t&SW^>&Hle>rUo8s8Fi95i(D zS09)?p#g%7_ZZec$;Yl_M6QOey$Y`V#Wf%TR~qx0Euh-crd?)>qF(RkJ<3dRs&vrF zW-%xCKYA~Xi>&ps2#m)94?DWo_mHxbK8@IJ9A}PP^f=5urFmRk($FpX$lbP{2^uqU zL<=lh2_-u8@HHRNoGxjt-@bl1pS(bMnhQ&bk)#YoUL5AJ6>}@HZ-Pi0aBhNll6ckM zXT9l)Scrq~mrHwTC@#yuckv+rT3d?s3M4@4an?kLP%DC1ib$!7s^HeanunypI>l>2{1Td+2tH`27SY;F=bYgU{3P-dd?El z;I7u^ikI-_DbjAad$@80D>|+UfH${%6vzCJ8&%ofnu)Ebqu7rT?ta678O#|88Q~yk z!fMayq7!pyr4jmjaS1$)5_K+kHNr0;M|(`$DEmmr)z);yQa76jWWl=nc`XIRN`P~b zL**b#!dY~lPcdArb_1!Tn|J#;v2r;fpmiR{um#0D`M<{;c1_J{iI{P5e0pb}cJd_~h{DXYp*(|AZ z$<&4i&BdS2sKjwv#XP7YM4LGNwyv0kDutCp4NNquV*>#88?DYPzhgl6x(vW<=h!_v z4=w@Jxk@1{&86PZ=x_ppN`X+XyZZGt4F`<&NUXDqf%;i~EImReft0QW#z@C0-o!jn zbgz#TSEp}}bjKg>X}~!Tg8E!LMn~&p|0E^9*YG?XTJP0(Rkw%3U`9!d)5a$zzY`j> zl+6@U>KAmnXq9^jRKn#LBML0($l(%>`$#6JV;t>(v|J3?-n8|%Hrr_LAG8^}puy=O z8=#|G4u3@`?6%-{{ue7Nm6rrsj&aEeJk)&LtEdO?&*KHGvM&xhW`*MUC`Y}|GB9Dt z8}FOwWOLN4|88}+3*5#%gjF$bQ=_u1fJ6vog$?Pz6AH}nXl=(U(w3z4C?z~*ugokG z65ff!1ks`$WXV*vEktB8NAaw{ioX9=`T*E z;}1lHkoJq^QsHZXjR4nwW9dK;V%G>Ix*U!*Nl$0>cX7X z@1UK076qWPnauedL~9_$$d-d<{x8lCoA#16wLV6UPRQki7y{TVBU2oKW_?6dyta5} zWPN7^?AUQ@-l<9zR?OpyEbs6R$i*%)67&aEIuA62c$L3x}f?caSTB=@zS^ipg`LR{_N3M!ps;)Y2Bo#b*eE8$qQ4>z8u*>YTCC=EV z!#1pr^os7pBK;`Wv~V-*wfxW?EtPnoF=53HufjL4N0%i*mthPw00`SQhp!RE zz|a^Ct*B$T&2zpUd0JK_h;M# zvHP*zQvF`O?uPu`_Aw|f&mW;ZRg5=gM(=~VdIYT$=@s9|Klx3%lw(O{!ox^=_1fX( zc4cyIw)9MgT5@mcOgWThfYgDpJKCyGThX@jaj2nP_@|EiF7cP>p3}m>>Q}zD zg-);g_WL|{`ZOIfMvZlywcnn-G@Ae-zLP51q=JA`CgXdRd@7!Y1=5p*FBZm z!wdMqP2X+VKVp+|mKew(2I_F|8VC;!kFa*ZSP1;zJ5WhNzsOwM$YKwD8#uN8j$n^& zl~SAl-LjG_6EG?CA>A^~OTr3+P%jun_dD8|Zu;t(59 z1T_g)NG-V!-Dqp>?BfMJU`SY?K)S1nq&Mo*z&-XLfom$*RLt^?%i4eJi4ZkoF9osd6gd89P z=2_|X+N;2S#R2(LW)qn-L-sV^|I;ELyYN?v%*kLRBQCPa?(FbW*JN$H2^Y6-HCigX$Izr-4RwnaU7XR)9rt>;LZ17Z!g}_8+KW zL9+bg;TMP^NC9O$()E2Rl%fRAFRXmV(1DFSR&$FD;u0qP9mU|{rG;A%*`MT=MOC=| zbcALbbJ71NCRaZ}Y*4mUP&7MDU{|Byw>nAXbGhQ6Ng=~5DDthO>ZnZwGuVEO^XN`T zP`L(gd-d?^u3TnmhALHbrN8xm8mH3GbTc_QM0Z4Nr6taip5N2qq7PM4MDRcaU+C)s zgN<3y`q1zZio#3FtTBqsT3tnYeMsJBe`^@Pplq?3T=oN_5pd!vr1lPg(O=AL@;lv% zK^FdJ)4w>qckCb1aWm4syqlkFUpS>PbYDyPI%FOyD|@**E2PXz_+17SF+=2QiwTlg zZ~S5Y%5klT1btd-V5hiIYQ6VZa|KkqA3asJ+qV2PAdrxWwF}qz^Oc+|&tsBVlJGLNHjW1rFN+Z_4jN6NEa;Bd& zP##AkeobWP{hCa45SLp8fL)x59%Q-S1gd+Z`_JI<2Gvev&CHIlp5RGo#@g9@!cu~ z$Pec0Jv*|kAmAbz7Yw*BOR|=*T18a{gp*^Ep6XZ zXpj}?*&vi54l^O~>(F3sWrxO7EZNX^8hX%hxwmSMvQ0?q`loa8Z{!>%zNIMtz6^|t zdS7cqhtRdi4Ee&T+&v!Xj(|9ik=6^GP=3SbZcM6w2Mc-$RF)ADRTNUuNRB4G@GArB z^yL#tYqmW{z8j=g7|})PFG&}?oxI%P{V+clO7p(}b!~mU1)`lLEvCfmGDL#DaOSxp zvA_ql#!~IPenh7@pku)#@ov_2)7@wWq|}-=Mp{_}$>FlLwA1d>D64G6tArvMw5`5} zv|*!$Y1q2b-m1Wl-UlVA7j67gE|{zEO!ZL-$O4%0xcHh*=VU@cGT>r`!b)y0kNW{+ z3@^M~Qm7n005A@maf{3L7hseD z6^F`t`o33RL>Cjwv6kik8n73h>HTN>*bI1SqTH8Fw_*Q)qpLvbyqw%758b2m7NIYj zOC;Umq%aL{R_ggLB-XVHPZfRJi=$9$M6Dq|!21)JR@Q?q9hoY{mo3EE5{lCErp(vMm zUx{}|i`;vUEGVw#?KbK?2;CHqJ43~BQ7I`#PYDj+@{Re^E@$$Yr(qJHox|?@e^gYo zf9C8nj3k^7*Sg-(Ntfy=+RA-eGp@N4gonER6pi@CQPA=A!vK*En2e?>9QxD8Dq&U@ z^bxvovrlbM zY<-mPmXb*Pzq@>)`mUTF@fTO_S*eLpYKWSyP zGAsv)g??TAFevA|d2(ZYyMFldT65vjc!AG8M!G+lKugfUC2i$dsmaQaJbOdo;OBh0#dT{P>E-O8WeUEijQ0)Qw@|HWs2~* zVd2v=*7U`T?%Sf-r?=;iq#uXKs3g6t`JsYpR&F43P!aq0Lb}$Ig%hZS@sxSmaU`%d zl?|!Uj~i6)u|>H5JVk^l`!(BszCaHn_@$ogISbFJq;_J=6sCBgnRdqX4P*Fq$#or$ z3LjEsLuuO7ret`Y)B#P#v(K9|H|i-cIOeu?dlBJzAi!PkE+@m_$2|-{%Q$vjp`wvZ zI!R68*xMCN=l*bnuh~NA?m(_U!oM!B-t<(E3sJFC=&KxB&_z8^hBufp@_Xlrm|duv z8)jDxg^IKoNHifW-X1liF|u?shTZTMcQD)(E0$&;A#QKnUZrooCjB|`tqyRCt zV5)D(OEI$z-KAmG=IH}ieZhz|57$5`t*(S)Dv|{Y+$lcw`Xq~^=`L7dsEFulQ!*tZ zF+_l%xpBjKu`gK1Nu}U)c1uCiAp__IIqn7Mg#4Vf&~E*OVM$y?m&lJ0GgGwvs2nZ$>Ws@*x#04Pd`|b!vUJ!8sr*10qK-TcV9F_o z7cBqUyxeGxU=`~gRIzNiN5BX|8q2djLiU=@=S?l&kt3eNEtLystsSn%CMmPKt6|}i zDF8$B?$(#UHeOixfJXf4s!RcysECq=VnA4gHrrRv&foP`Kqc*C9=4c*qVj4&uyL8Jx`QZ6V|wsBOcB_?~6Lm~*s%7N0XbG-I}6yUg$ zj1g_qux{)N8p0G$(yg9E1Nm^A<2DQt6&%=Qz+!oIFz|3MH?dP+T1OzWaIFPt6 z1>Qg-VV_!s1~hbHy$hG?d7CVcL#WZIFTQiL!6UCzIqEQVDquDx3Q^8fl1l#BCosc@ zQW@Rj@if20iNi$ctkFwrAdIN&4Wp4w4u-hlOikhSQXu*8i@a<)z>s#jS@y<+HW~Mu zC~^ZQHVjH1+QUIIMzF$7Zt0YUiIsuzlzVJzQQo%eoLfzdR43Pci`6GwU4c~o6?!H- z`#Q>JY2T8z<3&)a6G(^uw;nO95Qbq0{SB&R!T^a3q=hyJ3-R@|cWn5e5_8v!M@(v> zrU8DiaE(2vB>t<1DI6H|U|Xjh9?IcHrqPm3)yu3^bC!4h!EpFkAb9eqGibW*<(VHAZ5?C|CV&6b)AWn`K7sk`aNsi0(UerGKt5N z(7M^$qxZhXg5;t&BE-STJle>OUBjxi5aiSvD2)^csRWc+A~cpK{s!!}o-nG&7e3UF z2PvUDAMjYr(7q{!-=}4}VO;VJ<;C;cR`O+5q@~b$OS@J+F*_Kqka~#Ir)M z8DcEdx#KH;lll}~PIqu{_FvLPleyRZARJR$1xEB`#YP*mX66Qr`bhI`c%P9sP;;v! zPj6U#S&IchVa3Lm^;G_!nx7NT_`jZ{@ObJWV$(rUxK!9yjj2{o(L1S3kQx!Uc^52= z%O}?3p>wqTm8+G8|2G%m-j}X`&`ckX-cQdd&TMcV#vScc4y|F;EQ|>$gWB~q${_{M zR4R)Ufl4ZYDS(dpf+dh*Vm%Q$PWu(_A8q~rq&7{0DQ@2p#lD$0wE5PxqE0v|de6|> z?U?wuE2f7o;GkJTazhXSkYG3^;>#MBiUBoI{2MXXX4^82cm`LR5h!=eEnm)m2fp)c zY~p_HkPYOSOknqP z`Bc3k{jVUsE8sL0QM(;2;4YRtWgM?!qlr=U#P~)Vq>4*3L80;z3sdzz zIeE7r=Iela;{fvLW?Z*empo;R0x@K|K%89WypCnEBpnfmajNj^-WkAD+9&! zh!M#|UQpR(pklfdC}hW^zd&*lpO2XtWoGs+sswMJHj`M97&T%9O9)PDWzwmH<93sd z0@mX#KTG8wsoYB>M6OQ!pcGftb_y0jnx7r_nVnPpB@+|a48ixqr#eT<)V>W-LGn$2 z6+jDWoWfpnr{&FFQ@>+X(I6&#v~;V(^KdZ!w4V%Dn)x=frMtOTJV5Bre$V>o*xwf` zD_WZZ{eS{YPEtUd)CRA&Fy(>gUt$4l`CdntAvpf{HvMa7x;;pQc$4c2D#Oz#VG$;T zSnPH*95B_5aB(N_ zLes-XkncRdqbVcTG`4i4;@lJ~<$1WSUKo{Kcq`G|<;(g514zT}^)hT~SN1V_jeLkB=*lez-U?qt-vercE z(Mv~1(1@Aqx%Z)1?l_Fz9O;ba=m%#f)HRCz>Ra#NV2%hTQ?_~ipAy-jr?_WTONo!W z)P%GU)33J?CZCl@bw}Yi^N+~U=sxMS+p|&TQ%1S*9=FAGY71Z2zq<1mz2Cdc zSe|=QV886e5FSTo!g0-OS*&PJJHI=yPI%YgVrs5lW1-7ET%oEZ`0edPRW0ST=XU;} zXSh=Ojm&=Po*=W>@K9YXCr*&Yq;f`mr{$+$VW0~yntFY*u-xOPAksRGV~hmC8#MDQ zRAC^Y*%*;v{H%JV@i{MSR0tbClNt@<~m`TMoEsC>j zB#BUll<*b`%G|0{CZh;$tbwP3&5p;SuR&L{_`#x`JF~y!Q*xg6330&C{D)|7C>L5K0#1|vQGP% z+ai#&&{Ysh1J)_?MrPlMYDQa=h5@WZg4y{6A!`Y4ja~X?;d<8kE8@SGdn$-spMs>N z{gzET0qYn>)n{C;mVD1vHGYOeBl6V+b_GXPtB;3%zzE5&rET)Sj)v|6d19D!nugV;kigqQlNdgxOm zJ1vQVU%);R2z_%+wcDR>T0r*FnVA)@I+Cf7!iJx)-47>47Yv-Mi*(`z^SCjkSeA6XSMksw z6Uo~jLFq~#_ltB7>Ai>}Kwf`)2pD;?AKqMQQ4s(C4Z{L+Shh1_XkaF~7|(V4=@^b=XJq;0nG3G_gfppVa$I^_|^&doG z_~H%VIabK(9jC2@Ex2@wv)qGC2@Rwk)(;qETc=RLl|F?cD8$yQM z2M|j;FX44yNv~I0RLnI)RFeCXNDBq?h3qY~+=byheE)gw$NO5_NWkokN_27R|54&J z=815L=yu+Y9bF%=nMV9v`P)!^ZmcCFx;;$xdTI3D9%acVfBj-F3I9lf1*&k$!5w#A z#z-rcP@w7LHUDh|X;H_{SbQ5PUFvv60ol>pmnCt`zhnMFGBKQ&uNb|*dlf9um#8IU z)G+ToMMQSLca*N|uZ%GBiiW2^2W{wJg2QD0n+sTqpcEL;%YN!k^7Kz(w!59&sH zzp@9oyaJ8K{*j|A52IW}(#<9tCk3o0NGI)4q5!D}BA*95Ecx%;x4(Zl z-Krw0Hhpzr=J4`vbHrgQqoTU!H^UO#+K8_(iL0W>wX&N`>1=N<_0x=<33)w8UX`+` zR6cuM4;SR~zm^Hsj-RrafNa(a82O=yCihEh|MRvAV|_lzYCZJ;qv;n6otW>}xPe9b ztKXhaJt;=u4A>a(?Y>Ln&42wF?)Uv0jL{jlJSM@s(UZ7I<4Ld-RxK6yi{+|KUuAKO zA#-9kCU;BI2?k(B#)}7O(7vhvaxjQ7{3HqNEc&79dgXAVw?*9FW0pFpEv`@c`}<|7 z*ugA+YMr%29jD@W%^HBo$dwq3neE9Sv6C~><}lWzykJoB%jtS|`~S$o8aA`{OQ&_;CqYT_1KuI=(xaoJ9f5Y>JXq>-{d$Ja z)!y8X7K*1kcNFZexrSu^IUe2j3)LU|By?XBDlL#dC6q~(2$8*LBbh3f1hq?s(!f5o z5Xer-U>wR=9WOjbZ<6Bj=9k8*|LM5F9V`2=56V#QK9wjG`sR(`f$2BlvR&Vvw`2mW zk~l&y%rE{Wx}S1j+POLk`Y9mfX_CLS6n6tBM=ad8V*O8YwL(7mR5Jg1X@zxwq4@q@ zO9S+X=b*<4n{Q9c@{2TnChJN%iGKOvsS5Ton1)DBIOzV@P6(cN0NWo*&cnJwub zIw=j(n&0owJ6FLF-{F&`t0SsR;QZ}^cmz4ja?bK^@0VX}u`d$N$dXblF(d{uSjc&p z0B7$+MKM8V{12#~x++-6rT6M|d+3GBVrxyDR6FaA#h*;!^`1VYll%tNojb9ZL-$HI-%kyya77|fB6tXX6J z>pyFZ=4+IqaY;m#`nGc22G$EhxsJLmVbo%%w-S}`FVa3|>_f75zHa+X=Ny>U4aGrI z6`a9zJ$4L5-SlWQ^A>3DxJ!ySkR5qD@;r+7ewIpWaQqv|YuoMw8(e#Z-{zzmyN9iG zuy?z1qX0I`8T2H`NyuAx%|qN)xPUNg;(H&fRww z@;T(#FBx8mR${Q6?AD!^_~%aV9P;ahHtajt`QBVnGQSysv%mI!sp8AaOOs$DUn%4WJaC~16DeZ`BnY)F zJSM;XXBkA&bhTAf3uZ79o#slii;lWy@D4K2BBq5WgJrt)F}~pG34TT7>W}+)!jaqA zA>G<&LOc@fQ6OzjqhV_!Sa9=jLg&snx+s}~#+c_?@<6`;UlRilEgmMDf7r|!FES8e zWy*Y(1Dzn|?L$#m#kCboJZ2=iyQTdU&{Co@0VY6{hSvrk-Vg;{-t=idYJ7_c)TzM? zLM_}4ZxKm$;EEu8J}YdxAbEdI9}6%*04Zth u;@Xbjg#{6yr}%jLD*mr}ip*{T{z$8=|20U)bTL18psuW`RH|SZ^#1@!+c}s3 literal 13338 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 literal 10978 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 QZ2$lO07*qoM6N<$f&uELn*aa+ diff --git a/nhterm/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/nhterm/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 8a51ad89db173b8925810e9ccc2ee93ab9579df6..8ae7b33639393e39819610f378ee06d581951dbb 100644 GIT binary patch literal 11872 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 Y9kr@czu=y|Q;q|gs=6xWN~n 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 O$~E2VI%Qf8QU41^o$!nR diff --git a/nhterm/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/nhterm/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png index 7b7faa4e1b95348e58508fadbda91eac6a67a88e..5b0745d9c3c815134a0fd5f6c349b013e6e31d18 100644 GIT binary patch literal 22508 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 `$VZF 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 YlIf@|?)eg`wN@C?1>;=qc=p!+076$dNB{r; diff --git a/nhterm/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/nhterm/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png index 812c61d78280005582fb8feb6458d7103e4bb0ae..e0d579a191802f1aa2109ef23cbf5c7828f0046a 100644 GIT binary patch literal 17772 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 literal 16290 zcmZ8|bzIY5^!I0DjE!b=k1;~&ZWukJ3=EKNq(ee#goF|!q&sXWk&+maf|RI$)Krv~ zfpq@%{XKs?&+GYP@yB+~J@?#u-|zE2pPPKu%#ey$P_h`<8Rl@@BrJrSZ3K^IvIF_JI?zudF1F-{kk@jCneKQM_U~tKj)a0 ze)feQHNAdx61f~MCAj$b_ritNvexoK((M=7Z@gT@?#>L|YHE1$f4{z|x6uohnGvdc z>o#U<>UhGr)q4(0s{k|t!{~VoV=56A5c7HDD8IJ=8c%jczJ7b`DSK?m#Ig6 z$kYX~sjjXrAE%}poQ69=ga6VDE?{v{S{)18`_0aFA}2}>;e&sL-j{9|I%mlJKXwl2 zn`@OaJAeT~y`Krs-BJc6Rv~gYA2uC9e6^;grrt>Dze3?0G25;UTEZt{4ZbRXT-jZ3 zWwx|rr(Zli!j9_M*m|nv=VR|P@hxcGnb=gJc<5jszzW*fcCM|lNx5aH7^jI-x_RisrLit3=9kunWk^Ox-~Rswl4)L z)2GKDsQAfB|0B$Z%MCbGSj?+HG^u)8e{ms;Z~1%gSc%1~OU)iFN(KZV%~&$r5!f_l ztgTLMDe6QUFoAk~{chWG!xejNL>N-DdgCuw`l}_?uOcpL7hH+wEdm*6Y4x}bW_lz- zdc)y8E9sqy0lc`BXyrdLhT$L7e38Ag((bAH$xg4V<1Z!S+Yq{097i(YX_4ai-wtgTM2FH`Pv#N*(KneY<5j-|{|o>hX7R zMe=byZg|%jW?KsV1z&p6Spj{udpM$$WAMj!YT2CVFIuS`ZuMI2*|TRN9>Bt7sHpsp z8&+ASCN>xXl5bIbb6xwc*5CTV@kNiY!|r#nrm1)1tv`n)F^ z6EoFQTe7-7S51>h8pkKkbe$}lz@|adeP8ms1XSC0kLP^@Qfw{#naa@G-Tk}@ii+Qi zc@KRi@*i|u@vynqa7AxxQBGF&v(!M77iX%P`!`M2m|WTH-y`?k%@CZZ@slwVbMvhn zCu_y7zO1`nERDZ-*ah=iuAS|9`#(wQ-xJe|WlgE)UT@G@Di9B}H7(v7tNBMtVw^9p zeq%1@WQ0Cke(~bP`dmw{%jZX%z}x;J)fIz=_s)q=f^9j|S8bM7`2O_sJ4JVA;xx2; zu0^ZUQt4$GE>Lv{DW#L!5}xRS=c zFFOsvCFd=xi%VVm3t)b^!*EF+1Z=DeyKg!pP;GOyAAQJ{LFAD3U&z9IJ-X<=ua{4< zZE@`{*@=;2hLbo3{yiumWUJ2q`fzbQ7~{d-C>9{A<^n{XeTIDIKu* zcmMug@>xC5GZD{Xn3a{K1d?0VhqRAJ_!k_r+c$zt=z(>arlGbG2i)fL*ad_ zTY1+}hx}QqI8CImXQ8Ig#Mr}g{_iyh)o)6+RyU8gUT+@zF0i#crPA7PaDBad$XajN z{3yF>Jo;))C}P@j3@vR{bC2KjkTWEMZvC8_{}{ibTY9Ruo1t~)ynD^<)V6Ew-~qSo z-U(`UXa8CA!}HpM+>n%Z@A9s_D4po_i{HG0zIPWwWDGdOG@|ZvEK`&YWF9_xqP;G8 zso#jZ(Dd&QZ;n&x(2IkpjV6=#d;95D??*azPR19@H%~R!1CM>rG|n{FeLK3w{dG$x zqt~~by{Dqxycy1l_ewT8nxCDNE;^Bi{ng_@oBA3{XjX4#Vx5oA-vM^%nLVukHP6py z3=al%E1IK8XPuG6vx!+vQs-w?FOJ0K&aGQc9PBAi__`jX`~y7#PaGZ|X2n#;cIC{l zj)?nI&~ONzh=g48+&QnKS~x6Q$qDHYY|_GY{M)R)pM0h{!+lO-s9201nEiBTb=#AW z!ctIBa17N4pC(bEFjLDEJWu_kw)ja8A(Ayd@6ThD^n6b%@4i0!A@TIB@w#OA=G_IJ zv(a@scAMxPx)0L2KIOTB?lGk)lCXt4^Mxs|5$HV>9n1vQW)7& zIe6c=tbTDcF)OBA+ZVCuSt~iGvK%Fa+WtSF8y`QQYHi;D! zXEmu6%)e86`5|~~+skLnc5(l2YVhWK?zHA~d;NS}n8%6J>|49L;rX3Fh0 zw#k#51F5NF!^O)!O^2$z3T^A}rX-K!Xd|=NlxAvcYA2Tad+*qL2|shI;LMbKu<^~_ zfSk3%#Egs#fBV;;tFOZ#xZSX7we5tpGfPF!Pr(6mtF#gN0PXY~pFU2Vl!)5`mSQwv z5tLDM#BAQ6r_Jp0{^F660w@kynC!6U?{z61@L20cgI*nkWF)O1$8DPBHSw#Nt>+Z? zin@c1Bk<08N&n|WL{8<`rKWy`n~_!B6dYje*cKEMxA@?kheSg>DbZTm?kQ^~FyQ3e z=}A<~v$uPe+-Nd{^pa3a-THCT@XvZABgQnyf_Mdi@74JQ#ZjC=YsjRHL4fdS3 zVExG@(S8v=XQXuVnD~?FR$K$s!r;Htp>P-6Vy=2$w;lJP2S#c5o&kd?I31QlD}Zn| zjCDjy>-l8>ki2`cprY+LLZa9$@cofFT!v;#hiQ@54TPOyI#9Aa2GW9>(Yg-(GbYir zGJ-oZRJgoS!RO=UOE7{{dfGs>Rc$U=@#{&CBRDB7huGX8(z8xOqUwm!CDaPJ@RTVG7LTxpmI_mu z@QWnEOrX51_w?etjIx>GJWS%CKUSHI%I9PJn8Nm*Vm4-$>Q z@e0vt%cUY}_TEY<-O;!WVtc&?O&WkW?&>83$cK9DkI13XRG$?(0@(S4E%$mqauotfcU1&+n`RM z(-6mU=dJfeg{)WL?4DboL>5ew^ZHZ{6W#R;q@aj2n(-ROAXbqP=x-&s=}V4(6UE6| z7>j9rMu3$`Vq3K?3?l9C={Hji>{`Eq&nO_fA}M#luQwhW*mm^!L@x?WY*ao|$5mlU ze{U-w9|{3>)|Eo&iGguF(jdMqAqY(d=@f_p!f6$k2jtOuYJh0J`SCmgn?u=ng=asv zoIki^vve{CfA{I6=Q;$>D+MQ%@PGUZrW;@T>wZXAC_e5hRHhYi`Fo&yw0wwbi2QC2 zo$JYHh#l8W-=frgK4Ey!bL63bzC5gu`dEB88S&5vFRWvQ*kqr;ATWmDXrAv_fMbki z&g_mJYOW*<^zA$-=GE7w#21B%>)f(NfcbH}a4YQa*BED#L6oPl{7%8h(hsR7#ELGv zeoyTpOX}(VH}|D?g{FGay=9w%wX-~_pZD`cOrSCRadx0m7h}_LDWkiO=#?k8-n|joG{+^upW4EqD|Zgk($jyf26(@MX?xn}Y=l2i%g?ch zsw$UrusVi_w9)?+3VS;f+i6yKeB?lbpo^f0;&)~{^|&gGbF-J~M>2d5urI7*xwKo~ zkW^+=mW1bqH!NL6QoCPr{zmaG1{jT6$^6kQEy;STa3N)X;H7#Sq4p=*^^D)tC%F&u z929k|QgD4#a3>E5mk27t^xfPGW8M|)QD()mViXXWcGa-?YKP?v?9=Y$Vs+mScADVKT z9x)U7j(-hT*5__YE1qh-IaiwXZAEcKAJIE~9WbG3t?XvOtAZ?klN)R^0K~mgg{6-rjEBr`w&JuXkCCL@N=gsI2Gc0b zT$Z&w?XW5%VudyyB8wRO&D{M_c6Lk#!~+j~+A;#cEGM2N}qNG6|?-KC)yt#1QeJ$gQ64QRZO^A9YYQ9S$NpQ+(^43D0}(-QZ4SeSLhYOn*hsJ#1&VAA&Ct7RCWuQ1`WGh7~akcG*|_JZA>i zl?=npd9mSV_&K;ykvO5YYSTVpb?i4nhgpD?=^mrNV@T@}PBNVu5ejjixi?-m(x%pr zg`TN61QilICkq@{d4Y6guUDrr)iB1-XQn8O49P7loc~ahaQn-N_^`l3;aGMiYJ8bH z`f31Hq)!{%B8uCyBF|Gd%6WXWSgjU(OKc=t+h>PnXF30G*r2y5zH_AvI zGa}l`l@A2|EFu8VjiS8OI+Y3{KV|3trW{XPY?t{S`L)D-Y%M}wR|OaYr*{S$H!ja< z{yI7+zJsiDA1U2G?VNk@dz%9A?bUIHF_v?{#hDO@_+^;7O7<>{ahO}`Kqz{#tA~4StvUQi3=o1dX|L!)DwSba1n0acrXZ(doE|r{kS>3t6k}P zvm>)zG3lvBH1v=csX_DvvUp{Kzi@VF10!^2#Db}G-p^F$9Y`U(Hy$=loyIMcJax(rRc z+Apcq$NQ2JdMEV!DNjq}Sd7a)+AVO7Nb&A;I9(%!6G8|kF(n`=g6$WyWk3>nk^wk` zsgdWUK3L;M5jQ0oWEEoU{8UExS_~H_XV_)w*_3zMr;HWDm)hGu@xFdTBr^qfQux8H z>Q>jmI7n{W1($XLL^%xNq8C4RyPsBf`1?o)PKFNsTmHy5*5ei$F*fOWwYG0gb5d`7 z0$B)IZH=Wx#Q&iJ2U4g~+k4g7*E2)>T!+fZY^;mslj=r|$3sym>F*f!Aa454qdOvZ zb#V9t^D2h$3ytBE%KF4df zD`nfc`})jX1`R875ox>i#N_TOAqFf4XRYq9Ze^vxBr)M>0&4=s*AM_l%!9 zKc-4ONY7OfkAZ#LAuy0OwDfmYHp-{zt>J1#(>EVafH&5vSH=|#EBe;c3=(UFkhUE> zyqaP1lz*np2x)3J$Ry)m5@#EwYQ&eM* zZ%-J|m^A}hed*Rp(P(q=AK4sA7sgRVg$cgrHj%6I!OPw6BArsDN$6)uai$nV`@U_E zNbdO9T(9Jv+P`SBpHQ+w6r|4|!~+`MNqi6P;yLt+zW|qG5~~GwvU7C4RdQ%*~U)UBF-u_Np$9La1%s0w0?DF%v_Y6~56#8RM$^ z;iT@zm67SiO7_sh^kNleUafFpE0xI0R;sP{J~B4S3p6C*A3^B2lo64 zO%NR9x3RswZO$CLEf`M6Oh7aK{ac$RM36Sc1??1S<0=;HZbd>s{dVs(z8`fO-Ryh{~UTdk^E}ZK+FvTp*zR_W-eER-@1McnGT#=m19^2(U|Lq zO%!-;W^u8Ln~0;t_M>udUYN5N-Oa7U$S4DLDSunG^WVQQgJmD^ax?9GhKf zshRfEdtQmD66!c_nWi4Mv_7I++=14WO!vK)Vjo8f4unxfy%+L_lX{{C;7bp!HIZ0+ zDdV%im`~2i?+nPvYMz8ha}?+0wRqaw6G4Q!w`~PsE36&1+O?(^t(6Z(5M}p%n@=n$ zp`&#m*sy4toN>KeNWrs@`Zot2MAF&QL^Zi&>f`l9YCDJYDD~oh-}rd(ruyIqlYlY( z#|R__kfI)pS7xEyalYzqRz?H6%Gzvn9d$ZMkmg&UH927%^ECm`1TCqMIry+3c@rf8 z+DC%WwuFOpIDwd(WzBa;Nn$+&IeJph0cxDiOcmWP0&g1*)T%orUCV;}RlbB6{P;GT zc*_yCdDuhF8BPfIT#wj7Vvq2_6Ojk)>4`>h@R78NHdNvyccc_HncyKiK zyhS@}M`Y!U7qqKdYE639u0=scD`^ra$OEtQY}AIexbx3FX3p#69ZsG)9=HzVc?QiF z!MGrn6$F^X>*xz4@aC)w0|B@ZJ)G7DvkYqp{TH^o+@OFZ^GATk7Juy~{K18j_Lwgm z4?WKWpYM2_wCO+qxEYd*5spkHHJd|PqYYcs5%E=5U!quqaU~qXDFBU)F(CP{lYt}n zPR(PWJv)fTX3%in?7bw|dF`U?6wZjb8TDbo?p`$LoOWv~>>NKpwep0QOl2nI+$t(} z`7&2_6_!n+@W!!>AP78y6D_7=XbriF9z^2Ozztkqsv#|lZ{Ww1k2>@bcWTx(9o~Yo zUnfc~N!8sLtx})^9~QJs04g3+9OL1WgIpq2O9oMAy$3P=E7I|)-h;g- z6RV!J$!XUl{o*_00xn?z*=cwCgICp8eQqYf@l2H0A)=yjySz^GSb(P#Mw*KMp`G}< z?MgY4z*dw7o-GgKxiOz7?H)$*Ec zdP6OKdkqORA~*v3$hGR6*AA?A6oIpqIP8I7Q5YmhQZ(8T%tAU(00c}v)1sp$A-mQ-Gm(7Pv z&+tx|dsmXUS3U(*>mgs*+5aEqWkig=H(Y8lG3}pI5hK3i!C5+Kn&?-AAp0gD2 zjz0b#IFV0f?Y4RBnR;6*IX)LXdif6pc83GpGG@<>jfupd1h~qsKrEdv>-(dh8$xH+ zhb0mfuKu?zU+l4K}o)ivYq~Olh zvOLzp0Q=-X9aejYO0o&<8ia^~rBup;z5db5a!jc6i~9!j^(;T{F|}(|5I9kjFSGQD zXgDshWNHt9Wkm%U2HVXEd(TR#f}}tkuh22)an7ff_N@Zos|coxo$%WTWE#+UpoC`R zQv7}P7=giw>I2JXoO$Cb!O1;Opu7E*#FYUzpY!?*azJVT%rT~P>=R#6F4dXX1M2(W?p@h`~B%EsQu91Io*f4Ik7 z77Bqe6Jk+WfWVP1RJuf3$fR&Z=NUy~e@&vyp#lhYs3aQbjLiT}FaZ&7vNR>Rh#Hsm zq+cthZfT4|22+3>NE?rpGLtP86AnhA7;>tm%305+Q`Cwutu4fYiz|5N#X`QrX_yEX z5{q7ErM#dGf*VsA7X0ZmmC%s#%!mL+_|OS4h(*G1kq)JL(k40Ea~Sowlxh||m|j&L z5DRetR|#FMgsgmnVGt{tnHUC0&c}RTa1-mdxJ^fW;GZ0J-VoP&!kz|%L101ze|p9= zz~F+Lv+-WlSpK>-M4FfjfrVd)@w=O5Avq}XAVDcN@S1L~ceVKl>&c`?OD(PtMzp8_ z?vw{}E4D2eU;+KT2@wslBlMYpy`M@ISMknE{1*drSwE_!fC*z%#t3p`q=X?~YKeMU zkvAJLJh~K^a=U{AY9cPfaZcNid?BJy7Fk-mwX$U|^xO=L7Sq**_@P&Pz;n8Y6{!7; z%AVtYxlmVCebD~B+Ne${2E2}269SBp(8qX;%%KMO4g#s7?;&f7^P~icEiG! z;Oa~w7X)Si7~yJ0K<6E`wG8HuYtjMMaJg+)^}7#)_b-;r)EvrT_An$=Kqy8Qc2y4i z1qtAwwKTZx3Wfbae^%H+3GNZ+obzg2@!p6?Oc8HC^@N;ceelWs1leyUU(98?Z@Da`C}(cmppezAZG>GyAZ)R2)SabkpcF6V*SxTC^OO1W2tcWG(t+-1Ok>1U>wy-VPS^YBZxe$ zU}w8YxZlFPagNgx$WP5t6z1SH^nOVEkAyr>qKkbSBS`vg!U>2JWWz{gTks%ayk&H8 zhf%<~hdk&*ASgz?j2?WL?5Bg{z(M0R;Yhc3eg8B_|1h_`8pf0O{=$g#?;y-B6Vfi7 zmaE&#L|`I_=k!$Nscq?_NdxJI#v*2ViODSFVj1pNt^ybVa+34f_H&Q`dNiS0W#_XANuKss`y1hc$Du9OFRZtsj;b6=6sAL z42)<-1net|pho;D5sTXdYC8>)M$VJzdJ}9ET2!YIVrW{uB;yhRk{csIFNReQWC(By zIBnUbpEsu)Zh*lg!Ozip9OtzJzvyT!6ebe#eEL(ET2xf$S`>H74f2-96v3#RugYRk zOu=Z}MwXXlbxJXEr}23n=!ZAA*w2NY*|dgu-R>$iiLVOGZz!LZxdSj6Z4Q zAtn;WO6+RRazBO@0G-RZ5aqOLME0*k2yBp_2^0(QBW`8F2!VjzVtbg}U#f)DA1;g! zVYvP*he3*jOXY{k!3z@UhEnJ_Fr*IsTqsT+E)F6wWB)v5&V>xfVi7;?g(v2;-{$By z4}@t-)CjLcl8nd3`VkVgRK3J8BtRHz3fQS?Jr@W2X$g~sfr}6dkn8*w1uX-^g^)wY z2Zt6CnnNjKTAe+~ON5C?Hy!2%Cz8oNSQ$|T$K#PgaRC*WA}XFh2rw=W8g2cWKWZ$; z#6gt394}7yz^%QD@sJW^5>-K{txgvv_?r}5W5LGQAuzihLnp@IPjNtTw7TkLj2^C; z;yr!OLy_*5ZD)>7bu7H^?L6p{`RDbxrtcq^kgs^G(rGVW0Y}>+g>f=Q;FCr-_#I=2 zaV$%nXFjwO+I6g8BtAL*U2E(_4wQDCg>c_FmD2l zd8~g{An2^|E%z(lb~zJfjFy1vzXfukghim?rKL1qa&+?8G2Zj9T0~VKbpy?2s>bc= z!-96gGhM|-JH5n%y-rA{jH;CQeSr9uP^u3sfrSO0Mq$G*01$Yg%NRyD0L{IRJlPik zy=N7Rp&kSIWxefwUMV>~dU1`fs`w8xa{abrLnZDtv>JBx8A~j$(~Ask@LM(!sE=a; zKt1<;H>7cjAuKBVQZ(Jezc*lR*R z<7e_H8j>N?HJ}m~u0!py(m^>6brpgQ!(lpexi+p6T`sN5vwv>1vwq*t1$`Z!i}_wcB@JrlAG$?$hZK!#7riRaj?Drv zir0Jaz)kj2i1gdjJ0K2dD|410>Be(QHfUGpkNNM2NH(&17%dDky9Y)`igrY=JFK%`wcxi;pkkOgWu}CL50BdX zsin4-;wa6^T!i7ok7f2Oc*ye`)GkXDrSny4suo>|a02^9i*2RXucAR$ zFGS9w@Aj=llM8}3YM?*;$t0*F%aD;^w#~l?;I(%cMh6$EP>CskSY8*6BR5Tc>w`mY zfhFae-n6+R&^d-+&m7o-n@-u-&hgN{aAF7qxBZS+2T~b05UXqi;7YwYU+J^wBH%1L z=i1dD`%nt6N&Xc;KpCxUkwSL)eW^2oU_MtFo z{>#a(OJJW2YnvksJsi*z7a}$|DRW7~H#AyZ9g4GLznkd!p|LTxphcY4{_zn}$@8q^ z_h?I}KI+4jAhL9|d;U3%=hfE=wwffrGNbypJRp6o^I zLNLG7fqx)-mW=RYL1lNf;c`vTJ$xB?jp21#(c=MFMi4>6fNvq2*9jFb7#rqzm#wAv z$3>A+Jf<{9{fOu`CeH+XOC!OT;#R;w@={G>p5EZ z)7Cg?)%7~+Pl~TETK)NON5DolR`FatgxK^%R|8yCfuXqmoF1`+=ms%-=laTeBiMvV zAer{Ct5wD(e2)+=n20BR13Cnp_(*{SsoD$1O=kNkqMZsz&7qz1#VYwp zrn^VP80LFz)i7iw4hiy{+z`drP(R#>`H8O60~kS8=&VZ!QCXtKmFHHUdu?sQ!lTNb zK%=NnBYd>Sw(JV2qI7Xp<|*iauN54pkAUHUK@<5qvS-5!{ED+6Fy=fZEiJ0u@i&7M z&a>sb_O3PkJQ+!Ia?SAHj#WAd!FnKJphQ`ESs!E=Z^1Gs5|aioVtLLBZ*K*&G9e#c zwKa*c%TESh8sppF$;(%`4x4ovry)!J4B_V$#O3qu3mJZ5+#;yd%m24~5OLgLa`E*U zGkD{XH1{k$SbASrSh!+gVPTn~F#Z~v;CVTEjV)JK%na)Ny>V5#{_ob3QR8Pv@CFF9 z|HoM1c8M`lnIBqI2kcn@1H^0lk^^IDb>9vATNC)T;)t!w{I#uXs|7?I#V68|2GC{R zkDnt{NOGX7tltffvP~oAIa;;}(~Vic*QFyZyO|dMU)Sv4I{qFj7%DCAmvtA5;it;y zWNdZ*A+4xQd$7yK#xe3BfAE&V?f-{ba=Fbb7?p+&u`jOu!;1&m$XOYh6 zUTV#^3XwUQvlcfoh(_MsReJe!0)`C{yk=ze>!w8;5zL`632{W z+w?{1WAERe>SnZ5vti`MmLwHwl!^sTeKWznfZWOL)x*X~=s|EnN4?w5KR9nWQ1^_8 z)GLiO0QGftc;wBg+XOPAYLsXNqsY(8K(%-*)L_!au0u58Vz<7B;7fb@5!Kv#l31M%XmR#GrGq3Hmy)H%F(?%N7>P59x~l`o z=hHep6h)+KWYf$|42hP(%PKKg>S`>W9WD4LMBeKnjwnKR#0kC^U}^ z6?*C>Vj6_49kEmpy7e#KO}rQymM5xAWf<>OTU#?>9rBqWjA&kEu6alYdKoAoL_YC8 zpI_wGHIF&q`C}Gjx5i9`do+60c_M<{-B*NFFWItx+1(>UORx}RP$=dxqyVr)529kB zOc;hT&<1H5Pz62?Q>B$OdU|{=qc5~h_l3ny5tgqfIN>;aK7tWG*_X9x85!0eI9?xD zNtEwu-`8mnp*l?(^hV*j*}^XP_xASAP<4hJy*;(k|7IJOZY!B3j7SYyY)m%qe>RGI zee)VpfZ$UKgrNru1WD*?I0)@IB~2)>O59-z%!1{BNU<{Bv_sQ6wneE^-5VJ(_IO;>)smBLuW}y*fR$?0XPx&%gm;yPI>m zChV4QEjaf4B|@+id#y}pjD81JW`v|77uF9(uFBrspe5Q7Hl9(ctBYbN2qKSrPH$#H ztw+}zmNjUPbQ89?!@!nH^6LAub**QFI=c=20f+qGrEY||0zOT&gxXSoR^aBecP z6&B5Z%2CLMAbdIdIC1Vqerjk82xJwD#&tg(JNR+5VnK;%w zO0$_Ia~Rs>+dSH74wrNTY}(tq@jqZ$-8Fk-(5{_R#AyN$Z2j~u7Wi~b&%h83yAzl< zxqd!t0GK7Xu;k4*dC%?zZ7+W4Q<9^`g6n=~+NY0FS)-BTTY~9{53LhnpNvQ2uHfTn zUl$9+UH@1q|3t9Lgrb>A?&RlGUG-%(o%Qg5zod%%iN5Q9;(11~KP3>H8wfW%h-NDQ=>L?(jh!YRBrze}tLU)+e9tXzxWftX8 zmO)+T*(fw;H|ndZwYP*?O1`;u_|{TQd83ef6oU-lGGCL6@x>K6W!l~HsbO*%Sc*I>Xwds0 zg3*cfBjfP2?n2aswpt5tBH$jdgNsmNJ}<>q=&=diMCGCr5x-4PupWOfP%{;(rCrAk zjS4U=mlatyJiJinr84W@<<0;S4pxkJ^Ow(x|27kwA$dh59{Z--2dxdui;PXA$|(W| z3zhU#@TL^EA*cqn=g-2y!4WE3yxTF7sgnTcJ)gPEjO2j_PY^d|eLFOuBLE*Ers?6+ zubG3xGzdhM@Mx@_=oRQ@J?nEPzeJNQV@`f8NYvOb$<;Jc= zQ+chzp#$^M8E9IV3AeT17BY~=8#?{fCsF3p@z9XDAq@9tgvMfnOF%kEN@jngMzFvD z$N4$;xoj`mkC=Gdktl^9d0*$>Wkkn93(z{IvactW{K3mikf>s! zxyXBQk%NLQ3?hb+>Z*2u7A62jLqr_O$-u#%JLbF)hNKyX)ug zxC}v`dL2?3@4XGowF#a<$sEu?TRe-nF>bLY(^FsMJ4)Z7acq6a4G~{Bxb9Z!@2f~D z?Cm5LrXYEDG|GJvL(T#JU*(xHb6n}_-ZCrc$@0|4nvJnL|K7XP7&ZE86|;AIkV!Q) zF_@G$7)b)&eoWcQg&B(xEc!G_)EuwY6Kn6zD^uqw=s3q^SK(fSA0Ho=sFRxkV^-CS zhJXe8)4}%`H}G6IaED7iKczYVtP8feyhmk|Ns!8YnoP_RC}jM8=V{%+{)L$d;!5Y! z*NiKZe2bkg*T;a)+>J+?`!4B`ydq;-Dhl5HgM(k+G2y0;FUp=hTlOFz9H=3L4$<~M z&&1lblq4VT{Q6Qaf1iCub57;YkRuY)bF(}T7|(n9S=vd*2bFALhRiXI7u3cggq*R% zDE)*mQ;2>7SG=fKJAa2Sw4JQ3c)rL2v}nm}m6NEHWh)OQozg}L(LjFbw zN-xzxOh9)fY_@0IjfHwyxoiA>(&)u%`6He>T?*^guF{!Ean1vxB)O#{%sKb(cNTX3 zvFQ4uxZBD@kpf@#NJZf8U#zUGC@Fe>52C31B@Gb=-LT0zbXAbPaiyH;v(Nk0`*zXM z7h_iq=R0yD%GlsnJWCb0Pro`h9h8tcs~zCV6MT5fFh|oS`z8Oe$4%s#XrjqwVMWlb$$!^wB(BALZok)G9({2LJ zVjmC4`=pHJ+6oR5uD}V#{>|3u=e4tPGfg+q$t=}d6VU+q|3BY%(eMc1rHV|L8KW?*i5K?1e3ph){SR?v7Jq}}n$ z5=E|El*)(M2r_7?TnX*8$RvJ{$MIjr5iWjv&o*fQc}Oq9$=knMD_6!`6^a@1?uxGJ zbnl*#CHrVt2GJ9#{mw|t(D*L9E8ji+%S5vSi{>+W=7`6?+P<8Tk5!7(q&=fHd*@@S z2jSuT+USqC|OF_EQZcL{(kiBT=mC_IXdcExLznT_YD*9 zTGD_t{EAA@IoB{B_@WuRuMTqBB52(-%CxoIvO8EPEi`!)mPyO5E`jQ<>>n8DN}vxw zySJ!XSWR*MrI#lrZZMVbJEaGR)Dg05))iOZeARg(Anpf-6DirO%}7F$85O_4#g^ZX zWpAtneJzO&Du|Bhk0ASyuKO#dsed;KA{sW*LT^cE6QIs0^_S}>@z9NM+DD!Zd?v(?tU1rT{fWsdB+F_6UP6n5mvy=##))Ls@of_~2- z_Iiznye3Uk1o}UxUh+Jr;X9p^hbzmJyqxy%*Nr8sxTV$fXP1{LzY1%G)igfMn>gVR z%&fIr-`tE$AiG46@4@)Oqb7nJKM7qoN!c*?0I7tmsjf|%UpBHZh#Mu}J>XzYq5Jqv zjZ7+n?98sz;6y8v!!b!y@nyz63r*y7dQH3 zF2v#@?_OG7yY=hx7>Pt$+~3_jWly2&A53NKPl;}ibqh5nO}U$ZZPnuSuZ2RZj#Pvj z!ep7PKHeJq)&8)ed!F37w;ysJe;^mR(SELh4)ZCmSN^j^zebKcg|(m7DN!cdGyDqK zMkeGAQ<6))wLk%Cwl55%PA_!VyxN^)8H%#tzhe1CR_<)bs&5;J~s3Zbgm zwcn6V5IS7OUY5;K|#BP;*arpt=f|mmR6Ao@ArQiNxc3^ zPEe=bH@yV*qFy7I~Km?C!j7vjbhtB;-|x|#n|ISo)B)Qs5X`;-=) zfa28{35i9Mu5yOrxz@+W`x;*c7?^DNi37aW|Hsm|6PM~|aMNW<*sJG4m9G=1Db&Z> zxmon$^r=U*j0BEi@{j|9WT zHcbONnEiz1uwl4C-Is2xcCF1!4q&og&34O{a+W3SImr&I zuTw?F_j%GE8rLug+_zu3yDQ@vxw4+G~(M4UhU2hPE&ueB7I_N<=^M^ zkmu!jF*7-UdKT}2&?cXyNJ3|ZNo5SF!(5iZHg*yJG1jBeb5 zO`$+XmWo!@;9*}(Ow3fJISWZ3r0m~BBAL=%I?fSOZ)>-V?V>O>ppba%7pJgHl>lQE zOO+-hz;bOLtllGQsez(P(TvS&-OOMP6DZDL`T;6_cc*_+Zl$=ni+L)=?yey}jMy{# z&zbEw<-X?e_2FXjNUvp000NvY%AYU+Q8>2|lbai50cni4<*h9aWx&0)jM6@CvVP8f zvhaS}##xwvMnushagKGx_nGIZLiS_I71M4Y^5=1ahURffOnRqYX@&1FwRx_h#AA6T zWt3kU?)aVMU34;W(9emCf+JPQi{^x*aPiKp34u7q(8cSHpM;x}cDAqM5}#7}uSRsG z2M#EVziZE{S?$i9sk#L&o%&lQb?29HdMPEj=&+f)#{^PkOXgXdl4CtER%BfV-Ef|+ zbLg=&Il3`Qx(uH52ELLnoP?<80Dg~Hq$RWq9AxVK#3_Rj|w1u}=Nxb3$wE@}>DjV`T6C z=4|QQ?Cgo-T!WF(l89*jISR!1r22h6M-rO}y)cZM!m{v`Hk#pt(8;l)3{89J^mAI7 zs)(j|@`j&JP}*=gIkcOZZoWUsS5aGncR|PC$k@(HG0`OorVz87)`-iM;I-KsPvU9E zd&RSyM;Q%aKpHNDx&hwhV$5|SgjTWDEjipI_2-$OPQdMQGq>UGb|OZ5rVq~8ADk(E z>KJIM{UvuO&d0Idd2;Rh*leBolBhCtiI(?YBM@HH+ZHGv{cCPs0XzPStGanPKv<+% zh%`1SoQ$J35WQ?qDYz>Ie8>PXYhh{q-I&=T^Jo4%dSd*YBgJcc4p<$kCa*H;kazz{ zYT9?3yuy@c1PA%_um8UG_pE1ID*{^D7cv)O*=+nT?Qx+0a(rNq%1>+mQRNV8iWYpU1IjP&6gY`O0!(-g9TD@J2pzw8obv}dr0WX+V~m0N4AMJzvleuxOQ7^t!@s#9HsoOb4@!F#H@*j<( z`S6J61tzz}Nk|#I1vrI70EFe0)MW`n!|>_pz_+Ux|FT%>7&d55dOQ7Td1wZD>;37K z*^8Jd_?909_LFZQ%dZ&w+BI1WqbSheWm*$h8si-p)DlG0b|kF-uf0DOeX%T0*o5KS z>P_-TS`loE-678|2ir}H?58>r?gc=ypRc%7tpD~O;K{> z^N{+1OIZ-U0zvHH;RUS^M|jYJR2maF97Yma8UB{ZhI%Lr&5EPLxlrJAg|!5`hEFCj yQr)&qHSUOb%cb#td-@ow!UbRWq42v4hPcuRMMY{ye)8RWz)0UruSUl{_J05>fvQ*l diff --git a/nhterm/src/main/res/values/ic_launcher_background.xml b/nhterm/src/main/res/values/ic_launcher_background.xml index 6feac1c..0c85e35 100644 --- a/nhterm/src/main/res/values/ic_launcher_background.xml +++ b/nhterm/src/main/res/values/ic_launcher_background.xml @@ -1,4 +1,4 @@ - #242424 + #595959 \ No newline at end of file