From ae475f743bdfce9461d4f1be32ac86d7e8deca9e Mon Sep 17 00:00:00 2001
From: ghidra1
Date: Wed, 6 Mar 2024 16:53:12 -0500
Subject: [PATCH] GP-4125 Added memory block artificial attribute flag
---
.../emulation/ProgramEmulationUtils.java | 2 +-
.../DBTraceProgramViewMemoryRegionBlock.java | 15 +-
.../DBTraceProgramViewMemorySpaceBlock.java | 12 +-
...DBTraceProgramViewRegisterMemoryBlock.java | 12 +-
.../topics/MemoryMapPlugin/Memory_Map.htm | 41 +++--
.../MemoryMapPlugin/images/AddMappedBlock.png | Bin 20933 -> 24616 bytes
.../MemoryMapPlugin/images/AddMemoryBlock.png | Bin 20506 -> 23385 bytes
.../MemoryMapPlugin/images/MemoryMap.png | Bin 32480 -> 33038 bytes
.../cmd/memory/AbstractAddMemoryBlockCmd.java | 19 ++-
.../app/merge/memory/MemoryMergeManager.java | 71 +++++----
.../core/analysis/GolangSymbolAnalyzer.java | 8 +-
.../disassembler/AddressTableAnalyzer.java | 30 ++--
.../plugin/core/memory/AddBlockDialog.java | 9 ++
.../app/plugin/core/memory/AddBlockModel.java | 22 ++-
.../plugin/core/memory/MemoryMapManager.java | 1 +
.../plugin/core/memory/MemoryMapModel.java | 58 +++----
.../plugin/core/memory/MemoryMapProvider.java | 7 +
.../plugin/core/string/StringsAnalyzer.java | 15 +-
.../microsoft/ThreadEnvironmentBlock.java | 8 +-
.../ghidra/app/util/opinion/CoffLoader.java | 7 +-
.../app/util/opinion/ElfProgramBuilder.java | 4 +
.../app/util/opinion/MachoProgramBuilder.java | 143 +++++++++---------
.../ghidra/app/util/opinion/NeLoader.java | 15 +-
.../ghidra/app/util/opinion/OmfLoader.java | 5 +-
.../ghidra/app/util/xml/MemoryMapXmlMgr.java | 25 +--
.../ghidra/program/util/MemoryBlockDiff.java | 91 ++++++-----
.../java/ghidra/program/util/MemoryDiff.java | 131 ++++++++--------
...ryTypeProgramLocationBasedTableColumn.java | 18 ++-
.../Base/src/main/resources/PROGRAM.DTD | 1 +
.../merge/memory/MemoryMergeManagerTest.java | 3 +-
.../database/mem/MemoryManagerTest.java | 7 +
.../core/checksums/MyTestMemoryBlock.java | 12 +-
.../java/sarif/export/mm/ExtMemoryMap.java | 13 +-
.../sarif/managers/MemoryMapSarifMgr.java | 73 +++++----
.../gui/validator/MemoryBlocksValidator.java | 13 +-
.../generic/MemoryBlockDefinition.java | 6 +-
.../program/database/mem/MemoryBlockDB.java | 85 +++++++----
.../program/database/mem/MemoryMapDB.java | 2 +-
.../database/mem/MemoryMapDBAdapter.java | 28 ++--
.../database/mem/MemoryMapDBAdapterV0.java | 23 ++-
.../database/mem/MemoryMapDBAdapterV1.java | 3 -
.../database/mem/MemoryMapDBAdapterV2.java | 20 ++-
.../database/mem/MemoryMapDBAdapterV3.java | 59 ++++----
.../ghidra/program/model/mem/MemoryBlock.java | 54 ++++++-
.../program/model/mem/MemoryBlockStub.java | 12 +-
.../program/database/mem/MemBlockDBTest.java | 8 +-
.../relocation/MIPS_ElfRelocationContext.java | 4 +
.../X86_64_ElfRelocationContext.java | 4 +
48 files changed, 734 insertions(+), 465 deletions(-)
diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/service/emulation/ProgramEmulationUtils.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/service/emulation/ProgramEmulationUtils.java
index 9f9c9f4e01..aa16cb8c4d 100644
--- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/service/emulation/ProgramEmulationUtils.java
+++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/service/emulation/ProgramEmulationUtils.java
@@ -104,7 +104,7 @@ public class ProgramEmulationUtils {
*/
public static Set getRegionFlags(MemoryBlock block) {
Set result = EnumSet.noneOf(TraceMemoryFlag.class);
- int mask = block.getPermissions();
+ int mask = block.getFlags();
if ((mask & MemoryBlock.READ) != 0) {
result.add(TraceMemoryFlag.READ);
}
diff --git a/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/DBTraceProgramViewMemoryRegionBlock.java b/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/DBTraceProgramViewMemoryRegionBlock.java
index 4fcc08b297..69486012e9 100644
--- a/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/DBTraceProgramViewMemoryRegionBlock.java
+++ b/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/DBTraceProgramViewMemoryRegionBlock.java
@@ -18,6 +18,8 @@ package ghidra.trace.database.program;
import java.io.InputStream;
import java.math.BigInteger;
+import javax.help.UnsupportedOperationException;
+
import ghidra.framework.store.LockException;
import ghidra.program.model.address.*;
import ghidra.trace.database.memory.DBTraceMemorySpace;
@@ -57,7 +59,7 @@ public class DBTraceProgramViewMemoryRegionBlock extends AbstractDBTraceProgramV
}
@Override
- public int getPermissions() {
+ public int getFlags() {
int bits = 0;
for (TraceMemoryFlag flag : region.getFlags()) {
bits |= flag.getBits();
@@ -145,4 +147,15 @@ public class DBTraceProgramViewMemoryRegionBlock extends AbstractDBTraceProgramV
public void setVolatile(boolean v) {
region.setVolatile(v);
}
+
+ @Override
+ public boolean isArtificial() {
+ // By definition, any region present on target is non-artificial
+ return false;
+ }
+
+ @Override
+ public void setArtificial(boolean a) {
+ throw new UnsupportedOperationException();
+ }
}
diff --git a/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/DBTraceProgramViewMemorySpaceBlock.java b/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/DBTraceProgramViewMemorySpaceBlock.java
index 4012121576..d38679eea6 100644
--- a/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/DBTraceProgramViewMemorySpaceBlock.java
+++ b/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/DBTraceProgramViewMemorySpaceBlock.java
@@ -50,7 +50,7 @@ public class DBTraceProgramViewMemorySpaceBlock extends AbstractDBTraceProgramVi
}
@Override
- public int getPermissions() {
+ public int getFlags() {
return MemoryBlock.READ | MemoryBlock.WRITE | MemoryBlock.EXECUTE;
}
@@ -119,6 +119,16 @@ public class DBTraceProgramViewMemorySpaceBlock extends AbstractDBTraceProgramVi
throw new UnsupportedOperationException();
}
+ @Override
+ public boolean isArtificial() {
+ return false;
+ }
+
+ @Override
+ public void setArtificial(boolean a) {
+ throw new UnsupportedOperationException();
+ }
+
@Override
public String getSourceName() {
return "Trace"; // TODO: What does this method actually do?
diff --git a/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/DBTraceProgramViewRegisterMemoryBlock.java b/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/DBTraceProgramViewRegisterMemoryBlock.java
index d0e67cdff7..975509feef 100644
--- a/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/DBTraceProgramViewRegisterMemoryBlock.java
+++ b/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/program/DBTraceProgramViewRegisterMemoryBlock.java
@@ -116,7 +116,7 @@ public class DBTraceProgramViewRegisterMemoryBlock implements MemoryBlock {
}
@Override
- public int getPermissions() {
+ public int getFlags() {
return MemoryBlock.READ | MemoryBlock.WRITE;
}
@@ -220,6 +220,16 @@ public class DBTraceProgramViewRegisterMemoryBlock implements MemoryBlock {
throw new UnsupportedOperationException();
}
+ @Override
+ public boolean isArtificial() {
+ return false;
+ }
+
+ @Override
+ public void setArtificial(boolean a) {
+ throw new UnsupportedOperationException();
+ }
+
@Override
public String getSourceName() {
return "Trace"; // TODO: What does this method actually do?
diff --git a/Ghidra/Features/Base/src/main/help/help/topics/MemoryMapPlugin/Memory_Map.htm b/Ghidra/Features/Base/src/main/help/help/topics/MemoryMapPlugin/Memory_Map.htm
index af5d704f95..fdfb1e15c0 100644
--- a/Ghidra/Features/Base/src/main/help/help/topics/MemoryMapPlugin/Memory_Map.htm
+++ b/Ghidra/Features/Base/src/main/help/help/topics/MemoryMapPlugin/Memory_Map.htm
@@ -62,26 +62,11 @@
Overlay - Each of the above memory block types may
optionally be created as an Overlay block. One or more memory blocks may be defined
- within the same overlay address space.
-
-
- An overlay memory block may be created in two ways:
- *
- * - Specifying a {@code start} address within an existing overlay address space
- * ({@code overlay} parameter is ignored), or
- * - Specifying a {@code start} address within a physical memory address space and passing
- * {@code overlay=true}. This use case will force the creation of a new unique overlay
- * address space.
- *
-
-
-
- If this option is selected, the block is created in a new
- overlay address space. Overlay blocks can serve various
- purposes where a memory range may contain different data/code or map to different areas of memory
- at any given point in time or processor state. Note that
- overlay blocks are fixed and may not be moved, split, merged or expanded. In addition, Overlays
- do not relocate with image base changes and have significant limitations in conjunction with
+ within the same overlay address space where the Overlayed Space is reflected in the memory map table.
+ Overlay blocks can serve various
+ purposes where a memory range may contain different data/code at any given point in time
+ or processor state. Note that Overlay blocks
+ do not relocate with image base changes and have some limitations in conjunction with
decompilation and analysis.
To view the Memory Map, select Window
@@ -123,6 +108,9 @@
X * - Indicates execute permission.
Volatile * - Indicates a region of volatile I/O Memory.
+
+ Artificial * - Indicates an artificial memory block which has been fabricated to
+ facilitate analysis.
Overlayed Space - If the block is an overlay block this column indicates the name
of the overlayed physical memory space. This field will be empty for non-overlay blocks.
@@ -200,6 +188,13 @@
The volatile setting of a memory block can be changed by left-clicking on the
checkbox.
+
+ Change Artificial Setting
+
+
+ The artificial setting of a memory block can be changed by left-clicking on the
+ checkbox.
+
Initialize Memory Block
@@ -266,7 +261,11 @@
Execute - Sets the execute permission.
- Volatile - Marks this block as volatile I/O memory.
+ Volatile - Marks a block as volatile I/O memory.
+
+ Artificial - Marks a memory block as artificial. This may be useful when a
+ block is required to facilitate analysis but does not exist in the same form within a
+ running/loaded process state.
Overlay - Creates the block as an overlay block. An overlay memory block may be
created in two ways:
diff --git a/Ghidra/Features/Base/src/main/help/help/topics/MemoryMapPlugin/images/AddMappedBlock.png b/Ghidra/Features/Base/src/main/help/help/topics/MemoryMapPlugin/images/AddMappedBlock.png
index 4d198fc7f753d664d28a880f60427a2710634202..a5fd31ff6f529cce9982f62235f115861b2c6dec 100644
GIT binary patch
literal 24616
zcmbrmbzB_LvMo#q1a}Ya9)ctUm%-g#f;$9vNFXq{ySqzphXi+b1_*Xf)(V%Q4rrELP0^HNJ@w(K|w(?LqWZYg@=Y5vC6G$
zgM!jOkrWY9ann0Yhtp72Ck0la2G#dF_ysLCm*kYI32@ds&+vUgvJ@??cm6G?2%=LG
zRMEk~ffW)oZl*=eLk;x%iWC+8)t==%eUpZh^M-~z2i>pZ=1zeBCL`X_Hs)d*lom9L
zv1$|AdueG?)>o<*UO4xAPVyQa2Kt*|obF~&e|(m+h_EkVp}~+Jph7^13>_XO=g_Y)
z5FdC%9wTCM@+mq{@Z})mESR?ZTJ|B1j9EbzR%|OeOO@&potivyqxjEYUyRCEm+xBa
z&^5iJqHra6oKm}G9z_{2J%XBv8;<5FUv5aIA+*Wry5qbaCM$H)$hn|`tdv+QxJX{E
zID(0W0fy(hJfQL%V<*t2Bq4{~68cy87TkKUFyzihTo<>>elY|V;kNF{>b&+*^8oEm
zQi?wpp$r1Lv0LQxeWlQ26-jcm6V9SM=K(lIx%!8h5y0W$+CY@4eLg3K_;aJV*)H+@
zcP?l<3F2Pgs>pvIM~Swpd~#b}$E6dM?A{5XeioaW1AW-!Z}>?orr8il_pD)m`f)2e
zop!2-O#Zk(|A`R|l&9P%gK^W!b;=sZ46)DMTT035KL
zL#VfkBxb4i`ff(lj|Ha~)t^4AD5l@Ij(3{ERc1fy5-Hw>YwQd7sGc&-IYt1nc4I=H
z+v@L5KisE8YVDt3dPOdMF3v4m5-*}AYV9Few5N!NasMXTy8~*yG432BgR3M|pXs0P8lAZHCF6xHU9y&189J&ju+9!v@YOiNm+p0*0ra@ZUwOM5+$<6@n
z;;D}$g-A?Gu11ef5~km>kX(a98f8`6f9nwm+uNUos@sv8-~{MPJ{c*0YT{QhsGxm9
zXz#PBnO2-VqMXKL^gdP~$+>O{*TWTriA@2=C{2Vsa%!X=NFY*^mmt&2=PQ#?lus}Z
zxdkz0N{1~Rc)5*~hVe4QjWf(OZB)2E9cbF+P&oXc>bzX4Pj6C1Pa$MP>t$Z-%~(!2
z;cfsO;5NKxpCy(1y%?ZP#clytM%-K)G^1@
zlCNt-ah=%ZssZ
zCgmw;4m$patuejy-I=~1**quiWuEvDkS>Cz6ozJIoV)i(2k3)~ZG65m_(5W*xkGtNP2=uBE#=^szmaR67QT
z5p6Kp(p!G@$#Doare%BlNI*BD%7Gqjf|+U6*D7TySn*ms@ZB|`?T&zjP14b5k#EFG
zE)o+6M|5@C0Z}HU=8l)1*K1&Hz^ZE?Hx~Nf0aF4g@110=3vd1G&BxN%q3h+e=C#`*
zlXYNHBaL-Np9!0B^UoaJIefHe-oD42t&ptjP;b1$#s}a57lSuw@Uv+uW2<42lTw&@
z>Q#`+k9VWxn`K>Q$1rKqL6QRnSh>f%G~T)QKhI&R$d*-t0a=}Ef`^x~g-nTXDB2Eg
zjmv9QsK3~CN3BmgO7pzWb;dc7@s68&EzuQ!8C_+=3<55npuuf(n$_g=Qj^75ydqk;
z5EMXn2MmVaRb-DWI??WObUNz!;Ge*sqwndgm`N4hLf7ktxgJ-wu?G~q6`++RQB+XS7ox
z72{Q|thgsNFrRjul?oSCF@Xr`sL4`neOtSte_jOVy(c(1f@=z`&!Cwq3RlLr_%`i*
zwY_}RJ-jg5M}*ot&PQdcRks73e2jFv4wR4@StTR^IJI1l6R!adLk#7{H;ABvnX5B-
zeV?UuFil`_7Hn^LL363HGaOHI$NAUX2}h5S`Dt9KV^vBL1g1EHfV>aQCIo0)
zaLciTzGY`5wUt~GXb291Ex@!GUo+lAUXR#zXO}*b=e_8w@k!P4MrJY&R@|cqm+L0s
zF&g6(@Tm}Qhuv8u4I@Iyd;ul>h8l^iSDbiaUgO(LIZ~_^re#mSRSak}N`stdMz8HL
ziTle{Xv&Gb$z(~cu`pF(aO62sW?N2me>dmQ5mB*K-8%{@w&04P?@Yw~R0r5ehAn_z
zKsR5Q67=NlqIdL|UaJ933|vYrcM=nHKOoBawd;|D(Dtsy0bmwP9TVD{mX+*^5ey94
zq=Lp_T6D1tP-n78U}Ed6%u@)ix~ZnEK;6(IIPM`Qp%_A~UZ*-jH&F^cyK$tg#8ESI
z_IK;tlc){>koASt6)R|v}g-q+hHB=s9m4~nkK@+=2eEz%?@tIha6s!
zM
zmZxIUk35!4Qs=}ucz9Yqv!ei0lGC)gA3K*U9k=G6!
zPb@UI*9|6sZ7;ObZ;Y4n4EXf+f5eAsiv&aMAqC5T8?U
zL98(WtEJ}WSNgm}Y~Cy&=WtIG2qq)#-C2%>y5v|5?Y}we?)^!n3M4zgul`K2f6hhV
zd%R6~?!>ziDp-WqSw_uA4vuBaiED@$I>)cCxyzLv&E9Td;V8OfS7=mPOPDHM
zJLw!9l6PqK0uCNe7(xnGpD*Vu*4jRu+a*R5^Y*F{x?g(6Ncfcji&Qc065WabiE5yI
z`0&v9l{4kpfN{>oerq0+E`)6kJ|m;~5P$o;ysdMx`vhXHAGK&{Ph-i7L(u)*B6u_|
znwNI9`_xU3RM#05K69Ea3E63xiI_yq3_
z4rL-1dxu1J@Pm~x@;;+kb}qf)uA8ahVi@7RcUk5f{o`n%k1O}pTtcYv@6v0Xtm=LW
zQ&5OtjBuc2eiVW4@VVeQeav5LpIy$!ix+o_a52f3@ug+0ql+z)X0y;}63gk5ve|S6
zYo?BA+kN7#}_Qjc_LZ-StEuN*;>+iL2{KK$z0+9Gx@0JIq%uHXf2v
zp0jY#(1Q$f&^>~ZDK@g5fmk>_M1^FuH3{wP+Q*fZGwtoT(c`O239*+I9kK<;(?jB(
zmo$&Tp&fV21_BM-!W)Ly+emtShQ)jS^Zgz+L2Yy8XN>+U9nXT)_v!5yz=Ng_?XFBm
zuZyt1na@Gp6-k${tYF!6To9$p9aeu48W=buCgpwq=ZwtwD*AdYaz_*!5yZ(6=60y1}sg&tAxx@5ufAn%1oHw5yxb`67
zIlQ;9!B6(v3t6Gv7@!Dqa=ZJ6pNcYB+3o_nO4bVjY-wIOmKDcz5;FT?bFiRC0&RM7
zElpTEz3ckoqlFx8Q=%vYKadsxg|@MwLLiwjE`m}esLHRtR!?!z3Qvf4%n2PfzS^n0k
z)e5{*{b*I_y@5?7qYtKI`w`W^*v5P}4NJkWJX-=yK_R4s(A^|jN2x!Ns~=R)
zAJGR);tT(oZro+ja*}X8URsWD`o(Jzsxy&?W(YJa#&%b{4q(h)B}u|SKv^gOABX~S
zieAMgnp;@dYYUpIF+JUI-o$g7v|k2PW(IYMlMe;yvU)W&s^M>4q*o
zTS9AJG>!^)`14UiGTQFDxC|$bpBo>=RUYQ?lVse@n~e&>AkV<^p5yT&>77({%5w4yY4=YWE|m=-@d2MEHcJaAOcV?NmY*{W~DSV#FIQRa{P
z-E(hFBGeVrI(Zo}wXtb?y|vI)VnE_y)32AH1f0UC0ur^_DW5ec2#eznatSNNUb5~G=q_XgUWw4
zoQYz>=Z;GdJBWP0aRiAQeHHLYYYq{^F)AT~wXY6~T6Mo5xrjw4tMtTx^rFc~kD5rd
z*4>R(5|j^a#JL|lGnmXJSQB0_Fr$Wga--kZspl5VWvuzbMSn9Q>mbo^s$YjRHHOb#
zc0N;k;egzMUIOB?{eUmL*dNV?dWePA>p}&a7Y;Gn7Q$}rh6jHOa6yxy{d&6{)5e*^
z$pD+f=QDfYchqLsI43gElkL;D@B490%8R>gL4@pnGPIVZfe^Ahx9}}H(r$upl_$`G
z5^&wq$obal1+0`|^sBeh&4(d?zucbsCtgeN?17!
zv5{!)If}<8?cvWm{N(KBYdgk|-o-8CY|1iv>}5`TAnaid8*jX|TEf{L3ruUR4AaLk
z+;U3`IVV2H1h@w|>e~i15JBqiMiPh9c6I|*_(y;iuJLwy
zGr!Zq6aF!bEQue_WEG=-vH){)MiQ5SEL{UWy9S>4yX?f6a!w-JfGrn54|&wSF^0Ry
z*$EJL@M1i3>0K<-`L6&e_ax0v_A?XtIkV^~n4>uY2I4XXCphB5*UyPO!YlkL+{9D?
z#S}^zQvU&8ZMI4zrsdq>I*%xtZxlP|a(JgZI&c*+8s0RNYwlZF(^oy@(+vpw15lp`!27|uJa7GEY8
zzm)vwv@LoM!$8ABqQ7pRQkKyF!5w_uRm#~JDoOOQ@91*Uo7G_nZ$fo!0nZeYIMbSOv0gd{W0Zx$<9gX{)UNxbS
zhrezZXf(BJe?P?Kmr{AhvVwlbBJk54_tUS|Pfk(MF|?sh!AW778j_q+M9?@Fu43|f
zzG*tK+0r6-j_%`eD71&yJ#-eCyiIws4ECTwblcRR5TbX#Zs^gN7w`Z*=o71?DRp-g
z>76Js(vOeitDzPui2qDO`mKn+2^KN8uHzjBQ5>|^fhh)rW6u?SHhs5{D_o$)2y#H1
zL$3njdam5Z{j@F1D#!=(JYW~XGHvM_ofL;os>Eh+13CiC#{S5Qpk7h**~iG
z%h-r~a1&2utjj-^|27U#kZc;Ko3j>p%d(;qEdOkzeEXm~0g8bax$6u38Rsj~uLj#}*g=HYF0W<8F?u>a`DhOhBOG33TzM;xg7ADgwg|tpJlAA`4(|-BiEM*;
zlmdp(q){$OBZF@Jw)#vj)F*m~ACpPFSe_4r9o4Yu1iX-@3T8okmpf(2Wk(r*30Zk`
zI0QZ_boh+To#@lo5SDllbIp{9KQl&7XIPet#L$`u7IKiEw!|X{4YCu5a*7VwI76eo
zf`U?@{eS#W93C!iM~MzEl8=1tRfz2-VG~uzKvl8pv5y3qTM>s)!3Q@9BQkj$_fZ(g
z@WEtLZ+Y`r`>&!B5^xzI^WcDYlZgEago27kLphI{Qz*~YI~2jWi)+S#cY}vgxGPd1
zp{S2KkC!|0Fg=1BcH&Ev+DTZXE}6#RZ@!LXw8O5#lrGco`3ZpfIw&rB5#=<=GVGn^
z@Hmfq@bL||;}nP_WiIq;n%-HVqqlg!%R
z)^Q;jzXVHy4KEh%gsG13#1@h{pATd*WGF(zY;b#PMiC<=zNuZ$QSVtCx7BJ5rOnnO
zVvz7T)tG-gf$s7SCglE@?yKpQ^IP%L|9=16?*_*tg87?Ed;z)kKGip~!sS;UO@)$!
zXQESW8O}wgbf1|jcTCUP-_Yb8v(y~!!tZW3`4v{`<(CLE
zsukyBgWHZfU`gV&nb>eh`H?B4tsj`95kyg**&l-GjxWc<+`iWnqU`~#z92XRc7mu4`
zCD_F#Nlb{x#XII07ipF!rv>%a8ju3NTHUa*$L2z-q1D7M7ycXzcOm_3_>j8vVINHT
z#u{nG{%F}4^a;t{a2V0iU!RBtG&UgB-e@I^WK$k_fi6JV-7B-|bswR87U@t;+Aa2`
zdHyo(sE@vY=}m
z(k+tcHU#uA$#a40k!(+DthFlVN-n~*ytvrtn%7QW9})Vv5jqQ9r5s|=CM@PrNfSl(wRMy(xuUh&`&@nTYH#TaV<_q`ARX{0XxX)By
zKta7lg21Xyv(uh*0y=CH^d>iCWEGm<fv-S*
zN~x!u^cW`9U;j8XE`zq!L+paT+Lj;uDzeZDR6X>ggHMiT3yEEdb2(9m@mCeQeCka{
zIKm+^L0oMvm9*;nJ0-fS@fOclNcVLmU8TQDmr62^qQNIBgP0fm1LbB`%2?&mPm>(f
zb%X3kUkAfzJm@yYH8u(;IRl>(W1>?pcCTlC_$F$)q^&UyGb}sl8nR9%KW_#wtTxjt`zU(eaKOR*fMb^mSd;`Ru^$I;Rk)ptAcJO$*t7u^hK8DYCEbf
zfRtst87@>jq3or?PYt~j=DkCe37xU;!(h>5PVb|@dd`WRz1_DBgx0?6$U
zpC6pB7zCUR=hnXr)Vn951Pc>-x9qa9Q|^@XO;?!K)s&H1JGhG
zG(r^L-`z(}zx`o&Gc8B6s#3`|sDJt`6T8)6Gcp|6jk`{E5ltT}Ssd@6q1z}$G*zt5
z{lh^Wan+vGEOF%m?kd5#n};di6TDm2DB7ysN`K~;tpdjD@zSn@RVP>J+%aX{=KTm1
zH&tQWo|+oR;TF3vU)olMT43BX!x$4316Rs!c7F$9>Ii>)mmF@VmdowGMD(6oWRG`f
z^8HM4%AukYXUQW#H^jEY#$xRaP1;N;wran!Fj+V*@$P(+{GI?iBJ*>ca@HQrGGKvH
z9B(r=Y%EJMXB{&0Y=-n!2VTY-Su0M1p@q$d#1lO{YPd00&d0|_^LJRdQzum%ysXc6
zHJ9w6JTv1{c8kg$B?9L9?X^PN;l*sg{@&5icl7kZ@p4KM-0Gqsd`>ocl#YGaV!|Q0
zO?wZ!nAP7mNz!j0zb+Sd>Yfd+F&3+4XhNwta7+Lms4|P0Q3#(nK)s_DEhl@o$OB<|
zooN|WBb{!unrj&J*GKD&PJxqJ@_w{+)rc70;BNV)yV79Qek=w`6J<_F6wq|~1wlzZ
zdmgE34K&$&Iv=Muh&1|ab|3XghU9QAoW?3?9CN>m=gr?(VN&nGw%nW7MRU!7A8T*(
zS|OPfz1c56SQ#99Wpiv#IyarGCvXNkX2!{ZzLA#%f~MbkZQJXm2(*NEM0@{x-jjgu
zw2?WH$2tw;z2|rk;32%x^-V~*TyXT5Abt)2a3{T;DHB_EF6D*<7wexSQq1eh0W|$*
z^$)*3#_;oe8Z;gzx1`7YD5`&b{W-;x#pGPwA`|f+9?vEhPha
zX(V*4yAAd#KQ|R_9g*P5oY6%`Wx=4K%(Jk^pBxqPk=K4N^Q>s&9&S68iTQONm7}$l
z3@b=2uFTi{Thec*-=qBS35%pA%wetxxc0nF+U&r|SNNM=z|~ct7&)mY&W+A!PB7zg
zh!Ue!=-Cvp1`<>?suw`YpokbI>PS^+h&dC4N$ienro9Iy=KBIzR&bE?h;L=nh8PMS
zRQMF`x$M`!Vv;5;_86ZF$D5gqStL~9{
z+<%)QV3!CY84~!Io9#vL!;;nQ_lmUZxL&kNx3L@Qblp4y=p<`%J2j@P`g)wTRO|6t
ziXYU`bXr)o?IxixDHSAK1)SHvDr|C5u0{G9-Q(v@|G!rbc?SV;AJY=C2iLKXi{5CL
zHpXafN^;oE5W1=8=m+*xlDHUck@zr81KZQkjQ}v0<^Z0ntaFomH__C`dkX(U-M=okOBIiw^p*o+$ZsQWbJ
ze#UgsoaoGGGa&A{wQi76vLFcxM_|JClsLVwwqegDVWd3X<{N1ttWq*nuU%)-G!Cr%
zYon$K5wtDZ^hJK(?q@BI>6x{?59YHLx6ote1IJA~aD}cGWn-l!q9fpi=y$opgwrM2
zx=VQ*^RkX$x+utmzvF}J#ipp1FwHYyLorH&{b(=evs^vvDsc!S>RqI66YpC=9aoH&|!x}nZD00#teQ3
zZ~TOWPFA
zDjoxJA}BmuR$3YyqbdT4a)LTKM7%J9CeS34_=t#zK_L{Bl*NR~`eeq3BEkUy0f)#?
zUjw@`PU8Nj8m1WK`o;rNf@ppobCvoAobDC1R(k`bBK8s^Un0BIzu3uk5S;07D*Tg<
z(BDn+Ub@FAV3vvB@uHQ?15S=%nRe$&P%Gb5+Lrp%i%UK5WRPl;Kk
z!cD(wSC_ebnyH0
zMfET9`63E~2nB{kW@cT09cXB9K&JUOYqMm!A{@I&9or-AG$-*P5k@8?6(n8bZB$f^
zb}rH?yNc=*`xJl!nZ(@o2R2t31FF1FDXF88xbPv$XviP$R<3hSxjcPlMqBsHpTi8P
zAx|&J{1fmUXp1|tt?R}hD*+m>+Itx4q*Q88w#k!_#J+jnvwZ(S$1Uz~ddB==&6=Bb
z$S$p27>(ZY`{0&~Bq|~=HgAQ;v-cPQ!r0AKB`d#(Q-4QeR^3^acVeqJ$5HM5{SfBR
zYbe3H*Jv0N1q5n$B@Anf!Z>~j32HMKE9>X}H>}8==H$~_l{X1aVsa3K4IojP?ibIR
z2fV%>ax<|LI6}x?kG-K^0`IF^e0Ki?h$(O7g;dL&r|7?Y!{l~k2M$#*K<6QRaTVQw
zkhgd6klOdoyMB&S&H280ku!a6CB|A*LGQ&K2;G9B{v_H~&^(&(4ZP`{?JSAjZmpZ`
zplrpNH%H8Qj&U647<8xTo~uGBR-7KILO$ImvTx;)oA%ht46ss-W>5S?po*xExus^V5Jty*kzYf$_f5T=r4
z=_C7o72CS)%2aC$2IHRhJn8YtL!Ipbwfgs)-x>P4ixonvzNGN3WAqG=TU)LnU7{lm
zz7nO!IH0|@)@v|DA#M}1VJ_ngq}dD}VpNn+%UjwU4R0_02cD21dCuZ9SK~d8{@T-h
zdvH-Q39gUl=p2cUq(DP}u~UB7xv??GQ`YS(GFgTFmb04Q-dLZPE+n7${brr5C-NH2
zW_sm#5efFiRb;&^NEiT!a$~F(?YnPz?rO5_!O&TsYIyfdP
ze|u7PB6d*WtKb{kV)z;YvtN=-)CIqbRKEd}TgexSoK){E41et_wOPEnd3^>;svM?(eqsgIZVA-4x#uK5ikutlo5r7y>I7hsbNIr;RDOg!*^Yco4K{Gh}!ly`4d#o(=Ql;`4HJeF=
zxp$0@tI#Ahn1psi$8{5|au!;Vkcnw*cjuj+Ox7?gvXgD7HX^^TJ{Oikifnt_mlvC%08JNx8cVEnf+HagS?U;gko
z5bH#pgB{4#JlY!i-OL^3AL$J`DHC2}r!z>IrDGDiti&;meEu09p3^G;{l{q_(f+Km
zQlVO22%@zZ&X&37o$8wu^w5{9P}C?4nba(lBy2wQXrYmC%==;jC?tBTYBRnfoXm^!
z_kQ7*=mMOR?aHq&2A*NWSBHFJZa$seYw8!$FPkcY>;GFx|Gi0G=2)<6A#lLDq7T?Z|<5x$ee+
zN9Sr4H;`7sr!U2QVy46j%lpW3@m{uh;CLy)4tqgabPqI@6Bl%a<@vEvyCyI~FSj0d
zmJon-K5s&oNAHR%cQUDwsUE-5Fv844`qvm5Xx{Gs!#e#RPW@jk;eS<$|N9#K|LTl+
zAdn&!sT^$!c_B8RO5&ALm~M@*QgYzM=~|ajUj!_D05)0A{0By2{q6i)HgVZA>d427
z90HOQ2fCdv!xyfkA+U&Knt4$4y%n0E_(*XznD0lC;(1qCE*RA>)JS9e@mu&GNl0H*&@fK{~VcrZWAAvR=uW
zPRd+f)AENs_l!9S8)is4aGobQA+5~;A>cgZ6xFcMVeh&NH@zi<5TgvMukz$k{Kr=L
zU{%tjF%CZKnMr-&rxcZVQnbpwX57#yW{dj-qxP-ZgCNdwS_zYg=c3mAc`51VXjG0l
zS+wJb)`Rzc)oy`Mu>bufw8L#)l|Xx~%{7!Ggo>SUwoFYzORIU5deb6dK|i7~9V)2I
z+wI|E@iBv$stND7gQD-8m&%7fW7~{M9Cq`>SS<@3z
zgU?lW88UBEF@ae{Uvn;%l$sT#8|%uBTtn+eKUg*J2BwSV7Im#qw!f`@rst`vrSrfx
ziSs$+D%@%KV9h>3eK^|%dH?|%I(2F5KCtOK9oK+f(a*d*LN1>Z_Z{^>%6=;Nuo@|TQT`SF_hG#dWUDmyFgRcG7WSr^W3dM?j5
zgtEwP6mPF8rR!zxf88GJs|HHiYPt756UBWaGXUWiO(_C4+r$$KRd_e)lM
z7r}>32ya)jKMUdQnj?f_k7tjgW9DG^xSJ|fkMZ};hlg_76_s_WZB|SGIpboh?_%C<
zCbRs`%ZcMltLyG%f7c2;ow^R6|-M^NHj}SA?4VZxmU^FUxW7
zu_CwOBBqYk#M+`m{Af9|90KeV{WFHTu-HuOG=EeEuCMvR-HXjF;v$SUkms9o*Cl5XGlOM|*wvd^HaHs?+!wpfW6dwpsK+b8n?!
z4C|v)u>kdL@b0H&&)R7FXO!%!;^gA0?1;zkgNTb<+tqP^!ljl;xZ>#i47a85Uq+}P
zHn&@L`Ry1tz2*{~$E&HP!*A~+Ax1B9Yf{OnHR>>!Yknf7omWrMiMU^7X&dlu&FxtE
z%@?_M+4qb(N!WN$RlOrUffLI!KTZ6I;pugd`N5LkQ9b^2Uc;xG$Ku?myW$XF7j@IGSm6ZlQjeViI73Y@-o3}Yh7kONcRm4Q
zWAmm4ya#2cbbr~LN%4Wps%h|TqMZdWcH1!)AiV&Ug
zvPjRA)1a{Xr5^QNEr->Hhe-T(B`L5PcDv)Jpq51Uhp_|{@X4npv!DgEArWcv{I<51
zC)&qoz0N%u+~Z*-Rurbe`n-QT80Ak`YVs}n_D
zrK;MiMU}miE>D(*IKoZpYe-4XgEEDYs=lm23V$tnLz+9~$nN?W
z{nCJ9sxnQOli&*-iP3()X)#IYOs2hek^c}P8HIc;`CYbayI#GUIp2DJ#c(2j%*D6H
z37(@LfOp(R0rzevw4XJ(a)33tWtF|1W>W^FcQ{aSeENE_=Sw$77lXbkwU=m-Fd1w~
z#3}9;&hnZ5r#$~+#Su%Do)Sv$?*j(P{m{vG6!MNI)Hn3%QWn52d5ve~uH?RfUke>F
zJUoaUi*0S&;`@v_JXSo;82LeBe4isPQ|+2gwA;_uO64q8Ll9RO3=xfVz`Lr&0)`#t
zgE%>P4X=#c&sSy~NOBDI5Zlcg{07QmJIAU;H;dzs72xY;4@A8i(E)mP9<$kW5K4W`DSVJJ3)?9MLDyDGCeMliD(ICEm;S5VTK~mb4oHzIH#cJO*GN5$a&D1Vnk-;$HQVj&2AbR9p7XXQLa6
z>e*R@Ic#1P2vEzoiJ%EhSk-kWe)AAdud*VGOd+&z^MArw30IwWoTX<^=YMzBleNC3
z6g(NBd*{t1Y|vkOzm3|^KQV%{edUXWvuvY$?nU1$67pt9{)VUoLgjZmDN1vruF|%_
z6}^LbyGhbT@he~3BLL0Xdm9nPsKf&w#<1Bubw=IWd7UOu%2B3W
z8^5Q+5}ZDuZ&sXYDwV+^YUeKMzjc8mH)cI;K3Y8G*eoOPbe5{j&jUSjj{a-Q3xjLf
ztv*UF8)7ifoZ9S)fd{TF{j{W5PeD_2;}-|O)UQ#Dvm9?kxy*L?HKRa)+gsjzxv^gzGj}!(#(?l$#vHDx
zC0P_xuMx%@QG$O~_M47L{|FxrnQvJ|?NgceYtwwS8e_S@VK%Av-u1mmo@IFrTx%Z-
zP{5yHbXpRVlZkMCcqEnYmhOf5=k9Y5AK9~VF>-=`jl6GQW!~GV64pfwp%pJDblH8#
z4K@Zsi#Ffva?`v{?=1Fa-Ms2uF3j4k8+@Cawx=DQD~FDdun49kpYyD3-vx@4&4~@X
zHXvbiV~ulb!fq#vS7@$68sO)v3^!PktXN}>JkQw7?-gm3H9cBtul}tayAV+$^ZiDk
zo6e^lyKM^xMXleaZ?rCzqfUe7W2Og&c?fWq)TiA;T_ypwa;4fAZt!l6HuK^V9^*-P
z97HbXr51--BYjs!QK##4o)K#&L)D7R5$PW3F!-tW)W#|d8vZUQVnv!E$
zf0~k(rSCK~()9%D9kFs#c$eRd@SxOOXp62U7D*%u4^M?&jMNTqhq}^@8~-28>y;
zMz8Y02t|l5S19()H+)E;Sx6APpmMV$hUjJI?X+>;bn+&E4e8Dtsz_CEq&~PH>?PKZ
zyd59aNaU?)ra5{ueBH>j97(a+d+zd~WX`-n=ez}(JS2l9z|I}kA1Au0MZbJSJMLMk
zycOO2J8^|y=YIb06|Bv%s3eXpZdR2A7%*2p1cQs(P5<}-#5+6%Ws$FT~G|BuR&
z|1WBk|DWH<5kqtTTWhIA%NHX-I3{Stf`6$$p`ML*H`k0)f6=s5#MJ@wVtovbH{uTZ
z>NOfze|(W%-}Ip(RlUhYgy?VR)Cb1^hDw|_o8d^tJEs3N5!ReUlwbG4L$R<^(gvDc
z>YgNfR_y#ZIG-B(BH`W-qU^PwX+c
z$yCDG{5ff`AMy02!@5m8^KS|$k+G|$HzVesM!7y&J-ObQ{w4)qn-r&%`QOpcqs(v@
z9*?u6k@7<$Loy-!?Vc-RzQhHoZy>hDB;6q|kJtJmbn^1}`40iqf8Bb$L7NE1=CoTe
z&j0Zdo_AzSCKy$3xg$Gx24lkI6QnugEc1ptV2ThX4~*^5X(K~;Z4ck*!otqZ#qjy+
zz4n4P;seP1<`qqEN0YA6@z+?FwC*y)^V4TrYd&zF0@-nqGZ`Xte60_%DqxwZ`;>6
zxj&%D`r;cN;IS->qdDw2UEEB5&Z&PX$=`!ln)*wEm-1_0faq0en8*e+u4GK+$?VBa=jVtBcr={7qdU_wLAV6i=8A^m6-q*SNy
z8#^Yi<}h-GEa#tzudASjkT@KuDPH6*P+nrcvk@bnB_JAwLlG#bB3=~@wCFqaL3M7A
ztJJ4Yx0Oe889#6YV|y|OHI(@3kPNNx9ZWJ@_veDtI^>7by-@foUtc^4;Oby3Y=
zJQsO8v)iEvWK((qDNd7EEoQBHj%3Ft6!xo;rUe>i?K(PH|IEZm6v&UcIo^z%MkUem
zFk8w+Na!q8tX;BK66}qkM!vt##;S9|1k8Bfkh$%RU-zz>&v95T+Fz!`5}e@Ib;FaI
z7mfvayuRL)#JYGo(zn~pPLJXD`b`U4NpxpK`8q?+Cic2(P9!8Wrup@p+w*dRE*2mo
z!e=Uj{ie4AyCI88I;+-*WrNr3(!8V)!WCTVW;XF#!8ueypi0Ghr8WA_Se}wom!0?W
z2}gi-Z*nF1XuyL``P6uotn2C7bV~Gs4=zQ9=Q<^~LOpT2!Irb1s0
zZ=?AZEex7Mq>jIv*=pI+z3kHkAk4e;2W}bdb<0b_fi_&e9lteyJvycW
zlTu^^&U7Zra+pkrJzXALvDljvme8jv8Gg12K^zJ`$olZ`FeWBOV~;8z&rww+nyO<69-C~MJQN={?0Rbv@fz;B
zlHmAHkly~y&T>FlFQUs8>klq%;e?oo^g7nx(=W{XTXUYGNLC-Av_BPhyB%2`lT;alIRX8WYnz3COnG
z@^l6upBmvdIOARV+G06GZ6?Zj9{0;FYn=yGfPmm}
z^NYCGSlB4HscPw}-oSD-C*BiBf=7_!MR}p88iJ-2cOcjS(sc5jYqf
z2=@;oeDn#+$Rllbnz6b*Vkte5z_fj5x#%=|R;C_P4lgf1W?^~SRpy;Yy4m5D;dvtV
zz0W$-ojhg|a}z-xIX%9*!r#C*@!3I-cc}H)WLZkP+V!V?Bf&50+k^`=#0(tXPdohG
zwQC&qaPh|U2lF*S7QHcAIm;;Xg^)FF-AIU~p<;|CS*-M!>LJS$p|PGyckd#B{QT2S
z|G8DW*-q}1?u%Lj&70N|t(Yb-VD`?pK%=%yy)-bw$LK=8uq9p65qYnZ}`b;?MCsn<@y#@LCLZXo1
zlrLoJ!}i?Q(^K_NAkFskgU-q6@9&4iE~s{@{$Y746%CF4bLeoLU@xB+0Wp-9yIvF{
z286eV5={R265PDx{v4OlD2Rd}`1T9j3vxM7|7q3J(LzE7yIcQ@4mk>Lip&cZ^NyDU
z6Y>eFI<5h@s|?xsnq$rP{pH^yM2cUN2t&5tx&P}nH;yDGl)(gYvDddEL%2UT*USzf
z{u^5Y7+n6KeH>27{7a`FN)*
zoN+wD%ShqoDZuk}RGzStmC5d}eN!K77fj|?NoZrw7Xqeb{EW;pKA!jzV$Bn<(M5;H
zl(7j_0auohG{!4ciSsVU~+mx%@Re>75G5x<+d|65hv
z(7OUXTV^Zpa!$G9$Rcy3ff=hJ1tGPji66zkktfizN-NzJco$xWRvZ!zoJPgGD21Sk
z6wDKV(7op#c9Ld=QvLs;w+OOGmm`Pkc(=f|2M1|7s1wjgx&Jo>wYW|`*~;8?g9}Q>
z>^4D)Grlcpnu=fp%@Fm{w(dtNM4QW_oT1^cv{Dk~mXw*~UjZlW}vA_#}YoUV1%4z}22d%o4l-;=?1+nq5OvTJV1pV%pWr|aDJrj>y_bbVog
zYkQfqw*%{zoj31~k_L(aH)ZP|!Z~V1f2O^a-0(249elX#h)g(&^P!!NYnpx_op=-Q
zpTaq8le{~5wu;rIr!OiFVq)hrUuOV#FhP@!|B@$Wi1{d??Br#7L7pM3N@Ke}>oyBv
zlEVHwNt{o;7r)Nra)a%Ky%=5r9)SGcupLL*AL%6GEUfyyXd_!iGq@EfpV#LD{{ixlhd4bV4AC?^|1=o!aFaC$Bdj_>h_o
z<~3I*ftZm|$R`u`5Gx~~#e43)kfN7=)!03{U;d$~KEkF*Mj=ieP1HP6;6=!o9%T4_
z-^pOJQ%R#nE?*QDC%YWhdnc)8ZhW+DR7`v9AH$?}6X&$C+g-^Mt%?sPy61)SUv(LI
z-=C};{m&XXpvK<+YUMhkn%cHCB1)5{fJhaTF1-Y#cPXJr
z?}&7e9zd!hQWa37_iE_UrE?IFD!qn)KnS6ifDr24c)aIc$GP{7H{N*b*Urw$+BD7*K}sRI(7B&GMG#wC{FKJFJPZM8y#1;pzP1(R**&`{quOFtgCj9wQokd)>Q%5v1BmLZqPe7}m(Qg&L*ynZhCppfCF
z^)+>8yN6SvOlBhzU6R*c8*Xf|Z*?t9OB7t(BE56S%gV#K+SEt7L|kkcpO4l(3jA-9
zx+MC?dd1>ZSXdMU1ACf*BZZr2rPFc+Ia9g}vsX6hp*%Zp61Fn>nothoHGq6V=-C+y
z98k|;PL)1R#%#`ZKv^{EWYFqgHcs^pw0Vc)!oo#Gg0k$Mdcr9wtHf6WVE<7g)1&hS
z$i4}JE4f}Gm3PJ-E;8I)HkorclhTF*_#O)OJ6o_HoUJRp8wHb4fOo6nP1`-&4fx{X
z=|G)w&f77;lQA%9dUZJVFH5v7e()YI#Qr%bt!^ZU;*vHDuzg_<;8&jQr`Vr2$_p
zoeU_M0H{L($n}50u>S^t*#N{zzx`y(Y^YOl^(T!h(d;C?4DGzAl%){6#7V4P0^N;E
zgv4Uw{H>E_esJ?U1%W3qMLM5o#?_{Bv86{Zf2^6mn1j4XLwSH(K9ghV;NWmfz2vw`
zqI;7UGxGg0mL?e~)B?BYhPaM0pk9BadPQ16IxCnC%Dl%k-tsVmT8rSn#?vOIXR7+7R|DjKKaIMSZyJD$)mTu2BHM&w8d?g*b%AljuU4Kb
z+Ex*|SwOxE{7_um4hf6t9kQcBDnjo>b5m;sj9fbYPb$((+)xQODf
z-12V3tg~vOCetH`&AsH?@RA0h;mNYHr$c#-HGWnJB4^rK;+V%rF{hR+<|YJK9N59{
zH#J-6_c$6FK3PX~>PJHJa{8i-s*OBr!ZWf0Sn4V~i5m~tKHlBlU4p;3{i6Zo-wzG8NGJDH5m?M#w4<8v3+V5&EN$bxeq|Z$qy942s(_tG8k`4G7
z1kdyJ4?%xd)Ln+(NBG)3{b+P6xPw)tf$O5hM#wofOg2?@>+mE2b!;#{Iy!$vM;La
zscnENgOT{@FO;o_iVx*^x~IE(GvH1l_KV2qEGw}OjbTR$T2U}B_ctr(rAcq6M#PM^
zB4tn0QmgADAUc;a4sA5lRXPq||1tOeo85zf=EU<4pWav5kr2&&9U{HQIc5~2ZTgLN
zh1o9-tXd4@`401^BOAFUclw=TxL%RR=QK?D2`*;I5)tmNV`VN9l%veEk5)t)tpK4apjV&;qkJ>dd
z5D^7cM^SQzCK)PqO`bk)M9>?bSKJ}Wzx8khXq!_gq)a+6VCVor8D4SHaY3
zlCt2_-YOM9I)&Z|Ier_~K--$0ksf&Rxo@beXjA*U?IvA;?E=eQdb_jIFO4{-8AzE%
z`HmZd^DA4`&grAIa*3nnacSP7pjYP*
zh>6?;;rsSVC@-eSGot0qrLmL%V{s&e9sNzg{YYWNJK5Evwop=|(QBzpyVmr{7ECWq
zw=yhTiwVx+?Ys|uyC(jnp!s~qV5+LiPAa+G|2fwVI>v}5S*#->n!+%@fWqx=Cti`q)phYnA%=hV8XSE}WN0^WKFFi1wOph0v6iEPq3X+c5FhBeI
zK5ZN_s;nYT=z3?Ii)foEP99FFF}rnqP|jUU_slCk7wh$&z4~9S1)E|+Iv(?0g4_<&
zwQ8sH*hc+0y{fTf26g@!dA%_lnRVV%cLeWiueOt_EB#0xL@NGvZy&EQ^2f-?JbUxwh5~X&ED$K|E%2K^DJzz
z2ZqT3TQU&bjA7V!r3}E84Itd(KIwV~=Z-G!{AlvmBK`?B6ti;Dx?>M9f%Lzh{~HLk
z$;IRRhCG)@#;r#%mCHe~p(u3g2NY{a@HbriUxDZUe60)g60IyqoR0Q!Zs(c;+
z$5?DHHg6E?Bx~#e7sS$Z_(`DwP7BcHpTzek!TldTSby!yHrj5QipY|eTy6+ZF~u4K
z9up+V_;>NE<+T(VKg(1de!1P;lq_d!KapnOOqXCLc+-59d{V$q$^u#JQRwMh*qE(i
zx{&L5adfOm##zx3iS+>>(MR%m=*iJ0+lY5O&-}ZO2W~S+h-0Eq_Y|(Noq&-V
zv@VB?
z@4Jbh>{@X~Q{BsrS=-z2IWNb@C8nkpLx|>@6Z8Ycw<7Z(xtSnnskYNT{3O{g!vmff
zh=d&aGK78>A573&jOxp4T7wT)RkmsF{)}Xo{`&B4Y7e8T6
znK_<~%0%HrO@sG)65W
zgk93VWJvWctVjfIIimmQSj+DQ4bt^TossYaI
z*?4kj<*@Q7S(!&%F$gNKW*sV`YV)9%h7W~#D869GnA?P>aPK|)7yrAJ^bJAi&L8&e
zzp_il_m;eAWHUe7NJbF_z~?{vq|FOlRxlec9dB=vNNIfYN$@{dUdwjDwpwR7YI^qU
zG|+9T>Z8sz_CR_7q*puMhUT$4-<5#-Zi#373#gYF7RQ;_BEUh8$i)|mc@bEFxx=HBKWE+u_%tSWr0p+
zM%N$r4qTk{C|xJnt4r{OA%{Yk3wD-6RP$VK7nq9bh^y^7HA(s4o|P`5%|
zycm)S_rWs4yRTO|pk%5Rs2Jb6T61S#Qq^}=s;bPFpU6z9_kpCQJM>74ITi_$l(R^ZZyN`N5O8?I=O@>5~3{
z`{j;#NQLqBlHp#DcwBFLJ)WVkYt*@tkB3HEqOzwHLwi170p@;7(hRYv06XRVg0J#p7DdT`vk
zJ6rNqrL6c~7*)c3jx;VZyR$WlUa2=jbnLcsIPI9Y;4t)9XX^FuwC;Gb2q%>qOX2af
z(U615ayfZJ`q;W*g6{>*#xA%8esAychhnCj|@yVweqoW6k`
z5wCG^v?Fflnq-eocxG=D|G0--GK2tXlBm
z3`1fISB;kYMpEvD!o5FONWW#0i_d;U{4!;PSYbu=%>9NeGsyv7wl)NVoe#T8Bk0RR
zsfjsFE&|YxE&H|GMdo{jHldrbxGQ6vxi`KXCt(K@-9kF5S0!AF3thZ>Il*cgJ$#!8
zvM#e0HJ@rf((8pxl+1qV!GnWuUbXL|)BVd7->t|yevB48KHxp@HmD0YOtRr_7WW;Z
zIy;tUU9Y9t=A6G{?GI5RJYi#HoiCY^e94~ddfxHf&0oc56e~@R7%0GqjRn~6-TMdt
zIq?cNX>(jj0HEB76?X3i(w%Jr`l20gfmb(U(cit~(2u%-NI2+sAwSGQEdUcX~QKC{5DY&OE49Qcg)Dt?}GKPxp42hcxj^
zi&(j~dn1CIWs1Y`d7ty%G%4vGyam5K(2d#Sf4}&?Jl@!&K$m!2;&WP>>wfPmBjYgE
zcLW=*#D&`%$<+LTy0iH=BTRA~Zc25l#u(CI>O5x8j$YAX|8Y0$g;JjV3|OP`y=5ym
z)Nx#2e+S~^UYiu?G?z8)E(5@dy
zKi1c3jyeK)!#`~)F@J4pUa4)Buy(R*HRHKKEd;@w&t5;#n%UbYne(;w$qH&~;}e*d
zI@h${oYc*8@dN6K8CqXl$z^G2UWZYq2M8ia@ve&Eh%g?Vfq+wG;vo~>(*
z150LR@kgc@G^KSeYHw>g`+;VT&cntt6fd9_74)t*7mGJ7%Zu^~XRFRL!Na#AHzouipI;^o?Jt
zXikdR&Q0Z3RnMAXd&%%cukAH6-Tgds=X%FLV2k{7dL(p+)15fOM)vwVqQ3?uyJ@sH
zJMXbQewi`A_$6lL;%uVh)5~T*&s+?*Pz0Ymu{(bOGK*;D=a(X_N9a8mr{M3{jSUDEN^({R5bfAE??b@_vefU_8
zK#Gp}K-Klor|wgJWu=5EyRYMDbFf_;N5R^95uRSq4wp}lHmNWS*%1a4nP&C$jk|~j#)>L$&
z+!!Wm<#Ks_wd?k{M+1MmJ*E?!{MPED9_1)>}e>pb+mj@
z#E2$V?mPQ02Y>}TG{_~9ADw?X;JquM2P~wezE@w%6Zsl_@Cw_AS4b5MQ+_P$+4B&u
zE=^VqlA;d{mMS|EwktRYmJ-#de#mOHwk^cXMV+l|cp*q33-?uE{F!E%5>iY+O1
zk1OaZjdyd=WNBYIqe2}O@MuCY)3)5N^QqiTB_(efEW3Ym&j2vsivnOE3k?1{UPL6x
z+5K#$6S03D$=2$L%1g+|UAFZ_n*m0_pDlal;>v@;Y`Qo#8R#WnQ&v!yFO#(h{s)qf
Bp4b2Y
literal 20933
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
Kz1dc$uKfehjG|Hi
diff --git a/Ghidra/Features/Base/src/main/help/help/topics/MemoryMapPlugin/images/AddMemoryBlock.png b/Ghidra/Features/Base/src/main/help/help/topics/MemoryMapPlugin/images/AddMemoryBlock.png
index 0812e8155070e4383a9bcdca7fbd12105aaa3313..ac077c9b3a6e9133c2e3a864e103b9fe1bb5a4f2 100644
GIT binary patch
literal 23385
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