From fb5b9c9982365ec1aa80d536f9a2e3c0372080f0 Mon Sep 17 00:00:00 2001 From: Luxferre Date: Sun, 25 Oct 2026 08:36:27 +0200 Subject: [PATCH] Unify Power menu bootloader entry as 'Reboot to loader' into lk2nd Fastboot menu --- MANUAL.md | 6 ++-- bootloader/lk2nd-msm8909.img | Bin 356368 -> 356368 bytes overlay/rootfs/etc/doas.d/50-sxmo.conf | 1 + overlay/rootfs/usr/bin/sxmo_appmenu.sh | 3 +- overlay/rootfs/usr/bin/sxmo_power.sh | 15 ++++----- overlay/rootfs/usr/lib/dwm/plugins/dmenu.so | Bin 66800 -> 66800 bytes .../default_hooks/sxmo_hook_contextmenu.sh | 3 +- .../leds/leds-msm8905-torch.ko | Bin 10240 -> 10464 bytes .../leds/leds-msm8905-torch.ko.zst | Bin 4180 -> 4243 bytes .../sxmo-x11/usr/lib/dwm/plugins/dmenu.so | Bin 66800 -> 66800 bytes src/leds-msm8905-torch/leds-msm8905-torch.c | 29 +++++++++++++----- src/sxmo-dmenu/dmenu.c | 16 +++------- 12 files changed, 40 insertions(+), 33 deletions(-) diff --git a/MANUAL.md b/MANUAL.md index dabf82c..8d3b0ed 100644 --- a/MANUAL.md +++ b/MANUAL.md @@ -52,7 +52,7 @@ sudo ./flash-edl.sh The script will: 1. Temporarily pause host `ModemManager` so it does not interfere with `05c6:9008`. 2. Wait for the phone to appear in Qualcomm EDL mode (`05c6:9008`): - - **From Bananarchy Linux**: open the **Power** menu (`End / Power` key or `System menu -> Power`) and select **Reboot to EDL** (or run `sxmo_power.sh edl`). + - **From Bananarchy Linux**: open the **Power** menu (`End / Power` key or `System menu -> Power`), select **Reboot to loader** (`sxmo_power.sh loader`) to enter the `lk2nd` Fastboot menu, and select **EDL** (or let `flash-edl.sh` automatically send `fastboot oem edl`). - **Button combo**: power off the phone, hold **D-Pad up + D-Pad down**, and plug in the USB cable. - **EDL cable**: hold the EDL cable button while plugging in USB. - **From ADB / Fastboot**: the script automatically sends `adb reboot edl` or `fastboot oem edl` if detected. @@ -64,7 +64,7 @@ The script will: ### Method B: Fastboot flashing (once `lk2nd` is installed) -1. Enter `lk2nd` Fastboot mode either by selecting **Reboot to Fastboot** from the **Power** menu (`sxmo_power.sh fastboot`) or by holding **D-Pad up** while powering on the phone. +1. Enter the `lk2nd` Fastboot menu either by selecting **Reboot to loader** from the **Power** menu (`sxmo_power.sh loader`) or by holding **D-Pad up** while powering on the phone. 2. Flash the system image to `userdata`: ```bash fastboot flash userdata ./images/bananarchy-nokia-argon.img @@ -129,7 +129,7 @@ All fourteen core phone overlays are compiled as shared-object plugins (`/usr/li 1. **`DMenu` (`dmenu.so` / `dmenu` / `xdmenu`) — Zero-Lag System & Context Menus**: - **Open / Close**: Press **Left softkey (`Menu`)** for the **System menu** (`sys`) or **Right softkey (`Back`)** inside an application for its **Context menu** (`ctx`); press the same softkey or `Escape` to close. - - **Built-in Native Menus & `< 0.5 ms` In-Place Transitions**: Renders `sys`, `ctx`, `applications` (including **Nano**, **Bantam**, **Files**, **Camera**, **Dialer**, **Contacts**), `scripts`, `modem`, `config`, `power` (with **Reboot**, **Reboot to Fastboot**, **Reboot to EDL**, and **Poweroff** via `sxmo_power.sh`), `audio`, `notifications`, `wm`, `timezone`, `games`, `st`, `nano`, `sthotkeys`, and confirmation prompts directly inside the resident `240x296` plugin window without spawning shell scripts or new X11 connections. Submenu transitions (`@menu:...`) and hardware toggles (`@toggle:flashlight`, `@toggle:brightness`, `@toggle:autosuspend`, `@toggle:autocallscreenoff`, `@toggle:bluetooth`, `@toggle:dnd`) update in place in `< 0.5 ms`. + - **Built-in Native Menus & `< 0.5 ms` In-Place Transitions**: Renders `sys`, `ctx`, `applications` (including **Nano**, **Bantam**, **Files**, **Camera**, **Dialer**, **Contacts**), `scripts`, `modem`, `config`, `power` (with **Reboot**, **Reboot to loader**, and **Poweroff** via `sxmo_power.sh`), `audio`, `notifications`, `wm`, `timezone`, `games`, `st`, `nano`, `sthotkeys`, and confirmation prompts directly inside the resident `240x296` plugin window without spawning shell scripts or new X11 connections. Submenu transitions (`@menu:...`) and hardware toggles (`@toggle:flashlight`, `@toggle:brightness`, `@toggle:autosuspend`, `@toggle:autocallscreenoff`, `@toggle:bluetooth`, `@toggle:dnd`) update in place in `< 0.5 ms`. - **Client Socket Mode (`/tmp/dwm_plugin_dmenu.sock`)**: Any script piping items into `/usr/bin/dmenu` or `sxmo_dmenu.sh` streams its item list over the Unix domain socket to the resident `dmenu.so` daemon and receives the user's selection instantaneously, while `/tmp/dwm_plugin_dmenu.active` provides zero-overhead `sxmo_dmenu.sh isopen` checks. 2. **`XDrawer` (`xdrawer.so` / `xdrawer`) — Global Phone Controls**: diff --git a/bootloader/lk2nd-msm8909.img b/bootloader/lk2nd-msm8909.img index 723167d30eaf8453f068e661fb7c9e1be9efa242..1ffdcfb62a12acf7f332ef1d30edd5dbbd5e8ad7 100644 GIT binary patch delta 92 zcmbR6Ky<E+9{7J-mLA7Lab|8n>e;{F#g#mz#y>T wv7S1^YXyV(Pnj859!+*gl9{e?obdn)vjEGZ_BY2FftU%1nYX_=&Z4pc03D+zL;wH) delta 92 zcmbR6Ky</dev/null 2>&1 || \ - printf "%s\n" "$rmode" > "$param_path" 2>/dev/null || true + printf "%s\n" "$rmode" > "$param_path" 2>/dev/null || \ + printf "%s\n" "$rmode" | /usr/bin/doas /usr/bin/tee "$param_path" >/dev/null 2>&1 || \ + printf "%s\n" "$rmode" | /usr/bin/doas tee "$param_path" >/dev/null 2>&1 || true fi } @@ -122,13 +123,13 @@ case "$1" in fi sxmo_jobs.sh stop all >/dev/null 2>&1 || true ;; - fastboot|bootloader) + loader|fastboot|bootloader) sync - set_kernel_reboot_mode "bootloader" + set_kernel_reboot_mode "loader" sxmo_hook_power.sh reboot || true - (sleep 4; force_reboot_cmd "bootloader") & + (sleep 4; force_reboot_cmd "loader") & if ! run_priv_power reboot; then - force_reboot_cmd "bootloader" + force_reboot_cmd "loader" fi sxmo_jobs.sh stop all >/dev/null 2>&1 || true ;; diff --git a/overlay/rootfs/usr/lib/dwm/plugins/dmenu.so b/overlay/rootfs/usr/lib/dwm/plugins/dmenu.so index 3901e1bf5a5a61fa278866aa064a859218883300..0dc1f9282524edb8ff78e12bfd9bd1995718d8c4 100755 GIT binary patch delta 17705 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
-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 Do2j49 diff --git a/prebuilt/kernel-6.12.1-msm8916/leds/leds-msm8905-torch.ko.zst b/prebuilt/kernel-6.12.1-msm8916/leds/leds-msm8905-torch.ko.zst index 8fd736e8021e1ccd06a3a24625b9cca55524ad8d..446c08e66b3f99ed19e4340a0f1c165b5cdc91aa 100644 GIT binary patch literal 4243 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 diff --git a/prebuilt/sxmo-x11/usr/lib/dwm/plugins/dmenu.so b/prebuilt/sxmo-x11/usr/lib/dwm/plugins/dmenu.so index 3901e1bf5a5a61fa278866aa064a859218883300..0dc1f9282524edb8ff78e12bfd9bd1995718d8c4 100755 GIT binary patch delta 17705 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
-prZ&IWWI)fz)KDON;{`5Gq-T1n?4$D!_f-mQvGOCYbCvX<@QnuL0H`tL|Fwl`` zI1zh+RCS$ngj!h%s=A?5w#`~Vv(BD?^IA>1<}v%S2b-|`yj`PvH{o5VW1hTD^RuYT zJ@W?{=vIY;?gKJvq|P%?)Hqok{}huvkLzdRd|qRUIU`J(^?cin8u9W_TQle{%$85K z&EILe*;JS<8LGmG&qtvgoC2A1z|NTuPQIOU7@QoLlWph3fMXb{(rfvmva)=T(qz&q zJ1GJroxMX_dg331p}XoP5;XhYSk*(urtN z+uYKi$0pK;bPJ?p+1P?U##X~vLLc5m@H8?{-G{dbyzoA}V(@}wUO*pS9C)4{cqqNJ z`B>Q=5M5=Wb01;^h+RXTjLMeoc+91F(mKsNyp~NvY%k-hkFD$)EYv#MUN4shrF05D zhclu|))84Z8@dWdX$3SoX!ZO^oxj=k))v7mPQ6il&~0z6g>|$leR^b9;K@_02CvTj$z*(oMn6F3s?+$}(T08R zYWO-9_0-x{lLdw7H&)cUsnI|8@OoxcO8vxGn_>a?{Q5eweXrPmPsu8G=c`_XD) z>eh+csnX?w54sRxVUewZAJWh8Zdh6NW5>`sY*T4+_g2}vhn*tP!c^#DiaY0S(Ab80 zB_1Y8W+&R&7Ul|OjJy5(v$EGfj0)&`8d#X61>1#W&bHshf}@g+dG|3^51yOEvo$&i zJmvq`s&084`($DRFm|Rgi=KsHA?e%di&+fc%hy@Sg_y4qH9-9AP8vcSxIG@`5|?QU zE}$Burvg`25#j~ejhiNqd08M${MHH7%V?5yb&&Ug-+@|L`n-jkDbo5|_;VBBng2~+ zhmK!odASJiMx4;tBRSsz*#>Z_zzw)J%^T*Onhx*|N6UzT)B%9z;(fkcb4h z32T%9b=lnx@{NYAr=Wz`G7PA9X4ruK>3I9tybw+?P?m67%nk zN?c(Aijam*URU+g9d-E#JGiN91Y!3MXBzOwAeh zWEO|nhiem=B9e5KB{BlOj$(au6gRxO3ytNTW zU3`B%FI32ppV@L@)CN5YBcDZ+a7DwVXpYSl#YQ~D!qU)z06ENJWtF%Ed&=E(mqRfY zwip~&JLd#AM6xqc%cDjXHm`~J25GVXMZud>n@`{%t&3Wx>26$T)#M#B<3gF@t&*KsHEbox(U3$r)MCL!9s_OXgo2}%IZ+|- ze{D~A6{K)G$s42~nG|3*R0fW>o#O(Io6K>wa|*#x%CR3@Wjnjs`3r*Vz+~frX0-kG zHJ{cVX2dGEH(YO9EEjR5s79>E!n#`&xz5KO($Av!vZQHivE6NAWH0IDH0~vx9Q&6d zJ_S5DXJM(0ik*slZrFkwFOL=w^M?kE>@==xEncT_pgicZPNSr1t%c>GEALf(zdn?{ zw|1yr(-@|m0&PX}Ce(az!*#Di+p6bE+sT}o8_L~bC`oJKvB}$2XmNF{c4eW3t!O-U zgy$Tor#2RhrHzP4qD+N!awB&k3~zIu*yNaR%URf?CYx))IZaL6n`_{q20b1iyvg~v zK_t16C@OFCm*S;E5XiWSID#vDw97n>uxgzKFTl_Y4cTd7CVuN2!<~57wMaTysQ470@+F59vy9;{UCOdJtmqQk5pxG8h z8Av>8V)H3nz)2qSBoGJ}5ao$py)K|d>}D0`;g@@@)f|9xte(0~vj#E>G9EG#!IFN* zoQl`taWCR>5hAx2^t?SrVqpfD^!9?sCGSF2SQu_D&PTo%iDA4pT{BgC38^1}$1JmR zicSa)xcvtP(!7->tn<((nI`JssW30QdRGG`9+dRsN zy?hwTMfvL97S!9wDR3I(>%Nus6D@3E4}YT!*o&%zu>A6D3+iel-z2XF*;dOwV~t*{ z^t3gN1&%2`Et@`RH@yv}i|m{`;2e-54P&L1%U|VmBk|>{7+bg$m54^8hCYp^OO2*W zjbfxRnaQxZ%9D?wp0893I|j2Ua?{E7rsF|N1dV&r7WOGP@iHgI&Y22Ml%4Y-IN?FI z$eV4S8H4fwDPlwHH#C)zuQzTNr^#wmasIC=gHWYQ4o2XaP;Qpv3{7&J!NLeQb>P^# zp8(EnnNw}&wBROsRgOhi*z}%mraXrL$!PvU5_ucc-)pGFnk^d2Z#zY=@UWzX_3O5< zbuf8AqT*(WSBnqyB^b;dIzc}0Eo=xlS>Rx}U*Yp>iy?9gC19@V!z5s)$Q?``&F#r6 zKo4T#P_D2&NmDmg^#3%w4V=h6oIBuz{0}D`9Pd7y%iy@l4Z8MeFa;QPTWnOh3UKDtjJ)Vq7PIot(SB`}ou}*Wk4jXP@hNc{QSqbDu z$Rfm6_-c9?_pJht33?1(ffK)qTi8l8u@6BRY$38{DU5}{SkB8EG)sd`sGBa;O_Mb-s5=04b#fga)Jc}=B+HD+sH0DkDkaLQP*iHe{W!*hU(!37rPa1; z{e+V-Qr4Lzo!a~j#ayq;Zoq-ROj~q;a-s^sF5!BB{Eh zTR-*zXxb1#!CzU!gA`4Yra{)+fu>f{)XJJ0(A<_Z)w1R?G*>0fRatWZno2pIP$9(= z^n4w5vIV$WpR~slEbIt~g)*_g9_;93G2rFHBwrVN7C(91%@$(3vZWw~g}v29--4AcJuRMv3wH$(&@gbi+urV(j?-GH)0ev2shrf@9~uW z()-%UTv|UBo2HPl)7!=#>14}s3*Xolc!V>%*f;Q-c_amw{r7pW!oq^k70-8Z@X$Y2 z4bkiIkoR%rSN@H6eJ1t|etv|Z#s5ES(#fv2aMl#CER3(4+j0P*+8#jYWM!~+*&bT4 zFcPP)>i^JXD|5GEOfu#D3)2U!cK7U0H<+pYO^+=_v&*Kp|s zif|8%hkibA@eSM;A@!$Vge$|KSOY{N9RY*`b;*caKo@{?Ai(8L=-eP(0S_Pp^?7;_ zP(0sebP>|q(O52!2Ye1rAy9^n@y2hXQ)LSgU0H~$^9f`kP;doTSzQwD){F22xQV(0 zO=#SLCvrl1JDxBX$ODR?Kaa-l!AKQw8CU_1C-jRUJs_2cQbZu#Uewbw{T1B%!RL0J zFcK9=UqL(97wK(@OUPV7LzR$K=*&e(p3a0W8`uUIfGl)&qnvJnp*%Fa3i;JC(jj?y z2CyFGE$D12(n;tLmsQX$htvT%u)kD~1TWwXtpT#+v=2nRwjyb+L5Kr}G@evIP!ruJmoe>FU)lw;Dq{XAPvBJfQMc(fgBy?KN|^7 z+79FcJAwTGU%^d4127$HV=9mj+=TIJ8TT=d4S@I}bXaJ&fe60npbLULgkKS510Arz zN10DkGLVl&d@%tt7LujpcA0#Gmp@B_SnLBIhR`5fR+TZJLM3ETp@03K3Npp1uC z<^hSod?5Q(>X@YDwQ{^EXJzBzHyk|$eyJbbB?OE z`Ur(|#@5{fDy3WdoJ~RaEy_TV)^80EuF|Ks`6`6RG;~{l(!zp8`tml_&|SDrRZPZ@ zfB2~|$`?D?FtwH4pdW1;KV&t^3@GdW$XjhI?_&4q&)X*d%?bB8cu(zF$^1a?YF28i zjw_^%=!e2iwyVi-+)p}RBGJ3;O) z)aB3M05mx9a7-Ls`Qe+f*(UDthvN>K?xB_}7$i+I{BfPEStDuQ2WNq-Ss`g&h9+Lt zq|lK$z9WK6zS>CbWA>+YWIawbxKlq%XJvd9PD;8kXQ;4-zMJF!RF}~gVUWk{M|v=4 z2z1}(jP!Me%^7XK9_?gmr1Wh!kMiFUec0W}?sh+@?_{?r%b7bY54VMk8xH$bep9qz zctZakw^BX|#q^DjhD9wkIr#W!2i^^W#pR)RZW_H^PLca#Up1S9rIUYwDl@d>dU+)1;P-# z?~4#E97WH|T!_bJf zO8uz$8AmLs7L)qXOy4GaIs zC4~|Vs7rYRI?!}5=_n6tC=3}|!|=Br;iKB)-0&%SaL0(@x>j4)i(4BWCZX1^5Bb1) zG>EK{{`>`ENY$14Td{ zum;coV}PC5zl#2fbB)f;8~W;b)N+NU0CGE^15V;_iie!QfkP{GHjZN)S~?&KNX0p0 zn1$VwA3TZJaUr9DMMxWPh9m-^^t-&FQ$3*NSTNV7%|wY0P=`%@sTMV(ak>EK=ipF4 z-ts&)emq0nYjhCJ99)EzMaIp~t3Rxc1Yp=y?3H`8WEbkWLTo95PYaDh%hp z{BbexDB7m3fq2<6jSly5L!IWmhi@xs;d`R>ZLb_d*!HoY;x>#sXFS!?z^&r-rsMzd z;*d{pgRMeb>SuA4Bi~%QibZyk?*7NMq4llRVoVy`!MOFBYBAfrT1-@m>>k~)YtpEO zmTECSe5zKU)na^jHGEe>r)fE(lX*2%!@kJY(_eS}M|ecfd@@(KOrOplJM2WuU3jl| z#rQ59E6asq{?#NUyU!Ne?<%LN|Z4-ah)& z9>Je3PJJLURSSKTA1>^oqj$d}nCRZ!*AxT0OPB9SQ7F`nv}&KH@B%gN^LKo$vy**B zpZWA(gZ~u2ShnPiPSz^=FY`a+T-(V^wDr?r3jfE{Wxtp36CJhx+0iF@I$2v+58F{T zr(^g#&rmCCwDhoTWqiZ#WMA}*c;J#}Wj%E3{&9|5#7=gFp4~s*F&S^#G5W{;xxyCu z+-K7iZk^Qd*)IKnMhsCJhA_OxtB3iYB^UTlcQqSqYc~th3D~k84js_F4lXdDPRII& zTn{V<<^k2HX8}$Ep;(~@AhQ5>fPYi_9moe1KoYPx3TrPF2@8yQAd>+Z2B_Y{3jwHs z0ATSN_)q}&sP15(!nu*=9*h#K^xDBMg=G59=c9u6H4y(SadNoGHkvBMNGui& zeyZV&%j5b8qT-7&(mgi1lWnHoeLhoIOdYo7o9>1{jFex zFpsi=#=+(;KEn>ROO_3X^gk}LhqV36af7QQy~wV1*=AnEi8|>J?cdeRS5;1N@bFHy zmi}_cm)kis-f>n}C)+{CePvYmG*i#QT|*T3lrg<+=h1Gq{G6+{hlQSIEQ5YuI7QDt zmhrD_g}_E&9xxT~1kCtycL(5K@YFyquo{>Si~$A#_wlVu2b=^lfE9pi0u}?leI)|? zJD4k%f59dPC+`-%U4=qkg!KA5+|CXpG}zHA zK&C)O1L@dxRs;FKHte3v9P9>UU2;S z-^TtVZJkE3|7X1I40}eu!=-~RH9Glt+!^|Zg=qdD0%HL^^y*>NGsnukW0eRtGPcwd zre&;(K0Z7n^viRMMYWI%{AR`Xb8#uwI$&9hp&5(48qy~O?*in4#dP_R*38u*7B&eYMNMI*)(G^?N! zrwMRB?<_{x0AE@d%ZEG3ms>O3x4Pk+J)n^;DpF0J-sEA9C)RLPXjNcYu2M$c@t4FwuOFEG)-7U|0o)w@NA^cM^!EbO_kXFENsSO zI^k%dBD#@g9}NuK-^ti5?EPx#;Qn4Hu6R_t$;p?o3hG-tOdkV3vOoHuL1b0q!d)2dzHm2&n-h&n zpJ(pEEJ{PhIA~SArEm!tb2BQmrC)Qq1r7Y~0Cd3(2LVsV8|Sp$MVuA2@u|m_@;0fo z>JEi~cvdX8&!7E@QJJf92QA#F?hpjx#|s2>q)&!EM%GtInpdES zlr^X5x?`gz7fAYP&^yceJ(6YuG+l^w^LfsLhM3Q7;lGTuX|n0B$AV|ZARb!jEclgv z&4*2CEW;1^X0(kd{$W@*{^F=9iYjAq=PCO#Jw? ztl^dVk#K*Aua(u&H%nerOfb^&5-&FqUink>*Sm;dCondlf!3DV^`o9a!O(B# zK0f0YfI<)AKQ__r@LElf){QczYM_fwM7+uH!J2#eGuqsbjfbD!fnWWQpoXd`Qrb(} zv2zSFrJOr*3vb{{4sJZJE#DmNa97X@Dhr#14=-U(MEdpRm*UNb!*!LSI63%%+t-3> zR>$V09ju62PrNRyr>~VxRJgX%+|nrg$BQs=;X?~M*EJu1BgI!R8r}3irQ@A%H|v)3 zl|#KwP92uf5-TbPW=gN}$xY6UN@2cMh`@uE@U zX2Dm5$B1ZFNOD56B1F$77I9r(YiQjgIJzAy2;NVsvWM+G+bZSZj^uq4qTh)Vg_uJ! z@5l0m)4_72d_ZQ6oX?W--kJC0{CX+xp81=cPm}VlnYZM8s+3n|{w(KHkXM_XGS5ec z|MsdlnlM~cuEA%%y?Eur#p$W^*;6xB;ouy&Q6|?2m1_L7>03D;*i84I@)SDgx2L9! z3AB=snN{zkzw0ebrpH}yW9ne{ntv0OYW@QS(+!1Iz{Fvfu~P4EBjyCO{(@g`IcRcb zsqyXf2T>E=!S=Uqec>s%n)4S6((mOh?2I+L?tS#>wdG{&X_&7+r2S9(zah@F#UeT&n}7(MSod%~ct_(z zLpm-6@eQCB=f-w`N9DG_JLgfn#X!So9IvQX1$i;TCbI*P#yJuM=}mW>9;r{A0*?z2 zpT(It9p@(^D9Ml$fO4b@fD-{Ycp<$3ogbX31^D#~WF_=3Ps6#X!l4WY>mFbNR-+e} z7UG_OR$QjSGXtj$b+(Lx0|2=Q=y(lImI8-2H`b&8BH@8SnFA!ELrFk1bP>Q9zy}xv zI02T)wzyv=WDbxGc+N*hUxhmec?B{F*aZXtYXCFas7xZ{lec?%KF5D((zkUTtr2PQ z8BgIB{qf8TBNJN?nMcq*DS5+#^U*Up)*TJ4cg@>auN*b@K?m+(?st>poVe8z~Wn*SmH$|4(R+1Aw;}d@ee1Z?sK7(cOY$sM$ z*y`mkniNmhVPSNzl$Kjq5(@1#k(2~$J(v4KS4|tsW(c)(?Aeh*7JcFDOxzznIy+JL zjDB}^rgKnZwUG#)>u6Y^9}OuF6}sqa<-x*i`hL0p;HbuJ4`ER0>8G&vW52!H!B)|; z<^Bq#iPn~f>aR5MR|YSosnY05df4N$2jrKc7Q5W^wv1z+%K6*Igfn~NGBgQ`yV=SM zd!#q~RukOQvV56w$ryBISDb*|bS^jxFYJ`{WvH1K=eT!w(hk&rCV5BfTFu<#ZWe#x zWBSp#e!~u<-bYfs9jK?i@S$99KRtTRSDz!@`OX1Iz~=wLOE-;+z1N_96G(&YRit17j(nK)!8 zRxOtcqm2eM^QP3yMf{$#oBewJd5unooxW)aAEY)L^a!Q-Ox(-WRPnbl zz|;@vn5v1fiX+L(_%8!G;CH&6QS2pS$K7!E6;vI}$w>ECMCg}G)o$GIc_GlxCr0p1 z5*@<0_lsBB=ulgt^VPPqx>ln4^`XZLW3)qKdHGt6C(3sj|9toibc6foa*VbbS6UxD z>|mP4{xL!xKV;(?ggq}V>-n8r;8)BrfZq}FCy=4!dc5sG=o*jl2l9bi6Ro;9f99f=TAlOpcIMZr(jC;bvx{(@&NaBHJJ``PtN!Zt zjZ!;vnE}sOVLZ6(0LtTARLk4(e@lB=d+6W4pD|q7>U`X>gq%~xIP6Z>IF>9Fm5uGp z@dCN9n*Q*8u&{u(em_(Jhr+os8Qa^k%8|lKy0vn+vV%pPriGP@2S&9X&=Fs!l5-8K z(Dqt7?1xu`82a`PLtH(Li7~cOij1LoKjaScY5BL99)8UzyyLu=(C4(j7##-{qHFnd z+NEKLmA-UoiI7jvTzW@1Nyq&-R@hHp{c-q`q^4W=`IP~`bRZenUGu z(bRvp5VF1Q@~aaG(0_aKuF`R8b%fIj=ry9f{ryD}M{9p+y7Qn*gp zm2tkm^WQ7M2~lYMwQ~_-ZfC{K_&>)t`tKcl+!MJ5`ux8>M9AUBzeahaH3xVR|4faa zme9G{7vK$HLYt}U)dYoe6J2!GM_+9myx$S)shuU7rb#2Uq^g~TnFj72qg6tyGsVa9 zaayZsX9t>k$H(@Rn&wWO`;pVq_?&MtNY*`Zm1}47Os8?Xh^&gnJs}bihvH79Hv9M{ z-30Av%pP|eU$u>!8=G#j4czZWUJ>6{uD$qNq|}w253S1*0?sVEqvMswhUh^JM+$7{X$P0W%IrY09 zrt>uUr%yZ1d-{2kQsXWPQB%h{RRwEZU}IY&w{+VStW`l~H4^;wG_^e>7ZPUJdJzZ7 z{Xp`~=8|^C!`W__G6%d(LaqYGbUQ9A!ru0Wj{-`|u9qoe?$jkKS1et&`mNVxC7o3N)i^m#p0kyy;%ybkJLzw&e0|l*_x`pz^c|f_W|cnw z&^nmbwuw}2b=Ir@z=jHNnIOv~$Yg-)x#aq~77QNX){3_{Ka^G@~uF~=xRcor1(Z2zfMSs6i1YN>D`yVAGra=M|9wT zQQ8kL5fUx2&dCY!fz?1Mp45+!5?CEC#qS{3Sj4lW_!-pV2k_&h_%3Hc98s!5ia!Sb zA^20Jct6;C8~nvm{E{Qll5wa&qNMmgWQh5JkUUgm5a~}oKzsJXpudzp5pkdIo;E8G z21lZRzGh!RzF%NZE%9SvZy4-_OL4Mn)tXf)WZ6mxvMeTU?y}ObXQvO7kqVkTrdW38 zD)kN=FFSCRE)4W_EdGK(pBDI@(=LRvzo1S*%Y`1gD(IgsNl;7$yuT}Y&nKj zLq>f?$Z$vn5C9y2{yNYN+$$aTm%j;)jh_;7rSy~VcV&*A7h$b5Xu`i8WL_22GHJNX z<6No7E{Z{+O#giQYrAq@rSPsn+7gm@ur{)v#|r4ygm3PW=C65{!9LJ}Ys z-XvtOp|`h^{xIXbEaxM-V`hcNm3-6!C;~14w}6EF(nU&F2cd|rc)?FNMBjViV__~G zt(qX4@T4?BwNmc%ELcwY^m25VM|?3MN3Wq*fV@3~Xn=%0)Fmch*6|MrIs7A3Kzbfp z4S5#2y+AhLDutbL330iC`u~7B)PMujeNTvyu8&#!YyeV+1Fi?TENzLg2;Rrg@-^Rq zy^D|AN&Apoh42nSs)5xzO9#z$5@ZqYl@6abNETHI z-dUg=xB%<|awVAqxdX@sd_N+j7WwZ3$wKQI#0=(g6$p zDah)N(xQbP-jPRP^a3FfkW(T3f$N{3Hz2QkQu^D%$1>lfEJ9SkRA3OMRy2C1Xd6Zm zSOHlnS}fX+&o7}888X+DH@Fo*jeiR>T$VNjx?i|5Cd!kZYCrj;qG)o zG9a%*u7o@aIR`Qw$OR4nhOe!hJcJJe6^Lg+^8C37r$FuimLkk;qyoEuFvM?V5R#1W zZy8wbJ*d!9DAoZPz;(oZkr)Z6fy0Qegg%vX5blP&1Ly!H;zegs_!dG6fqPgy!?$8o zAUhCW2wVmhAs&H7dq4&Q&cInTcC4OWT6{<-E?u_dj3C@DeQuc`cdScAA|0|~Lcr3E zgt(nVegBRv8OTIR;Tg0O*jt49Z-B`Zx@Lv4DynyQPbT1cSMG%xFcx#rnaRX5wAcTi({H92mVrIKJ`^2vT+E)E;;xN_6{w#@b6 z>U0&taRWMxL%Nuy`GL8BK9{sWm_y%48agS`TTrCIM!Th(t?GVY4izni>HCQm&t^NM zk`Q7l%8pcbG0)~qb!zDYvuhD8N=ne~iKPCeIP2;#S)r>)Wr9JIdzFb-OWyRJus(?<+--16i5$2k+YE}X{6w* zK*PJ)0WjhvyK!2Z;Yg6?*ho1bDaVGOn9TLuOcx78dW0=K73qPJ5r3Nv4{*Fj5~-k- z;J8T~R~ttTj@-u4#(`v>Zf#{-XkRNI8y}dBUVVn5z^Ruw_iUVcaO!NFaBylQPPL75 z9h^!V$GfYWrC9i|du)GTF63-2I`^1Fe_%eexQmq`O98U*?&IAhhvD2%`<^%kMyAbZ zn*|;Ir}TWJYi#KaNM9^fEZ$bJEO27M(OL_+X{lbGg~+ z89p=q=;U>N@!bbze=(iw^rCJWbncRIH=FS|7+m=+t+{64NNG{wgWuKvO1+3a0;NVy}>Nd0-2sX{gK*NwcHLNo3`q zm^?|hMbfEIolHr$LDI!Tw@xc5HIh;TWul~8D(O<8i6Ine1*F(9J>PVFcA%pp(f&AW zzGBwR;<4Jrjw7eLr*&`aVyqV(?Fl%isZv!>*g?eQQhP~Y-=>?3JZ+OVt9~-e^UnQF zo^z|k`0L&yqep2x1I#L?F2_I2@t!5KaAqePqR$Bv=f2o>1Do#9zGA9jwra9{vI5I4b`1HDSJirPaYH`UQ0qC-#S(i98!)ve zYxx*jDjt}_`|%-2FRae-N?I z?f`3Xw{_@hkG|r9dV5(M^5{I$RA(MxYJ2cas(xjf7Q0jzGe1FxqqTJbf1Y?>!AP}7 z-^A-;PT-VJvKChs@N`ui1+UPK_qYe0E%6HMc)P*Nwd39I(PC!*PoY~tT4zVP3S&u< zu|zv#8t~%mc;((AiGq%coc-X>jwelsK?%jmvAv#=|z{QMj8w7tVn+a!sYXh-}C#JC~EmoxdgaO~-2KVmYeB(8F_ zbs<{V5ildbw4VFFKj~$+Ftr1v9{Ikzi%mlrUZ|XxR5|VYsGYlH$jz?MEifgwtK5&^ znIo*NX!C#C3JrKV_oq|zYZST_mAjq7SBC-nUTwr?)w0GFsc(m9+kQRyDV`$QwqH)- zUhIxFpfy)!3jvtbDQPM*+P0}%t0H?RsH1F0tA$N!ouHnII1vXxm}FsLt%5HGU?8tX z7t46!7}kJoDpjgpimiIsDdH^5169nf z`dcsG+yEbaQww$rkz?KOW`g4{6|Jzdbq_puJ6j>(IscEXE83Qxn5QE<9GzERVPOH7 zNZPi>B6Bp~%hz|2i_u@eog;$>0*}wVYw_6U5^rJ)9;J17ZC(Kq))R69ayO6%>;lq( z3}BOlEs`z;as!}UgFov4E{opAa}{zWupIdRg_lClpSV0d2jGS51+t|04#;eP%RP7% z_l0@Eyi(TzUg4WoXvu8^ZUIioaDqVcmRtsEBzXa{3gEH=sFdVc$a3HcDy=BAy2Bbj zho1(o`LFQio`W z7gCJzJuBe~T6kv_D*qN7SqPg~BMm4(_!v(EJkT>cAhQA9BQ-$W8q5WJaJ{5FtKWnt36+rnN~G;UrMQd&<^Wev zvBlgDc(WmIp*$s|dL6tz3lWF|76D5oEQc&WCLUi21i}c{@o*@wq=e}(6a_3?iB_Rd zIrQC#yFzYQfx-a`;@*h=2H6J80F)Buao4Sfocm2 z$Bj;DI*Y?pi5B!-vLc`7H@nEO{F22v*oq~eP#5F=0slYQQb@L3L|Zwq-p)lgJYyl(P}HQ-HI z<<)nQjexB($xBi!c}XnnCOCy!8_5@>LlUXLMydiS&&F{BCtKoV+Bikvq}n(=cqb-H z9F2{02%JR8CDX->ojvUAMFE!>Ex*NVL5pU#{rm+V*IxDrvmnyTI$8L;F5H#Rg~u(j zJm(UJ)bmL77d5&T>rE*^x+%F$=Qky{(7&AGy~dq(7M9o~%a;{!yB1b$;9dk`dLLc{ z<20^oE!ym+a-g`QP1~%JQzb@y2YoedRR74PaP<_#%BVJNm{!xmr{V2dnB5SgUR!8k z%bU)e%=MgSG&&YoV;0tEwB8{&r{2h~Z7R`cVqt+s z=aNh_$%{lvag(3uD;)wSMj+fjuInFY&Hf>%?Yhk>%<`e>Dw1zu_wj0U3*nb_*Y%NN zOK%yb@FlvA_;#@|omr1~W3tidrUYIYv^ZFyhQ9~?Pz$RW7=+^CeRsVUa}O)Kz@0H^sw21sADX&ZwF$BSat>rZ zydwS1I2EN~P`<(|B1bAP+vW?guoPHK9gdrow9{0h%w!j5?a6P=By*fPRW((88KLii zCu~#a6paw%fBScIjOT;g>e+CG8cnf4GIsF-*|la)XN+;-rfmGEdO(kPu;E z(aqB|hoTyO3fEXzRC5nogvvWlmHUQkHlvEi^;0xA@J{N+14(=KAr|JU4Al|Hwqbl? zTG(HEyVwt?pRPZjoV%N?UatUYqpEvtE2d)IDn7}uK!f-YWQgzP3FvA zUlue0OSo(m=cR*}0h=v&FCOD8t>})M3ECmab5Rh~H%j+F%C(sq3r@Dk8IP&R+i?}? zDZ~2ql#xhJo-$sXp4RkAq%XFm4?w!rEyKMsePw7*fTWTNv9PXQ3tQ037t$VVLE%A| zkbA6CEN}|nhysJG6DSY46q0Goc#OHbRDCy_=?rk3ZJg`ibc;TQ5OFH=1)QuWS|2{I zv2%+Ki8vH`FYsxhb&+JY@9G~3OwPWwvx0U^|@xO+lw~{nSp#&Sf?GYvAdp6IG)GCRw74|_cAV?rSjl-aXUx+|slij)@%DljA@RcPc;mtI7kOH1?Xy7il!)$jL~jtC?RsNP zPY;X0P?#reRvmA^juDWqI?;%Y7%~~s2-gdra*=qBHF%6i2RAtJhdNdjO1KA?4IZzO zCK|S$)xy}-MO#&OFqSn^=HbX(C1$RYs1uO6T+Cc1X@Zg2gqLukl!qYC5i!pZiNPQI z1!A6jN#lk*w~!}C%G215@y`@9WlEG@m`N2grAV5NCq1kZnKT~!-QUSBwOV(>8#rj= zC0)6wQ=0w>U9@DpyxYP;QHAO7rQok*?ccB;A!@>{8ZEmFRiLN}lt|w|qYyP-lBNtA zcTwXmX--1pDr%f1%~5E$;|6~v&3N!Tom;-7ey!Y z$78+D=Ay8$jo{TtylOk18+hd~$tNKn`DN&@(R^TrSZBgSbn=lQd?p-{ikt^a`9t_j z$almE#3#p#$n?y43(LUakqw{FPv**r{G+PZHhgjgJ!K;Cfj?(7HXk>>{Ju5U5AhQ> zrcPGd^0C=Cg@nv#`~5^G3&-O=qs@4NGrQU5F02Ps1Ou?0yFhU8KojwI+?`-G9L<@{ zuMeTN_GmG}g>Wq>-sJ6>gmSiGxgUw@O zVYSG5+uz>t*vZy_Q)9=u08XXk<0!ZJI67GZc&F@mC+Nkjp;Oe*=GkfYB6qfwJJT-r zc<@r}cvd zo#JP5h0OzFVKHF2``drD>0~YKpS#5$}uU^G#9(-;$12PhbLOJSXc#-qK z3?K@L(;=f#%c+n&Y{65XKraK#2zNu*0m;KjsI&_T)*)<=V1nf7kAXH6vJ#bTK)9Ay z2r?RZeuJzBq(#Jj``kHy9oyL4kw-VA3MA9)(4}hTr-C8$jg90m{*WbVw68 zn;<#n09&A+0hs}00iFPFt&0@j0oj1cyF+&i@+juW@KqT9-AL#`#2GVI4m=CE0PcVr z021*46o3~H0Qdqaz&hYEa0yUg{yavP^KR#m0nUJD940afOa!tp3C|`VFQ1INQO0g9 zT7%4eQ8fm^_B z;688+y~$gD8`y&I7H9m~i&%RAYBd+Ft!ilOuH)T^3I zeEClX>PP!vn;WL=Vms-Ro#TcCBP|nY10H)Rt?Brw41HnO}pglX0pYCPN za&>KqOngLqSJ=ts88b_K#e*giwNo3T@gQ>>8mZ>o-A!&K^YH@&hjqN>?oHfACp%>5 zWaS24WqupbIdMObj6T@)R*Vu_Vv4}qH`PNaT8I=i&A9YyBu$v8*$&QPNfRJy7C|#d z(sEvr<2j1hmD;qkG_?=VAyP=rQdKktni(p4o3^` z_PCYuURX(Q5ORs67uDg9@S9LUexA($4-5=4)$AVAQV`m{1W0It|)+$o0iwo*yt-FU*s|*9L z)vlsPG1d_{q~jxXDYN0_&G41*+S4Pu)~KVQ6&@2T9<<8-bWo?r(K6 zjcy$3Slsk4d_cf7ptC+0sdd&>%zm-3pEz;SRgNbe)n?YyN_-+Ab-0tLYn6|i2RdR( z9XBW+&+?hyc5?%-G;h*nR6@Ah$&C6=HV0vCTifYE*zRKcx<41o$kcT*rI_;Q^rvFV zuI{6=`H74gB?6P*N>`cLJ6QTd8}VuP}&C z&hyjmLT!0gGfP2z({5P9S6a=i5%K-CyB}^9>tZxGs7)oZRF`w<=(KdP7TXJX@vB=? zXMbnwgY9A;BuafS8#X={`(S(FvPWx?^S_VQi1w-tPHOnRB2($Pzln-U6re2S1!zFi zz@($ptzoEhWNSG79){PdzJzz~8anX9ks}nX*6OZo)jf(wuAd+AwCkw+78>)R-(St_ z9xBk=k%9Rr)2BZ=oQ>Tw2RkRe`Yc9x_j}k)-^EUh9hC39Njq>d173g(XxxsC5;y?l zWB)q!5)L-{uMda57KYre(6~ePz`|{y42MZ2LArmTFgc1DLMlPA$ zc{io|IV`rRdWYX|-=5}mfNv`)5eK5QZLglOu(obN!EL;jKePXF9k+_*O+U$hWypNI zsB7U4`^mh{k#8>DMP`;v`+sz8=;78nb94&sfwQ-$>dZOrb>=v^ndQ^wk0y>j(o$zG zh?uGtXdP~%b-1q*I!$e5+(f=)FeB(od;cq(ph5c<2$^*AzK~(7Tke|U-S3*`#E~YU z|19-gSR6aT%$CxN`-TY%=`Z^x%Icb_TY;zGPlF0Z4d2)s|FDxe_wc2){&fEXf*)O; z{Lsv9H`C<>5yCvWuVABals>cnn(X^0rFZrx$z)~&RUYyb9O!F@{2T{&cCuILwnIM- zK571R)rvPd+2>}zRetB3>pR&|y6od&vb)_h{o~=nd-S7^pC7Zjx09Xf?qwfV%)dUF+yr!N#%&N-11tiH-@*KbG~!#_ z9pDn60#*b5z+TKyH^?^F$_C7-xHCgK0~-*o0hUk4TuVk^HQ<4W0Y;Aid7H2xfMOsY zxQUN|p^(e*T`wPBC6jG~t%T-#cD zS;#p-VPX1ST682(*4RUD9|@3E8TNcKT_~l`fAX2&N&oMY(Lr%K;+Jin9ARdY4AtgH z%$06@ym!XqbIT;6;Bzt3JtnG?O{3$E&Ju>xjYqFN$KQv<^xC$d5k!GeqVqrP6ufB6 zv5|rced}1$;KFV`zz+2*R*iu4D>1Ww(lPi7P(S;O4k&BplPb3; zXhbI)M_)Yd!|fa&=jhno$ztfo$Mv#XMw;{a-XRsZ#>{BTKi$Jtf8(m|Wntxvji(a| zr)U@A!(S}m3AEr_+9luwkOL$Fvw;Yp7@x}sB>&dNKPDdlvVeuaZG1xWhcrOm2U21| zg{;Pxuf6~Xj?s)576cwpCRTuE0Vz&Es5NN=DB8=wrb0g_)gQ-Of7*6ZmS zY%=^yG<(DSL zbWMMK+3|~C^#e%CW|i#lPgv{>TgE&1ryUthPTn4OhW>6Ls^5vg*u5S){e)uRTa{ih za(FZu^EQO58Oxz>pO_i8EQ)TG87{gF2%wOsfYziu|Na=zTqXs6!g85 zBZC(=E1)w^6L9;yvm6c={Ir*`SllN0bZf@#tziVWd)Yv*pHxilz}1nl<4y7B91jTa zY?Ms{p7|+$gm0>9goZH{zHJmf1H7E7+JbB;MxtPB1|5BBn&3g-I5k98YoMv86fTR6 z)!6(jjCIqar{ZK512vxt2w&96*luk7O4Gt^*hC`+mlVLLKR4A-Kb z+P3pW3fva%u4n9s-l4$Rr-NBqi*ZBF8D<^X!?*>_Y};CdTezgjr~fP(Gdfe$Cqf@B z=~G3`tI$MBnl-ekX!PX8qJA3m&XRtis2LAUH$2;XoM%HrOyBH4LnMuozH}yN7C{G9 zI}5(0U+`|L)K%bjf-~EKi~eW~#0XXC6p5cUY7nZ_B_SfD>8$Qh87QZE5@a~KmGYGT=uaY%+N{~6$i*J>1al= zx2&gy9xnD6c^SP_^*Cl5!IP?=s_qeE7QKT;9Iiqo*UzFabL_LNS?H+5a_l1CQy_wIy8oy^qxDmvpUx}bEN zb6&G%HJ>9yF~Tvr ztt=+;u~G0*pcO4fnJ5iLS*VsxIK_3dTf-V2YMrfrk5Q&-zvs&8IgS%s-1%a zg_uIKev9EVse`G+xPR6IDL!3{du82|;t^upJ?j@K9xBFNvu;Uoe=#o4`bmm=A+9tz zWnGAh_~kY87}9}f$~D}WZ!cf_XnATfJ^ke@g%Mx$kKCw`ax{wH_y4`^Ybk!;NT2=6 z6aNNn%vaNb?^{UdtlEvKfA|O-blo)_!5qUrI2yJ zVH{5PWVr1hybj?Cr0oG>fu7|!eIYw=(>5S{6VQ!;t78@pGRRAltTHD6rzX+@A+xDa zK1y3R1^1?@IHzaezyZABK&gQ|0E8m!4xIJJxruUzmm~kpeG) z=W%EO3xVI3z$FDFqm&J>t;W@hJKuJUCU^+oM_$O!y?YHZoZZ}*QHCa>BFho(PQXI} z;VR%nB$^HE0d@fCz#3pV5DuPUGEPju1mwI1HxrNzOa*G<;ev$ZkDW%qgfb!^`>pTo zJ&J!qrETjz{lHAU&v^>F>Ev@Sk8*9n=T*4w;}f?&ybv|BWAo{-M%O(Vjq=eU4?FM* z`{djxK~Dd5Zm?GaoWic7g~)VO?ebS1UNb9?xShhzncu;#_EOWi;90rG$WrS}y3piY zLi`-?-9J!05VNS=jF}a_Vf8Bp*)t8|#PDjlg()FZUo(^9AhqXeKTL~U`g+Aop@1H& z7$r=n=PPF6_3)%(g77LGcYc<0y`fG|grgdI&NAq#>1lvPwOTtqjv<8Ldl3WvJG>l3w=Y{1ItU6kwB^(UyMZV=11e zk3DyAcDgEdc@JBA@qoC(cN=j#ttgNf8T!C;duI#SOc#K&Bi#!p|*VoPh+ zN-<}|=GG?n6(d7*LhWiP(W1*lF>i^*TrwxQ_pqNYyr|M>u+cZI;GOhF54(Qh4T;^L zBc;ov@O@ov$r34i8)xd78`gZ4O|QiWk!h+LbU}$^D_Q^7+1hl~C3B`@5BpqF7B($F z0kxnVmNfDDxzJoPXM>e5>E`KUL|rO$yCj`T|Dved0$rx0o2s8B>dgIm*d|H0spsRg+PkUL;0LoNqQc=$&_ z#zGbYvw^H}SnaRi{tD>^1R#7b9NUa1ZrBLlL71<~vkM8?{AJQmL3SXy*3 zY<#GJUvgEoe4D-}{-em~+6ghTlZmVN4+}bQ?Q}aQJ4iyt-f;I36dmk>jy_v8N$V?S zyK%$&=4c`za7j=?@(W?@lm(4L#;&d^COR!gVjT0czT-36Y2Bxe>@rp z-C#SNN^i}P)%x&J2kSNrh!*znLsq5}4!p9e_ddCJYz`i;0QdNi31ldlfe1eklE!0f z#z6@=V?4c6b;(nKpy|u)#g6Ld)DF}i)%HMbaGfgqm%oovpZEsx8?LtARLXTn-Vl6= zpP;^`Cw{ySoN4F3CJu53%dt58n@r6$z040c96eQDN|@!*Qm=6?X=is@6q-*o?JONP zr*Cv_$`1DCxpgnOeJNMZT9t`5rs_Xgbp+}17RBmz*4^C4T1f9+nmMAf#ks_>n0zCT zcG#b)ax7kAmN&JtZ!p>J(23s$3GQ^+w?k#PP^5mFi0$o{Z$}AZXy>;hoyM5Z78=^-I=XDtw8`zRMeStNB;_`1_h(*ywza z&==JI(K`+*MAc&H$?t~2Q~KR^D}-1Yba|tYOh3LHA}pdmTpqE)&3Fqx`pU!)$l6(+ zF=X{^4d0gzXSTD|#sT}~_z8MDJ8FD(zkr|9^X_>_43NWvP7Cgf39OjN1?f)JV7d7%Qu4qSt@)*5>L5A9loiYGUsBLFD z{d4<+)pBSRhB-03pVCzAEZ*4HKh{=u8#^`bC(FhD*<{QVt=AfO`&|s>cw9u*M&X$d z35P>br(B&=vQ0ByU5?S?*T&bZ{pQ9x^wy5stLGW-?SFPQYaD*2DPR>k_CTXjdn zGldxx2W8adpg^C+R4CW{jH%H7U^^=`{H&Kbq^+to=PKk~4!(o`wgcBN4$ zaF8ZAJ5Tpq3)j@@{Zglu@R}wVQ*Dsi1va9ZxTQQpkXivby@}v&t-kFM zxmbl88DIMqkbK#bFW)V0XWW_Xh9PsnY7+8fIHue2UJ(wqKS~%~8hpJ%CU}%StW9;7 ztKZm|LdQKE@|TqeEML1e1^=Iqjf#bD@}MGRt>Q%$wiEbX-+pt=->0rvyJqF84R0@d zGbx#-J^Xyt(>#Q{U`{U>%SL9096; ztAGw@1KfVc$pl0KaMF-OAQ{L33Vz21i^)f703Bck1k~66ChplN^tC|z??q so lk2nd enters Fastboot mode on reboot. + * Stock Nokia aboot (0x2327c) reads PON_SOFT_RB_SPARE (0x088f), clears + * bits [7:2] via `and r1, r4, #3`, and writes bits [1:0] back to 0x088f + * before chainloading lk2nd from the boot partition. + * Write 0x02 (FASTBOOT_MODE = 2 in bits [1:0], 0 in bits [7:2]) so + * stock aboot boots lk2nd normally and lk2nd enters its Fastboot menu. */ - regmap_update_bits(pon_regmap, QPNP_PON_SOFT_RB_SPARE, 0xfcU, 0x04U); + regmap_write(pon_regmap, QPNP_PON_SOFT_RB_SPARE, 0x02U); } - pr_info("leds-msm8905-torch: armed PM8909 PON_SOFT_RB_SPARE for lk2nd Fastboot\n"); + pr_info("leds-msm8905-torch: armed PM8909 PON_SOFT_RB_SPARE (0x02) for lk2nd Fastboot menu\n"); return PON_POWER_OFF_HARD_RESET; } if (strcmp(trimmed, "edl") == 0) { if (pon_regmap) - regmap_update_bits(pon_regmap, QPNP_PON_SOFT_RB_SPARE, 0xfcU, 0x00U); + regmap_write(pon_regmap, QPNP_PON_SOFT_RB_SPARE, 0x00U); ret = qcom_scm_io_writel(MSM8905_TCSR_BOOT_MISC_DETECT, MSM8905_DLOAD_EDL); if (ret) { @@ -232,12 +240,17 @@ static unsigned int msm8905_pon_prepare_restart_mode(const char *cmd) return PON_POWER_OFF_WARM_RESET; } + if (pon_regmap) + regmap_write(pon_regmap, QPNP_PON_SOFT_RB_SPARE, 0x00U); + return PON_POWER_OFF_HARD_RESET; } static int msm8905_pon_sys_poweroff(struct sys_off_data *data) { msm8905_torch_hw_disable(); + if (pon_regmap) + regmap_write(pon_regmap, QPNP_PON_SOFT_RB_SPARE, 0x00U); msm8905_pon_config_reset(PON_POWER_OFF_SHUTDOWN); return NOTIFY_DONE; } diff --git a/src/sxmo-dmenu/dmenu.c b/src/sxmo-dmenu/dmenu.c index 7c03bea..8baaa91 100644 --- a/src/sxmo-dmenu/dmenu.c +++ b/src/sxmo-dmenu/dmenu.c @@ -2190,10 +2190,8 @@ open_builtin_menu(const char *menu_name, int keep_idx) add_menu_item(label, "@menu:confirm_logout", 1); snprintf(label, sizeof(label), "%s Reboot", ICON_RLD); add_menu_item(label, "@menu:confirm_reboot", 1); - snprintf(label, sizeof(label), "%s Reboot to Fastboot", ICON_RLD); - add_menu_item(label, "@menu:confirm_fastboot", 1); - snprintf(label, sizeof(label), "%s Reboot to EDL", ICON_RLD); - add_menu_item(label, "@menu:confirm_edl", 1); + snprintf(label, sizeof(label), "%s Reboot to loader", ICON_RLD); + add_menu_item(label, "@menu:confirm_loader", 1); snprintf(label, sizeof(label), "%s Poweroff", ICON_PWR); add_menu_item(label, "@menu:confirm_poweroff", 1); snprintf(label, sizeof(label), "%s System Menu", ICON_MNU); @@ -2208,13 +2206,9 @@ open_builtin_menu(const char *menu_name, int keep_idx) reset_session_defaults(1, "Confirm Reboot"); add_menu_item("Yes", "sxmo_power.sh reboot", 0); add_menu_item("No", "@menu:power", 1); - } else if (strcmp(menu_name, "confirm_fastboot") == 0) { - reset_session_defaults(1, "Confirm Fastboot"); - add_menu_item("Yes", "sxmo_power.sh fastboot", 0); - add_menu_item("No", "@menu:power", 1); - } else if (strcmp(menu_name, "confirm_edl") == 0) { - reset_session_defaults(1, "Confirm EDL Mode"); - add_menu_item("Yes", "sxmo_power.sh edl", 0); + } else if (strcmp(menu_name, "confirm_loader") == 0) { + reset_session_defaults(1, "Confirm Loader"); + add_menu_item("Yes", "sxmo_power.sh loader", 0); add_menu_item("No", "@menu:power", 1); } else if (strcmp(menu_name, "confirm_poweroff") == 0) { reset_session_defaults(1, "Confirm Poweroff");