From 4d9de1a81a02c4c8892c2217135ce6807b3f02ff Mon Sep 17 00:00:00 2001
From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com>
Date: Wed, 1 Oct 2025 11:57:53 +0400
Subject: [PATCH] Use custom navigation bar notification filled icon (20.39
still needs a bytecode fix)
---
.../youtube/shared/NavigationBar.java | 19 +++++++-------
.../misc/navigation/NavigationBarHookPatch.kt | 24 ++++++++++++++++++
.../revanced_fill_bell_cairo_black_24.png | Bin 0 -> 378 bytes
.../yt_fill_bell_cairo_black_24.png | Bin 708 -> 0 bytes
.../yt_fill_bell_cairo_black_24.png | Bin 394 -> 0 bytes
.../revanced_fill_bell_cairo_black_24.png | Bin 0 -> 237 bytes
.../yt_fill_bell_cairo_black_24.png | Bin 434 -> 0 bytes
.../revanced_fill_bell_cairo_black_24.png | Bin 0 -> 415 bytes
.../yt_fill_bell_cairo_black_24.png | Bin 843 -> 0 bytes
.../revanced_fill_bell_cairo_black_24.png | Bin 0 -> 711 bytes
.../yt_fill_bell_cairo_black_24.png | Bin 1423 -> 0 bytes
.../revanced_fill_bell_cairo_black_24.png | Bin 0 -> 848 bytes
.../yt_fill_bell_cairo_black_24.png | Bin 1287 -> 0 bytes
13 files changed, 33 insertions(+), 10 deletions(-)
create mode 100644 patches/src/main/resources/navigationbuttons/drawable-hdpi/revanced_fill_bell_cairo_black_24.png
delete mode 100644 patches/src/main/resources/navigationbuttons/drawable-hdpi/yt_fill_bell_cairo_black_24.png
delete mode 100644 patches/src/main/resources/navigationbuttons/drawable-ldpi/yt_fill_bell_cairo_black_24.png
create mode 100644 patches/src/main/resources/navigationbuttons/drawable-mdpi/revanced_fill_bell_cairo_black_24.png
delete mode 100644 patches/src/main/resources/navigationbuttons/drawable-mdpi/yt_fill_bell_cairo_black_24.png
create mode 100644 patches/src/main/resources/navigationbuttons/drawable-xhdpi/revanced_fill_bell_cairo_black_24.png
delete mode 100644 patches/src/main/resources/navigationbuttons/drawable-xhdpi/yt_fill_bell_cairo_black_24.png
create mode 100644 patches/src/main/resources/navigationbuttons/drawable-xxhdpi/revanced_fill_bell_cairo_black_24.png
delete mode 100644 patches/src/main/resources/navigationbuttons/drawable-xxhdpi/yt_fill_bell_cairo_black_24.png
create mode 100644 patches/src/main/resources/navigationbuttons/drawable-xxxhdpi/revanced_fill_bell_cairo_black_24.png
delete mode 100644 patches/src/main/resources/navigationbuttons/drawable-xxxhdpi/yt_fill_bell_cairo_black_24.png
diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/shared/NavigationBar.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/shared/NavigationBar.java
index a0194f0dc..479f7c01a 100644
--- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/shared/NavigationBar.java
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/shared/NavigationBar.java
@@ -278,13 +278,13 @@ public final class NavigationBar {
}
/**
- * Use the bundled non cairo filled icon instead of a custom icon.
- * Use the old non cairo filled icon, which is almost identical to
- * the what would be the filled cairo icon.
+ * Custom cairo notification filled icon to fix unpatched app missing resource.
+ * Custom icon is modified starting from
+ * Font Awesome.
*/
private static final int fillBellCairoBlack = Utils.getResourceIdentifier(
ResourceType.DRAWABLE,
- "yt_fill_bell_black_24");
+ "revanced_fill_bell_cairo_black_24");
/**
* Injection point.
@@ -292,13 +292,12 @@ public final class NavigationBar {
*/
@SuppressWarnings({"unchecked", "rawtypes"})
public static void setCairoNotificationFilledIcon(EnumMap enumMap, Enum tabActivityCairo) {
- if (fillBellCairoBlack != 0) {
- // Show a popup informing this fix is no longer needed to those who might care.
- if (BaseSettings.DEBUG.get() && enumMap.containsKey(tabActivityCairo)) {
- Logger.printException(() -> "YouTube fixed the cairo notification icons");
- }
- enumMap.putIfAbsent(tabActivityCairo, fillBellCairoBlack);
+ // Show a popup informing this fix is no longer needed to those who might care.
+ if (BaseSettings.DEBUG.get() && enumMap.containsKey(tabActivityCairo)) {
+ Logger.printException(() -> "YouTube fixed the cairo notification icons");
}
+
+ enumMap.putIfAbsent(tabActivityCairo, fillBellCairoBlack);
}
public enum NavigationButton {
diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/navigation/NavigationBarHookPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/navigation/NavigationBarHookPatch.kt
index 77ed5ed7a..92b65839b 100644
--- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/navigation/NavigationBarHookPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/navigation/NavigationBarHookPatch.kt
@@ -6,6 +6,7 @@ import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.extensions.InstructionExtensions.instructions
import app.revanced.patcher.patch.PatchException
import app.revanced.patcher.patch.bytecodePatch
+import app.revanced.patcher.patch.resourcePatch
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod.Companion.toMutable
import app.revanced.patches.shared.misc.mapping.resourceMappingPatch
@@ -17,6 +18,8 @@ import app.revanced.patches.youtube.misc.playservice.is_20_28_or_greater
import app.revanced.patches.youtube.misc.playservice.is_20_39_or_greater
import app.revanced.patches.youtube.misc.playservice.versionCheckPatch
import app.revanced.patches.youtube.shared.mainActivityOnBackPressedFingerprint
+import app.revanced.util.ResourceGroup
+import app.revanced.util.copyResources
import app.revanced.util.findFreeRegister
import app.revanced.util.getReference
import com.android.tools.smali.dexlib2.AccessFlags
@@ -46,6 +49,27 @@ val navigationBarHookPatch = bytecodePatch(description = "Hooks the active navig
versionCheckPatch,
playerTypeHookPatch, // Required to detect the search bar in all situations.
resourceMappingPatch, // Used by fingerprints
+ resourcePatch {
+ // Copy missing notification icon.
+ execute {
+ arrayOf(
+ // App does not use ldpi icons.
+ "mdpi",
+ "hdpi",
+ "xhdpi",
+ "xxhdpi",
+ "xxxhdpi",
+ ).forEach { mipmap ->
+ copyResources(
+ "navigationbuttons",
+ ResourceGroup(
+ "drawable-$mipmap",
+ "revanced_fill_bell_cairo_black_24.png"
+ )
+ )
+ }
+ }
+ }
)
execute {
diff --git a/patches/src/main/resources/navigationbuttons/drawable-hdpi/revanced_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-hdpi/revanced_fill_bell_cairo_black_24.png
new file mode 100644
index 0000000000000000000000000000000000000000..ba9154778287b0f833385ce97391a260c95f42aa
GIT binary patch
literal 378
zcmeAS@N?(olHy`uVBq!ia0y~yU{C>J4i*Lm25-&)VFm_9M^6{WkcwMRuWj@@8CQs};moU;R5pG+!E
z$~eo)B<7!SSZ<@iDPzO7m`@U-Go+pEMO4f`ec=79Vt#64Qtpi|8MpR~gM0>AT~53`
zY>O`FvZ?NKS?KSj5-`VDy!F|fg&m>KS{+2VDwg^5$e3q5*?mkch}%BPbdh{ufhr
zt6$QTYqSu0Q0S!6o%}22Z?2Dpw81^gx0eq&Ejg_u5_RG4b#@_J4mJh`hKCF@W-u@?ReHKOhEy=VnPJ&25-8Go
zTh_4f-~nDAmg_D@LzoYWy85t+@|XxH8x}MEZ&|dk^N~;e@ad%Kge~GuV&*?OL=DZX=+vLt_EmZ$0eVTd%rJoVb>z5tkmdkUZ3;5
zKl?3OKA&0b+7X!Su~65eVk^%=sVqgm6rA9lP#W-5$VeZ?+_9hht3a8ktxg<4W7G
zpp}MCY*#D^j{bh>{I_X5x#_=z=7{PkFHuwMoueq!{yFvMYDeTezI#mxw|ao#OG&<&Zk@5Id-!r3Qb(N
zdP{E8Y1XalmmE=cj?ehV-CZ756}52Lt#^i|(vnr~%j2KO_q#1lU$gsfN`j`E%{IyG4EwjH($a9W&e)nnq
z^!FF`Yitu-nq7R&V{3B9!f$uA)WYU0WMyDr`2YXJ8n0jm1_m}zB4lP*axB5Kd&}Hd
Q1_lNOPgg&ebxsLQ0PJc(wg3PC
diff --git a/patches/src/main/resources/navigationbuttons/drawable-ldpi/yt_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-ldpi/yt_fill_bell_cairo_black_24.png
deleted file mode 100644
index 9f390c5146627ebca4d6095d13b46f63302efb41..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 394
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4mJh`hOl#e;S3Cn_MR?|Ar*{kChaz2ag=C1
zKG#Lm>qVFnr)tSb7o~isN1`r9L8~eR{1uc1KX4UI*V=c!tpDA-nX-**i?{u^dw%BT
z%$Krj|GhL`lhJZNqFuf5TvpC(i7*rYKSJ}^tyXW$U9>u*=Y^h4gK*=y>N8b3mbbe0
z{8dicULfRVaeu=_P*f5
zGHv3SO*{c&EBiiw<-Bjb;yL&KL+b;@A|DC*PyFz7TVOup{mUtm3v_0=-fO8fNZxjC
zs%x}`^#=Yloz=ye6Wyy@jhTNZJexJ)`i79us4Z=qIR0~OUTru>%vK@qaPI-Yq@v*GT^GWruXrZN5v&Lw5ap7$>05
xH23NavyZ$C4FCT>Ph>mDz`(!;3QA@Mu>yV7b3dPlGcYhPc)I$ztaD0e0s#Aot$+Xk
diff --git a/patches/src/main/resources/navigationbuttons/drawable-mdpi/revanced_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-mdpi/revanced_fill_bell_cairo_black_24.png
new file mode 100644
index 0000000000000000000000000000000000000000..f3e768ba52215e25266c77d256d720d8b7d2cbd0
GIT binary patch
literal 237
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#TRdGHLn>|^y<*7MWFXP@
z&|HY4+i%0`W$qU}%^xqlrTv08Vh8JNxdun`6y=u2Qwbdj|1b1DkNv%L?kOE6llOYQ
z4Z^)YmlbYU@`hbiTg~N;p}lQ~!?TG=Zc8gV{I=9LPg7pRlC0_Y;NvE~d6yQ~WW8Q+
zY+}rLn;{0Otto6aTIa=
z`#?Y7&(mdfMi*^oXe2F}xQofKh~I6UV~OrA?xU(tI8&hi_0_)L
zul&wmxEn0||BvMChDg0HeEaw_)*jo|b4z>2(;3=3j23K_x^0xjBxdJ|Kj%qpD_LT#=YaY
z*2?Rv56CHtUwHmqe%_1!25V-UiWl6nc-4Jv=C%gib2+Aqrx&;t3%hwRKYM9+K=Ow8
zIUA!Vk~;f6nEfV{Ka79)rqE&z+m8=b+`P8g>GKcIGkJGzi(&Ty|tI3cvtq^YWSqt`i`H0
pf#LuE*t4oJ3=9lxpde>vID19U@R7_(e+C8y22WQ%mvv4FO#r>N!ifL?
diff --git a/patches/src/main/resources/navigationbuttons/drawable-xhdpi/revanced_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-xhdpi/revanced_fill_bell_cairo_black_24.png
new file mode 100644
index 0000000000000000000000000000000000000000..dfaf31c8b5348313f45a5b11bfad82f0a5e74184
GIT binary patch
literal 415
zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4i*LmhQHi~JPZtsX`U{QAr-gYUN`h+N|ZVN
zas9!$i#&8)OM>^Zwo7HLR$Ua=cG~e$1j|~}?&=HK9c@uPHtMRgvezuU>>+D2p;{=$
zsqgc@^S0d&o^SuZ|MUD-%SlI%F1DZ7?k#p$=GKb(?8gZcY%T4lZZJIN>U!qrjI@*m
zor<@4l$o8&JaRiPpZs}(H6%i*l}EiK!0@xBTJtuc`70!UFKSt)biT!yS+TS$L(|wv
z^+t!06xW`GLhq(BC9$(~GBf_>NZq06Bg3&%t-0f|e(QYS~0ub8r1^_ur9hq)2qE19Ps*|hTF
zWxIQeyIR{`r0^&2IniM5&fnq7ZMs#=jLkB*Q;e_e<_?n={nrm1jr;TU^JD&Z0@`;i
U_OFX#U|?YIboFyt=akR{09;Y3N&o-=
literal 0
HcmV?d00001
diff --git a/patches/src/main/resources/navigationbuttons/drawable-xhdpi/yt_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-xhdpi/yt_fill_bell_cairo_black_24.png
deleted file mode 100644
index 2eed03d8b17dbc774585eab9d5a9f600465dbd85..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 843
zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F{GWwo?wcI=f3NYf?S=z#5zhB{e{j~xU&{S0
zvv{>^)ceM}I&Y0@*!&NaI`7JzpPcm~uX!3{*ybhQKM2UMAHT9fcDd)*?K}ljPw7oq
z#$lS(z34^4X@=>GT`#6?IdOb(Xv5<=2pIONG%60N_6-K_`cdB=ob|+~I$2;!L`1C?5!FK7q
zL$L)xZ;m|RyfRs>eI27-;4_ssdtT4{EnYR}QSUqx%M#8F(}d#0)-1?n-McP%nYph_
zEYpun*^cQP+Wd=3)?Yd@k@vwnyY9bQH>9dw<@RnUH#^`pr~g2R;1|IcE4P~}{c2Q`
zKJfplZS%~(dtT)BZm2eE_;oh%`<{UO?3Q%3Bg+2&!`<_x@_)RYv*`@mkKW(@Kh~gdq}QiGR_BGu8|ie74YF+$I15;hf2o{h8Cg-DzV^bNj0WEw
zcN@D|vvYeyy4fmPZYIrf(lkC`7AJp5ONnvM%Y9*`S^6K?p4Xh+CYGSjmY?wIwqPxH
z#AjW%xP_N=dZHTGeY|Up7v*!V_j^B`C!4YBrS~!3<6YS+Sbtn7P>fv*Vtsh?_^@{U
ziWj>Y)_q>{v*~32!-y+Pf0CA^GwaW_UE#Gw;gi6XX?tWgFYC|m`p&+UVc}IC*Z8*F
zB_}hw>vWm-Xot(7yWoEHk5~o_vz`*eT|MdXN`3wvUY@ocr%)s&^D)EPzl_LWK1B0ilpUXO@geCwB
CXO3wA
diff --git a/patches/src/main/resources/navigationbuttons/drawable-xxhdpi/revanced_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-xxhdpi/revanced_fill_bell_cairo_black_24.png
new file mode 100644
index 0000000000000000000000000000000000000000..759f1b3869a50bec8a108b7767593e9179a9760b
GIT binary patch
literal 711
zcmeAS@N?(olHy`uVBq!ia0y~yVDJE84i*LmhW}5h&oD4B^?ABDhE&{od+WUSZ@lMCdUtK9^97eh
zK?_p1OKq>%!#Q&xK1mR(#q0e&74^<#OLD{xYAx{rp4a<%<_LuGd`TV{o2J)oYEx
zd6qztT;byjn|>yX$~@ZQImt%q^L3NTNi2SbesY^nf9hGx5n|6*bzPy?*}hR~ansFY
z(PJD}n2x1#v%Fwfz0Ps9jDkX7(3P0xtTToUrCr7r`-|>`r%&9hq4VmI1z)MpG>4{-8ILI
z)B`(SsUGE9cJ!@*w|_+r_RP3qzSbFeX+Ii2ZWJni;daKL+oXoowBnFJlG_c3
z-&~h+44NhwT%KZR7ye8w(dEm8Wv{GPoN}%bxOiNs^uA;1yi4sJ8rmi`?4~D#TwQw3
zXWVz3<$pxL(1B5TgD=~XrYF?8ZqUKFqMLP5!|n{}?!ktq=u
zRFu+=H03EfY}62Yvf#s8gZD?8?iF#|U#8K)DmvrHa)IJ2N1L+F2pyWPyypN%-b}}u
zolc=9D^7*hym%_=R-ylLscY<=!x1-PMRX;fE}pu8f6j7NLzyj86@1$y~rl~WGynO_mu818=jb_n$Ej2|oAoKbHlSZ!{bq`cILZ
zXgAx_j>Q}?lkU{-KUu7jIXTeizl>0dMDF{Qu1#Ow2X~urE?RMp*USBQ-8W(1TBW2d
Ur?U7M7#J8lUHx3vIVCg!0G{JJKmY&$
literal 0
HcmV?d00001
diff --git a/patches/src/main/resources/navigationbuttons/drawable-xxhdpi/yt_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-xxhdpi/yt_fill_bell_cairo_black_24.png
deleted file mode 100644
index 98fd7f803a61b7382fd8d5d400e0516d40a68424..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1423
zcmeAS@N?(olHy`uVBq!ia0y~yVDJE84mJh`hS0a0-5D5IT|8YJLn;{G%s#nV)LrCQ
zyqnSa6uFZ&=ZnQSIXzF<2yv(gaBwP~R8nc2(5W*?=P&aYeSxD>mGtg(=pC8*$SHhX
zh=@qYmDa9*bw6Ax_EqPHUw!#%--Z6qdoMfBE#CKQ*Y3QpZ}+92=c!K?m0*$5K7Zzn
z!Ucs3EUap8XrvvPB?
zdp54?=k2%?8LeP#%Cuu&U3HSy-<7MOVCM6?jFNyGD}t_Z)N>8C(m--
zgH2~5ic?shvs@K(*_S|bfCMm6F%6|MvCrY7z)#E@ugUDi@#a@m^5*O5^X(R@0`B9=JF?fkv)tD%Mb6|?L*kHF`iMTr~l
zD6tlmz1I2em(ePy5+1yH+17Y92fZCd-6AitUhHAm6Mv{QNj&(gtAN?*K9LjamE~IJ
zxC>qHjQnk=_4}{jx;u+liYAo&*(v8W=}2kPwQ0?dC(P;cbm98Kl5=QXZPC+NGIHuW
z%9-wRul%W&m9s9Z=*3-0m6abnqn53SODmcfoYr+YF>v~f%0Evg+?|=|qcKF~$rQ6d1}C*hJ=6*c+Ibmc6OkSb@~
zukxDtiITd;)W|6gYilAyuWg+|$f%Z`wCAz4YS^3B?KJ=M9t2^QXGby$fob
z*S5I7qG0cq=LxC>m0?O3TBrPB|FMJhy7%PS>rb69?M_(daO|(cQFX`rXW6^%I~u)K
zzTYP_JI7z}qwNf_--3%G*^S*5>^Igee6Thl>Wx{)KdvWz*?B9ODrZ$??)B!JUKpHM
zRLj4tsC?$pv}sxw#Fu=Hb>4p|rErzcxg!56Z!=c~`4c~nMV$DqBkQSMet+th-Ysq-
zK`d1bJ?H!igLA(f+-LI2rOP31_oBc@a^_yIoVy&NUwp|kc>Aomb*-=UM5PO5lm794
zYsxg8U-skGhjYthJp@n8>HhgVI!5~=yJLKg5dY3~3of!JXlCTBWRg|=EcHR`gJ;|I
zVy-_YRTsLZ^-Y(s%4@7WbB2hMO<)Di`&f
zvrG5SZT$20jU2D!v7BF#FWkcos%40c6GZR>!+Zb?$fU~&TrIT`1`m1
z!%eqA`YtWmSE?EC_g-3v49hHqTc9$GgHuu_(%QU6b1$c22WQ%mvv4FO#lEkq-FpB
diff --git a/patches/src/main/resources/navigationbuttons/drawable-xxxhdpi/revanced_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-xxxhdpi/revanced_fill_bell_cairo_black_24.png
new file mode 100644
index 0000000000000000000000000000000000000000..5ccf8694242c26a94f84dbc8340bbb5cd0aaec18
GIT binary patch
literal 848
zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4i*Lm29JsRH#0CWi+j2_hE&{od)wDTBvI!0
z$Mbr!we
zJ<8ovBBzCgJx;olBsbBKN#n4xSaQUq%RGS`DGrT}eiIKUOfM}lYGt`1BD+St%`o(i
zQa4M)wA&$x9zDKaCi0g!%!@MUQ;II=*`0#i>_$w?p(ZTlG?GWY(2#@y=rE*
z-+z7m$IqT`cmMKtTy)^kH4OW)cX#*w*RKmNJ_>4IZMz_<^nlV^M!u;TUXK>6nkMM7
zQ825tp0VKKlSOOV^y;*(x$>@(aj|3%o%)J-(u!4~@&V1OLSHdU1#XS5J>VBIH%z`j
zDD?YP_B*au#lJGX)$p1WEI(l>lj&~(=C`hAla-m}7O9-uFp+WpjP|bNj)i=SA1&U<
z_vMM5d%QXIa*X8s3m*+Qw}d)hNrdqA9=QVO59l3~3LJSY?IVADtv0Y@Et)d?bD-$=$ul3G-{k)m
zee80*99!)vqh~!L=^4xBe|-5X^BK>|7d=HPLY*#6-=!6TrkE{1&D_txz`)??>gTe~
HDWM4fyXtv@
literal 0
HcmV?d00001
diff --git a/patches/src/main/resources/navigationbuttons/drawable-xxxhdpi/yt_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-xxxhdpi/yt_fill_bell_cairo_black_24.png
deleted file mode 100644
index e4732bf2f23fa85a1795ccf4c871a577719e6911..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1287
zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofvPP)Tw7+U|>mi
z^mSxl*x1kgCy|wbfk7eJBgmJ5p-PQ`p`nF=;THn~L&FOOhEf9thF1v;3|2E37{m+a
z>3gKxRUxFZT;`KH%h}BHCl!D2YB#w|+MHno_EXUt{@w80496H#q+OUf(eLfa(LD
z5A9L2_kFm};Je`SoQzxlW7lt5dRWC^y2Fq3M(hX83$Gmi
zSVV2pN#$JgcGK<1HP%t9H>sstxqf^+BP??A$D%_w&jl^cJpHZfgfp`pvlic}wKq0h
zZFv4+--S)h4_qJgHNR8uvp&GB_4)sD7c=Jj-z?ty7sY>&-4L1}bxg9>Y=80fg&)oz
zi$74eVE>Cp;f;&?(ri7`T#x6-7A>ChxLlvPjN!OpIUoYsTv1@9Vv6kf@l8z!1~
z!8Rw|Cbyp_<92n6b6F18w%0e={;=45^Y~*SciS-2ZpJGXiL(X^KQ
zTUKGt*?&{5FYj=*;*X4R<^CaBp}pE|(pAxbqc&5cp8xbwX39Dc;*soV^LEbHJzwo@
z#s2W{q)*g8waD}vU^?~_uPwPxJ;EtR^7s+Wnu|48;kUZNhQo)GgRh;th%&(;l~8ELQW6ODb|T6
z`+qLdiCXS`YsT_;-i2&`vg?~KpFUIiGdD#zanlkd{fz?ibaac~uJd+^;Mg6siIJI6
z!a(6>gD<1RhQLjXhZ!XdbZ$0WWZ;pQnseYB1CPYyD*1q;Z_ZEMx972NF%Pl|08I70h~~|Jf$j{;};PzKbhv{`(_*CbFbZ=}rCv@iUuF
kY@X4)Lll~w1NS`PtS$M&w`Z9MsK{gRboFyt=akR{05=#!K>z>%