From a2846a6885588aa73c3c0a7418d72250cb07bd4d Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Sun, 12 Nov 2017 22:52:44 +0100 Subject: [PATCH 01/48] Bump version to 0.4 --- app/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 4e6da2e..d3d3e48 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 27 - buildToolsVersion "27.0.0" + buildToolsVersion "27.0.1" dependencies { compile 'com.android.support:support-annotations:27.0.0' @@ -12,8 +12,8 @@ android { applicationId "com.termux.boot" minSdkVersion 21 targetSdkVersion 27 - versionCode 3 - versionName "0.3" + versionCode 4 + versionName "0.4" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } From b324a483ff18415a2ca602a89ed68748eb60a59a Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Sun, 19 Nov 2017 01:07:40 +0100 Subject: [PATCH 02/48] Bump version to 0.5 See if the F-Droid build now works. --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index d3d3e48..a8f0b79 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,8 +12,8 @@ android { applicationId "com.termux.boot" minSdkVersion 21 targetSdkVersion 27 - versionCode 4 - versionName "0.4" + versionCode 5 + versionName "0.5" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } From 9dd220ec8dfe21634229c9e95db2d5300a0f29a3 Mon Sep 17 00:00:00 2001 From: TacoTheDank Date: Fri, 21 Sep 2018 19:34:47 -0400 Subject: [PATCH 03/48] Update gradle configuration and code --- .gitignore | 44 +----------------- .idea/gradle.xml | 19 -------- .idea/inspectionProfiles/Project_Default.xml | 14 ------ .../inspectionProfiles/profiles_settings.xml | 7 --- .idea/runConfigurations.xml | 12 ----- README.md | 2 +- app/.gitignore | 1 - app/build.gradle | 27 +++++++---- app/src/main/AndroidManifest.xml | 10 ++-- .../java/com/termux/boot/BootActivity.java | 1 - .../java/com/termux/boot/BootJobService.java | 1 - .../java/com/termux/boot/BootReceiver.java | 9 +--- build.gradle | 9 ++-- gradle/wrapper/gradle-wrapper.jar | Bin 54727 -> 56177 bytes gradle/wrapper/gradle-wrapper.properties | 4 +- 15 files changed, 33 insertions(+), 127 deletions(-) delete mode 100644 .idea/gradle.xml delete mode 100644 .idea/inspectionProfiles/Project_Default.xml delete mode 100644 .idea/inspectionProfiles/profiles_settings.xml delete mode 100644 .idea/runConfigurations.xml delete mode 100644 app/.gitignore diff --git a/.gitignore b/.gitignore index 3daa7a4..466b131 100644 --- a/.gitignore +++ b/.gitignore @@ -1,45 +1,5 @@ -# From https://gist.github.com/iainconnor/8605514 -# with the addition of the /captures below. -/captures - -# Built application files build/ -*.apk -*.so -.externalNativeBuild - -# Crashlytics configuations -com_crashlytics_export_strings.xml - -# Local configuration file (sdk path, etc) local.properties - -# Gradle generated files .gradle/ - -# Signing files -.signing/ - -# User-specific configurations -.idea/libraries/ -.idea/workspace.xml -.idea/tasks.xml -.idea/.name -.idea/compiler.xml -.idea/copyright/profiles_settings.xml -.idea/encodings.xml -.idea/misc.xml -.idea/modules.xml -.idea/scopes/scope_settings.xml -.idea/vcs.xml -.idea/dictionaries/ -*.iml - -# OS-specific files -.DS_Store -.DS_Store? -._* -.Spotlight-V100 -.Trashes -ehthumbs.db -Thumbs.db +.idea/ +*.iml \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml deleted file mode 100644 index cde9d86..0000000 --- a/.idea/gradle.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml deleted file mode 100644 index 956ac03..0000000 --- a/.idea/inspectionProfiles/Project_Default.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml deleted file mode 100644 index 3b31283..0000000 --- a/.idea/inspectionProfiles/profiles_settings.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 7f68460..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/README.md b/README.md index 2f64c8b..17eb784 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Termux:Boot A [Termux](https://termux.com) add-on app to run programs at boot. - [Termux:Boot on Google Play](https://play.google.com/store/apps/details?id=com.termux.boot) -- [Termux:Boot on F-Droid](https://f-droid.org/en/packages/com.termux.boot/) +- [Termux:Boot on F-Droid](https://f-droid.org/packages/com.termux.boot) When developing (or packaging), note that this app needs to be signed with the same key as the main Termux app in order to have the permission to execute scripts. diff --git a/app/.gitignore b/app/.gitignore deleted file mode 100644 index 796b96d..0000000 --- a/app/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/app/build.gradle b/app/build.gradle index a8f0b79..1524c94 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,19 +1,14 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 27 - buildToolsVersion "27.0.1" - - dependencies { - compile 'com.android.support:support-annotations:27.0.0' - } - + compileSdkVersion 28 + buildToolsVersion '28.0.2' defaultConfig { applicationId "com.termux.boot" minSdkVersion 21 - targetSdkVersion 27 - versionCode 5 - versionName "0.5" + targetSdkVersion 28 + versionCode 6 + versionName "0.6" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } @@ -23,5 +18,17 @@ android { shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } + debug { + zipAlignEnabled true + } + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 } } + +dependencies { + implementation 'com.android.support:support-annotations:28.0.0-rc02' +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 43a73d2..c1f0677 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ + xmlns:tools="http://schemas.android.com/tools" + package="com.termux.boot" + android:sharedUserId="com.termux"> @@ -20,7 +20,9 @@ - + diff --git a/app/src/main/java/com/termux/boot/BootActivity.java b/app/src/main/java/com/termux/boot/BootActivity.java index 4d1e39c..4312ad4 100644 --- a/app/src/main/java/com/termux/boot/BootActivity.java +++ b/app/src/main/java/com/termux/boot/BootActivity.java @@ -14,5 +14,4 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { webView.loadUrl("file:///android_asset/overview.html"); setContentView(webView); } - } diff --git a/app/src/main/java/com/termux/boot/BootJobService.java b/app/src/main/java/com/termux/boot/BootJobService.java index 6483e64..a1a53fb 100644 --- a/app/src/main/java/com/termux/boot/BootJobService.java +++ b/app/src/main/java/com/termux/boot/BootJobService.java @@ -42,5 +42,4 @@ public boolean onStartJob(JobParameters params) { public boolean onStopJob(JobParameters params) { return true; } - } diff --git a/app/src/main/java/com/termux/boot/BootReceiver.java b/app/src/main/java/com/termux/boot/BootReceiver.java index a9fd80a..9f7a265 100644 --- a/app/src/main/java/com/termux/boot/BootReceiver.java +++ b/app/src/main/java/com/termux/boot/BootReceiver.java @@ -12,7 +12,6 @@ import java.io.File; import java.util.Arrays; -import java.util.Comparator; public class BootReceiver extends BroadcastReceiver { @@ -26,12 +25,7 @@ public void onReceive(Context context, Intent intent) { if (files == null) files = new File[0]; // Sort files so that they get executed in a repeatable and logical order. - Arrays.sort(files, new Comparator() { - @Override - public int compare(File f1, File f2) { - return f1.getName().compareTo(f2.getName()); - } - }); + Arrays.sort(files, (f1, f2) -> f1.getName().compareTo(f2.getName())); StringBuilder logMessage = new StringBuilder(); for (File file : files) { @@ -68,5 +62,4 @@ private static void ensureFileReadableAndExecutable(File file) { if (!file.canRead()) file.setReadable(true); if (!file.canExecute()) file.setExecutable(true); } - } diff --git a/build.gradle b/build.gradle index 3955d3a..eefddd1 100644 --- a/build.gradle +++ b/build.gradle @@ -1,19 +1,18 @@ buildscript { repositories { - google() jcenter() + google() } + dependencies { - classpath 'com.android.tools.build:gradle:3.0.0' + classpath 'com.android.tools.build:gradle:3.1.4' } } allprojects { repositories { jcenter() - maven { - url "https://maven.google.com" - } + google() } } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 27768f1bbac3ce2d055b20d521f12da78d331e8e..13536770052936a92b204cc34e72284a03a6903c 100644 GIT binary patch delta 50065 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≫UTSDPWw zXk~6Ni?fT(3Av1xI4>Y`aLgY~iFp8{4f9#=V!V zj^DuP3amjug!{S=$(|}6B_Vq!MZ+C$qwbQG>pi_jXOmajTEqPVR@Oc-!?Qulx#6_w z2TofO>)da6rZ#!|l6D3LrpL^6vQmKS+zq?NnH$YcYrXSa5>iXzXXli4`;m=nFWK{W z7Oi^4J4{6xoFSkLCKggjiuSd5nH!$uTR>++g(VBnwCG%S01l`Jo)W*|OV#y?3>c1} zC)t=Zh~@yvB(Y!FaFDE;Fg{grp&84s)KQEpKYYr-HQsRIx1-05`xZh&QnqX+Az22Yjq zsw%*%m)FQ91sK4O|gG@XERR*p>ciZc?RkZ!hS~{-s^>0O$^9h>!&{=$z zjCCOf?6fnv7gt_iBY4*4d}*(;Uw4>OZ&z~oMFVyl1fC9&Q54{Oq42DQ?tf#DmOd~# zq~~n|{SGvPt{dhoq&r^%V)?qhu>S<#RbR1QKxRjA>f=Bfr7XS)z>#HeAU&wWwn$_M zC#ZBaj6Yl0=i(hoNzATd{FPHgt9JX=dV1kleF_liWPd=izr_71*ZKMFBa_wzw5kwE zhLQd%)S4wyKf$S>(`#N(a0-7VFp7?DLZdGRxQ>0aUYtEO<9Xewp_EX>yk07Vrn`X- zKk$T3sTc^&0Lyb!!@aeAwzgh8$;Q1{$CMnl5SW0iZL?xTpE)PDoH`KHec+dID>`!7 zZ$3Km^mQbPOrZ7I&x18^2gfJY+pFDb7SSz}p+3Xh`f|pKRxAC?Qs`vUD}0UCz05lX z=ncgu8cwKfmQ(b;0M9@m!5b^ZRNc?Bg2+N}uB7XDUWDxPP9nEy=;u81q#Q9*6P#F{>{r{ILpkNsbZm2;#g0Vn?M6fQO)v>m_IYMF0wQcX3li$?tVWYSbBo%`Ep4 zi61+Dk++ch$gvUJ-!@9RMJx$OS`03HGcKKv#6o|$aDKuKLs-FRVM!KP z6D6u^{xL8!<<$WhikBX)dDAgfXk$KZ4kMghTQ=64iYaZS?lXvchh-~%d(x~p4P;OD zjt)}fU$?b*7&fZ$NIkHK*Ud@fCYMitxI!>aF_iFS%lH?6-k1lK(+g;FjYyz z3lQSa2#y(QyN9>@=RU2ZU^3Z52k};)a975yXZKIZ7|mGzH)06_q2iUzAp_Z+-LNq; z$!+G7fRbbQj?nmDQ3oA4XO1cmF2LDv3@@BPK+1ed7wIHcpH95 z5{%6>8O8(zxIy>*^kMBNs|>tIMn~BnVoj)lZ`txgE`WynLButR>q}B#BLGbDSL7Z9 z#Fe~czXaMx34Vze#9J!V8sc^x>C3$H*vo|C2~G4z4WBw23?iu6T8j>+Y|VxSarU@& zTm0y?m#e7E;Z&%AaTlv-EE&?%0c|Y2*_@ zQXEvy-hFm$vkN}?NRefcg%ufE7a~`N-gM-uBr8!N)f^o3?Q9LZRzyHD`s{3Rn6)On zDY4WDiFsopja}#F6ZG$}r~TMRVwm>562*PggB#`o5lo)Mn!9kz5hQ!`FA<3(hJquezbV^#xayuopT8_Vo|y59~XVgOf31T z`a@0E%=U=}d(@AD_DMkDUH3<%^Ei%H2Aa_0GUIN-$N90ynmzPpR73Wz08xNo1iJTR zu6c5Uj2?jRYrA|8_Z3qrMxXI4u?Tb1YO$u@IyW~P{Xm9ilq;;8qo-fvDeBQ~CT`R9 zyRM0NxczHPff$-2*#mWUR9?QY3)cI=F^5aaY~y5wB-ATC-&kPUgDd+L*8&GXa4Zc5 z&kJ@RHk;$JBcQK@b?BqV&Z*U&LS9h8oL0}`_juL$GfJE+Q(gbSU(O1>V@5h%{Izb0 zdnTS_kP0q51+0CvE+iopm8dduC?wC8gKwMy>=@?o77Y<`kmTnDVb2X=%aOz#M`3X? ztM-oe4I$3O(n06)wA+DEKkJs(A0UDY;CU12vc|cI8jXVL&H8hV)O6M*h8$6 z(@MwR(FfJ3r%QE=)Wo@&Pk+9aRC$O7_46bWKw0uS8s5$-6?498)fTgz0y+LUE zMMel~S-l859Y&8UC6G zf~pNlE*VP;EKe*f4I**BrckFsEdtp3#u6w} zL#I4dmaA}pDkCVfg3$QZ`$%y^G22 zmOFlo?U%BsF>soUcOs|S6ZFUWuw1Jzq3O_h>8oqzO}Wh6LrNa(I;%RT)K=-LUnNN_%fXSUtqj2Pk$w{hRD zSQ_sFe9h*T#C7<5c+i?sQtIp6(b2X0K(5);{$212&0Q0#)ndW(#%)JB(ejPh)^4<$ zKE5)0umB#=^8v>nF)kf+!t}b76I}Ju+(}pkhskO8YGv>83+Gz}+=6^Lxp1H%&@UKv z^hVZ7#SGDXU5CX(9HUBT8aqWcN0f^MHMeANT2u9?r0s!8@ScBB8~EM*g{As%mFWTV z_1+@Ccc{NyG4+^6^?m`b@%VXERB@y7q5=@(FnymCS>jmLRkQwssMuwCg8QTL&n~{~ zZ#6MA=M{beeo5UUYa={RIb8_~z`O`D!AHtsf8;4EtfL1DG)1E0f^?wVJgoZZ0%S#j zqu|O#7CTK9{pI%W`AO3^OeVtN%(>t3psdHeO8zl4_hJVjX~7liTSUi6%hRJlg-y0| z=2pEaBWwR7T6aOX_KT|nHC~rgriE3>o0nRu-Vspx4;ITMR-r(pPSF!B!?8E(F1mtK zlheb7*oF&3Aj-g*d3R`L)@hAfMr+LLZ6?Xk8|)o-eRudt-^$jwKg;vyb>7ybSG&UQ ztk*-S7M+fV&kpCm|5cgWz<7@I3Qll0!2ruoV1tyJ@PQ`=08M;5&@boS+5NZI#aTB5PnfXyOdt$)P89iBPoQ9+L)blc@L)^Oev8c|kuK)g1>%>BvIl?Y zrGlgHHe3&o`nY_;Sg|DGLnrk9m4+o;4jCFBfIwTP*~zpOPLDz66C`hgo(~*;drvR9 zfj^}=vKG!nCY2n&y__gpq|G!O3&9yWj*k{S&+-Z;u|1iyn{Q!yGdmPYRJQR7W)N^R z4B~t3ZllH99J)ws4zEsXbiG_k_Z5%!?eh!4$>e6TSuo+zp_VSTS|8r*=ze3B^tGQ) z+6G3Yfi<|gtZa}@%L~jG8$+=g`(?2dRwNX(68%0agoOnUtNGVBn)~DQL5y*LWu)Hm%?C83N)1|LD_4CnqhHHR<>l^S` zb))he=RmuJNE&k@q#;s#Y|&F%Jyt6%ij6`Wcafh%!+Ttdm0cf``cM|GAL#Qs zb%Xl)LY*HmW7j?Lb1uZscka@Pc2Vj0;ka^no%{=tH$4^l)Nxv19Sm5(@G|gMXZn+P zFU!NxW;eoHtRt7jHO|yYDV~(j(G8G`&kEa_V-P`AF5m$10jk#uMe>pZeoIf`_trd7UlECyANVrIjw1sNQAobS@zQX11mw7ASw6t{ml+{+tDv># zY>hA9Y0X^Pyhsc7l#P%Hb?Li2tg)vMqy7rC*b!eNS~zT zYYx>+;xVJP19FV@h#sr87VAyu_Am+*iO}%J$~|TK=oy|ja-60aV~S zz!1Vm84~JCKqEn(3;W{mvC#ZXceFE!-_f-yqD18$7_bMfJ>ZHU0&rUHa zsa#-Bc2opK!PO~anOWkzeM!~{seIj>Ar85D3HqQ#$qhA5GEY<#dZFUDhxV|t)=QGc zZ|lHJnal&``x3BQux`$gwuG$=nxgR?jANe(4?T8JNi0x0CxZxTs@of90&NFN*B5m; zO!$=6NO23!9hQzJx+4-QA=5tajK!*<**JqsfpS?N)j*QR)x_#`V;hBqf8vK`q7Gr( zregK#h$*f%mLyH-oJ44UK>me^{*{N%xoh9|qWWE2eybEGl%95_k-PI~@|=C{%{*ob z7IbdfN-?0v-0L00Mirsr8&Uh>G~32BenQa}MY#`*9#B4_7g1)3&~%*cuKLp>#zuCM z{Se?g1}@Q{H7|mgBwV2lI<3dd0QHZQG0#P_dPR1mAaS7Gd9j={cd(u(O)+wg%kVcg z!EUJo<<+8U&1H-X9wcTaHub7j*9}Yr1x+ZpAgdHRItO z+coC7a0MaRihsL}jisvEPB~!+D|+Z}tGh&}j74Vq`0&(_Bn{x~FVo_D?ml$xc5N(d z%x9#j3Zi8S?upn&`uAADYYWD86`UO)4mL1kgaDDvGXtYl^%UnnVhL{4oJ$6nJt{#P zVF#HhmzO?3l80GJX|QR3?P)RcP=RefD?Y>6DY>-WjYLf?g_fST04823d^XgkyvmzP zTl1L$=Z=Cc48d8@sl6c1dfM_-DT+X2M55O0;{A|_5y~4*jMlUsCOImn&s`U#tqfap z&TS=N*X{^7M2yelwvL*gnj1%&Q#UVz%2I+(CTOLSf{oZ}b{t_Sm~t$>HjFTeviQW* zMy2u6OOGSUdb%Ly2Vbef)QPvt3=mNnU8O{?@_FbtxPi#q67-A?=v{&YLVHqM$ik%a zO!-6Xc`B`)JB<-vv0Zfa^%`xs%+;ypWi~LI#eruDu=g585HK6TR}G0+jY)zUUiX0u zeZ*x2h}Mbx^j0{6-qfBk^T-t%xPSuXz2uVI62}j+d~v2jbZx*ZS$kG)wU5c2>T%3# zC?&l)2qW&>fMXDbv?!`Kwrf_co+F@{iO%LoOaW{SfQ6jps`o+Oo)yG+^)UO4cwa|L z0fd;)v^zgwS{rkyWy-c#bl>a-fa+&zBSHzxSu1jdY8F~$axfl`@4%|tD>DzWkzm;;M~N@nAz_-u-N{f zt_raG`a-9jZXS?URu~UO?wiyFGoSc$G?3?P#94<$$@IPQD&)$pP~t8bxy^H!zxZiG zj$gdSqd_3OvD%y@Khy9K)y?w*R4c&vEJ$l^z#;4+{|qg>Df3(GkEvbU{`Ya@c_h7# zPqYBRkJNz%(|4upKRr&VVsiEAZ;vQnKK)esuB3W@T>DHa$R@^Dluq^|yzEEboHWpU zfa-0tE-r`!U>_JB${N6>N$Z}}1!tVCB8Ip`IouDqO71ylJ&MOJRykF2dKlvA%pGVW zgz~MEZ1-232D4*beh#_<~jK zkibedd=L;24$dI5?{e?b@fsYyyFx-EPVoqW4tqXBDm94qzCvPfPIEwmXO-dLXUc1l zalkwlNU>iA!NJZ7LInIy6O`Yt3Yi7E>t}=P0nrZdK%Ro_7pVc{Jn{@5zIx%@ov@=@@U4Wu+g z2^vR$2N4ZX1L(X9`#Qi1cHzhn5FCH4IfDPE!HD>ze;S;1Hv;VqZbt~X9e@9_MbbZ@ zAvr9ln*Q%x2@)7Z1N_H| z3T$e@`WFbH^#}ADWrF_4t_4&*it~L{JPUyTD^+k$WczCs6l+kM83%}X0S)k9^_$G=U5FkNgyP;($sr&F{{lqA|3rD1VgzeBfa~PI z+v*;?I|=*+HOKvd%%TWE{?llH|5haZJ6a#o&V*&tKp|+8@w93H?vR|0HRHd&b|p`&@RHc z6$x&#$~OW)*Ly(=L>iQYR-ide<$E z%Opi0ol=v19%Q#VnT5H-d|UjZc&>HP@Ub^*Rq7fRn~oaMvv(c1j1if9ftbmnp_vamx6aCqy18m+4pnGYDQtwb>d!M7i4Q+ zrkYfsN_&@;C|_ww-qp_lJ?YXyt335*xcf*$y0xa*!lX8=p8Y4zK+zARI3%|rtt>-d{tRcNR(MnLpTMZ6JS zQm3w2Hw>K6Xa%+#qwpeZCun-`U93O-MXp~wK=H?Bds$C=**NCk+KPC z;U&<&5DDMR24S##3H!%qS#vjZMt*>N1H+6&lsUAvp<|lkC=F_4%k(JJDR^f!Ag)m# zurqSEm{x06R$TMKtPsl$GXphSGeieTj}W0}7T{Z6LM!NBS`lL^7Zd!OEn@)uyQ@z` zCqp{q-k}SN><$);z^E>z-09YS7A(hHIYu!1*=}7|P~5a$jM9ZAy5+wZAC4)`{a)XM zt(#LnZYOe%_R2)FT8b*~wC9K)b7i~>P&LUYeq}i`)Rr7eYz`FQeKmKmn>yjSv|9@b zf*nKgS}{bWkv4GB*g$lk@bUS#96`_$GG}=>sOY*{MUSB@O$sTOFzUn63koZ>cB=&OLK|XsAQt)g{gU?o<4>&FbOA=cPAnNk;#`b`WtN& z8R1|J(T3=0+*{a#2A%%A1{^iI75;tXcX30C&D`6^LTW?NYXuSllt=(={Dtat%bT3x zE9^_!;F=o&#^(ZJrkFomNiX8h`!{eml;np);V4ss-!NLJ{f^)hk%Ps3CsH~wdHGbV zha}_Xc&=h-zX|2Ua~u-LqV^y3r6}yFPyT6&O*!Tb*;9B{rNO5^^WAQdM9ZWsScLVG zw5Di{ng4j2P-e}@M7RX1%>c;V(n@RhUiG~nJ}1_(3W$-^K2UTxaD){*JLC`pU&h4I z1I+)v?lB_R3Qd`jm08pz4`y-)5R&xse!zUoqLLXs4TvUjt#Ci!3L(lNWeM^?eO4^; zEJ)|r9?%6}QBD<>rcR7#OHP_lB75QIxqgxTf>x3L4uJs%1_OikUzrpIvk9@VD*o^G z_rF7)d`p6r>@o?Hyb6T}gy;1WyO1&oh&qTnz{<*2^<={%?-UMUxSk6f2@*{P)IaaT zl86ud#xWBM0CA^J1Xfa-cDB~eXe)p<$lU^we;SzULB# z@}mGy9SbJr#v;`jhqWcIEW?ktJU|oFslnz9b1(eM0~bXwpq!X7be0T3ObQ2zI3jKk z(UXxd5bXa*{~zV!&V263;9y`P|5bI4|D(JInh^-AVtBzs90@g1P>8fub2NM72!pLz zz4~SP>n=tiU>riWS69sJ(%PeUT};`TlA27K6)RWcpc726L} zLE$#<4l}3(f>a#0V-(yA!&P;}+j;K&awVX!C~=P@OtQ)~o*{e~w3KT$8v6mFPYLr! zioQ7^_y=Cz0Y$4z!{43&T{b8VpMVqn&pQJlQ@E<^$KMWg_L7LGZ^-&vR|VC>q~h}% zF-b#<-@|JI0z-;Yi9vK>&7|Sf?2-R6vhv~+VHoWl>#F2j(NHI_pX?Du%@P9HQNTGp4B%$b0G?_Rgw2<4Ha+1$XgS+W-$BXZA zC~ma43MrXUE9pHOUxZ`ADqWN@IxQ@Hayupm&2xQr+P*0Y+s@x_1-0loVw8g(j{>g( zpL_jhdaipPkNaLvXTVoznQ#D^oz7s>ZjHe$Ym0l`)ozAt?SnJslb4)e;~{3-7t8NZ zPB=c8eP%n_x4x?%StYNYs~_RP>$h3q+lx2)P+2$YPy;W7-}_>=lPCI^vxR4GA-@BW z!bwxa6Gt&ny`jRaH{~zvs~^6Il7YIT#yBtXAF1K>ColHj^>4XF{{R5qH$uRE=lbTk z^#!`yX@~e$laSr*DE~moIGNpe;bulH6G)uu8$a5%xW8_CMP3ashX?~c>&|ztKsx$J; zEQZNxZdj|MpG(nUd8jt4T@eiYs9=A^2pE?uzibilS#)P+e6ae^UB69MPrLR5e=Ig1 zMNU8*GDChM#wF&ZB7uTDdo!fI)Q=Z7EoJj+Z7CLU+S7u_TLn@bFKd|avRBMtsYkBz64p#Z^_HP$+|7i$8NyY zE@0|^T5=An%JNPtLw&4LDE8QLrdAepRatFM zxo)4ZI%T=#o*pQSG*74&Od4&{MLkFu#r~eE?Fb}Tza}EapS;fU=t8Dc2d$|#qrq0f zv9{!-sK~C^3ZEW4*BMXCM<5$yH60(4W#YrLK@)C25did(mTX2<4$GuXf34?1%lziY zrn1t?R%PXsVpY=*s>Ian+*b0N=RR6`qr^?QxIkJjy-C&flng1vtEyUJuZdQ+!8bS6 z^~Z@JHWUJXxhgrxs?AvDSv7&_+gRcJTU(3utbI4lq>HKHzoO+Hs`B~^PwnX#D+X4p zgojJ}w?J~1O(}(5`-~iQ`FKxjagn=L6~m^50_Lbk1IKOw`z0H%f}XAabKN&$HxFfJsddQVB>-*#pJ>ThWU&8GuX;ARjP2Aa+iATscUSWRJ?W%5n z>&IbfQc_h%XcbI0_--EBz^^-U{&P7VjVpXLc;G;H&?k4igkhVAIcqmwHDKx}gmZZa z2~cm@>YsVQ*GXdxiO~&}h72 z9sRvX8$Gb>1RI)@)g)ScuYopRW;ibi8!&KGJNm}Ve!UK>NWeMF%1SY-fv~wRSph2n zhZSkmGCzkl!c>X9daxRy$VwJ(Z?=d*J(NLZR>ng+qR2`buHY(%x5*HeNxKz_t%#aF zWjkjd&EDkQ=P=#0+l!p>g8NY;qVh)P7!5rv4xX<37$1iaPY@qp4qJVam`p8Q4A6;6 zq+3T;`1d~*rHMN(JYl#8dC7@gVsWR32amFjDYsDRc5N0yX)biZqC=^U%Y>&{#)+HM& z>x5DhIatl3b^8@;8A|b}ZksB&fMH%&p@bZ@Cr8QnH-jqP(<6`Z7&=9sESXF*r5lL; z+vEs7SQhO`=3@E=F3mq;;Htd-mFM#YRrYMB6rD(Vy@$+`>k9oIKRRufCf&aam+KMN zOE?F=y4g0f8p(|Dc3I3cL$=HQ)V@*V^J6`osoQ(E;5%y%;>gX+_pTHt1I9ZbsbWv& zqD&!IBQiVPM7L6r-EgJ4ozj%!kI-`;a;>9V5O`8MI++gcGct(}@72Yfc-lCMJ5K8i z);L!5xg0AMK(79s{{DPxoq|2upKZk@_Hf1)GEH(yW=53_eC;jWwymL{N5yVQugo;l!rwN(6(nJ$tg5-qa{Ns z{JR5BNlk<3YXf=}DOB0)(4%VSNUMpV)oz9dnFXyUJ z7FiUeh*?H!e2D6%S+!6y+I#6AqVr2Ug3OuO@+!ZzJENtY-IAH!-w(4jU`8eT>3WY< z>=KS!J~oOaxeUe{kjiVVtQqI?(>Ut}p^f+~#u&|0S8-+qxTv6M-RF+IR;Fa9aiS99 zWM{Qn8qKW;@0EQTIH$leZ#S11dp;>yIApq8?hxJ8Wb$g3PW6$R)aKxR{A(Oz54EwQ zPi49{>AguMU3(3uyZM-+i&5+IX&iH}l2_I9llJ}W;>IQdC|es4ZZIu|**ZG*z%Q8y zv$2~$`Dye~7y>nEK9Mzcc$-7YJ<>4~q8_)M;+_=wus7~QhXgS%{L4bd=mmvKNZ+vn zUhQS&OVP)@t=7+0OuM_VHE$}cz3uC*Y?v$2NVHFcD@jhCMq!?hBy5vH$f%#?)xIV?!Vc@ltDRk4=~x zgTh?lNTeF7=}E9 zssFC2(dKC+S-^;ICLQZ{ha7>iFKE*eLmV#ieUK)K7N`wef4;(HXq zZpwi&_a`Q>d=Q*TJ*PANM)wwy$8<8BDYv$IGZYmDbn&-u=3ZQ@txLKy3>S0kxOQts z+5ENyy5n-3t%ZMQvOeY0z*OT=V;v~_c-9>Fg&At9Mze+V{rp0Q_N&|TS>!=%Z;2wTcAkblDTb>bJ+m&wAi{>M^u328j$P0{TsKx?FY=>H`4*ND}bA`a+KZ&I_L*d z&v)Vx{wU2jH0FKiTPCqXQmB_M+&zFZ<%#An&)Q<-&%3w}vK{R$+RPKt;w?q}p7f0o zZfQ{+81>Vgiy1R?Ih|@u`HheUeAEGfw91K(u#m_EL$G2x^QS;lf@){zLE3q{;8xnO zQvVUs*XCHC;YU{t(1qQ2EH}49I_y$MVFB6^*MO8nC8nax|MW$jIbfgr0s&8w8-nw% zbl}XP*S6&~41Rgxl>~k1@z*fh{)F#)F)PHq%rV~`C-r(htmdR8(#ugJ{MtEI1QZWV z2^H~6@t;{G8A@9|hga5(V|zY*(!wjro;P1A+R_pu&zk80fcND!`?yld6< zBA)wJIF+Rk6*_o%p`2K!!L~DaGjLChy(UJex9VO72F_n_B$7z zX|IxfC?~4`=SlyZV4$FpI%Xl4H^G=xXqv&aPSOxwd5-+LnC{v-=?m=V`zf07H3MC< zdST)-``WGh*&7?K7@(a}Uwy!=>f74;N02gUI{dm^OnkRlt^>NnZ5Mj=31R?wOqs=D zOqoVtwSxW`r6E{H;I}dhR(ZPltxBjMBU<$Etesud92~!Vk+B;ka%lesTlEL z>nH10zziyg_?Yko)-#2iH|$Otb{C^Lp`}_j0Z=2PoQ&+L5{yUd7q$3%iA{Ndy$bJ^ zzu7)w6q%B*mLwdft4XF|nzf1)*ZI+BBs1_L{J*Kgq7w6F@;Qz&FxzQ~N+FiG7&IS2 zyZ2`@Od z#`1P_N5zb^97}#qg9by`LLM<2wjlI?=d}~`f5DNUNETEhC@`=?_~cz&en8(H{TMe$ zNOykioRbTQ2X&NlR)TFMxaCuto&Muqo3Sb zxZ6VZ5!phf6%{JVOsGLCdyi9jUqO1usiL)?>RUipQzCLZ`pgS|Z^Uun_OZV<@Odpw z{GBIsoiA^o14$qXmQ%rw2dF2Hr$sbgNF3sA^%boxTfZ&JGFGF;UcB+-G|(8NL}YFo zRGYvh6r?%j&|D%}chw!$qU^|MN_vSugjfC5i&y>i!z8k-+G1N ztD?(s^~dqp2kKf}X*$4Y%&m-JTkHMER3M|-mQw%WWA&oOIh8Q8=Scr=)kE`WU3!k+ zR4?7AgLHhFT$2_)&}Lw-^#+mEGVnck&I2Rj(lT|!rKK7gl+5VsRC)D2kJ#ip;hHkK zt02EvZe90Btsr*nTyx#nB$66t>{jj`oS#fI-Amp*?Od)Li_Zk(o=&w1lMuZbEi8Jn zYHsrC-%sfR!`GNt2O~Wp=XZ%CS{cFK!?Yeb41faUxVqc{XnJ#$bIvh!8KH{`t*L;V zEoHH)5gpvZH8LBl4e2Z17m0~8CuX-tHw)7L zlx1_>@FEya2YH02t{F69Sy^n|+TA&9rUegrJPJOb8c9e}GxN*I>j#f6C7N=e8*MUk zo_D;@UEr$$<51x)gTI3aSXd&zgG<@lK=p<>!wdAjg%Q@SE9t&L_5QrZdm%C+RSwUY z?+(`f+mF)gyaU~CyTi%(fx@kO5y3V6*YJ@bJ(tCTinpGL^CHT!-i&sxlF4`l>HWo`G88r*gR3OB}oL3FZt zsSWmaQ5$6Z-ZzM-b!Pg&Xo?(E=G4#Kk`+z*vy99r7nU6>Y$JKPCTJ8-Qb`xn$Vt|E z$v#sSINWAL*Yvx5)Qh8nTpUF1K9MoG?qoI(BP~+YI?`Q^{9+C_oT!7`@LFq43!hW` zUChooQwe<+i#ZAFV2F%!d73iG>>2Y_dct*r&CiWtQU?wc;&{y%CbTSF$T^U(IDPERhXU1^LA1Wj|?K9(OS_iJ_x4HVD z>X$?NzhCX#8jz*h>_i!`r8uRt_9CKdxOrXB^9dt{xhQE(UZyHQ^ zE2~{G=b!W@1nm)<;Jkvv-`P22Gzt~L15QXv|IsdY^eP;G=FE}VY*>H&i&B>4c3)xS zs>ZcMMbC8UGoG4ksam$L!ITLTED0tXaIcw=)EY9In@Fi>^5a~((9}9sTsn3H2u2(O zaQmc@fZr@zgD`lDdP6jVM1$o#@j&4ZpgHg#H1#c*B<@^gMKvUcDyoa)Vkgf@`EX&wSY8hN0}HRGF;OO ztS?ak>9HcVuW*69A1?e4dWER;+cfx((5oh2l5hd~%6Os}Us8#NOOI+b zG_4>zeF*(ky-Ur7p^2&}4HyzwWs5M_I;JiQU55|t9tu0V`B9+gGHTpk4yT&@E zynEe`CMU0jg@eF#2C70-C&zq>c4+ftBWYnwjHC=+qEMt7NOn6yeu4F%_^C>%*(eUk z!^$Hh>%Tp{iP8baYh!iJr4RF>N;7F*3;7=5E@vw|oE#Gk)q2zJid~)KESqukmQAOz zc~jW({(gz3HVcjTd8Yo5gLZCvePPSb@IoBzR%>O?iG{*>G%OHYxp0)RB?{Ts-1ZS0 zQ}_{B*nvEjgLF7`v>#q9JA|2t;S%Gn)p~z9>9CfCx}<=fX+y{ILn4m$uJc8oaaW}* zPrJbOHB@VyIO-3^tay;4UJlEh-m0B<=|N7J{*hTQ=~@gsZIY%0i>QH+Z#kGQzz# z0kr2$pA7JJlabyNuX0thdy6+{lIoAUOp13MON!MONQu_tH0HxhlI!~Gq&-kB+-9nd zg<&hINf69cByT?g=W5h{afD&>P1TR^GcwvX33C|7b|86E8o=1+{vaXE$9CX!h3AE*AA z{)ygW0)b2`(hDI$cA6x-<9q-Oi-zina^bA6E}d3CKwTRKler)iy7G&6 z@dhQz9RY}7cp7lJpcHc})AV{`{@-2Nd5v9i8Qg!l5Dpj^-G5$mcC$`?{x93wnL-6} zb)W;#mvR3I{|dZ&b@=JPLWUp;#_SN57`hU=*ocT@f$v~$CL@OQ+8{}ho2V3PA!B%L1c2_vq5*w=J>w!^IN7Yy1sAGOEqR+3B|sv0;y z+{M@EMs-%ZvBKm;dSRpk?bjw9uOHlbb##jl2e$v0TElIfj&@O;Y|^Fe3&L$xn_+I1 zo8eB=_^1ryjU5UJlced}j*#28`&~&d{&c+w#D5MW=z>Ctt6yM)s&=gD zpl;oR*9bo^a}(>t-=R9+kS~FY^HaXXHtUA2dTkOE-YVkdL03UuJfa4*#siyd5y^;5 z1%1DHy!m}xaS{!QtyRvIEyB~Y$=gaV)u*fTE4)e3^r;Xm)KsT9O7kVI;MYe)aqwOw z_t5z&vc{6RY*_*>wV!Xh?WCz3#eM-Y%EJd+kZ(1OI(jCCLke->((1sQ%mz%p%<2BV z6kYe=)|I!HpdW*5aRBTW97CP3jzbfpp>kZ3aqDQ~k2ANe(sBqo!q^PlEut8Ffm#CP zOo0|NDLpZWloVUNT-Lp``18t^{)E4;ep365E)khBCu69#7ex3GvExNncRaYVA@cCB zP)enY%i<>f zDTqskxa{I$wbhvJB9umCS?xoyP9?m#SW7e@4*TnCRcHRvkh*xJh4=5qfTgqpKRR}Lf9A6qIo6Jd2+uWVS0*oCkA3bK_tOoU0{m|MW|_7uA)@5Fx_FG`e* zpBB?Nr*hhpzY^uv4eZJ+F;eziq5CVLtCHB}t*9_L*A|9YA3}c@Jo(?V?9 zu|kw~W$&5`gOddYnQu4@HBXeJ!U1@K`6C3@?9mJiyr3v!+LzYw?VYwEUMdwg26Xn5 zX2pNfuy!wmLG`=HFU29kwlC~o10`9s6}f(XHPXb(H`*VHgWI>rh_)M*yBK+u{R4(@ zUzNMYFKxfoke@v#dI=JmcLb35r_jgRD-#-^d8ny51h9cNdFC%`(0Uo|)5(&KKc6GT zimE!=b)Ufr_@Xa~@l;+Ks6Fu(x4~mwhjd7wOfSf9)*zzEvW!snJ2E+y7@!28lhQ)GmW*dBkmTHM3pMral8(JaVuiLPxF!vRu7Rm{?1 z&eDw!aTv^MhiIcW`&pBqe;Vq}g)ZBpYJ_~-?rUazH$pK{;QThPqrT0O9@Dny@z}HB zE&%W#$Ml{G`Q?EYkJ*@s7Zxrn=M)BH^svOwipB7oQ z?FB|d1lYPxZ|U$jYd-W{#~$J|1!!ol2*_O?37Dbb(z=_d3xjD4E4{(p&T#gmzv(7#b4(*@;JN#$WXs ze(EF3j-GA?#A@yI!NN4Qk^N2rIW=1%hsu0)oSqR-XGh}vM-{G3L^lrszHRPsHSmM5 zV8LUHvAVpPacZU1Y^lu>R`gPnboLOi#x_vq)X*V`c``O{JTJVJxZLXb`Ib!7g_~b$aW6Md>FsFa_k}Gh*w=<4)^{nzO%;)%O zz|(#3;64_~{oireGEJBH5nxnk#1Guc zWHj9J`V&jadqrBD6{QEdfCIBxLw|) zzdac@yW`WA<_r-lB+1i?VY3^F_~$};Jk~f@M7AA5L{DT5!q*!hy@3Ku<^ipokyM@- zuXXSJcp%by2x*HvfGd73-!ela)|ib1`Su%c_-o2Nn3F_~j=w2cFhyX{_kZkTr6~kR zdpK$;G}XC-$2cD;pv;73gpS-Yqfyt8TOQj9)RSFqV`ry~;sefvKF@~(jI(h3?~mv< z84#QL=OI~lBJ4<&C4iX-b=90?x-bKTJq6YZWvg$gGW^brraC)b&rjnQ9bRRq9 z>fhXS!$Xj<2v*yHPD__hD`-Hs=GfT1fD&bTFA3Ix#$q{nw2o^uzTP8!^V1`D(O;XB z%c_w!W=hu}YuK{uT3pfsPCq=G%4Jx0+y=45vhmS~A@TR`RG?S7(a|Sp|2IWl)^GOd z&hZxIoilb&4dlbrVI37c&37CUhsascMH6CmYvJS*Jgw_*`hzHfoj-uKUEPhpEIuj#B5ym!Y&Tl)rmIg3mgW(rGiU>L5aI#Ie@dW^}OYz_85}msitIVStAQh_y@8!Ry>D_wtVPLor@3XWT%vd zQ>!(M-xQ&QbK(u$m@{|Ctv;p1v{S@>u@oPvM~JwnKzD><8B93JdtRF687bW;)>AA43~ANco9v!s-W#o{PTCoYV>fB7C6=Y%mwmg3?9qXo0NJG9$4+v0u>)t&~CtfjPKICLmD*jfb4dI+-Wpp3Juhow#3Ga@V{m zpb4FLl$!5WHb5?1nc78kC|`E3`NaS&KiwqxMGRb-@}@;VhB zmmbd08lh{{>mCRX9H0}lSuGog-k{x&O>Et$sqv=wh*s*Sdml_IZ|Lm3tEr53?wD@3 zp26oW%O?aJLZzxD7_a%LYt4q)C6o)fkNt)n=GfstnS$rIrAeoj)C0a1x~WfI_p*%Yh4g5ToDEH1k(~Os0}_HG_;$ zuj)4=XFv5A)n_90NTd!(t3bHj$&^z<&ax7uOsovoz0HJU+`K%K0YN>Jyxx;o{}M7|g7_ zU;VGq$C>f@gl1n5GF=VkPQw$~rg9H@OKp*O@PPmCv2~}+Lm`W|1t$IBWeUu%}a5-@b1jyPWyeRCS4R$R71aabutJOMcG4IZTaBf*86??5#Dh26T;8rKg=VOI=;jCaR+)xA^zSZLY47&gjvQ{D*7(+Oy~VOKxX%n+0}lgF8^F3B z+c5lqTywBjc7dbu2;UlrT6>xi>t_oSjd*PYgJ$?5VlL|_XyR;RtFB=b@7Fuz-A=7I zQKhxRGonzbloWc{>u8t0T4w`C2)*c2QlqpX(FfxY+W4ZW^S|u|{aEaLGf2|jdN@&0zjgN9qDin|_v z)(fUZ+8JDr-QDR(z8-po_M6wgZS7(!?dNSbyi(lo9?wMqdNPNdK+cKvX|18I&VvRB z9_RWg0k)r+JHQk-kFZe@5de?^ws2(Ew-K@>NSaj~!418>X%|N7u+MKQg zd*up)S*At+*6pOGO}$FnkwdZi_9_Z4%>vvR!$E&+PRq!g!{z}$t8%RD&))b0Fu>>^wA+;GIF?JdM z!0HLLu|Qs)rDe8Ds4_K>!SE-csB%5x({CkP~?Z}c5|b#;|1>?n8LV!;Y7AUbVP`%xn5C9sKcj3 z&lFnk%>zdDzVVv3S9H|_J|DM-Wmw#{SrIlvs@~4+u`O@4yd<*vDwrv_SGz-`CI+i~^)zv`p0qDYC>5v_&sRX)=jS587NZ6yn)N==`qBFU>iP!mmeg zc4;V8~j`9^(HNOm^+^pq}(0kN$jx*dp%E9)iw*y8$$Z zXE2oX(X;JJ%xC(z`73Y{T@fDAm+J5ll+-()FzT1c?I0!z(mWdT! z9nsa8MkohiaLh@#G2$Hg=`#Q3Ntlz5-B6za4_tn72}uL=1I#-C_Jof|z`EU3Z;J(?W+1J3z{iW^@zfa#B-s1ZHk6e(ZCvTU=^(D6M~n7&v` z_$ah*u>iNMI_}<7x8yE7hEuAnzIaP~TUbRVvxbj|QOg8-r{pUonUOJYi{kk^$p-CpV=7(FoHhqxPRZ%l zNLmzam^bYPdXZCR_KuP6EOoRI*51th;hk?sw;`!ehrup=W~8iR>?mS2Qx$cxR1&Sh zc0;F^`oaj|V;mzsH%HxCOQWmdef%TPioeW)$zfP@Jzrhy*WKJX44U*ghAVURjPjXZ z+JCYV%nD)BW`!(@npPS#%bH7R;H&0m6hz~!@@MGjT5qVz&JnHoZ(~{T)lrq}DC-x)?lNR3tQ7~LJ92eZNG9D?|ZyKZ-2?7cE7`J(r39xulnq+ZFRcTJs&1S6H zuC(6%u^MFKe`|7VB~1hi$BLbIuJJQ3P*1sB_ak3*%G|7*_&{9<;X~iV#7WTN&Wz7f zmlo@-_lJ2}tLU(fKL7!0OIL1|%F@P$>2tm8w7t4|Y+7skc0Ye>nAKsMi1%zNovMy5 z_>M`8+i?>J9OL(FN_9C(R#EG39;$*8u6b_LvS&TB!YqRl!qqY;I7nVhI6)u<@lVeilk^(s5`CZFZn4R%5sios|Vz>kR4y zF{?$J3KPCufTVdxIVoSE;M`_<>d%ZSIRW?NHVvjF6UKbtCzY`V1NJ;&%(Q-k$v5@n z<225ezFZHw@l!*RDKT3t#AZF3nr`n=Qmwpq!?FrovKASbT;IFUrkFfZy_f{$^Y#wQ z$R)HwO<%Sa5E8QyUCfMd@Gy0@w!0rTvb!#ofmTjSS97st=^J;5+EpoSxIU5aqpU+<3oUJj?+Rb&Ap6 zj$XBdCZKqn`<5H!?<#te8K%SuWSFzoD^{=O;ra{Um3qCypQzVu4;6N;_L}{{n0kHG zL$^KnEa#p-{u~2^T=7BD^V878=QdnpgUeisN}t^@psx5=njwwNeN6IwtIU9m-EC-X z;YW)nd)?`+kV13ADiuYxrY+)Wu68rJ9&}T?)q`1b{F5y_`~6#$iaEl)@v;|er)E&( zb5uX@RQ=(&HPP~!Ay(o`-A`6HER+pFCp@{WYRkM?eE03EZhZTvX8Qzf^Q0H`H~T20 zDfw_DLZs*%H3H`NHt^y+cQe2IrP6D*7Oufadl1oi8lwI=>t$WlUc34)eb%X~c}I?L zuI=WHyn0W4ScaB&4xLVApAMO71@c-tL8MlIlU9$D9d=)*h@1dDkuu9kw8ew#yA*-f z>7iakYNTzam40Q($^>IUl>{qe*ZiW2`d^#jvAq`+y~PrO6w)?+^V=s6N9}zcIExm& zauIy?f;;k%5ot}KKMAxS?c>Uk`^c`sptIc;U3*=>|Nd8`LZ1+(BHt&|2~#@%yutkh z6n+udvG1S4V7v&#ZNBP2PQ$Dq{@v=hG;D;3M%lhAmDdake}+l5))X3;q5TL<1xQR7 z@bK+zqxE7;znhA;<}3*sOxhB{R!b$HycZ74RDXb96GyMHY7$I;5WTnXm)*sDB*{EB zan#2)sFaPXziMv%G!y+GZG2dpZAttKWR2HPw5;YEHL#}srBs`XL_Ztbr-`if3tXH{ z4q;bR>PJg<;Uk;AaA8>~9(9Zw!8n5Xnn!J}M2!-WrKsMkxYYPU?JK-V(ENh!tGrWw zWsH4nw=5WUzMs(uirAJ!Jkx!zc;Nr)80b@Z6%-w1e*GksPpF*J_`(dB?8CYMCJ8QM zJ;|fnY*%S{{bfFGg4-eWXNgbI!-O?nxdY*{}AT)R4v z24q9y+xK0#wP|?v)tT5_Ov2ydgKoV}`eye{jQn!4e~l5H!k@wBP<1aGl^yOu6ox$TJnK2f=c9=ydR zP8T1OpK`;Eo{w2XE$HHIvBbJt;uCxS>LAiv4!7hBaZ51aw+2az{C~^h zS-Z^_7771BLjB$%w|WcUAuB$@Fkyc}Hqh6Nnf!-WouJ&PLHj}W*jr%;BH0Nl&;8>5 zws-Kb#EC}vD7tHko2qtYB_$Czm{Kpq8RKZuYB)jfO9n@oIv3SuOXDNoXcl_N%q*n* zOU9@cuQN4-mJ*HCu!^b{2+y~VXX@RBSx=FONX{5t)>&nsajXM?=esZY#d{J{XNN;{W9J8=M@f z0cY=AHV9r(dZyz71TIEcxjFx?a^bkbdopw@+!j${x^R$6OTg@X8+%zuE@l`Om>({bC`@@S#%Z?)qPzpo1x8cIvzvSrrMsCTZ z_y!l4`o|YNbHx|E(k+KOaUx=?er|b=e4d~Th1REz;kq2weon!G$v43_~N=e zB+I~8p$@hHFyLX4QP-Oo2zGIj^gRT_d|FsMt~i-fbxRW)WmBp9QIpE?vx?*uTzZ<5 zsVz2#{#2?HfJHl;$9+KT#MKaM33Un%4Ajw=YMUpVb%1*4PQDtb>EKB2jcNl6gs=Y8 z@#S9H={`Ffj5~ohJy;8|jiBxJ`c>AJhCCZ4$P2Wb zzPsH)S?7HbcZ1_Yke?oBX$@qC_n-@;yWV2w(9|G0BCZL$tk5U$$W1wP8~TDqM5gXv zN3&j8%GmuX{3jlEKY7VKm~dNy`A*EvD3Uu*)H)$%*}+;e%mVX2zug;$!nig>}D^M1$pg?{;l^?k9;2m6fmUZCpE}MwGBwQLT zK?He2f>$v2rBN99N5~$v&Zk9w^>S0)V7(1Fx1y!AW!TxLIKYBzpPr0*Y+sG$0)yDy z5WUUWQ}LnQ#KrZ|#Km9B45jn?{9@7&^3or{mMiw-lg{aXAhGpCUqXhcLxvf1Z=9fk zh`|1;ACJH7jfi~tF>2f(Ax6Z>cu&gxe*xHVkEtn-hSRnMhTL(TcFD9$igF^#=F{Ay z$`=r4{}{YD!CbOjW)HZ{v#RsAjbCXeYKK@fN7s+`u8Xqy*=J{|tqWR-a$b{VqzG%f z9D$7xs=&XQH40yw6+6RuInpLf+d`kM5d*I)oY?zuV6RcLKR_uZiWIo`q{XX!aO^+R z16l#sCr>wtw7sV2<+5)~&{n%0=@C!snZm~}e#WbWyI1ZWJ+ejb{LTA0U&chIKlj4| z0#xR;^s4{(PU?+K1USiAZv#qgA27=O&tOltIiIUKO?`3J-y3mW5Gr||n?OK5 z8>5q*C|EXFiYTj|1|Ob=HE%U1yg*+7(u|RaH^O0+(0CJZuP5@6I%#K>xXhJkKW_-t zG7>jZ-)8jghl9o|vXL>eJuethC(`x@Vm0cP3wSzT$RO4UxyFZ;jR3Bcz!Nm*OjUC>iN^bbL{&KKyGpUg1^CvOypz|@RNwk?hV zDUOUYb-sHUYv!hNFO9g}*qj$ZV7&jt!GRpF%8p_ALq)o(pX_!#^AA0YI!sV~@ckr& zeYw#G{N;-{jh^|xeL~GQUqDp&duELee*-rR3Qq*;b7!)5bqf@9teiw&T_&>*@vgw- zJrsg})7~16IOAWm;`;{xN4g??p2N}Dvd{atR8QdVJjE12X3|_n;W00{T`&wi)NV#$i{cR|468t`N)rvvhO|T4ZonZva%~*(5SrqySD1gtf^F*( zI{upc1t!8mf+^hd5fw6^a6@XIl(u)i!4Fax^0_in4nU!VIsr~)UxqFFa^+SlsYO-L zaq7fF;Q6!Q1*P)*{bZX^$N@^PiTH)oR+zZ}kiXzQ#JM#}Z{jsu{^hnymR&+5v0{Ev zI^nl*+8c#`!GgDhThE>lZKIQHmTlN0nbgBJYxzxnO@DdJ+z@g~a({^frPJK`%1I?D zp;_{nAMx+=_l*-7df*F)s9N4UkX>A!9*FSqTdL&Yd*#kgCh>l=XI)OV)vm*o+atcU zNAzsgM;pSA8Yzil_ z9{4xz?f0w#`cPNW5KR@+puJ2oS_Z7BdeCnsiXamh6has?inogRv`T5q9Q4SqFyLRD zfquew@b|okqecW&jk=i3@1y{(tUDUu=jSWJHnM!2#I_k&l0B{8S}}!Uz)um~5FVlR z1bZUE*lB~1=prarz%oqVDoY>p`VoB1DNynvSjIP1`tn} zC4S{3P-zcM-MRmsJHCh3wrCac!3>AbHppZulN(2Xxqn&d(*{vQ1_yvw7%QYD#1iS* z%&;SfgQO^t7a}gii@6JP0F%MoH~97b`_)`053FgDHq@#ztcKzFiCv< zmVOVvC}}prEfnbUOX(AaBFTs7HlZAvU80gy>XzAPnL-MMYwET=H1P+otb%36vJkOB zCw#Kz3lB+F?0b-fchE9(GX#w3Y!$t4ouhrCTqB=73J>VBD#+x^c05v4mu*tl&m7vo zPC4Q?xZ`!aj6Mvh%e*mAtvq_;`^mTCh+j#r<{H|6)nW8VB{l-ae3tPtk+y}_3N}eH z8^yKerQPV-lV;&(t+@ZrvQgy&W~KjfV|1)v?>_!-^;r>F#ni`D%gFh?5QflIl^o&JpM)ROMv}nk`25T266%qjy{$ z>%szpv=5YVjT=-zBgxC&kK;{wx8EyLJlnDjN2_EpZXJhZk*I05SE0W6te4WtUf&wC z6`v!sp&2@$J7cS4oY+vvcK)B79AnGu`2nC->d zMzWu*Dl`HJp0XufFi@zyVvDFFIn$&2d%4yTsF=1@laCEnh>i&bf!jo~1(oFf1@0!U zr46HWs6N`uu`gfbZJA2WcZZi@yhGY-080J39J`S-vUKDX_GTc6C@(a!0be(s8TfPZ zLye%DD=_+eP)kx|HB^A3tu_G-R<&;QmX*EyE^FsTK>3#iuRS`B@UIe+pR0(!QITHK zkIs4Un!OmrwMiB3apmqk0)_6)Af6)55HWuSrznoko6aNsBo+*%H8nH-iTM%`8IfpA znrBx}U}##7aVIP0H6?OHmHtWkWTU9vyX|2hBjM&nx!eK6-vWNV9m=P^Lic>ppMmv` z+6wmH3y9IPCGGL|v>N9>(GmZ*fK19E#BEPO0Ta|-^l_I^zUU>iG|O#&8uJ)Pn986L zgO+X#+RE-G(l(+(#M2JQ31QY_o`odTw$7{$ZBfP z0Hv7v4Tj}3^RaTPOc1B%9gVJd12JG>)nQX>@N7pq}`~-cJ*CW{cf3ZYg>%*po z-&e5Z_8ghL^agA(^h0*TnaHk{(DhLd7{;zKnC?|$J23~AOh3iYw<316nY?hfP>vYH zZ#JkpDJk{UZoDxB6zpwU>npJ+WrrFjfDK{Ri9aE=7Hi=>bBlSRcBnX=-Fdc6kuC{Lj~m&IsigO)LtZeNRx{L$I?lk{LTpkQxe=kpj^ z5<2i&LJFxpg%wFYR9zL%F51UooX8xVCK^CN5}lfOqNg;SiKnB6oJw_2;^MSg4~$3| zJxn!ZIJFiPeusND-C#Gxw+UKDh%0_8l6E29Ya3m!efYCd&EnYF#xz*WUSc^nQ?u{0 zw0mLEWB+tllWJpnMh!HpUz!jaSQK@2x~A(uY!9{HvGK0LfTWwKcPb`oE#w)DpcfIl zV?7JUcPZ&-v;h{366!$Cs@9bo0NGy-&pQG*wN3OYmIr8C>jXpbUT1~r+Ut3}+~(}@ zIt*k|A^RLK?q8&$YV>MkU3ucx-Z&omtk)`4%-0$mAYqMpYlcqe7h4q(pF=q_;V2f_ z*`+xmOX!xW@uCl74r=mZ5Xhw`{m0+ZAASte^-cVoFh_#cJl3fVe<10s0?O{07U~K{ zhz+F>M}K?WG z>}zglF}fBR12i{J*Y`{hvtPrh zB6h3%EyR0nFjLf~=aw_7G%8yx&tK|Xb5*Dh(bPs{ZK@g33RNqcVY*nw`X9?8l6$wV zT@hTr<4sCMywum7**Sh8u&o>4222iys~fW5j-)k)0WI8gQ5nN@fs2_YpGN)#35*#c z10I_+8zjm7+KLickp^Z95#pj+moDo}88hv-1Oh_zpc^4k z25#BM_gZ}X_SP(a+aWe~Z@r^))Vd=(LJ$*x`Ln81roO=i@OY5483gj`s1!l6QlQ#A zV>jA6=1;t*O*kIm-f2fV#^jC)!f09MDR~srTb#zD?-znkvvy?OMF zWNe87ePQjsQIuXVfdZjGcj%AIg1Al>14%MJav};w!16l-UrGA!qFL4YCFIe9AS>vp z{Gd5D5&9q(U{2+*{tOP{1xcfl@DFt@jNmq|44*7LGx}Ax zQ;G)qm_+63XAoT?HnjX(7$xMwj6S!2N`a|f>0r#GK%KvwNckbv9bsr}>FJgty8(oc zJy)#c*LY~In|+D5w%-iD8z;Ja>g~Vc9ngJV8{1nb$jz(k^mM$?tk&Qkf1H;2SVVsF zwQ+W!lH_jUymJ32b+e~z3h$SChi6&%3Nn9zSN^Q@UXOIZ6aQg+X;S;`o&D(z*ZIWs z3GKlY42-@O`SFr61Xhz?&>lk0kQ&SVit^L*cx|5?DTZI#mb$6Z>D>kcJo;f%kh3Gs z?y6#U13_5{BnZ)Tw6lt;xRlV+(Inb z(_O&NjkgLoh2v8n=tGF61OTw5lN~G~^5d5Gfc2ZhQt}(tNSTIsHV&MAs#Qj;dL%at znmewN+h63FXkrv|HzpVXRYa++;f)ziyayHB1;=|Qo(A+mu4HtA9sS}OlzKBJm+Ehx zn-)T^tY;4Z5AQ@S4O8c1&&mrE{1dW8fB16Gqr35J6?}a$HT<^Gum8_oit?Y-FcXjQ zt$*LSTYNAeAdLUFJ5o;L10&V6m9DT0F>cSj^ae?Pox>EoH72K+{xk0ugldlLtj=c~wjb z$#zYPyJ9V8*=}&A3DY(lZD^XME>*H=0(}*&Rrv&ilaMOkS|bNQS`hpLcCOqwU+7LN z^{hQ;#Q1nM(YFg8muXJ3Xq!Zav1XDKXkzF=Sy_bN$9&?r0i1IMNYtUN&}}%4a%pL7 z&F>*9IuDBaMg99Ajk2?jB99YD;2+hrlNEMf1&b8zr>{$tQ6uO}qUU-zL49JvH9Vo( z^W^v-Jjy!&rTn%m+qMk)A~2B}TFEV%MVy#BdhaH8CMPuPdH9877OC)3C6zXZU_od_ zKcy@%OI{Wb0V|Ebb+#14Vf-qKRJ6p}%Sin4VTA|nsuchDUGDWK)fO7toRCjejw;KV zMa~D=!RaJ7+Kydr$eo(~9-U=BKI5y@zS2GXqdGuwDH*F&1F1}5QX;WO3fUM2j|ZuV z@sv}xJc!63b{LYK?XQbLxQB+3wabE$wdWVca9!YE1yu2h{0#vmzo`U9myo3Ki>@Hj z)(*XjcI}=0Ou-%0SE)0n%C#U`DgOw@LtlUTk3wFhFMINY|Y6^xasx3q3nuP znryNL8KBCRA#_s;;i$5Jhp83~nz_J@X=BEC=?>XT&;m(PLz(=EnGl%9DD)e5obD9* zk}DJmo8}+#{ZRT3q&M*twuBBSok?pV`+~t+G|2ut&M87>-=uI4!Xdcyg`TOZ7$oom zaxEb|Nb#v{{{Aa>2?0~@&0}$2B{~pBU%@B@Y+x^=qR!9GfHaBiCgJ&ti#|4vjeOlIeQ=(U^B7c>6mVTXDY1_gBw1sh~}&BTuuVL*E9Pqcpig%K1dB&(_H&c`?}^Q ze86rlEVZXkE^H5Yte0c)n9v^%Tmr95K@P05q)3FKJO`R?4u})`H3{&qBl?7zXGi8C z^$=W9inx??hNyL6D9iQyM0rSnhaaDYFOXH+>Jf*MI!5*UPN*3B^oIAyt|_a+PG~FQ z9=7daN!QHO3-$rD;wR({^-&J@yXHDQ)^tDr5^gyzF-kKk{*>!+O;~O40@W{i6w~v( z)Bo?o{WyZ2SllmNVc^kX0KdO)ZZ63MaeDSP3k;GflPWxhgqLuoeIn^W)VeO)jj|;P z)6HMPZY0z64(;snwSEqkI+nYvj|-i*x2Y+8ki%=LVCm!$1NLyd2>43}fuRXrj;9v) z?g=5Ba7$j3=|@|E>vJ`ZYTaPNY6lA+W`rTwh>D4aBKW_XufVVqZTN!XB4cjbJV~}9 zx~C470PvukO_jUubbSpQmuT!+{qsEw)acyJd6u=B0P>)34tpX-!}+Ns^Y?PpL!;+> zZTpj18QSK>WlDzaT-}Q%8Cs9u1M6=asuL$S9~G~7R|*W!gCiMo{Mm4S3W8Y+nS#^2pI4)dir+sRcxni+7qvb zmt~P0&Ikd+Eb!?*#GkY`Z0Ipd3cH2lkwKscqMMu#SwQ`SN^bpKv9sw_I7ZOVU=XE{ zn^5$D=ZhQ$XnpifGB2)saD()$bH)r8s;S}VGlA}VrE>^}j(AQ%<_KlO^iRxDhB$n& ze>RXXVSnPO4dQc|A{5lZp%l#`c>6GPFp{wM-RVkz;)iD|)$z#b;c@1>4mxPNIQJhpvIecw4L`xpj$S6^?xnz$J%;KHW}0F6a%8XG_`hO>htB)r@lP?~a}}+f$y> z_9n))J8rYE^r5QpzYuq7kO`3XCYVpJMWE$Jp?A~aVdQUsliEUV*4V${b}pDR2YF0b zw*i1~2l_zQQH?N11hN-;g3XCO&*yDVcQ-=EEyBScZv0a`g!>D@y>5v|NO#w9oQm%OImQPrx6gGUf=*O@$s+; z0jId~2ndB9K|$i=BCm3#MGKSZsadBo+J%`}+(d?wO|cAGR-4>~hf=A5i!{EK!Y2es zLToI~7SF}OEv;cG{2mrwLzjGeC$T;-WrH5ddnY@}{RT#%%PoE6}#+HTe&xenE3ptR>IaM@99EdChV53)7#r)Fcl{FF6# zK?)3T0#A){c~K%OR?%@tMcI6H#iR?r16{ec4^(D>Qwyjtb+!nO%D$v=Kv+sQL?+=> zz7hw)XU?M4bHiyMdxn1e*yd7uI zkh3Vaq{523AW#KelN{uhlxTulMkI4_$FKnBZARmu4Ef|k%Su=(3HP0TcPiALUw{+; zRLCx39ka&P6y;G>|4EGU2D~NChuInlMXNz;N{l5`Vn|Y@KN>q@h7UhihWnuL%uh`; z3&VviK16?6+0P4zn6{OGv2|6VG8_m*`m}}ZUP5oh(LOI`66R+pyyjZ^rCLqxQsw~E zem_@DUronX0GL)ywX}(jTE$sWyVi+cw9)1>=@(a*WY8!|nwQ`Wl0nF?#Z1Ic1zA3v z4UmkerYFpixL^F!R#b-82I%*`e(5sr`!|V^_gn4T*7gxMskNs1vv$gseuSmEGu$wi zZ=34med;*46~{N-112gMVI+qNEg*rs+>(PL9KV0sMVTRx+y!AQOe&q&6r`3IAjsJZ z!|w3Fc7|Wo^j;~iwTzuAUgNZ@^`NwC^(fxcxFt{E44E*HxyGhN8!T4 z5`FpfrWl8H8zpt12E!WDLw@t||CfOseDdVofkbgqLs@(^iN`AYe z2|{>>GkgCBkmdLO=f7+l|3?#r%1&;Eg`bHn5`Z#SfmfnWjcu;~9emN%^BdzmO1f3ltPZ9d~?)-$8gGYhEwDHLVvHY4bA5h_1{GB>bfc6=VQWVpe_+7PU>-q`# zGiN*NIVn&WTug<`>psFxR-6zxV|FpdfLR~GUt+ydocZK@VwS3)SAK(&m^q<+swwZ4 zx?ah9yt1+VCZd|a$JQmvL~tewh6%}~mJrlPB{`kPnWy#X-Mz+j(f;t8dcsFHVxEC+ zk)L49c;O0Dnr(rXDP2|N`;SzW6&2Xgf}ZTsHoe$bV5_yuL@RUCPLu%_4c_}#$kBVi zq!|bB;H8CZwKO2grwsx=Lwx1{zQ;p6k#STEiv*R-$)5oagFF1nk0FjQcVs0DK*O*{EQKzI}Jz=M&;LhOV zJ^~NE89o9JQj+y-OZ*)II_4D{LK4^iZrlU2hE5?_BgBCF-O?JotyGzvumut1 zOB$N%^5UeJGuV_75UbNWGYL-XAOca1^e03kkQV0jdSawIbmZ-(>ealN?fw$H4v?}i z%)4Ndl>gLgNPJQ_ORt?ZH4KH4*tXidbS9mD4lzNvi~e_hdK3dMvzCFn(lChE2(&0 zO+=(C&8L$93W!uriElF?g*!Hb-`~OM#}RYMfr^p+LcAN@);ec|L{c3)+~{u811Su_|&pD|C`|=$-=eP*>?;3)Oc!L8j zcc^7}m_}k}1Utv`D?YkEe~IV*t$f`sNOcnssu>3wa*-2}Ue?ODz+n1C#R*9Vk~xw< zl8~hp)iI~oDky;2fpFfOzzsWWXUF;MxCy~3BrLotT<5DUFJK2za}$ta;OCPD)(?wG zy%K9?hPPsbs$*81LYR&8@XD(wp#LDJQtf^G@JsA=o^OIU{I`T6Gg;B$8|3DH>nvA# ztSzsh(XDywohbFH7&c(M-?OJ7tGOIR8Tu7Z8Ff)f_n#+wx*E|@|@QAQ-ma-XDozDQD*yxOaV)_21)S3dBEPSTn5&ee!}f&=1t8Qg~a-M z!=p_u&#M;4!_5r=An+5)K74Y?-@6n`q=NywcG-yI(kUo^;V;6X>zH01EM z2wrRB%06fz=C427Z4<|yJioNPEE9_Pw znc{EYmk>6s%SDy2PW{1Fe?hXh+cs$2c_~2z=1nr0Q(~6@5fH|aj2txIP7!oLF7kJ5 zTx21T<=jDDE=>p_2jzXATM#Jh;q!xdb90Hd&p>M9{U};SR-C@e-d`OE`u#aTrXsCZ@Y*u%- z$;$`kD!cgx$CpjU!f>)v9$^m&qz(!cK2z>n2l5Wo{qhLPtVtSBGidtX3EYnRAfwE; zKy?HgS8XE<)Ka*A_3|m&?PdB2^k?8QEfU`Y~Gd@|l|6|vxocw1;LTXvFECbqykA$;i zQX)*dA|tl3NE7N@kQkAfTk?l3Agr5NCBNttIMb+9Qf3{QTB4N*N4-p&#&4U+ykSTq z45?@n@Pm{+pvFUFPjrZAVO8}I>xi{Ad;{yK*yWFVrE7R$JL9*eefhgWQ6&vpl(+Eo zu)el(+0Gg0cH#AS!tNng{qzR4Z)JyxIG>vl;h_m%@O4_N*O9=DrN{BjRM}xJc;Zw6 z70bKi^!6J~+CwFSYUW%_+am#hx@44_$OzY1tec7mN}@=v&wSt95L94p*m9iWU?;Tf zAZTV-@o=$Fl3})(>w9Cw)h}5X0HzJV8SnPMGYC%iW;DdeuX4HN5cTf|PRgT{t3<)X zpN`T~m$y;o@ph~9Y2HZQTQ$nnDHASW-}8uD!V|_B1SZ?LS3W}@Y5oG6auVqmnuxpr zWBzN+#f-IQ^J*5EETV^P^WMK(!B z)#{C>b72q1Q~H^YO6#W9;%^&02A3vgrg#3dV4&fPU{5*-ZuH*)WF z6hzYT-22n}mk!t$T94b(+$*Lc%xVb-ipDeKITyZHa;|f?X%HjAW>X~y{T?h4v=?jh zn~inW9?wX7z)Ru`j^vwV7Y^Jz;#MWF$4{V%cA8=z4`Oi-5o&QyBn%PCRnG%KDBC&A zS8nc#xpzO7G}%(in#5k-@YNhh#vz49CA1oWg!FHB^NZvPy#B~|y()nC$1GD2fV~o5 z*z6g_+Nrtw8mv>hHy;_#fw2`28q%lNEq%DgIO475j-@ch}Yp->}*D$ zYcMPJM_2eOYyo&K)Bw{f-(D!`=#{}6x1=IVksC!E6A6cJ{Y zQ|lI*=4((dDke#33_5?!_5IBCw+*!0&zo1MZTJaP*kxwJHPH>xfNriM{~|vB*Bqcc zVaYcn=JBE8fZ`Gz1o2mz%M3y_3(h5NfV2?G3Ei^baLiXsxU_lX$cQ-OI&ix`iRNBN zbO`0n9~k19#2i(EjXV4owk|pJ{*=oAi8?7)dVBDvq=iLEmkx4$lG|G$JcSg0%FCiX zQ?_QVVxY0m-|V|+b(C|TiLNn`QRBvD5jgh`IJ1La z;}H0|84pgGb8T~%GJ<;NA7N4CW$exeh-wcdOtNLOuc-x`RK~h2@MX;A8^-|mj<$=* z8}yc}YQBy7--bWxY9Yrn`o>Gb5Ud^MT$cF%hufiqkbnn(f`FKRvpdvrGcovayt7Dg zoQ~+gDp_g?MRYJ&n9Zh>RvSr<+Ku>6cBD@bV0^P|4n&*~R$_*G-PQLMLq|_%xZQk{ z_)hrgsOeZN7PJD!@|En2G+Fvb$O+eE+)RCI7Rj}CN`LY)t0(5 z{CxJ#%8bEabkQ|+45Lsbi{oxj%6lk>E-T*h45j!3?j3pNhF2`|mKhHiovliZz_E+T zw5q^MAYAW+%WeSXO9XA*ib~oq3j^m=Iw3T=w2PH;(;Id?T()X`mGxAqAvHvMjecvA zedwV9&)fe=ScAhEv@7^VoDLBFLn-{{bA>t~ey4r@=VGgP?6DeARQUcK0wP~yv~^6d zcm=9JZ6dN?v-!l+xywaS#YTXY!`ZiwTQs*5?J;RWi=sful#~0=;K_UW`{4SIsPf@j z(d$LEBCa@qkI@LW zK$D12rl2&<=AzwIW=><;H!c%)TkRhuNvc0RhM`Thto!xo=4^fX*UPNd2KVp#HB9ET z6OX`1DZS-+OfJX{M?9uY&i6mO_lgt3gEK--@X;BR2yrL5u!T7)|C(ysDp*-^5dATz5seo!nU?@lz!;(5A(* z0q~&*il-1YS8K{*Rore+4cDd@QPUYjKo80H(6a)D^{b9o%ZahWN?SA7LNA_D4Z5D5 z3psl_Q%pC!x(2etY4jkiRTxX2-Clh5%>EYm{Kt*UQuVx?(_G^5 z38EZPq6+6xxV8~<$6rs&03BhiMi_Dl*2Q|6oRGStrEG`bvdk@ehcChk=tf9Lb!=x7 z8-~Q@6&SrToqEQU*MCW=#j4*&aK3O2!@p21FO{|9*z)1ee`v*bf_uJ)@2V_}3jXt5 z=i)T)QaZxo8CKu=S#0pqQ?cMQMt*z?bEUQ~_5@>nGTd^E2t!D@PJOagyeCaiu;2cQ z5wo@Osk4oaVE%SYxHUQ)_!faf!zul7u0nisy~+)XoR=AQE(2vt-qq((Lj}uJxb}R4 zL`ts-#U9qie!50B)9x+sH3B2Pc~p7Mz0|y)Yn~*Ab?||m@8z2c+?t6(UJ5TMQc#+j zW`9G!kVlsKh+vaPuC$!LXC{HAztR^A_7DEX*GjLwY*GtS8VKaTUuZ+b>cDh6U2#qebhZgoFwH-1f z5fIYc(^|lLxb;W?&N6wFm?iAUt(M156YxL*ib9lHhG4XuYX=b&od2Y^F4^}w|4Ar= z$SItyMUC!g&yDi%4OWgS%PdU^R(0l4?xSJ*AXto(OI~`3H;hsswdGbiL(ztrKZJAg z9b(}h$G0PbEK23pTpJ$|{Grc6S;Vx<{W2%3!7EIew#haKJarZbPE0&QU7WCw6cA_b z2z=NgPQAR;?hQ(D^2+m~jNFYvzH+cdLz-E$SUXGpX{d~_&Gb19p$#xZYim9;C3LC& z<+&0nXyz8;-YJ%B{_F~4?hv`3G61)CWhaF4dCDhDE9vXVc~$5#yES(C%Xx5R zEEKaNUYR@ts7s_@HW}42aA_80I63m9ARLWs^;P3%5!dPA>iN*QypHttC=4gSBKx6Z zm8ruUvyK?al@MZ$;xhbrF>U%{ei`(`90EMR% z&>=*7(E449=`6t{AMELQeS=Yzbz1HD?*s_VHqSoXz=n~7p@l^Pk8SK4w{0tutA}OR zq;xN>CnzoP*PKbO{(a+uLICx%)9#Ihcw)1_f|`Wl@}C&tLJPY`?g=QrLR_`#CK8;Y z@QF`ig(P)D_X>7$N%OxXBu}}(>AcL3A-BLHyr8f>vtA?L5gzDLy#7BX;6F%!SR?ck zA2PU~gd%c}EqdGa!Mt!v}z`t*83BnlEm znFwK>Ma7u$50R)9WC*gC?ymM-(_x_z>Q46M0UH!`bC3@Vc>^PWmH;x&r~RH6A{w2} zn2ppSGaoKDqPF$t|hT}7_=BurRzpaPjf0>gf1WGrLsn?OB0jNanaUlbMPWd{uy2GdkY<0>WHd_ceCem$JJ>TC_qPul}H6!Sw!%+ zu{6oB5vIg(ya4ApNwN_qsVRizPhuph%BeLSzidh*y1^n#Npm^`?Ap@>c@ig6w9;G~ z3l-IASFe=eGfy$}CfYe4KGjcqDFsEbJ`S{x`MSOM`KLo1`v#71C(hVcW#=|!RbYeo z`!L}Dy6${Rcw((u+8%N@hHyVZ=p_pN7~z%>f8>k~_XQ5jn2-SaFj^IpJ`8Zp8Z~5KC`Z`1T_$23yFtaW}54MIHasy^t9o@#z~xRsk2|;HSZqzo^xrf zz}458LM+pcWn_EL`0>E#h;y{`wBYu)P#sf&HN!MT=iOuK$|zgB=Nk-+BN|s81+NIf zG~0vFXDdfqQ(Yl^gn>VKr}4Szc|dKa;G-6xY-G7T3|H<62f%=Ld+wU>Fp}98PWW38kbuQyFoj zI|2o!O1$b%=KWKjx)HvzT{reVw*f4KI^yPoRkID}aY~(f8*Aq+^S{K7V>jvB?0x%A zwZJ!-1mccUZ3qU5zE_tzv+$z!!+)mDyGt$F2feW#CNe*?<-&=9N2UhhL%+d>p7L7{ z-5WKW-OEhltOz3T!T}V-6uW2CXGU>dRV%olSb}TAjLf?316zOQ4)prgp#%5W)Xdlc zN;<42e{|#E!8@^pi<^5H=M&cyEt#`%*nyrgp8Znvx#4tAThX^uFPp7bA0-q|>QJtp z3yF9P1d;=)P>kjHJIQe)2h|wy8IUhDEHZeeFaeD_zr$NUx??MtRu5Ph!pBL2+r4zh z@(5GI$b$|fF*t5D24#al&K(-F3~!z{1UWd})q#M* zR=NA?I~wvACa>d#v#%V(-HPX`6PJMk+;O_IPdOsDgtoOuVnRO}sr!L(p~kQ3bLxMu z*~9##V<47DlFAn2CpJi7c3y&3Nh**5_XHwgYKzlDr_;%Q!B)i9E~$1Qkfl(^j=4f( zp<6}r?v<1XdCKAU$=Ab};t_?3$ABdOqu13E)YlTYlKo6+sk;=egSGbb(`E>TLzV<$Npc=*^QOPs0v1ElG0NOBx$*4*R* zV74EZMc4oIaKbZ~ho|2=ffrodWDI4TwLd=4RvAql-N&xh-l5Jy0wJMsSt8(<9<*TD zFJw5B7}QYPc=qKcS&g{`lcg1#Qecii&R6ebeL!N#qqg~L!B?I@?wq5mF*HSWk3*sU zHR72%-6-jWP2?gt8lN7|C2 zaj%o(IXU!XCQYrkFazXvoEyi$nf1{qr-tC+U3SaBwP2+8h4>q`k2wSryORJ04%=WG zZy<+~V8fOTL);{bw+T9plAj`+mfS3oqa*1@+%AjBA+Z=KG`z=<1-QFwRW0XP`}Dk( z7E`l6h2~82Q!qzpc1Y|dMJa%TXJ~WqJpu3INdy+AX?r}7G*To+DLbV{vFy>D)Amo0 zJ4vT~2^?iVI*|Ve(+jB4T`=b4VVcSN^qlCq7oF9F?)hW0d(sGX=+S7>B{g{PadQYK zoqeagx{pRKR6kgqCca9bPYFZOm|#qpH80D}O~k8vuF3v@KZFdp(ZdFw+s9=337>v0 z%O*4_c&u7GRi#4dn+sv2E7cYL`+2A9w#lPcqSk=uxNt4m3qc)*Owb3{EZWTYkR{3QCHukg@15|!#j*V) zIMxF0Z$W4ATaXv~zcVfU0y(fiS@$=pA~K)ri-rbPc)e&vNd*R-zKgVegdcK3zX_U= zti`L3AKa$dimgl1VAn2idmt(G*}&^j9B@RB8v!}ck9;|v!RKf;d4B#xsNV@@vEA<* z_0KPYTgfdqs)!p=wYfa6G_NpkGR96)J;*jlq~*_K%(s z`RDxBzVyEFbAFmNKI*|*qQW%NHka9BbDl7SL#d;8SE+?G!KAmF4o$pT2CvU(cq^Z| zCX^1Jbu{VgjTva11!uIZRS>dc@KKM=zPG@6cV2V$BD7%seTQZZg%x!z9Bbbvw?}G_ z93h73jCo>U;h_jeoE@g-DoB25R*pA`xNy{DJ*<`GI>lBxc(otceC0Is-ablBoC#dR zD;w&?MzqAmWPDaST{0|ej%mzdEh8&7w6 zPLl#W=r4$$T2X3@i6atd_;fvSZhp`&T$zaaRYO-9C=Qmjlog2c0V(Z^4ZUf0HP0I8 zRS!QYRH62Hz3SYD#a#KXNB37=@7JxY3O;i)m+z>_>QI5VqqJ|=&U&Zg+vMfIS0)hj z7tdxw4Ww&jHaT$~nlUO+20*M4A$fc2u4ki%r>9dWFNuw0EYynvSlTXzhjeAS|I65^ z;m5EuCgap3v)k3X=1JzII_TlW7vX7Y)920H>G%6~q{-ylkYm_;6?DTlxUTPawfCd_ zU7Q`P7U6eF&OoJPh{yOZ?f^i2n^(6bSW^XhoY~pF9 z^~Ika?9MvU`Om<_1n=MmhYGd>oX|!7K8F*V0beE~E4xvO9yYir*Vnf|v#5Hgr%NM; z%i^8+dfm^%PDq)KIYxvg>1`ozhg(yzoaUo&9uN0P8*Fsw2MveYMGTqQEF7NvwIB7u zFufwL<;jWI^ELrbpv?W7s2Z+uma@s6s$4Vcdh5Qu<@-SG73Q{!*!g6;R7JKa30$4fkt%>kH{bGre^~dgmXh zZF~LQY!7e@Q;*wyWz^dM#)!%QTx~S!gabSM@a)z?i_-%3FpYVsF^hhe3+Q|69yAq+hcd~Sjmnt*sjmjj1}Yqz!~*{`S}<@W%785@PA(c~L> z0Cr~~$N7BQNL&ZL%1y%+D;tyrI#fAY&VVhNW=IZNH%wvJNh68g`0mDB`YmftMAL*U zE~kTRpbAER-NYPO!`3TN5KVFq7fc=Oq_JF&qnlXo9jsn=IIPc5&+%%SR5R3ql~`+@ z9PqfY)8vI==Lz*Qdpr6(Kww8G>gwZG@tV2qW6DjmN3@-$+J|_cGCnrsjQwF5Jg>EM zo9+E?(h?+l{sJHhXDP0cfHbRr!HmQMyh_4NxkvlwyY0Jb?-sLyC_Blx40 zUle&`6kg#1r2WL$sUVo_m?hDDAr^zTAFy?|gW2N$b@dfMaV=ZdKyY^*+}+*X0)*fi z+}#N>I0OqY1b24}Zo%C>xCXaCaQWxvef7V`JylaRwP(%lp3^;jTGn2hYi`+^x!4YW zwq(|k^+JaDL{HoO+78F-a~WcXBa={WI^|hOae1;~@+v{tl&(-`fM8{qVJ5t=%-WX_ z?s)I72enDamb`fP=2*Qyio3e0`6yp64a?p!)@#4_%t*VL;Ia8Bthn%v00Pm=WvlSF zAu%D+u=Qc_bt4oomi486F9s$`xJ$h=)*0_`wVex=Bi4imKe|5tA?zvF!<44vP~;oV zY7Is-`nA;_n`I1cyf2e^f61?lRY}4pZs zI4n&-Uv4#HZ*QoPsRQwQZPrvcR>{-P2ZNiE-XGBv`nz@myPe`KT1_FJ^Kkf8NIfdu zzU!!UVY}!jcp{L@3=!}yYclYgIrUdfT)qZOtm~x)li})-ejnhht?tN>ohjvo|K^|I zF{85XBIQ*;M%SYjdRy4t^EhL--P{#Jb`6WGFOAb&`h9>P_@Q#e)kVpS16Op0)Kx+U~$aoPs2ox&uJ*;Y+4#3 zL01vSQ~~`duGPs9Pxiv?*skylcJI6yLwUHgMvk+Gf^%{;+CkS*+2OH~SM(y(0F_wy zeb=UC`|{0ITXbw<%}GG(4?}0CQQ6gpe%CC4emv|FEFo%G1p%SL9IHEptg#__%XTmN zDAA0qA3$pR0tiNgWO>28Vw`_udO727k6Hz0xOk-00t4QTuQ=7rvU~Rt~AbKV_OWM=g2B%b|q3ANTNCASDC!eT&({a-=7nLgTub7(We>#;-a1}XTVHJvXrJDmtrUC z=Z5WHc1KZ^VjpC?UIJx1tpKM_QIgvPf^Wp&*9mkI5xS@*ewEORe^PT$xk?}Y5M9> zL{&--qb!-J&7rwf4*s$YqMk- z?}dR{vav;-Fl+QtgGqG}QZo74IDz#;KtH*bwYG9F6%08)xc~vhsfacCXPVz95V^iv zv^|dnVM72j5}HX*e53Q+Iy63c%luA$<#=e71Z|l`>u8v%LI_~lE|R-cC$|^k?nj{A zHXTZA5GUWUvy~#$gk+=&0a@y6pcC=C&{BcKbNgl$5|&dU9;aalTIz2F=)-tyBms`F z2m{n9F42vWqP% z-26+$y|JstH3hslDgy_b|7Ys@k^~F#TfhZYYMd%#ffq{KXeb6nlPrc+(KrnX;a3twd~5uSF?l%!&)L;}FUDtbw}GilP>*%K3Esjfwy zzs_Es{yf74cvsNI^`W2$)cv-W$j?qEq+u^4hm-8DhsEJ!u;8X*D>gBdjwjb~O;-Y* z%_%0CazrQVPt$QhSFc#)TIhui>U&xEU7=ZgBmX7Z)PAB*>V{WkKu7g?+=c0trMI`# z$*bA7swc;;)!l}N`ki2<#XPo(*L=~?hv7=+ww_SxXR?wZ4+4&_h7U={cJ03?J}^G6 z7Pohv@)a%Bx9q2e=%Jo+tYm+Av27g&ZfGj~4gp3O!|u+;gM=_ z>Xq*Jb^A#Vz+m+YmcDdL0qe`?H{rvdcDE&&S++ue;^=9jkHwyr(7i7Gfo{4i!qRyk ztiFa>)$I>4Vo)gX*uOsyCOBcF0Lu82POFGBmn8jWLW>zE>$hN+s72l@2|JO_d8Xo~ z=<`O%hrB|($Hd_*`XP2dwG|~^rBNG2yRh|Ti=*m8))vD6RF*Juy{hyMXPy+dSdyRQ z2{8xU2hT!U&N=TV;g4`~C$LpFwfUv;u#FLXdPg(N9&S;A4$zA$+&j%;3w&gIRDPc( z7%>D!0af(B89|a+=m>Q%+a1!lhj)%|*I!i96(3u`owyR*iFyC7zh08?fwn5MAMpK^ z7pGMP@OSdYkRsGHjS?Y)K1eyqd^dvx5nzfYO^+p1QQONt5xk&x-oZpug-yQDZTl?1 z(xzjBD)&2t&iC4rZx-jjW<#hKc|X?j1*yNs=AUUglI5W?}u*J(64EIo!cPRJ>B8h&+1tq5FVNk@V=yaPoGwKy)tI5m29Rt@_k4T(>Rwyp zik#n}D;o?D#hq&nBM1?Kd1*0EIBmGY3BKE5KQ2n@hmDB`!la9C#4}4@r4_vLoRUs+#u= zJ%D``?vtdAs@c=G4C+JuOhL(QsBK!0*j>+S1BvC#b4>dPJUQpiAAICl;vyZfJQ2{e z>=aX((7D9!)Yky%y}5Tnc9wOKvQo~Y#a_|!b(y(QN*L4@9&~NAsvfol82xuWEZT;}wHOo{cFGD*v$i75(%CyFuyvVo~VvS`Lv(NtCEW6J&&lE$U zvlqegu>xB@axMbk=Mw1^xcaaDonfaxSq!En6@j<4`Tnne!-A9+F+hxINI(xIrTVmO z&uDrXdI#)JR1{WX*g=T#LU%m!VW&eDnijOwulYX;R6<4W-aX_;dh$SGAX$5mOk}q0 zXN?MbzC1lYBX6RA@-?eD?CmcKPYAaUJ1JG4$zV4t^Rb6*!nlQ&?49TAKd==H6joBJh$Jl=vToJjC%{kl}+mPYXh&L2~0-Qdm-VOx32 zzPlUV=*~E>%=v|g$7+ld;XV47yBgodeC3E#_tdDOFKT)r!q$$=PJ4l^YayH!?CLM! zN-?^ZVxIkl^@{YJJAfqw*A(#u$=O)RIC=xD_VEjNRe}*nKY_82mHQ%_6U*aIT|L2eXC`#TQIiVQM+N7k);wKavv=Q?IJL8Ez@w80n{xnj?H!yF9D%oj^ zlLYWkl>r0JNk|JqT|x$tWFP^>v4v;R8WS4~Mw02$f;5(y&FQykBL)buC?TB zwUg{T)7SbB^6#KuzDbcy_rYD{Mtc@9N~}QNx$dtEx}FK|PyEeJ30boJldLKyk;b$r zUR)>4m0o=&CA`p>90kSPx@?B2$Vn^9V8-cF@4GO*+jQiX2H}@@Js_%Q`hvy5ii2ya zahGj)<9@<-lQxg$5jMRO;l*@%dv+=tLrFHXMLVsE^Cpjw*Q9ek36I}Lt3S6pnRnm2%6LR?zQ$*^9#X4pX%CXZPcfUIP&$B2{vk6=`x@3m__lfqJ@0oi=l-~ zErS2FB)+nhz33hF5Dmmtd=4p+sNS*l8iEL0#GCOJ$u3KiKA8>T(y+!QK*Z~2N51@Q z04<)|S}%5?dzo>iq`HHgSoj{h6#vsaj_L|7peAJQ5(sScWL)=TT{Xhx~Nn zLsW^g@NPlDRdf7f*OtQD>k;oZ=2h6~Q_mb)9P6UeUz0mwLeI^}&kOiUi39S6%F3w= z1tT$2=|qKA>3MvWI#>A4-+d!O_&wo0a&k-&lX7nPL!f8bhf3&1jWT}UqatH9!_uiV z8jpZtOm=7OrR;$sCHUIxKPclBNsKp6w(Y zoKtMX<6^zhX@S=cxdF}bJ@%`I#xmQjsn(V$V9F%>7z49jUqNdE{@R(azBD1Pb!hy< zzv4mhpY3;n;BKn{X8ZkTnuxjt0A{LBs$hY$s#>&~AL{1(&Npg^(9SI!`X~lZPo6+S zqeRHw9d}?)2jVbmQ}k%+1Hve;3oS+A$#Jn~J?BR|HsXBC<0kP~|9Zdfv(fJT{nHP> zC*+(EcO--{y_#zi3P+Rfpg`#kA)eZTCi!KWB&9@r*v7>29{Vuu&YDRhbzr;XFxyA9 zD&KV*61mqxKBpm0-K(RXpLm@!9*fo?vJ6IY=UE{muD24OT4Ev>g)lndg|o?Z+zk%3 z02t5-PU+l}j!P(?00J{rf+I9`YR%!TOGsOAGm~o>rDH}5lu?lr`?iDI>PxXsL>_QD zXMeEEuy>??Dx~?LZQA&RrUB6b-u`lYHxJ>pE|pVf-L)0rdxk2xHbGqx7k-mk496^2 zyral1;Ei;u8}(isV?|QGW0eryT$hvV=j9{eGoHe_oA#tn$&-nlZEh+p)WnHWn3D1p zCgXirVa0y@no?xt4rFU$p-1XBsNK&Z@CME_Ul0liJ}!E5+CA-$Jpq#{W|_h+(_8!5 zR$ghWSOAASJ^2TPQ%>X8QQaKE+)=-_afRQ%)8|d9Fs`#p;Npm2)ei!ag_?#eK%VZ> z7s#o2Ks3iVA8h5_xCL)e%J>@}L0TzwV%a`(jdyglc4cfvdKfOy|8Y6%kme`Va9gD* zZxhQJq&|Dh4y1*(XjnLgNVsf#Mlb#_GFZ{jD6!r;K@Mfc9*6XU)Gxue!z(k6RS+Dw zpSFR|dN}?*DZQ64n7^rQ{3E>gqD+sCMGmL~FSb_hI}=9szQQ?;_L^Af;LSA9s3 zzkZ4;;6piUn1I!>JyCWxR@p0-QjJe{C}H!taK~LtYD$s=9U78OkOmNo=SEKn$;bO7 z-zrynNe@^ge0H`G5c{xyMn=)D?f*NZvVVMyF3B#~2S3Wnsfg9d93x0)>j&ezXKl7? zcrOIcB^T}AGI8tAkUK<-uy!vN^`McV+AI|)?J6i5PH}cvhT8XH%NgcY2Nv{yh<`2W zv8A(*$zUdQ^(_;g1>!pqqnT`m(@B1cm0dhZs~uN7x3>^f8>0(kvKktf-&RZ-D5y-` z{f(V{&7IAam4jI<9JABplx$8wFH&mUU(cT(_Q*u~U5fk>?`?P3HJPUcu@oo)M?Zqc zDPiGZDq{{Yc=XHA2)bc(_^n)u2#Uf&4Q$=eI-^A@wVeaAu(bDypDsS>%i(-w!1E7y z-5gl#i6P=`t!WodMZ}PxcHa86eztO((dlPwTy2^|s8><`pve86ooUH_IoONu5<57uzh`Wmw{Vq;T!9t^6?&mD<>B zvUr$To(^ePVZV%8esQ0E%LRg-QRVo^V_f?3Z!<+_BEQm;SPXZun;Rw!fNCefMoT_6 z33BgLPWBtGX8fD?Qe&T!Gnf;dFjKNN%n#Q63=Lgk6y%$PKk{b&%&9R|3p=hnT3Jts z^Wn&}Zc>RfC7oHf&T&|YW;fiSbQxK%b7ME*#qYW}66LD#_E>kUs~4t!ZBBd_&iNJ)*k6VrG8CTDj}X6X^bpWo3l-Wo8R2eb~`!S z%{Gs{0x>sBmSit$_OQi+7irA3X2Thlh5{)`%ZhvM;KTB1Uo-UPIcA^%a=w<4U5c~^ z^+7u<4jUy`<755M?Hu)Q47of%uG;5%#%Y%Kou5qM;_7RKL+VdRdVtG!B)h}{ad8ys zLGL+VFgPBeL;YlUAA>}0aEcG!mtz`1SV91)Sc3n&_z$!{$- z_)t*vbl$hy{NdU(=lj|Xk%|;o*Z6fPopSTs-KYh&Q*1=N+jX}P)FtZcRF?L^Cq6pr zB`O8~JisE}r4I+eJ{dT-ENw-q>hhaBpF(>{rSE5TYXYW*=8+sL3!FYt0oh?x3QrQT zD8vf?$9XtXQMK_>4V>O@V*B_q?=ns09tEN_2F{~H*t40Vlz;bPe=)_i(S9FuCksD&4O17mZmcuX2L<*I z)w{x!?}a3G;stOnON1u&gM?UiId?gAcPKJZFYrmf&RYw8on5M)r6M`s;oQ50zJHG$ zDKB8q3-Z%vqO=^gjEsK&=aS26c-GIiae&heh{zVTiy5QnUS@LRoLay48(}CC@m?J< zm|;s$P2{_jN`r$3Np`R6u3FBeekQJK!@!lB?#LClVUBZ*@~Bs?azndZ1g>qnRPj|m zqN0222MgS*7Q)3Nw^}y+0assrT1|cxi=;=ZVmba#B6tVB%Dr>>-xa*U3{Mn8SxP~J9^lOLa=OS#Tu6O=5&%M`o z?R}TbrVAW_^!E9|@jQg5>Adg#l_CzHVUL*L_kCs+@ZptK21C*P75K9$8kv_yRIB)3 zVSDY}<71UMZ3ZY+W185NsyIy-BAvz%2Z2GCo63yo5%e2|nVk-Tv(1XVE4}ds#y&0$ z1Ti|(1I+|YT&UvP{l%%rMhs5)sGKs;sy^vLtG3djBOQy!=~zl?j1i7 z(pCqI^p>JMrE7clQol!?WRr8QYMOIuH*;Xxm)k_8F_V{<@ncsgoYk`|BRh#Bv3I;%n3MTOLB+M zjcNyxIqJ!)HyqGM@+-MOwK9OFu6OGTXJQWmkbRtBhHw_v9Ie@_(g}$J_RKJFDw1kP zi|IV4Ga$qQYrJP!PNH!X8le|MO zoM=qhZq%id zu&5C;Q^ibADp2q0T=B$#I>V8L>vxgqa&_i-(5aT zCz#cWY41||k9{m-!WZck?+Y1?#U6O^4oA8=lmqHwpUf{v))|pSDYMH{%ff|j0LQvIelY`&$el^m zvtB>Cv-gfsUH}_Fh>X!#=3vL&cM-vnh{2+hykM~@dajNmTpivW{F0I-ulw!sJ=l#N zIONW6Ka4KypQM8w_XQ!Ws1;2M5hDA)nZs@j!-XEO1fTzsgs|sko#jvr@3Z#)QX4t` z&0KDji%&^2eKdbsZf>(T?|P|QhX}brPJ;8s9Su0V>2ogv3_iz`6zcNCej$-eXXe&sgX(BdaH<8$_W+`1N=ola!eqlK+F^^N(&dxxTGCNW%8=)>b~s6hm^(Ltov5y_lBs(|7T z!f00uiw08bqfQVfSPkt5!${Wgtts|6ZLi&D23p?~|Byw2i&VLiVfXZM5;zz(X}-^R zcIw8y<4P{v+VuOCFMEG@Nc@rYx&1J^O|GhfYd2tF{wr5#`2p9${lM4M(_XreuucV3 zKfJ8M0vyx@s6Xm#&gO9S7Iv(s44?SCu$xyM1_&$God4tmw@wplipnG>3gB$q6IwsFKiytk)m~iCrpSv@(Bw>qLn$}U&dJSa&@XjvM1qF$c$giy_0yIc}TJ)>_K`yCY!BHE+ zXC>0#W=FdlN1H?ui_~koA8JfF78r(homvn;*>?1vYZ!R zHStG0UM~d|<@YYRGq35vn2MAYZXMO60{4Ds&GLr>tWCJXJX6Wi@Zg|mKohBvj0HuG z{nS;3wkubP@9A+OZS*}V4?)ql_LWKp^Q`!Hpg%?0gOrd6KknviBl9lBp9CIb`lG6V z#3DD0!(B+=BqPX>$A_%+SQ#8XWJ^MoxmEb}gr{aofP&uWwZ6x$AeBN}iw}Z%l=@ZW zM;sR6n!11FDtJJ$)5=W8h59wK>7VJ(@mr?2(?-@hxVG^xA$BC>XmrDX=TJ4} z`3P=Vm}~Ls0;lc>RYEsrB`ry|X`ixs5QMod(f4j=3utr%TDIUf zqPDh41dh>T;0ib1ZPN>LH4Gfz-b`_!pFnoINq;!J-DN$?{a)U|V~#;*0bluR@#$`_ zQ=*c&I}fR*M4eecak^C);bYAopLY7zVcF6XHk`m#z+5nrzEGoJl%${&YhMwhne`u@KA~vZGk&+l>1Xcs4aXV-oqwl^87fLKfGk> zT+soqYzmSfYh|-^f_Vf7q#-JGRm=F4;5S|}&8c&Qkn}lnZ#C?>#dmjZRMv{#ZCGB5 zmmL^VgjSf0emG)&MHuTV1pJ;C{tJ#OOP?Vt_9Mhb3|B1Aw0fTxvw*4w10p=`|+IVOxESKWy18ofPRuxXe7ZuQ~8v3zf6v1e;Ux z^c9@5WDQp31idLwx9#V~Gu^1q3(M~yPPb&OSw&+v2CYa%RTeMH>w(!DMMQV+TH}E# zyjP@$nlFrN1EjO3{0T3ZkHT^_4raYthqia?@}NWK&rlt*adsR<;+(x%p)5R^u-0k^ z$JbPc0Lcl_P@I-2oAR_j;tmdZS_;*(vpKUl!5s_Xna_|5pD};f-t&Kk6-N7ZC0NtP zF8>GM$$>WQ1O2eI&;|Sq`db@l~fom{g#$pMpZaFzLKY}Bj5$$Gkc(bD?0^2 z^|u!CB0C6pyUkW21%Sdk7G@ZIxJ;d0WD{pr?bZD*6Vild>U5a4+?KFfr68h?`kc=8 z+-<3b6^&E+-`Fjr5(>E97K>i*hF8mmyFKuJO+7r5^qsRp`PBm>N^^T)u?Y3zyAt|? z*aAs(U3TXl&EK)}!z|E{rJ^;aLbr`c>7lSz1d=ZFP7-bMPJ3cKaU(bz`AExB0kO*U zyMALn;99M!i_LCj)7JEI=Xj+Wb}yNTRo#sh@=?{gVs(_&%!UsEQPwBry+=sAB?&H- z9vba278x$yrTqr#J=fQlwkJ=(_%1+cCUZl=9DhD+4~xX^yqR`M$;+MyKV&I!)}phW zgXqP);iK;e5pU;7M+zNBtWlMVi2gx0ylcXy^JQ$oj-};g6*}2{Mp3Muh3w<0e?ZZl zpECZe>>neK5E``iD)>TvN2))nYqt0*gRo0#beB36yd!Uc#xsbEMqQ_qe~$g!z9=48 zQjqQDSS1Qac^D$V7OqhpQrFK$3I(am4_ezdz-^H$vJkfya5k7_YUh4kDBn}KOAYK9 zU1j~C27YWxU2wW9CU(m}5R>kSg@o;C!lNQZ1C6|0eZQ9~(; z(cmGR$RZ{KCE9+ zh1$%O{E_`LQaiWYkIYU7=J>Q zkJiq}Q%kVTuOb~$wcMK}15_m->%euigK+qJeg9N{DNz~ByL+7n1TLp(yH2>}bs2|~ z6PSlm1y1=iek*%nVA9OhK7@we0xO%vl^13Ij&MOC3+w2Yhy7%$TsVU{6|JsRiw+<8 zd)r-Rp#Jx|im#1Dcr;wXsws0`G$ci<5EDeY)$&?3)*y* zSiFx%j4XLMt!mWWV`)Qa4Rbt1*1*o(x}vx`U&8K6!qv+6{jVS8m}aLXw|WuM8U3N2aP7vQk(3U+P_BGnn%z8Rj0VM4AWAp=!11$(|+CRDgl@ zBEY=S14lZF7iAwdPv&SBBu?Q8KK3Q)$(<5;iASqMeA#*S^k8Ikt4VQSb&v<%iEm+$ z2QO*}21C^vA4+jy&a)KavIBv;Z_qTx5N^}MaF2N27X!7nuRywt%C z#8cPAj%T9(3f>f%Wi>aNltLrzdpFkoloEMpup&6-KjltM8 z8jV@LBy;{SswuD1s2v(5zzV&yypt{>mMw)!oMqzl&=)-g#oVdT!a|s|BtOomzydA= z8qp-)yUPh8$My>?^iDxeLdAthF z<-SQzlK#ijj})Ym+GxLZGQs@U&(=E=k|Cp zw9eGNbT7pNUqzu#W)jEYyV#IZi=PWXrF<7N?}bLU{GrU!sG|e{?S?-yoAtUR@lzb- zcqsE#x@jSxm`}26=JMQ;!7N=viPku9QAxUV*1=cQeizR3WmcgGuFk65h-$65nJ!GR z(HQ(1jrEZhOJ|ye({~jXYJ1%SnGnIKafQrjin`r!3f5Y7io{Kk^U~X{`3OpSgOP}P}F40wHZ_N6`=+T2vpQhH#!QHSyF#_rPx%tS?v z*@c0ao`O=OykHQi8;9m)oVivB{8_n2i;d!ejet`@Su$dpTxEq;?4f3;?hJqY&zuV= zMmM+7*1(rWrjl>E!ly$#w%60?3o!HLEwc{A@nj@Kyh*mSZFTN2g2qV-z~%PdCccgi zGu+~O>dM_)OWB&b5dFxB0$p(w+V(SIyoY}>`3Y~^u4W_MD z7qK*V&pp;K;g>uJ2DFFGKwX{9&^#lE$8-^=3&wUwG&;VJcbI27uL2G_M|EV{-Le;| z1X?)l!Jg*6THUu7elVh4Xw+tBzj!$txizt$;6;-zv3UAq&di_GyC*MP5#TzU`7#bm zcR6G5;@cLz^uBb!cB$>N*2UqBZ6*fcJOyb@(x?S{N{i%gCg0(N17)g%=)wB-5ckjA zn&wY3-L&k*n@xAbvfgXaM#b3kAIHn{wSIAb4bQAnNnOuUa2#MeeJ|eDb%69JJ-{;5 zT(l{miPIiljQvDXKEBJtPD`GF;~wvjrJB*(>e*1MPMB77HloOT?xOATFczl=msv^7 zo*})%=J|z6Dk$@K5}4HpD|t2j?6O;8 zG>__0WMLgBI>LOYkY(HQvJ7S9Voe^Mm~KTV3~H-}2t7iaJ@zJkXr8ruW=@2#_v}N` z`Fe2f5%AnL&k37Z_0heknTYkLEJc-C{Wp!SI7YPCP?@O zX@)2RTPbg7-6ld^qZK@(aK--pihC3l|e_0#s&Jooa8rIE}Z z`;OZ$wjyhfnIi|10Dh_i=_H(F%SvLisa`6-40n$VY-JbAG;SIpTxiQ$xUXuFbu%&m z4$2-iVD{K-fp#3h{_yO3iHL*2OK5APMGU6;i96`*!ang64BsF@3UT|Em-L|woD+@* zI0@}P*6;ZcdopDKg95AXIZt=IMG9Dq8yx2~tj8)cQZsdjb_KuV~Vcz*cuc$4O zuQi}rXAjqMlC(!!nYn}8p|{*0Q9v%Qq}bsjur{3Pq_DcX5f6-O}p#`+nV+R(%B2`4WkG}cN|pp92*U$^)Q*gLUukg9kd#W%moig<(j z`8DBF^>RIyaiCI>YNr@29)OmU#V8XTWlG;zVby`Yca?IRLg<$AE-z1>r%|f3iWCHZTP<>AxB!Tw8mYug37MU*3R1g=CHNeb7gak6$BC<27`VV`8#~v1oE0AWgvupu3kMF_Ay@opZ^59%UB*V!gRtHs znnl~9sZSh(dw(?Arj0ZWKH75$8|$gF0Ii)I)d)YZrLblsOOYs}OJxWLx}{|Zgtz3H*h~|_l$Ncz*gUnw5#zUY9R-=qu!R`I zyeqcR0)(F`4ii4a&pQ!+N2F0MuS%!kP0{(2GPto(fk1~lKV!$FV_(HGfp#}21PZ*CU`PEYl8{~A9GW?YFvrs}+ zCUg6wy$x~Y1TNq_5aj*=>!wtVbw}h0qEVmF1tri3{7A#pXtxe9W-y+DZb}WDQ@Da` zO4akT?*>aHNU(_Klb7cQ=}9ijkKGbpw-f#(GHt;X3nuIsyG+Fa`f1p4bXC1%Fs!ve zR9CVGF`Mq5jKAV&_$fO-kP`hKUgNUxC2+Hp9Qa7bNOZlK5cIC37R~I*GZza(+5RJC~OF9 z2ncwv;66C2FDBud(0^0=O{@Oa=2tcf3=zzFOj0v=VlF0!eAjtpg5&SM40Su%B`GY}o z%B*X-VABZr#r_6#i1*jq;1~^xe*_zbA(&{rhXet^2}&QM0+Ecf0ia7iujzyT`>NoI zzpZoxDfp{6AmBIy;JCsDRD=it!G#Y20X~-gpNo~^|3I*y&2e(T{)x708TjKB@QdPq zU=R?*%%EIeTo5WN>fah?mgC>efh)s<_HQ5@3m6Chy|BWAZkNyjnMf^SRN$t$p$Cso zZ#)ulgMk#FjR|zXo3x#8Kz?$6>qj;TfcZ~$Me#`-D0D?o_Xi5liZVW^Yz7_hCTHK9 zZxbqkfpnm|1$4lh)J1PVGU|Vepq*j{{F5Lg9(*(J!N2V7&7{%!3)-B514U0!0^X!) zc;gL9|NnrZP-x~L@@W-O2XhDrM;A+0OBZ7^J9Ac3J8RZ|_q=~3kcGhIs)1R4Z`(i9 z98^6m3HYzBEd+$%oAT(uQW4Vxpm94Ykm3wF^j}5FPcyhs<949SQ~(GxLksvRil?6*bHME?b$EHDDzgz3ETME4a8q6bIp&;Z_q zLA(JGCHw^)ERX@-aLM0*=)ZwM0-(-$bijXE%KyGkG|7KG;b$O&ek`H`-ta=-ctc40 z4=@`S#IS@8{SPq@B(j7HwUYtb$^|ENpGSxO%g)LI+XS+~SW1vy0muaIJrtl+FzEl!NWdMM=?&jmC` zAiF@+%kKgIjP?Hjp1`fd{{}GM4T@Pdhbrj>*$$I~a8}R(|N8_0k8=NW-S>jTR~TSF I_Wfh~f4qVHCjbBd diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 62e1e30..5c1b6c9 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ -distributionUrl=https\://services.gradle.org/distributions/gradle-4.3-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-bin.zip zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists From f414cbc7ee33e83372854c3c2c11f84d527b0634 Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Fri, 11 Jan 2019 21:41:59 +0100 Subject: [PATCH 04/48] Update gradle --- app/build.gradle | 6 +++--- build.gradle | 6 +++--- gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 1524c94..0c9e85c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 28 - buildToolsVersion '28.0.2' + defaultConfig { applicationId "com.termux.boot" minSdkVersion 21 @@ -30,5 +30,5 @@ android { } dependencies { - implementation 'com.android.support:support-annotations:28.0.0-rc02' -} \ No newline at end of file + implementation "androidx.annotation:annotation:1.0.1" +} diff --git a/build.gradle b/build.gradle index eefddd1..2db78f0 100644 --- a/build.gradle +++ b/build.gradle @@ -1,18 +1,18 @@ buildscript { repositories { jcenter() - google() + google() } dependencies { - classpath 'com.android.tools.build:gradle:3.1.4' + classpath 'com.android.tools.build:gradle:3.2.1' } } allprojects { repositories { jcenter() - google() + google() } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 5c1b6c9..e0b3fb8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 651bfe5ac8bbf90d5bd35a6506bc9aa0e23df2aa Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Fri, 11 Jan 2019 21:47:28 +0100 Subject: [PATCH 05/48] Update app icon --- app/src/main/AndroidManifest.xml | 5 ++- .../java/com/termux/boot/BootActivity.java | 3 +- .../res/drawable-anydpi-v26/ic_launcher.xml | 5 +++ app/src/main/res/drawable/ic_foreground.xml | 28 +++++++++++++++ app/src/main/res/drawable/ic_launcher.xml | 34 ++++++++++++++++++ app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 338 -> 0 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 1699 -> 0 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 203 -> 0 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 1110 -> 0 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 331 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 2292 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 505 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 3739 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 691 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 5058 -> 0 bytes 15 files changed, 71 insertions(+), 4 deletions(-) create mode 100644 app/src/main/res/drawable-anydpi-v26/ic_launcher.xml create mode 100644 app/src/main/res/drawable/ic_foreground.xml create mode 100644 app/src/main/res/drawable/ic_launcher.xml delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c1f0677..9a1924d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,8 +9,7 @@ @@ -32,4 +31,4 @@ android:permission="android.permission.BIND_JOB_SERVICE" /> - \ No newline at end of file + diff --git a/app/src/main/java/com/termux/boot/BootActivity.java b/app/src/main/java/com/termux/boot/BootActivity.java index 4312ad4..ae51a3e 100644 --- a/app/src/main/java/com/termux/boot/BootActivity.java +++ b/app/src/main/java/com/termux/boot/BootActivity.java @@ -2,9 +2,10 @@ import android.app.Activity; import android.os.Bundle; -import android.support.annotation.Nullable; import android.webkit.WebView; +import androidx.annotation.Nullable; + public class BootActivity extends Activity { @Override diff --git a/app/src/main/res/drawable-anydpi-v26/ic_launcher.xml b/app/src/main/res/drawable-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..6192469 --- /dev/null +++ b/app/src/main/res/drawable-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_foreground.xml b/app/src/main/res/drawable/ic_foreground.xml new file mode 100644 index 0000000..3f3e59b --- /dev/null +++ b/app/src/main/res/drawable/ic_foreground.xml @@ -0,0 +1,28 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher.xml b/app/src/main/res/drawable/ic_launcher.xml new file mode 100644 index 0000000..749a55b --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher.xml @@ -0,0 +1,34 @@ + + + + + + + + + + diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 379cce936916c8591373ce93422ab85fb0105691..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAjKV1Q4EE0Es5fB)W7=k}dBv;WMw z{in|EKXZ2f>9Yq;pWAmD$T+iZ=kB7)sTAFs+a%tdM;3rbV-n3FawKSUb)Bp|DJ#E0hItj?*H2V4IoB`<)PRm zKxI=sT^vIy7~kGF%FDti()6(K*xldni|@{TGS}=6YfX8<6sspybq-If-)XD&IEc5N z_nXte@A>D&4$TQqSwrVBuKdkV=@5A}C6u#*KY)3QX)L!1e*pUzn=8zBnN1j!`Fjs2 zym-Ih<&86rO)Q*3E-D@q6o9PA9;wYUQ*HjpEqk#;pqD@RN`j2^xv$5W6C*m?J~uA7 aBBsfE!ol&<9ZR4C89ZJ6T-G@yGywn$rkV@@ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index 7eca6a5d5733446c3531e5a06f6bb59797303073..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1699 zcmV;U23+}xP)(vug zs#X;Me#YPM+29c)#Ekh1#Fjn#aBoPW{#%y%F^%(AEK5vbVPV}o#&<}8{|p?!#XI-J zyd_ITi`K10l`2()ygVl0-j;3Jh^giTm?$i3T_2NnVl+*wAy1eCfdXzna8NXF)fxjy z2{1Ev95@teM(w@z@yFHEwh7}HrUIS6bzAfqFc3ng1^ovP5f^UX4cwnNRErcZDQ|O} zAXJdo*KZKDYS)IKX+`Zib;O$+HwVt7uX0P>%~C^-u6K4a_m9TI?-rGak>kcgI7?yl zgbCuFl+BP6GDG&H&m2n5t^5Mfp>t;lWJ$DX-(K9%^65dlWyEToWKbq2uC^Hb6U4+ zj|bZdZ98IA`TBFpT9N1k3Z`hW<7>I7koG+Gid zIO$~Wsm6r}&7cF-2?Dn6J3vk|J~@)rzQ(w4`rLULL(t6m3+Xa@Gb}-fl^Yih8a6y* z2pTeCB(d=IQ(+0BQ3^ygGlZZ(ty+&n&=iYCFr*-LFNfEzr>VscbH#dCN^pHfm|dS68bbOK{WQ& ztYyoLAqbf$WCk&FisJAQ8AH&}k)zBhiqzCVid?1;G;4uLQv<2C#)ZfU%oKvQ?Kf$x zQg_Flf+BL%D+`PfW3BKi7JHvI?J#TAwyp96Aw`BPulJ*Jxz1m`qRdx^+=pLub$C1g79^wmm_sH*fJvSctna2vswrLu9bqmYlJZ zCR1|$ak}_OMt6*#wz6Kjd@XG?nF0*praK zZpjUq?l~am0b`w#N)DY#I3mfzp#oS!PlBGaX3N&Vs>3gnJ9EN&A9X4Sl*#@>hNR7W zfQD=+fdnjVZ*0IxfU21g)y}E(M#At6RsH-Aj`DNwzFWUx9>4#KGf=p~Hs^H|gbjxuJ;p1Gd#&pRcyV zsttu9sC}URBmzVbkQ0csHw5gEycG7;6!;9+;97)c?i3b>eKm!|VOZt1dJPWJ`{`+y zXy9~$C(zcf&4Hg68SLd{ogXBCnD?DJ-wy{n^&ukU3drFq3GxeOu-*UW|39GM+sISO_kg1Qo-U3d6^zLe844+n znwaK@Dn9B_)XO*!%Aj-bN!Z0krdz=x2ZZLllg(Ig1Ss^VQSag-hxpFW)nPp*oWIzA ouV6Ws(_sAg!I>-zFVdQ&MBb@09K(-i2wiq diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index f27389931c3c8c050a4564a71edd9ab57f6bc8fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1110 zcmV-c1gZOpP)#zBTAAQ6D{2Biio0!C#ySn+JWh?N^Q!>4hd`u-%?03V>V@D&^1+BF3#@%~) zd2Jp4@u#1;I_(zlOhsKi-?(QV5djX{WI5bFer}hm)dg-~q3wsvJUhPty9;By0^X5R zSj2Z6wh)QyYK&C))YlPsv`c@^oCTM_;y%UK-+aUWo;^n+0od70tnIz=5?g{79v&IP zu46I30$&4bVNI)DS?m=FD^up+MF$3k_|)H{uz(?$8Wn{#>1)jL)aT1+=gD{@F>%UN zet38k1UTZ)?QBBQ*3B3(fSXYXa-tY&3k3RmGZ`!L>Y&3%75^ywT zXb_%vXMt`ZN3 zMgUl{VwD!mvYe*pKJze%mRM8*EnPhzz|kS-Ro>m0jEPSWmOxxmvLg=I4jmU_=P(%@ z8YV1((C}~ya1VSSs#t&jjqmV^JB@mzNB#qL+9lDLE1X{a$NJpBj_XW~13DHSZ0!vnEt%QZK zR9$@&jS?Cr5~@VP&%gdk&D`zXjD2p>8_+7j5Q>>-1gh#AD1g_S#v7W#EJN;dUv=|y z{@=WBKPeRHPLGtD&?@uXqGDkP6qJ@x_Brxep$i9R{AXyDI8cjFymnb^8Ue=gO|A^6 z#CYJZS+fI9;NQ9P$#o8xTpbXRASS7RxD-G&qJ;APH49^5ZeL>1gfrUP~;Gi!7K&wP{ z@XKbKa)QOvJ<6P0CFD`v!8zc#Ur5# z?EzI-N|k0w3N_-IwGcw<^Vh5pouJ!5`oO^hZbsLv_%r?ub7+atRnj#pRamQZB+u}R zZikw;0bMK%aTB-En4!0!_8?#bS|#K@C}ye;?^F#tjWafc0*6>|5&wph6b>Wk=cy%r c)5rhg32FVBlO=4H6951J07*qoM6N<$f=<^CDF6Tf diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index b348104de6a4c951e2bb2e28455f3b6671ead24c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 331 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy!q1AIbUf%LIs$M&B-3qohWB#3<) zBC_}7>6EN&c|}DwHa4Kj{in|W#sB~R&(6;NVB&j_S%M`&e!&c!>6@N>`|t4VH&E{X z|Ht3;^!q0PB{z7wIEGX(zBzlGky%mTfWx8_3;$=;vg)jVTD)yJ!^uB?|JKUBuIbP? z@?fs1yJoSY-|@PKT}2i*&Zyq(VrIW`?Rbd9-p~V`%=}wcUSrVb6T7fHihY{JjRP~X zm~T94IKHRh_;Ooobq0a1MvWDWf2yChO?xHpna1n0pPyj{JA=-BHzuGXfZ!iHga(pQ z^B%vRS#<0E@3+jZzmHt96WV${=B;z=<|{LD)3z~p-H|N&RaWZ>Qts*M=d#Wzp$Pya CrjKU; diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index 00661c01f19467ef23b83f37f05ef6f0c913f402..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2292 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 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index 66d02400153f0f3b3947ccbff49d6359d5e1a4f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3739 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 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index b0d21aef2d9f2afb746f2054f81647dbbd77f488..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE8Azrw%`pX1a{_!qT!Hkq6DRhcI=k=Gx&5cl z?mvCz0Eh&kJ*Q6}ICT!f-FN!z!Lw&KpE(0$0MY)lXCdMTPn-v;Ja+6DM9a>L7x$dJ z0Ax>@H$NyMLPJYiSVV-4jSXna)`N#_9US+aJ-h$Zndu7_0o7<|YXeCkVPS~g|NsB9 zv$G3}icVj+=)jqC`_G)Ij7UfX>NF_{@(X6*^Jv<0<>|NoN)x~SSft4{@2|?m>#FZK z&t2kHn*r1c2JX%OcmIF>|JipCuTkSyYoZqe1LGu57srqa#y1CD84m|AIBY!M^Y83A z2mRC=-ba{##xpP|Of|dqvq1R$nu}gtYm-hrWc12S>b6U(=&=0NZ@I&5gG9$dhG$Q& zw|sP-@$%pC=ub<&hir7Yc8H_vh+d>u(27ZFDXOOzo_XtMR1owZAgd(J$SZ=YDNeSQ1%7vG!LtxMP>YF9h(Co8NJ%*hJXIB?G+i%mOP)N8}c zC3Xj(ymvv4FO#l*_FarPp diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index 747fa10ffc42ba4c75d0af15770541965d79b84b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5058 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 Y1J6f(x8HTN2><{907*qoM6N<$f@u(sxBvhE From e8f78f6b7e48683d628c4c1b9f6b74029227bdbd Mon Sep 17 00:00:00 2001 From: Henrik Grimler Date: Tue, 25 Dec 2018 19:43:04 +0100 Subject: [PATCH 06/48] Add bug_report template --- .github/ISSUE_TEMPLATE/bug_report.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..3894b4c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,21 @@ +--- +name: Bug report +about: Create a report to help us improve termux-boot + +--- + + + +**Problem description** +A clear and concise description of what the problem with termux-boot is. You may post screenshots in addition to description. + +**Steps to reproduce** +What does your termux-boot script contain? +Please post the full script here. + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Additional information** +Post output of command `termux-info`. +If you are rooted or have access to adb then capture a logcat with `logcat -d "*:W"`, from a adb or root shell. From e37d71dfd22f723d2a5d72656f40dffd4203775c Mon Sep 17 00:00:00 2001 From: pacien Date: Wed, 21 Mar 2018 15:15:47 +0100 Subject: [PATCH 07/48] Properly signal job completion, preventing rescheduling Signed-off-by: pacien --- app/src/main/java/com/termux/boot/BootJobService.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/termux/boot/BootJobService.java b/app/src/main/java/com/termux/boot/BootJobService.java index a1a53fb..4ddbcd4 100644 --- a/app/src/main/java/com/termux/boot/BootJobService.java +++ b/app/src/main/java/com/termux/boot/BootJobService.java @@ -7,11 +7,14 @@ import android.net.Uri; import android.os.Build; import android.os.PersistableBundle; +import android.util.Log; public class BootJobService extends JobService { public static final String SCRIPT_FILE_PATH = "com.termux.boot.script_path"; + private static final String TAG = "termux:boot JobService"; + // Constants from TermuxService. private static final String TERMUX_SERVICE = "com.termux.app.TermuxService"; private static final String ACTION_EXECUTE = "com.termux.service_execute"; @@ -19,6 +22,8 @@ public class BootJobService extends JobService { @Override public boolean onStartJob(JobParameters params) { + Log.i(TAG, "Executing job " + params.getJobId() + "."); + PersistableBundle extras = params.getExtras(); String filePath = extras.getString(SCRIPT_FILE_PATH); @@ -35,11 +40,12 @@ public boolean onStartJob(JobParameters params) { context.startService(executeIntent); } - return true; + return false; // offloaded to Termux; job is done } @Override public boolean onStopJob(JobParameters params) { - return true; + Log.i(TAG, "Execution of job " + params.getJobId() + " has been cancelled."); + return false; // do not reschedule } } From 712b2c0b4d56df02e1ba17066d6f4c384317dae9 Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Tue, 6 Aug 2019 00:28:27 +0200 Subject: [PATCH 08/48] Update gradle version --- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.jar | Bin 56177 -> 55616 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 18 +++++++++++++++++- gradlew.bat | 18 +++++++++++++++++- 5 files changed, 36 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 2db78f0..9e20788 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.2.1' + classpath 'com.android.tools.build:gradle:3.4.2' } } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 13536770052936a92b204cc34e72284a03a6903c..5c2d1cf016b3885f6930543d57b744ea8c220a1a 100644 GIT binary patch delta 47360 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 delta 47987 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 PKYfr|!6OI@2KN5|iDBJb diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e0b3fb8..4b7e1f3 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index cccdd3d..8e25e6c 100755 --- a/gradlew +++ b/gradlew @@ -1,5 +1,21 @@ #!/usr/bin/env sh +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + ############################################################################## ## ## Gradle start up script for UN*X @@ -28,7 +44,7 @@ APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" diff --git a/gradlew.bat b/gradlew.bat index e95643d..24467a1 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,3 +1,19 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -14,7 +30,7 @@ set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome From b5286610b5184552d56d5bef0f81fe85e702817d Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Tue, 6 Aug 2019 00:32:49 +0200 Subject: [PATCH 09/48] Create new job id for each file executed See https://github.com/termux/termux-boot/pull/11 --- app/src/main/java/com/termux/boot/BootJobService.java | 2 +- app/src/main/java/com/termux/boot/BootReceiver.java | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/termux/boot/BootJobService.java b/app/src/main/java/com/termux/boot/BootJobService.java index 4ddbcd4..55474d2 100644 --- a/app/src/main/java/com/termux/boot/BootJobService.java +++ b/app/src/main/java/com/termux/boot/BootJobService.java @@ -13,7 +13,7 @@ public class BootJobService extends JobService { public static final String SCRIPT_FILE_PATH = "com.termux.boot.script_path"; - private static final String TAG = "termux:boot JobService"; + private static final String TAG = "termux"; // Constants from TermuxService. private static final String TERMUX_SERVICE = "com.termux.app.TermuxService"; diff --git a/app/src/main/java/com/termux/boot/BootReceiver.java b/app/src/main/java/com/termux/boot/BootReceiver.java index 9f7a265..89ee518 100644 --- a/app/src/main/java/com/termux/boot/BootReceiver.java +++ b/app/src/main/java/com/termux/boot/BootReceiver.java @@ -15,6 +15,9 @@ public class BootReceiver extends BroadcastReceiver { + public static final int TERMUX_BOOT_JOB_ID_BASE = 1000; + static int jobId = TERMUX_BOOT_JOB_ID_BASE; + @Override public void onReceive(Context context, Intent intent) { if (!Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) return; @@ -40,7 +43,7 @@ public void onReceive(Context context, Intent intent) { extras.putString(BootJobService.SCRIPT_FILE_PATH, file.getAbsolutePath()); ComponentName serviceComponent = new ComponentName(context, BootJobService.class); - JobInfo job = new JobInfo.Builder(0, serviceComponent) + JobInfo job = new JobInfo.Builder(jobId++, serviceComponent) .setExtras(extras) .setOverrideDeadline(3 * 1000) .build(); From 1ad93071124da2d6872cdcbda9aa80e92b71670d Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Tue, 6 Aug 2019 00:37:19 +0200 Subject: [PATCH 10/48] Add versionName gradle task --- app/build.gradle | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/build.gradle b/app/build.gradle index 0c9e85c..02d43b7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -32,3 +32,9 @@ android { dependencies { implementation "androidx.annotation:annotation:1.0.1" } + +task versionName { + doLast { + print android.defaultConfig.versionName + } +} From 01b248629a7146abd91e787923f1ff3fefde1335 Mon Sep 17 00:00:00 2001 From: Henrik Grimler Date: Mon, 9 Sep 2019 16:28:58 +0200 Subject: [PATCH 11/48] Update README and overview.html example scripts with shebang --- README.md | 1 + app/src/main/assets/overview.html | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 17eb784..196bf91 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ How to use Example: To start an sshd server and prevent the device from sleeping at boot, create the following file at `~/.termux/boot/start-sshd`: ```sh +#!/data/data/com.termux/files/usr/bin/sh termux-wake-lock sshd ``` diff --git a/app/src/main/assets/overview.html b/app/src/main/assets/overview.html index 903f53a..0383e88 100644 --- a/app/src/main/assets/overview.html +++ b/app/src/main/assets/overview.html @@ -10,9 +10,10 @@

Usage

Example

-

To start an sshd server and prevent the device from sleeping at boot, create a file at ~/.termux/boot/start-sshd containing the two lines

+

To start an sshd server and prevent the device from sleeping at boot, create a file at ~/.termux/boot/start-sshd containing the three lines

+    #!/data/data/com.termux/files/usr/bin/sh
     termux-wake-lock
     sshd
 
From 156b0cdde8d5926373367ba4e40e5cfe5f88246b Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Sun, 15 Sep 2019 20:10:20 +0200 Subject: [PATCH 12/48] Bump version to 0.7 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 02d43b7..9fb689e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "com.termux.boot" minSdkVersion 21 targetSdkVersion 28 - versionCode 6 - versionName "0.6" + versionCode 7 + versionName "0.7" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } From 6ec89b704c935c4596ea8ab878dfa8fc5c2776a2 Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Sat, 21 Sep 2019 22:10:34 +0200 Subject: [PATCH 13/48] Update Android Gradle plugin --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 9e20788..64b31c5 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.4.2' + classpath 'com.android.tools.build:gradle:3.5.0' } } From be7dd129b6e85d8da4543c01a4f7b4097c188594 Mon Sep 17 00:00:00 2001 From: Leonid Plyushch Date: Fri, 4 Oct 2019 23:32:13 +0300 Subject: [PATCH 14/48] CI: add configuration for Cirrus --- .cirrus.yml | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .cirrus.yml diff --git a/.cirrus.yml b/.cirrus.yml new file mode 100644 index 0000000..9d288c1 --- /dev/null +++ b/.cirrus.yml @@ -0,0 +1,40 @@ +container: + image: cirrusci/android-sdk:28 + cpu: 4 + memory: 8G + +task: + name: Run tests + script: ./gradlew test + +task: + name: Build release apk + + depends_on: + - Run tests + +# environment: +# KEYSTORE: +# KEYSTORE_PASSWORD: + + build_release_apk_script: | + ./gradlew assembleRelease + + build_apksigner_script: | + cd ../ + git clone https://github.com/fornwall/apksigner + cd apksigner + ./gradlew + cp ./build/libs/apksigner-all.jar /tmp/apksigner.jar + + sign_release_apk_script: | + echo "$KEYSTORE" | base64 -d > keystore.jks + java -jar /tmp/apksigner.jar -p "$KEYSTORE_PASSWORD" keystore.jks \ + ./app/build/outputs/apk/release/app-release-unsigned.apk \ + ./termux-boot-release-g${CIRRUS_CHANGE_IN_REPO:0:8}.apk + + release_artifacts: + path: "./*.apk" + + unsigned_artifacts: + path: "./app/build/outputs/apk/release/*.apk" From 1e7c13c02145e7b85ebef6f870e41a115bd65d21 Mon Sep 17 00:00:00 2001 From: Leonid Plyushch Date: Sat, 5 Oct 2019 00:26:55 +0300 Subject: [PATCH 15/48] CI: add sample keystore --- .cirrus.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 9d288c1..f05bddd 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -13,9 +13,9 @@ task: depends_on: - Run tests -# environment: -# KEYSTORE: -# KEYSTORE_PASSWORD: + environment: + KEYSTORE: ENCRYPTED[6510e0b810884250a3756992cf19030ea21c99c24c2014c68cafa699a19b0bd3f9607ae7241220b02c8c3ee90f3622bc] + KEYSTORE_PASSWORD: ENCRYPTED[43942d98f49a1675da29b88d74ee60666f81945f2168126023e7896d137b0a21c4540a0d96fab8f0ca03428e5270642d] build_release_apk_script: | ./gradlew assembleRelease From 80637080a8b17d8fde030c4110e4b7c821547f5a Mon Sep 17 00:00:00 2001 From: Leonid Plyushch Date: Sat, 5 Oct 2019 00:27:10 +0300 Subject: [PATCH 16/48] update readme --- README.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 196bf91..0676f1e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ -Termux:Boot -=========== +# Termux:Boot + +[![Build status](https://api.cirrus-ci.com/github/termux/termux-boot.svg?branch=master)](https://cirrus-ci.com/termux/termux-boot) [![Join the chat at https://gitter.im/termux/termux](https://badges.gitter.im/termux/termux.svg)](https://gitter.im/termux/termux) A [Termux](https://termux.com) add-on app to run programs at boot. @@ -7,14 +8,15 @@ A [Termux](https://termux.com) add-on app to run programs at boot. - [Termux:Boot on Google Play](https://play.google.com/store/apps/details?id=com.termux.boot) - [Termux:Boot on F-Droid](https://f-droid.org/packages/com.termux.boot) -When developing (or packaging), note that this app needs to be signed with the same key as the main Termux app in order to have the permission to execute scripts. +When developing (or packaging), note that this app needs to be signed with the +same key as the main Termux app in order to have the permission to execute scripts. + +## License -License -======= Released under [the GPLv3 license](https://www.gnu.org/licenses/gpl.html). -How to use -========== +## How to use + 1. Install the Termux:Boot app. 2. Start the Termux:Boot app once by clicking on its launcher icon. This allows the app to be run at boot. 3. Create the `~/.termux/boot/` directory. From 103bce158b3dbbdcafb7055ead2a619b01cc22d3 Mon Sep 17 00:00:00 2001 From: Leonid Plyushch Date: Sat, 5 Oct 2019 00:55:08 +0300 Subject: [PATCH 17/48] CI: remove tests task Application doesn't have tests. --- .cirrus.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index f05bddd..fefb7e0 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -3,16 +3,9 @@ container: cpu: 4 memory: 8G -task: - name: Run tests - script: ./gradlew test - task: name: Build release apk - depends_on: - - Run tests - environment: KEYSTORE: ENCRYPTED[6510e0b810884250a3756992cf19030ea21c99c24c2014c68cafa699a19b0bd3f9607ae7241220b02c8c3ee90f3622bc] KEYSTORE_PASSWORD: ENCRYPTED[43942d98f49a1675da29b88d74ee60666f81945f2168126023e7896d137b0a21c4540a0d96fab8f0ca03428e5270642d] From 354f00901e2d7f67835bb69b5f5e328698b5709c Mon Sep 17 00:00:00 2001 From: Leonid Plyushch Date: Mon, 7 Oct 2019 14:44:03 +0300 Subject: [PATCH 18/48] CI: development builds are now signed with publically-shared key This commit adds keystore which is shared with community. People freely can use it for creating own Termux app and plugin builds. However, builds signed with such keystore cannot be proven as official. Signed-off-by: Leonid Plyushch --- .cirrus.yml | 32 ++++++-------------------------- app/build.gradle | 11 +++++++++++ app/dev_keystore.jks | Bin 0 -> 2097 bytes 3 files changed, 17 insertions(+), 26 deletions(-) create mode 100644 app/dev_keystore.jks diff --git a/.cirrus.yml b/.cirrus.yml index fefb7e0..4285ac2 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,33 +1,13 @@ container: image: cirrusci/android-sdk:28 - cpu: 4 + cpu: 1 memory: 8G task: - name: Build release apk + name: debug-build - environment: - KEYSTORE: ENCRYPTED[6510e0b810884250a3756992cf19030ea21c99c24c2014c68cafa699a19b0bd3f9607ae7241220b02c8c3ee90f3622bc] - KEYSTORE_PASSWORD: ENCRYPTED[43942d98f49a1675da29b88d74ee60666f81945f2168126023e7896d137b0a21c4540a0d96fab8f0ca03428e5270642d] + script: | + ./gradlew assembleDebug - build_release_apk_script: | - ./gradlew assembleRelease - - build_apksigner_script: | - cd ../ - git clone https://github.com/fornwall/apksigner - cd apksigner - ./gradlew - cp ./build/libs/apksigner-all.jar /tmp/apksigner.jar - - sign_release_apk_script: | - echo "$KEYSTORE" | base64 -d > keystore.jks - java -jar /tmp/apksigner.jar -p "$KEYSTORE_PASSWORD" keystore.jks \ - ./app/build/outputs/apk/release/app-release-unsigned.apk \ - ./termux-boot-release-g${CIRRUS_CHANGE_IN_REPO:0:8}.apk - - release_artifacts: - path: "./*.apk" - - unsigned_artifacts: - path: "./app/build/outputs/apk/release/*.apk" + output_artifacts: + path: "./app/build/outputs/apk/debug/*.apk" diff --git a/app/build.gradle b/app/build.gradle index 9fb689e..8e6db7e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,13 +12,24 @@ android { testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } + signingConfigs { + debug { + storeFile file('dev_keystore.jks') + keyAlias 'alias' + storePassword 'xrj45yWGLbsO7W0v' + keyPassword 'xrj45yWGLbsO7W0v' + } + } + buildTypes { release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } + debug { + signingConfig signingConfigs.debug zipAlignEnabled true } } diff --git a/app/dev_keystore.jks b/app/dev_keystore.jks new file mode 100644 index 0000000000000000000000000000000000000000..174cc95acd605bf557f9e63983f55fadc5ae44bd GIT binary patch literal 2097 zcmbW1dpOgJAIJCIMROk`WY(HSNXCZ42syb#xvfbXBITaTl-rTawPUPoP84wxvzSX) z*WsklYK7d&_2d##Bndwpzsq@^^Y`zM_aCq4^E{vDb9tWE*22~T2m}J}1o%&2J|TfV z^c@OikDxq3AQ*sWKsWI+ViG!H02I&$%K-ok1Z6;H@f7nw;XKE~r-Rc}UysG8b8`+3 zaKmS-jr5o{SCP8uu-J*^GyFYRWhu#0 z>t<$WClxHdNaB(zFReHwKYsVzqu=L%i!WGRZZ$pf#Yu6ZsC9QL5?Q;;{^9wK<&0DX zmNu_>81-1Q>Z#=y4=1WFfT+3S>UR4SO7BkZT+dH`z?dc%PuSvpeuPv6|!-(VL zQ^%PiH=6;~;fxshnQJ)l$%_Sy6P#FyTqWbyP>t=M_}R}SXYn_xQIwBH^PG6a-0GB2 zL?60;HtO2fX;T;X(87|~0+Xc%yo$kU>6XS*3{4#~(zS>~Z$$XTsXmgoP0Tx#P5nXG z*U>26+8Y5;Nd9qR!q^9%=&_|A`=*=kp6)-zCn201>!oE?Hv{DYR75qdA|-EAcLzkQ0^ z4L@?sdV*7{T#(@@M(@%cCuOf!pT8Z?9D<$ZY8ocpxYjs1q(l0QB)yp9kSA+FoYLTSkVls8Uw{^G@haj;DuNC7}h_X;^R+~$L zV-@=2`u7B2Z~CVY9^3TQ7hT)aN4*vvmDgIcSs|pKEoP&vvn&|L=w#$b1MX_?HqE$c zpW{q|bEe=un!~bliG4?rX}5khF5bBwmiCQ960)*8UBp7iU8(g03D}xKue`e}ieXW% zjm8+l`Vf^@7j}Ho$!=_%QCvTi-g^$wmc03kgLYD`npCbNwlffW*2AI8sc}_DXwCHr z-@8;~J52g?$t9uGoUAWxq&pEXaBY;HLgpE&A*Spt%{x22X}df;g)Deq>z#p0EB67j zW?-LWLJxxJ`jci9G$!c>eZd*6R15bVuqxH*&-4A|R^65U#O)S6cn{Um9v-PTj?;VH z9MZr4yLF35(5bW+{^2tD0FS<$WaUn^#8=aPC@l1Fjxd=$6VdRd0!O3adhgf{_4VW} z%dYR=5@`1;>H~_~1hS8{wqnH$C!95bZcbcYm#le-#h?H6;;BQ1c#|Dd&fyv0X*>fE z6+^%P7!1`CXvO2D#l*GK?9x`HcjO2I;SKd=@KR!slTZmM*ioOzsDQs&@^41s<^ElV zNJ&^ZJ7C-b{V$x0#G{p@^-b_5c!B|8C&bfA(nJ$|yn*5W@c(Vg0I>fYa7W(|1|SRC z*+Bx#007Xh&mlofl_28n{OOYvrmei(5x-+yIrQpFpKOC|9hel40EfK3H?pz+bGf3Q(Mm1cQ|0SMc{5q|O$1xYI6K~wZbHQ@LY(AB9xR1p zx{#m))|5T&e2aFropN%LDHU-uG^2A9Hrt7$z z$&)?RR2OfPY?S=Y=~L0zh$PV}&9$UxQHh-tOW-=1bQsdgTp~e>6!Gq)xi*X8w#=U?cKT z8*?>+z+Zj0>2M8GE4X=J=Byb-5UB%N{6dp0RQXbp<3u4JlnE5@$Y43o# z_bJkeeSx@OVPD8{OyQ(G!Ef=G0Ir^B^L7S_e^tXet#;c#NCUT@4=iL}$h0=yR-Y~c hj~#VhH9HJD9eBKXgx6a9(6#$et0J;JPJugM`WN=>nzsM| literal 0 HcmV?d00001 From afa7fa6e6dff2cd83921c57f4cc6b01e3c4bcb43 Mon Sep 17 00:00:00 2001 From: Leonid Plyushch Date: Mon, 7 Oct 2019 15:20:01 +0300 Subject: [PATCH 19/48] update readme --- README.md | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0676f1e..0fb1e3c 100644 --- a/README.md +++ b/README.md @@ -5,12 +5,25 @@ A [Termux](https://termux.com) add-on app to run programs at boot. -- [Termux:Boot on Google Play](https://play.google.com/store/apps/details?id=com.termux.boot) -- [Termux:Boot on F-Droid](https://f-droid.org/packages/com.termux.boot) - When developing (or packaging), note that this app needs to be signed with the same key as the main Termux app in order to have the permission to execute scripts. +## Installation + +Termux:Boot application can be obtained from: + +- [Google Play](https://play.google.com/store/apps/details?id=com.termux.boot) +- [F-Droid](https://f-droid.org/en/packages/com.termux.boot/) +- [Kali Nethunter Store](https://store.nethunter.com/en/packages/com.termux.boot/) + +Additionally we offer development builds for those who want to try out latest +features ready to be included in future versions. Such build can be obtained +directly from [Cirrus CI artifacts](https://api.cirrus-ci.com/v1/artifact/github/termux/termux-boot/debug-build/output/app/build/outputs/apk/debug/app-debug.apk). + +Signature keys of all offered builds are different. Before you switch the +installation source, you will have to uninstall the Termux application and +all currently installed plugins. + ## License Released under [the GPLv3 license](https://www.gnu.org/licenses/gpl.html). From 7fb45001a963c8e8c709ea501901963b313c159e Mon Sep 17 00:00:00 2001 From: Leonid Plyushch Date: Mon, 7 Oct 2019 15:23:25 +0300 Subject: [PATCH 20/48] readme: fix section order --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0fb1e3c..d668eff 100644 --- a/README.md +++ b/README.md @@ -24,10 +24,6 @@ Signature keys of all offered builds are different. Before you switch the installation source, you will have to uninstall the Termux application and all currently installed plugins. -## License - -Released under [the GPLv3 license](https://www.gnu.org/licenses/gpl.html). - ## How to use 1. Install the Termux:Boot app. @@ -43,3 +39,7 @@ Example: To start an sshd server and prevent the device from sleeping at boot, c termux-wake-lock sshd ``` + +## License + +Released under [the GPLv3 license](https://www.gnu.org/licenses/gpl.html). From 29e53e3d95b5e263ee983158622c2bbf98f08078 Mon Sep 17 00:00:00 2001 From: Leonid Plyushch Date: Fri, 7 Feb 2020 14:22:07 +0200 Subject: [PATCH 21/48] CI: switch to Github Actions --- .cirrus.yml | 13 ------------- .github/workflows/debug_build.yml | 18 ++++++++++++++++++ README.md | 2 +- 3 files changed, 19 insertions(+), 14 deletions(-) delete mode 100644 .cirrus.yml create mode 100644 .github/workflows/debug_build.yml diff --git a/.cirrus.yml b/.cirrus.yml deleted file mode 100644 index 4285ac2..0000000 --- a/.cirrus.yml +++ /dev/null @@ -1,13 +0,0 @@ -container: - image: cirrusci/android-sdk:28 - cpu: 1 - memory: 8G - -task: - name: debug-build - - script: | - ./gradlew assembleDebug - - output_artifacts: - path: "./app/build/outputs/apk/debug/*.apk" diff --git a/.github/workflows/debug_build.yml b/.github/workflows/debug_build.yml new file mode 100644 index 0000000..d6c8dc4 --- /dev/null +++ b/.github/workflows/debug_build.yml @@ -0,0 +1,18 @@ +name: Build + +on: push + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Clone repository + uses: actions/checkout@v2 + - name: Build + run: | + ./gradlew assembleDebug + - name: Store generated APK file + uses: actions/upload-artifact@v1 + with: + name: termux-boot + path: ./app/build/outputs/apk/debug/app-debug.apk diff --git a/README.md b/README.md index d668eff..e1485f4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Termux:Boot -[![Build status](https://api.cirrus-ci.com/github/termux/termux-boot.svg?branch=master)](https://cirrus-ci.com/termux/termux-boot) +[![Build status](https://github.com/termux/termux-boot/workflows/Build/badge.svg)](https://github.com/termux/termux-boot/actions) [![Join the chat at https://gitter.im/termux/termux](https://badges.gitter.im/termux/termux.svg)](https://gitter.im/termux/termux) A [Termux](https://termux.com) add-on app to run programs at boot. From b63afd76515eff0b2e5de18af3bc13b0f63fee6d Mon Sep 17 00:00:00 2001 From: Leonid Plyushch Date: Fri, 7 Feb 2020 15:17:28 +0200 Subject: [PATCH 22/48] update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 28 +++++++++++++++++------ .github/ISSUE_TEMPLATE/feature_request.md | 17 ++++++++++++++ 2 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 3894b4c..ad9f3be 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,21 +1,35 @@ --- name: Bug report -about: Create a report to help us improve termux-boot +about: Create a report to help us improve Termux:Boot application --- - + **Problem description** -A clear and concise description of what the problem with termux-boot is. You may post screenshots in addition to description. + **Steps to reproduce** -What does your termux-boot script contain? -Please post the full script here. + **Expected behavior** + **Additional information** -Post output of command `termux-info`. -If you are rooted or have access to adb then capture a logcat with `logcat -d "*:W"`, from a adb or root shell. + +* Termux application version: +* Android OS version: +* Device model: diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..61292e1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,17 @@ +--- +name: Feature request +about: Suggest a new feature for Termux:Boot application + +--- + + + +**Feature description** + From ad4038275b41943b1293b2ae2105e47c65ce69bc Mon Sep 17 00:00:00 2001 From: Leonid Plyushch Date: Fri, 7 Feb 2020 15:51:52 +0200 Subject: [PATCH 23/48] update readme --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e1485f4..170cb6d 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,10 @@ Termux:Boot application can be obtained from: - [F-Droid](https://f-droid.org/en/packages/com.termux.boot/) - [Kali Nethunter Store](https://store.nethunter.com/en/packages/com.termux.boot/) -Additionally we offer development builds for those who want to try out latest -features ready to be included in future versions. Such build can be obtained -directly from [Cirrus CI artifacts](https://api.cirrus-ci.com/v1/artifact/github/termux/termux-boot/debug-build/output/app/build/outputs/apk/debug/app-debug.apk). +Additionally we provide per-commit debug builds for those who want to try +out the latest features or test their pull request. This build can be obtained +from one of the workflow runs listed on [Github Actions](https://github.com/termux/termux-boot/actions) +page. Signature keys of all offered builds are different. Before you switch the installation source, you will have to uninstall the Termux application and From 3206ef2d159d3c61aa631d9e6d1feadda1ecd225 Mon Sep 17 00:00:00 2001 From: Leonid Pliushch Date: Wed, 3 Feb 2021 03:04:29 +0200 Subject: [PATCH 24/48] readme: remove links to Google Play and Nethunter stores Both offer outdated builds. --- README.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/README.md b/README.md index 170cb6d..56bdbae 100644 --- a/README.md +++ b/README.md @@ -10,11 +10,7 @@ same key as the main Termux app in order to have the permission to execute scrip ## Installation -Termux:Boot application can be obtained from: - -- [Google Play](https://play.google.com/store/apps/details?id=com.termux.boot) -- [F-Droid](https://f-droid.org/en/packages/com.termux.boot/) -- [Kali Nethunter Store](https://store.nethunter.com/en/packages/com.termux.boot/) +Termux:Boot application can be obtained from [F-Droid](https://f-droid.org/en/packages/com.termux.boot/). Additionally we provide per-commit debug builds for those who want to try out the latest features or test their pull request. This build can be obtained From 761c1fcb772bc9c37c703c16975fbb3514bf9722 Mon Sep 17 00:00:00 2001 From: agnostic-apollo <31106828+agnostic-apollo@users.noreply.github.com> Date: Fri, 2 Jul 2021 09:31:59 +0500 Subject: [PATCH 25/48] Update debug_build.yml --- .github/workflows/debug_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/debug_build.yml b/.github/workflows/debug_build.yml index d6c8dc4..16e3719 100644 --- a/.github/workflows/debug_build.yml +++ b/.github/workflows/debug_build.yml @@ -12,7 +12,7 @@ jobs: run: | ./gradlew assembleDebug - name: Store generated APK file - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v2 with: name: termux-boot path: ./app/build/outputs/apk/debug/app-debug.apk From 1ac4cf96ad79ad7caf25e9039548585ddc1096e3 Mon Sep 17 00:00:00 2001 From: Henrik Grimler Date: Wed, 30 Mar 2022 20:28:59 +0200 Subject: [PATCH 26/48] Remove notice about Google+ from termux-boot info page And use termux.org instead of termux.com in community url. --- app/src/main/assets/overview.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/assets/overview.html b/app/src/main/assets/overview.html index 0383e88..6f6bb3e 100644 --- a/app/src/main/assets/overview.html +++ b/app/src/main/assets/overview.html @@ -19,7 +19,7 @@

Example

Learn more

-

Join the Termux Google+ community at https://termux.com/community +

Join the Termux community through the various channels listed at https://termux.org/community

Report issues

https://github.com/termux/termux-boot/issues From 29a116f062d43eeecd0c17e14daca7e8275dc561 Mon Sep 17 00:00:00 2001 From: Henrik Grimler Date: Sun, 3 Jul 2022 19:12:08 +0200 Subject: [PATCH 27/48] README: change termux url termux.com->termux.dev --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 56bdbae..d218db9 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![Build status](https://github.com/termux/termux-boot/workflows/Build/badge.svg)](https://github.com/termux/termux-boot/actions) [![Join the chat at https://gitter.im/termux/termux](https://badges.gitter.im/termux/termux.svg)](https://gitter.im/termux/termux) -A [Termux](https://termux.com) add-on app to run programs at boot. +A [Termux](https://termux.dev) add-on app to run programs at boot. When developing (or packaging), note that this app needs to be signed with the same key as the main Termux app in order to have the permission to execute scripts. From db789ee9a2279f01ed3b59b0b222f7fa0f79a084 Mon Sep 17 00:00:00 2001 From: Leonid Pliushch Date: Wed, 21 Sep 2022 10:30:24 +0300 Subject: [PATCH 28/48] rename dev_keystore.jks to testkey_untrusted.jks Hopefully the new name of keystore file would provide to potential user more info about what it actually is. --- app/build.gradle | 2 +- app/{dev_keystore.jks => testkey_untrusted.jks} | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename app/{dev_keystore.jks => testkey_untrusted.jks} (100%) diff --git a/app/build.gradle b/app/build.gradle index 8e6db7e..1a69a44 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -14,7 +14,7 @@ android { signingConfigs { debug { - storeFile file('dev_keystore.jks') + storeFile file('testkey_untrusted.jks') keyAlias 'alias' storePassword 'xrj45yWGLbsO7W0v' keyPassword 'xrj45yWGLbsO7W0v' diff --git a/app/dev_keystore.jks b/app/testkey_untrusted.jks similarity index 100% rename from app/dev_keystore.jks rename to app/testkey_untrusted.jks From 54e1311c134d9bfdd490715918be94d83755c630 Mon Sep 17 00:00:00 2001 From: Lucy Phipps Date: Mon, 7 Nov 2022 01:17:52 +0000 Subject: [PATCH 29/48] Create dependabot.yml --- .github/dependabot.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..a83ef38 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: +- package-ecosystem: github-actions + directory: / + schedule: + interval: daily From a81907cc6f61c811f28298dda41faf3dd396b26e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Nov 2022 01:18:14 +0000 Subject: [PATCH 30/48] Bump actions/checkout from 2 to 3 Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/debug_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/debug_build.yml b/.github/workflows/debug_build.yml index 16e3719..5e33753 100644 --- a/.github/workflows/debug_build.yml +++ b/.github/workflows/debug_build.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Clone repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Build run: | ./gradlew assembleDebug From 8c4c16913dd680b0f34f975815cec4c5abbcba60 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Nov 2022 01:18:16 +0000 Subject: [PATCH 31/48] Bump actions/upload-artifact from 2 to 3 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/debug_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/debug_build.yml b/.github/workflows/debug_build.yml index 16e3719..7d856cc 100644 --- a/.github/workflows/debug_build.yml +++ b/.github/workflows/debug_build.yml @@ -12,7 +12,7 @@ jobs: run: | ./gradlew assembleDebug - name: Store generated APK file - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: termux-boot path: ./app/build/outputs/apk/debug/app-debug.apk From 8c1c6b18c53f1f120290bb1243f98060d2bd0843 Mon Sep 17 00:00:00 2001 From: Henrik Grimler Date: Sat, 11 Mar 2023 12:06:13 +0100 Subject: [PATCH 32/48] README: add example for how to start termux-services on boot Similar to example found in termux-boot wiki page: https://wiki.termux.com/wiki/Termux:Boot --- README.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d218db9..c2974d8 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,10 @@ all currently installed plugins. 4. Put scripts you want to execute inside the `~/.termux/boot/` directory. If there are multiple files, they will be executed in a sorted order. 5. Note that you may want to run `termux-wake-lock` as first thing if you want to ensure that the device is prevented from sleeping. -Example: To start an sshd server and prevent the device from sleeping at boot, create the following file at `~/.termux/boot/start-sshd`: +### Examples + +To start an sshd server and prevent the device from sleeping at boot, +create the following file at `~/.termux/boot/start-sshd`: ```sh #!/data/data/com.termux/files/usr/bin/sh @@ -37,6 +40,17 @@ termux-wake-lock sshd ``` +To start +[termux-services](https://wiki.termux.com/wiki/Termux-services), which +in turn starts enabled services, you can put the following in +`~/.termux/boot/start-services`: + +```sh +#!/data/data/com.termux/files/usr/bin/sh +termux-wake-lock +source /data/data/com.termux/files/usr/etc/profile.d/start-services.sh +``` + ## License Released under [the GPLv3 license](https://www.gnu.org/licenses/gpl.html). From dba8cc852f85480ef72e09ea704db5e10e4dbeec Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Tue, 27 Jun 2023 13:57:20 +0500 Subject: [PATCH 33/48] Changed: Update README.md to add termux-app installation docs link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c2974d8..9963f97 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ page. Signature keys of all offered builds are different. Before you switch the installation source, you will have to uninstall the Termux application and -all currently installed plugins. +all currently installed plugins. Check https://github.com/termux/termux-app#Installation for more info. ## How to use From 925e20c905fe9f73fc86ac8b5ed7ff6ab589ee3c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 14:45:50 +0000 Subject: [PATCH 34/48] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/debug_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/debug_build.yml b/.github/workflows/debug_build.yml index ef15998..90ae830 100644 --- a/.github/workflows/debug_build.yml +++ b/.github/workflows/debug_build.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Clone repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Build run: | ./gradlew assembleDebug From 8cda78a775fe4b790ab6c08fd9bb33e3b00b94b2 Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Tue, 17 Oct 2023 02:23:47 +0200 Subject: [PATCH 35/48] Update gradle --- app/build.gradle | 6 +- app/src/main/AndroidManifest.xml | 1 - build.gradle | 10 +- gradle.properties | 2 + gradle/wrapper/gradle-wrapper.jar | Bin 55616 -> 63721 bytes gradle/wrapper/gradle-wrapper.properties | 4 +- gradlew | 285 ++++++++++++++--------- gradlew.bat | 38 ++- 8 files changed, 199 insertions(+), 147 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 1a69a44..5b2e2f1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,12 +1,13 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 28 + namespace "com.termux.boot" defaultConfig { applicationId "com.termux.boot" minSdkVersion 21 targetSdkVersion 28 + compileSdk 34 versionCode 7 versionName "0.7" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" @@ -30,7 +31,6 @@ android { debug { signingConfig signingConfigs.debug - zipAlignEnabled true } } @@ -41,7 +41,7 @@ android { } dependencies { - implementation "androidx.annotation:annotation:1.0.1" + implementation "androidx.annotation:annotation:1.7.0" } task versionName { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9a1924d..73422a6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,6 @@ diff --git a/build.gradle b/build.gradle index 64b31c5..53213c3 100644 --- a/build.gradle +++ b/build.gradle @@ -1,21 +1,17 @@ buildscript { repositories { - jcenter() + mavenCentral() google() } dependencies { - classpath 'com.android.tools.build:gradle:3.5.0' + classpath 'com.android.tools.build:gradle:8.1.2' } } allprojects { repositories { - jcenter() + mavenCentral() google() } } - -task clean(type: Delete) { - delete rootProject.buildDir -} diff --git a/gradle.properties b/gradle.properties index 919f4b6..6f28211 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,3 +16,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 + +android.useAndroidX=true diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 5c2d1cf016b3885f6930543d57b744ea8c220a1a..7f93135c49b765f8051ef9d0a6055ff8e46073d8 100644 GIT binary patch delta 45054 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 delta 36991 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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 4b7e1f3..3fa8f86 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 8e25e6c..1aa94a4 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ -#!/usr/bin/env sh +#!/bin/sh # -# Copyright 2015 the original author or authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,78 +17,111 @@ # ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -97,92 +130,120 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=$((i+1)) + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=$(save "$@") -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" fi +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 24467a1..6689b85 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -14,7 +14,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,10 +25,14 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @@ -37,7 +41,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -51,7 +55,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -61,38 +65,26 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal From 3f9a106fdf6573b1cd1b785be4e0d46fb1fa824d Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Tue, 17 Oct 2023 03:22:07 +0200 Subject: [PATCH 36/48] Setup java 17 in CI --- .github/workflows/debug_build.yml | 5 ++ .../java/com/termux/boot/BootJobService.java | 51 ------------------- 2 files changed, 5 insertions(+), 51 deletions(-) delete mode 100644 app/src/main/java/com/termux/boot/BootJobService.java diff --git a/.github/workflows/debug_build.yml b/.github/workflows/debug_build.yml index 90ae830..3bfc69e 100644 --- a/.github/workflows/debug_build.yml +++ b/.github/workflows/debug_build.yml @@ -8,6 +8,11 @@ jobs: steps: - name: Clone repository uses: actions/checkout@v4 + - name: Setup java 17 as required by gradle + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '17' - name: Build run: | ./gradlew assembleDebug diff --git a/app/src/main/java/com/termux/boot/BootJobService.java b/app/src/main/java/com/termux/boot/BootJobService.java deleted file mode 100644 index 55474d2..0000000 --- a/app/src/main/java/com/termux/boot/BootJobService.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.termux.boot; - -import android.app.job.JobParameters; -import android.app.job.JobService; -import android.content.Context; -import android.content.Intent; -import android.net.Uri; -import android.os.Build; -import android.os.PersistableBundle; -import android.util.Log; - -public class BootJobService extends JobService { - - public static final String SCRIPT_FILE_PATH = "com.termux.boot.script_path"; - - private static final String TAG = "termux"; - - // Constants from TermuxService. - private static final String TERMUX_SERVICE = "com.termux.app.TermuxService"; - private static final String ACTION_EXECUTE = "com.termux.service_execute"; - private static final String EXTRA_EXECUTE_IN_BACKGROUND = "com.termux.execute.background"; - - @Override - public boolean onStartJob(JobParameters params) { - Log.i(TAG, "Executing job " + params.getJobId() + "."); - - PersistableBundle extras = params.getExtras(); - String filePath = extras.getString(SCRIPT_FILE_PATH); - - Uri scriptUri = new Uri.Builder().scheme("com.termux.file").path(filePath).build(); - Intent executeIntent = new Intent(ACTION_EXECUTE, scriptUri); - executeIntent.setClassName("com.termux", TERMUX_SERVICE); - executeIntent.putExtra(EXTRA_EXECUTE_IN_BACKGROUND, true); - - Context context = getApplicationContext(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - // https://developer.android.com/about/versions/oreo/background.html - context.startForegroundService(executeIntent); - } else { - context.startService(executeIntent); - } - - return false; // offloaded to Termux; job is done - } - - @Override - public boolean onStopJob(JobParameters params) { - Log.i(TAG, "Execution of job " + params.getJobId() + " has been cancelled."); - return false; // do not reschedule - } -} From e7d2abd1a762a63f36b2f713b3460fd5885c5395 Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Tue, 17 Oct 2023 03:28:31 +0200 Subject: [PATCH 37/48] Add back BootJobService --- .../java/com/termux/boot/BootJobService.java | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 app/src/main/java/com/termux/boot/BootJobService.java diff --git a/app/src/main/java/com/termux/boot/BootJobService.java b/app/src/main/java/com/termux/boot/BootJobService.java new file mode 100644 index 0000000..55474d2 --- /dev/null +++ b/app/src/main/java/com/termux/boot/BootJobService.java @@ -0,0 +1,51 @@ +package com.termux.boot; + +import android.app.job.JobParameters; +import android.app.job.JobService; +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.os.Build; +import android.os.PersistableBundle; +import android.util.Log; + +public class BootJobService extends JobService { + + public static final String SCRIPT_FILE_PATH = "com.termux.boot.script_path"; + + private static final String TAG = "termux"; + + // Constants from TermuxService. + private static final String TERMUX_SERVICE = "com.termux.app.TermuxService"; + private static final String ACTION_EXECUTE = "com.termux.service_execute"; + private static final String EXTRA_EXECUTE_IN_BACKGROUND = "com.termux.execute.background"; + + @Override + public boolean onStartJob(JobParameters params) { + Log.i(TAG, "Executing job " + params.getJobId() + "."); + + PersistableBundle extras = params.getExtras(); + String filePath = extras.getString(SCRIPT_FILE_PATH); + + Uri scriptUri = new Uri.Builder().scheme("com.termux.file").path(filePath).build(); + Intent executeIntent = new Intent(ACTION_EXECUTE, scriptUri); + executeIntent.setClassName("com.termux", TERMUX_SERVICE); + executeIntent.putExtra(EXTRA_EXECUTE_IN_BACKGROUND, true); + + Context context = getApplicationContext(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + // https://developer.android.com/about/versions/oreo/background.html + context.startForegroundService(executeIntent); + } else { + context.startService(executeIntent); + } + + return false; // offloaded to Termux; job is done + } + + @Override + public boolean onStopJob(JobParameters params) { + Log.i(TAG, "Execution of job " + params.getJobId() + " has been cancelled."); + return false; // do not reschedule + } +} From 6f3fa43fe950c5a2d1a188312a53c11265ee6bfe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jan 2024 15:28:01 +0000 Subject: [PATCH 38/48] Bump actions/setup-java from 3 to 4 (#176) --- .github/workflows/debug_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/debug_build.yml b/.github/workflows/debug_build.yml index 3bfc69e..24a5754 100644 --- a/.github/workflows/debug_build.yml +++ b/.github/workflows/debug_build.yml @@ -9,7 +9,7 @@ jobs: - name: Clone repository uses: actions/checkout@v4 - name: Setup java 17 as required by gradle - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '17' From 809e42932ccb7001a5e3a6485428b87e6a04b42c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jan 2024 15:28:19 +0000 Subject: [PATCH 39/48] Bump actions/upload-artifact from 3 to 4 (#177) --- .github/workflows/debug_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/debug_build.yml b/.github/workflows/debug_build.yml index 24a5754..67b5a98 100644 --- a/.github/workflows/debug_build.yml +++ b/.github/workflows/debug_build.yml @@ -17,7 +17,7 @@ jobs: run: | ./gradlew assembleDebug - name: Store generated APK file - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: termux-boot path: ./app/build/outputs/apk/debug/app-debug.apk From fd04a4c5ef14ab4b4b747238484cbd474a07e9dd Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Mon, 15 Apr 2024 22:29:57 +0500 Subject: [PATCH 40/48] Added: Add `gradle.properties` file for `minSdkVersion`, `targetSdkVersion` and `compileSdkVersion` properties --- app/build.gradle | 7 ++++--- gradle.properties | 5 ++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 5b2e2f1..9a12876 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,11 +3,12 @@ apply plugin: 'com.android.application' android { namespace "com.termux.boot" + compileSdkVersion project.properties.compileSdkVersion.toInteger() + defaultConfig { applicationId "com.termux.boot" - minSdkVersion 21 - targetSdkVersion 28 - compileSdk 34 + minSdkVersion project.properties.minSdkVersion.toInteger() + targetSdkVersion project.properties.targetSdkVersion.toInteger() versionCode 7 versionName "0.7" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" diff --git a/gradle.properties b/gradle.properties index 6f28211..09ff688 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,6 @@ # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -# suppress inspection "UnusedProperty" org.gradle.jvmargs=-Xmx1536m # When configured, Gradle will run in incubating parallel mode. @@ -18,3 +17,7 @@ org.gradle.jvmargs=-Xmx1536m # org.gradle.parallel=true android.useAndroidX=true + +minSdkVersion=21 +targetSdkVersion=28 +compileSdkVersion=34 From 16557303c94c4cadafda3dd18574781a1469a56c Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Wed, 17 Apr 2024 23:08:51 +0500 Subject: [PATCH 41/48] Changed: Bump gradle to `8.5` and android gradle plugin to `8.3.2` --- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 53213c3..6deee41 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:8.1.2' + classpath "com.android.tools.build:gradle:8.3.2" } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 3fa8f86..e6aba25 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From f26515ea7762adad5b5afd100e3c166b88414221 Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Wed, 17 Apr 2024 23:29:41 +0500 Subject: [PATCH 42/48] Changed: Rename `minSdkVersion` to `minSdk`, `targetSdkVersion` to `targetSdk` and `compileSdkVersion` to `compileSdk` in `build.gradle` files `compileSdkVersion` was deprecated in Android gradle plugin (`AGP`) version `>= 7.2.0` in favour of `compileSdk`, so replace `Version` suffix from other related variables as well to be consistent. - https://developer.android.com/reference/tools/gradle-api/7.2/com/android/build/api/dsl/CommonExtension#compileSdkVersion(kotlin.Int) --- app/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 9a12876..3ef84f8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,12 +3,12 @@ apply plugin: 'com.android.application' android { namespace "com.termux.boot" - compileSdkVersion project.properties.compileSdkVersion.toInteger() + compileSdk project.properties.compileSdkVersion.toInteger() defaultConfig { applicationId "com.termux.boot" - minSdkVersion project.properties.minSdkVersion.toInteger() - targetSdkVersion project.properties.targetSdkVersion.toInteger() + minSdk project.properties.minSdkVersion.toInteger() + targetSdk project.properties.targetSdkVersion.toInteger() versionCode 7 versionName "0.7" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" From cd9d22a5122e20ef6a625e80e0fe53c6a1de4261 Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Thu, 18 Apr 2024 01:23:56 +0500 Subject: [PATCH 43/48] Added|Changed: Add `github_release_build` workflow to attach APKs for GitHub release builds, and update `github_action_build` (previously `debug_build`) workflow and `app/build.gradle` to use semantic versioning for app version and add commit hash and `github` to APK file names The `versionName` will now follow semantic version `2.0.0` spec in the format `major.minor.patch(-prerelease)(+buildmetadata)`. This will make versioning the prerelease and github debug builds versions easier and follow a spec. The @termux devs should make sure that when bumping `versionName` in `build.gradle` file and when creating a tag for new releases on github that they include the patch number as well, like `v0.1.0` instead of just `v0.1`. The `build.gradle` file and `attach_debug_apks_to_release` workflow will now validate the version as well and the build/attachment will fail if `versionName` does not follow the spec. https://semver.org/spec/v2.0.0.html APKs released on github for debug build workflows and releases are now referred as `Github` releases as per termux/termux-app@7b10a35f and termux/termux-app@94e01d68, so APK filenames have been modified to include `github` in the filename. The APKs are still debuggable, so that tag remains too. For github workflows the apk filename format will be `termux-boot_+.github.debug_.apk`, like `termux-boot_v0.1.0+xxxxxxxx.github.debug_arm64-v8a.apk` and for github releases it will be `termux-boot_+github.debug_.apk`, like `termux-boot_v0.1.0+github.debug_arm64-v8a.apk`. The `last_commit_hash` will be the first `8` characters of the commit hash. The `.github.debug` will act as `buildmetadata` and will not affect versioning precedence. The dot `.` is used as tags separator instead of dash `-` for `github` release source and `debug` build type in the apk version tag to be consistent with semver build metadata tags. For example `github-debug` will now be `github.debug`. https://semver.org/#spec-item-10 For github workflows triggered by `push` and `pull_request` triggers, `+` will be used as new `versionName`, like `v0.1.0+xxxxxxxx`. This will make tracking which build a user is using easier and help in resolving issues as well. The `app/build.gradle` now also supports following `TERMUX_BOOT_APP_BUILD__` scoped environmental variables. - `TERMUX_BOOT_APP_BUILD__APP_VERSION_NAME` will be used as `versionName` if its set. - `TERMUX_BOOT_APP_BUILD__APK_VERSION_TAG` will be used as `termux-boot_.apk` if its set. --- .github/workflows/debug_build.yml | 23 ------- .github/workflows/github_action_build.yml | 77 ++++++++++++++++++++++ .github/workflows/github_release_build.yml | 69 +++++++++++++++++++ README.md | 2 +- app/build.gradle | 32 +++++++-- 5 files changed, 174 insertions(+), 29 deletions(-) delete mode 100644 .github/workflows/debug_build.yml create mode 100644 .github/workflows/github_action_build.yml create mode 100644 .github/workflows/github_release_build.yml diff --git a/.github/workflows/debug_build.yml b/.github/workflows/debug_build.yml deleted file mode 100644 index 67b5a98..0000000 --- a/.github/workflows/debug_build.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Build - -on: push - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Clone repository - uses: actions/checkout@v4 - - name: Setup java 17 as required by gradle - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: '17' - - name: Build - run: | - ./gradlew assembleDebug - - name: Store generated APK file - uses: actions/upload-artifact@v4 - with: - name: termux-boot - path: ./app/build/outputs/apk/debug/app-debug.apk diff --git a/.github/workflows/github_action_build.yml b/.github/workflows/github_action_build.yml new file mode 100644 index 0000000..ec8bdb7 --- /dev/null +++ b/.github/workflows/github_action_build.yml @@ -0,0 +1,77 @@ +name: GitHub Action Build + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Clone repository + uses: actions/checkout@v4 + + - name: Build + shell: bash {0} + run: | + exit_on_error() { echo "$1"; exit 1; } + + if [ -z "$JAVA_HOME_17_X64" ] || [ ! -f "$JAVA_HOME_17_X64/bin/javac" ] || [ ! -x "$JAVA_HOME_17_X64/bin/javac" ]; then + exit_on_error "jdk-17 binary not found at path '$JAVA_HOME_17_X64/bin/javac' or is not executable." + fi + + echo "Setting vars" + + if [ "$GITHUB_EVENT_NAME" == "pull_request" ]; then + GITHUB_SHA="${{ github.event.pull_request.head.sha }}" # Do not use last merge commit set in GITHUB_SHA + fi + + # Set RELEASE_VERSION_NAME to "+" + CURRENT_VERSION_NAME_REGEX='\s+versionName "([^"]+)"$' + CURRENT_VERSION_NAME="$(grep -m 1 -E "$CURRENT_VERSION_NAME_REGEX" ./app/build.gradle | sed -r "s/$CURRENT_VERSION_NAME_REGEX/\1/")" + RELEASE_VERSION_NAME="v$CURRENT_VERSION_NAME+${GITHUB_SHA:0:7}" # The "+" is necessary so that versioning precedence is not affected + if ! printf "%s" "${RELEASE_VERSION_NAME/v/}" | grep -qP '^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$'; then + exit_on_error "The release version '${RELEASE_VERSION_NAME/v/}' generated from current version '$CURRENT_VERSION_NAME' is not a valid version as per semantic version '2.0.0' spec in the format 'major.minor.patch(-prerelease)(+buildmetadata)'. https://semver.org/spec/v2.0.0.html." + fi + + APK_DIR_PATH="./app/build/outputs/apk/debug" + APK_VERSION_TAG="$RELEASE_VERSION_NAME.github.debug" # Note the ".", GITHUB_SHA will already have "+" before it + APK_BASENAME_PREFIX="termux-boot_$APK_VERSION_TAG" + + # Used by upload step later + echo "APK_DIR_PATH=$APK_DIR_PATH" >> $GITHUB_ENV + echo "APK_VERSION_TAG=$APK_VERSION_TAG" >> $GITHUB_ENV + echo "APK_BASENAME_PREFIX=$APK_BASENAME_PREFIX" >> $GITHUB_ENV + + echo "Building APK file for '$RELEASE_VERSION_NAME' release with '$APK_VERSION_TAG' tag" + export TERMUX_BOOT_APP_BUILD__APP_VERSION_NAME="${RELEASE_VERSION_NAME/v/}" # Used by app/build.gradle + export TERMUX_BOOT_APP_BUILD__APK_VERSION_TAG="$APK_VERSION_TAG" # Used by app/build.gradle + export GRADLE_OPTS="-Dorg.gradle.java.home=$JAVA_HOME_17_X64" + if ! ./gradlew assembleDebug; then + exit_on_error "Build failed for '$RELEASE_VERSION_NAME' release with '$APK_VERSION_TAG' tag." + fi + + echo "Validating APK file" + if ! test -f "$APK_DIR_PATH/${APK_BASENAME_PREFIX}.apk"; then + files_found="$(ls "$APK_DIR_PATH")" + exit_on_error "Failed to find built APK file at '$APK_DIR_PATH/${APK_BASENAME_PREFIX}.apk'. Files found: "$'\n'"$files_found" + fi + + echo "Generating checksums-sha256.txt file" + if ! (cd "$APK_DIR_PATH"; sha256sum "${APK_BASENAME_PREFIX}.apk" > checksums-sha256.txt); then + exit_on_error "Generate checksums-sha256.txt file failed for '$RELEASE_VERSION_NAME' release." + fi + echo "checksums-sha256.txt:"$'\n```\n'"$(cat "$APK_DIR_PATH/checksums-sha256.txt")"$'\n```' + + - name: Upload files to action + uses: actions/upload-artifact@v4 + with: + name: ${{ env.APK_BASENAME_PREFIX }} + path: | + ${{ env.APK_DIR_PATH }}/${{ env.APK_BASENAME_PREFIX }}.apk + ${{ env.APK_DIR_PATH }}/checksums-sha256.txt + ${{ env.APK_DIR_PATH }}/output-metadata.json diff --git a/.github/workflows/github_release_build.yml b/.github/workflows/github_release_build.yml new file mode 100644 index 0000000..19fbbf5 --- /dev/null +++ b/.github/workflows/github_release_build.yml @@ -0,0 +1,69 @@ +name: GitHub Release Build + +on: + release: + types: + - published + +jobs: + build: + runs-on: ubuntu-latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - name: Clone repository + uses: actions/checkout@v4 + with: + ref: ${{ env.GITHUB_REF }} + + - name: Build and upload files to release + shell: bash {0} + run: | + exit_on_error() { + echo "$1" + echo "Deleting '$RELEASE_VERSION_NAME' release and '$GITHUB_REF' tag" + hub release delete "$RELEASE_VERSION_NAME" + git push --delete origin "$GITHUB_REF" + exit 1 + } + + if [ -z "$JAVA_HOME_17_X64" ] || [ ! -f "$JAVA_HOME_17_X64/bin/javac" ] || [ ! -x "$JAVA_HOME_17_X64/bin/javac" ]; then + exit_on_error "jdk-17 binary not found at path '$JAVA_HOME_17_X64/bin/javac' or is not executable." + fi + + echo "Setting vars" + RELEASE_VERSION_NAME="${GITHUB_REF/refs\/tags\//}" + if ! printf "%s" "${RELEASE_VERSION_NAME/v/}" | grep -qP '^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$'; then + exit_on_error "The release version '${RELEASE_VERSION_NAME/v/}' is not a valid version as per semantic version '2.0.0' spec in the format 'major.minor.patch(-prerelease)(+buildmetadata)'. https://semver.org/spec/v2.0.0.html." + fi + + APK_DIR_PATH="./app/build/outputs/apk/debug" + APK_VERSION_TAG="$RELEASE_VERSION_NAME+github.debug" + APK_BASENAME_PREFIX="termux-boot_$APK_VERSION_TAG" + + echo "Building APK file for '$RELEASE_VERSION_NAME' release with '$APK_VERSION_TAG' tag" + export TERMUX_BOOT_APP_BUILD__APK_VERSION_TAG="$APK_VERSION_TAG" # Used by app/build.gradle + export GRADLE_OPTS="-Dorg.gradle.java.home=$JAVA_HOME_17_X64" + if ! ./gradlew assembleDebug; then + exit_on_error "Build failed for '$RELEASE_VERSION_NAME' release with '$APK_VERSION_TAG' tag." + fi + + echo "Validating APK file" + if ! test -f "$APK_DIR_PATH/${APK_BASENAME_PREFIX}.apk"; then + files_found="$(ls "$APK_DIR_PATH")" + exit_on_error "Failed to find built APK file at '$APK_DIR_PATH/${APK_BASENAME_PREFIX}.apk'. Files found: "$'\n'"$files_found" + fi + + echo "Generating checksums-sha256.txt file" + if ! (cd "$APK_DIR_PATH"; sha256sum "${APK_BASENAME_PREFIX}.apk" > checksums-sha256.txt); then + exit_on_error "Generate checksums-sha256.txt file failed for '$RELEASE_VERSION_NAME' release." + fi + echo "checksums-sha256.txt:"$'\n```\n'"$(cat "$APK_DIR_PATH/checksums-sha256.txt")"$'\n```' + + echo "Uploading files to release" + if ! gh release upload "$RELEASE_VERSION_NAME" \ + "$APK_DIR_PATH/${APK_BASENAME_PREFIX}.apk" \ + "$APK_DIR_PATH/checksums-sha256.txt" \ + ; then + exit_on_error "Upload files to release failed for '$RELEASE_VERSION_NAME' release." + fi diff --git a/README.md b/README.md index 9963f97..1dbe461 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Termux:Boot application can be obtained from [F-Droid](https://f-droid.org/en/pa Additionally we provide per-commit debug builds for those who want to try out the latest features or test their pull request. This build can be obtained -from one of the workflow runs listed on [Github Actions](https://github.com/termux/termux-boot/actions) +from one of the workflow runs listed on [Github Actions](https://github.com/termux/termux-boot/actions/workflows/github_action_build.yml?query=branch%3Amaster+event%3Apush) page. Signature keys of all offered builds are different. Before you switch the diff --git a/app/build.gradle b/app/build.gradle index 3ef84f8..04d315f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,13 +5,18 @@ android { compileSdk project.properties.compileSdkVersion.toInteger() + def appVersionName = System.getenv("TERMUX_BOOT_APP_BUILD__APP_VERSION_NAME") ?: "" + def apkVersionTag = System.getenv("TERMUX_BOOT_APP_BUILD__APK_VERSION_TAG") ?: "" + defaultConfig { applicationId "com.termux.boot" minSdk project.properties.minSdkVersion.toInteger() targetSdk project.properties.targetSdkVersion.toInteger() versionCode 7 - versionName "0.7" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + versionName "0.7.0" + + if (appVersionName) versionName = appVersionName + validateVersionName(versionName) } signingConfigs { @@ -39,6 +44,16 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } + + applicationVariants.all { variant -> + variant.outputs.all { output -> + if (variant.buildType.name == "debug") { + outputFileName = new File("termux-boot_" + (apkVersionTag ? apkVersionTag : "debug") + ".apk") + } else if (variant.buildType.name == "release") { + outputFileName = new File("termux-boot_" + (apkVersionTag ? apkVersionTag : "release") + ".apk") + } + } + } } dependencies { @@ -46,7 +61,14 @@ dependencies { } task versionName { - doLast { - print android.defaultConfig.versionName - } + doLast { + print android.defaultConfig.versionName + } +} + +def validateVersionName(String versionName) { + // https://semver.org/spec/v2.0.0.html#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string + // ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ + if (!java.util.regex.Pattern.matches("^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?\$", versionName)) + throw new GradleException("The versionName '" + versionName + "' is not a valid version as per semantic version '2.0.0' spec in the format 'major.minor.patch(-prerelease)(+buildmetadata)'. https://semver.org/spec/v2.0.0.html.") } From 5e8bebf6d5cfa7237f157823de7fb8e0a3161ec8 Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Thu, 18 Apr 2024 01:51:38 +0500 Subject: [PATCH 44/48] Added: Add `workflow_dispatch` and `cron` schedule for "00:15 on 1st of every 2nd month" to `github_action_build` workflow triggers - `workflow_dispatch` can be used to manually trigger a build, in case action run was deleted or artifacts get expired. - `cron` is scheduled to be run every 2nd month (`~60` days) because artifacts expire after `90` days by default, and there is no easy way to set `89` days from now/start of year or ideally last commit, and some months have 28 or 31 days, which would make it even harder. Additionally, workflow should get triggered based on `cron` schedule regardless of last push time, so multiple action runs may exist for every commit anyways, so using 2nd month shouldn't be an issue. - `cron` is scheduled to be run on the 15th minute to reduce chances of workflow getting dropped. If it does get dropped, then `workflow_dispatch` can be used. > The schedule event can be delayed during periods of high loads of GitHub Actions workflow runs. High load times include the start of every hour. If the load is sufficiently high enough, some queued jobs may be dropped. To decrease the chance of delay, schedule your workflow to run at a different time of the hour. - https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule The idea for using `cron` to trigger rebuild when artifacts were expected to expire was suggested by @twaik in #199, but it was meant to trigger every 3rd month instead of every 2nd month that is currently being used. Co-authored-by: @twaik Co-authored-by: @agnostic-apollo --- .github/workflows/github_action_build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/github_action_build.yml b/.github/workflows/github_action_build.yml index ec8bdb7..f5c96d3 100644 --- a/.github/workflows/github_action_build.yml +++ b/.github/workflows/github_action_build.yml @@ -7,6 +7,9 @@ on: pull_request: branches: - master + schedule: + - cron: "15 0 1 */2 *" + workflow_dispatch: jobs: build: From 4d65c57c4ab740ae1c5723abec9e7a47db4b9856 Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Wed, 17 Apr 2024 23:50:37 +0500 Subject: [PATCH 45/48] Release: 0.8.0 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 04d315f..e98e735 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,8 +12,8 @@ android { applicationId "com.termux.boot" minSdk project.properties.minSdkVersion.toInteger() targetSdk project.properties.targetSdkVersion.toInteger() - versionCode 7 - versionName "0.7.0" + versionCode 8 + versionName "0.8.0" if (appVersionName) versionName = appVersionName validateVersionName(versionName) From 5aafa2cfae9bd6bb524e6223187f7a31ee0056b7 Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Sat, 22 Jun 2024 21:39:49 +0500 Subject: [PATCH 46/48] Changed!: Add `-app` suffix to app name and add version name in APKs generated --- .github/workflows/github_action_build.yml | 2 +- .github/workflows/github_release_build.yml | 2 +- app/build.gradle | 7 ++----- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/github_action_build.yml b/.github/workflows/github_action_build.yml index f5c96d3..ff0dd3e 100644 --- a/.github/workflows/github_action_build.yml +++ b/.github/workflows/github_action_build.yml @@ -43,7 +43,7 @@ jobs: APK_DIR_PATH="./app/build/outputs/apk/debug" APK_VERSION_TAG="$RELEASE_VERSION_NAME.github.debug" # Note the ".", GITHUB_SHA will already have "+" before it - APK_BASENAME_PREFIX="termux-boot_$APK_VERSION_TAG" + APK_BASENAME_PREFIX="termux-boot-app_$APK_VERSION_TAG" # Used by upload step later echo "APK_DIR_PATH=$APK_DIR_PATH" >> $GITHUB_ENV diff --git a/.github/workflows/github_release_build.yml b/.github/workflows/github_release_build.yml index 19fbbf5..7a8b44a 100644 --- a/.github/workflows/github_release_build.yml +++ b/.github/workflows/github_release_build.yml @@ -39,7 +39,7 @@ jobs: APK_DIR_PATH="./app/build/outputs/apk/debug" APK_VERSION_TAG="$RELEASE_VERSION_NAME+github.debug" - APK_BASENAME_PREFIX="termux-boot_$APK_VERSION_TAG" + APK_BASENAME_PREFIX="termux-boot-app_$APK_VERSION_TAG" echo "Building APK file for '$RELEASE_VERSION_NAME' release with '$APK_VERSION_TAG' tag" export TERMUX_BOOT_APP_BUILD__APK_VERSION_TAG="$APK_VERSION_TAG" # Used by app/build.gradle diff --git a/app/build.gradle b/app/build.gradle index e98e735..88ab4f3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -47,11 +47,8 @@ android { applicationVariants.all { variant -> variant.outputs.all { output -> - if (variant.buildType.name == "debug") { - outputFileName = new File("termux-boot_" + (apkVersionTag ? apkVersionTag : "debug") + ".apk") - } else if (variant.buildType.name == "release") { - outputFileName = new File("termux-boot_" + (apkVersionTag ? apkVersionTag : "release") + ".apk") - } + outputFileName = new File("termux-boot-app_" + + (apkVersionTag ? apkVersionTag : "v" + versionName + "+" + variant.buildType.name) + ".apk") } } } From 613dc9893f672313e2c572c0089ece7475e04f5b Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Sat, 22 Jun 2024 21:52:51 +0500 Subject: [PATCH 47/48] Release: v0.8.1 The `versionCode` has been bumped to `1000` so that users who have installed from F-Droid or GitHub should not have the app attempted to be updated by Google PlayStore and failing and also shown in PlayStore app updates list due to non-collaborative `v0.120` app release on PlayStore that set the `versionCode` higher than the latest F-Droid or GitHub `8` release. Unlike F-Droid, PlayStore does not check for difference in app APK signature before attempting to download and then failing to install due to signature mismatch. - https://github.com/termux/termux-app/discussions/4000 - https://github.com/termux/termux-app/issues/4012 - https://github.com/termux-play-store/termux-apps/commit/9c10607a3f93978d00c2d01d884ac45b8532b16d --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 88ab4f3..249bc53 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,8 +12,8 @@ android { applicationId "com.termux.boot" minSdk project.properties.minSdkVersion.toInteger() targetSdk project.properties.targetSdkVersion.toInteger() - versionCode 8 - versionName "0.8.0" + versionCode 1000 + versionName "0.8.1" if (appVersionName) versionName = appVersionName validateVersionName(versionName) From 13648d4913b5f581d693ec82ff191a819d8d4e42 Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Thu, 26 Jun 2025 04:38:38 +0500 Subject: [PATCH 48/48] Added: Add `SECURITY.md` --- SECURITY.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 SECURITY.md diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..479f15c --- /dev/null +++ b/SECURITY.md @@ -0,0 +1 @@ +Check https://termux.dev/security for info on Termux security policies and how to report vulnerabilities.