From 958f8c57fdefea77ef01ce783d1ad1fd5db52cd5 Mon Sep 17 00:00:00 2001
From: Luca Della Vedova <luca@openrobotics.org>
Date: Mon, 1 Aug 2022 16:56:33 +0200
Subject: [PATCH 1/2] Add a test for gltf with external textures

Signed-off-by: Luca Della Vedova <luca@openrobotics.org>
---
 graphics/src/AssimpLoader_TEST.cc     |  24 +++++
 test/data/gltf/PurpleCube.bin         | Bin 0 -> 840 bytes
 test/data/gltf/PurpleCube.gltf        | 133 ++++++++++++++++++++++++++
 test/data/gltf/PurpleCube_Diffuse.png | Bin 0 -> 5198 bytes
 4 files changed, 157 insertions(+)
 create mode 100644 test/data/gltf/PurpleCube.bin
 create mode 100644 test/data/gltf/PurpleCube.gltf
 create mode 100644 test/data/gltf/PurpleCube_Diffuse.png

diff --git a/graphics/src/AssimpLoader_TEST.cc b/graphics/src/AssimpLoader_TEST.cc
index a32a0a331..75a179cd3 100644
--- a/graphics/src/AssimpLoader_TEST.cc
+++ b/graphics/src/AssimpLoader_TEST.cc
@@ -620,6 +620,30 @@ TEST_F(AssimpLoader, LoadGlTF2Box)
   EXPECT_DOUBLE_EQ(mat->Transparency(), 0.0);
 }
 
+/////////////////////////////////////////////////
+// Open a gltf mesh with an external texture
+TEST_F(AssimpLoader, LoadGlTF2BoxExternalTexture)
+{
+  common::AssimpLoader loader;
+  common::Mesh *mesh = loader.Load(
+      common::testing::TestFile("data/gltf", "PurpleCube.gltf"));
+
+  EXPECT_STREQ("unknown", mesh->Name().c_str());
+
+  // Make sure we can read the submesh name
+  EXPECT_STREQ("PurpleCube", mesh->SubMeshByIndex(0).lock()->Name().c_str());
+
+  EXPECT_EQ(mesh->MaterialCount(), 1u);
+
+  const common::MaterialPtr mat = mesh->MaterialByIndex(0u);
+  ASSERT_TRUE(mat.get());
+  // No data (it is a file), but a populated filename
+  EXPECT_EQ(nullptr, mat->TextureData());
+  auto testTextureFile =
+    common::testing::TestFile("data/gltf", "PurpleCube_Diffuse.png");
+  EXPECT_EQ(testTextureFile, mat->TextureImage());
+}
+
 /////////////////////////////////////////////////
 // Use a fully featured glb test asset, including PBR textures, emissive maps
 // embedded textures, lightmaps, animations to test advanced glb features
diff --git a/test/data/gltf/PurpleCube.bin b/test/data/gltf/PurpleCube.bin
new file mode 100644
index 0000000000000000000000000000000000000000..59a9334fbb05d96eebc3bc20f70f2e091be473dd
GIT binary patch
literal 840
zcmah_IZgvX5G=q8tifP&n1qb$5fkh_1cbyVkO-{#!tNLR01^bDV;~|nAAyLf(Kc$2
zEPJHsuBoo-?p+|xkS=)E;@WAJ;YwXP%_>|wO^)f)9y)OyuAOEXwjI=G6*jLlIi8Vo
z$96Ny|1-}SR`%bqz<0g>cgtp(*XM*YUD~1YojEhtux@j_(sWj{yrAiNTg@_X`#q`N
z=94P^G~u53iTIpZeEezxetECjFy#A=7nf~#rRGtdq74t^<P(ohueW&lN~^y#;et5M
zoA6F=-_@hM<W-wKGqZ2JY12NR)Ji|)eo1#tE&G0GKJ~yBN`7jIZR}zXW5zL#ae_09
d7)Ln3J`T}i>|p~tIKqH&fK8mDkAktl5Pz7Cp^pFn

literal 0
HcmV?d00001

diff --git a/test/data/gltf/PurpleCube.gltf b/test/data/gltf/PurpleCube.gltf
new file mode 100644
index 000000000..48f941f4a
--- /dev/null
+++ b/test/data/gltf/PurpleCube.gltf
@@ -0,0 +1,133 @@
+{
+    "asset" : {
+        "generator" : "Khronos glTF Blender I/O v1.8.19",
+        "version" : "2.0"
+    },
+    "scene" : 0,
+    "scenes" : [
+        {
+            "name" : "Scene",
+            "nodes" : [
+                0
+            ]
+        }
+    ],
+    "nodes" : [
+        {
+            "mesh" : 0,
+            "name" : "PurpleCube"
+        }
+    ],
+    "materials" : [
+        {
+            "doubleSided" : true,
+            "name" : "PurpleCube",
+            "pbrMetallicRoughness" : {
+                "baseColorTexture" : {
+                    "index" : 0
+                },
+                "metallicFactor" : 0,
+                "roughnessFactor" : 0.5
+            }
+        }
+    ],
+    "meshes" : [
+        {
+            "name" : "PurpleCube",
+            "primitives" : [
+                {
+                    "attributes" : {
+                        "POSITION" : 0,
+                        "NORMAL" : 1,
+                        "TEXCOORD_0" : 2
+                    },
+                    "indices" : 3,
+                    "material" : 0
+                }
+            ]
+        }
+    ],
+    "textures" : [
+        {
+            "sampler" : 0,
+            "source" : 0
+        }
+    ],
+    "images" : [
+        {
+            "mimeType" : "image/png",
+            "name" : "PurpleCube_Diffuse",
+            "uri" : "PurpleCube_Diffuse.png"
+        }
+    ],
+    "accessors" : [
+        {
+            "bufferView" : 0,
+            "componentType" : 5126,
+            "count" : 24,
+            "max" : [
+                1,
+                1,
+                2
+            ],
+            "min" : [
+                -1,
+                -1,
+                0
+            ],
+            "type" : "VEC3"
+        },
+        {
+            "bufferView" : 1,
+            "componentType" : 5126,
+            "count" : 24,
+            "type" : "VEC3"
+        },
+        {
+            "bufferView" : 2,
+            "componentType" : 5126,
+            "count" : 24,
+            "type" : "VEC2"
+        },
+        {
+            "bufferView" : 3,
+            "componentType" : 5123,
+            "count" : 36,
+            "type" : "SCALAR"
+        }
+    ],
+    "bufferViews" : [
+        {
+            "buffer" : 0,
+            "byteLength" : 288,
+            "byteOffset" : 0
+        },
+        {
+            "buffer" : 0,
+            "byteLength" : 288,
+            "byteOffset" : 288
+        },
+        {
+            "buffer" : 0,
+            "byteLength" : 192,
+            "byteOffset" : 576
+        },
+        {
+            "buffer" : 0,
+            "byteLength" : 72,
+            "byteOffset" : 768
+        }
+    ],
+    "samplers" : [
+        {
+            "magFilter" : 9729,
+            "minFilter" : 9987
+        }
+    ],
+    "buffers" : [
+        {
+            "byteLength" : 840,
+            "uri" : "PurpleCube.bin"
+        }
+    ]
+}
diff --git a/test/data/gltf/PurpleCube_Diffuse.png b/test/data/gltf/PurpleCube_Diffuse.png
new file mode 100644
index 0000000000000000000000000000000000000000..09b608d6554a09806451fb26122b49926e0aa8b3
GIT binary patch
literal 5198
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

literal 0
HcmV?d00001


From bab4260a0fb1f9a5551615efee86ba6fc42cffea Mon Sep 17 00:00:00 2001
From: Luca Della Vedova <luca@openrobotics.org>
Date: Mon, 22 Aug 2022 16:58:14 +0800
Subject: [PATCH 2/2] Use joinPaths, image of gazebo logo

Signed-off-by: Luca Della Vedova <luca@openrobotics.org>
---
 graphics/src/AssimpLoader_TEST.cc     |   2 +-
 test/data/gltf/PurpleCube_Diffuse.png | Bin 5198 -> 19375 bytes
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/graphics/src/AssimpLoader_TEST.cc b/graphics/src/AssimpLoader_TEST.cc
index 75a179cd3..b80f561b1 100644
--- a/graphics/src/AssimpLoader_TEST.cc
+++ b/graphics/src/AssimpLoader_TEST.cc
@@ -626,7 +626,7 @@ TEST_F(AssimpLoader, LoadGlTF2BoxExternalTexture)
 {
   common::AssimpLoader loader;
   common::Mesh *mesh = loader.Load(
-      common::testing::TestFile("data/gltf", "PurpleCube.gltf"));
+      common::testing::TestFile("data", "gltf", "PurpleCube.gltf"));
 
   EXPECT_STREQ("unknown", mesh->Name().c_str());
 
diff --git a/test/data/gltf/PurpleCube_Diffuse.png b/test/data/gltf/PurpleCube_Diffuse.png
index 09b608d6554a09806451fb26122b49926e0aa8b3..2381764737ebb82fe31e4d49fe37ee19e55bd3b5 100644
GIT binary patch
literal 19375
zcmd>mWmg<sux=0T?(XgccbDM7-GX~?orI8(KyY^r?(Pr>?ykYz-I+V@Isf2(xgYMV
z)vJ4U@3p(S>M7Y(HS<G5O#vN+1O)&9bR|VuEdYRlUcvxKu+UTQZ@NL~3C>nZRSE!V
zqETNg-~j+d$zDcA<CB(xG?kK^3_rIJKR-JU2R8sH{>c2`qaS}yAijS85mQ%s@uDW#
z=`%n>TaGk{Wsrvz2UvW?!jb$N7LKBehmW11sMGgl4n;9Dd@F~k*;eXjxM75jvEUiy
zYEeUw|M}_Z^TKoce#ZXGxZeaO7#oKnb}!EX5Yh@06<(x_R#)sB>Hx#wD{jD1VeO6l
zv4#H&02i=+zQLZ=5-*@CSLjQ)&2iA-3~WL|TQwN;0IFDEg9c|G6%?Zd4031>;sJw1
zK=p?@YZM>>0G#{+rD=dtbl~JhNgN(nEQwzw1QzqiN|1nGARv`VfeuEp4KUaFti=Y?
z{RhY?m!#o<>#hWW4H|hAV89*lfOnLB45p+x08W)=8wIEYVE`El+%Z@x71$iE>8_0u
zGq<p2MG(+Ek~o(9ewr7rIdPK2=jvi(i+byiQ;oC*Av2Z@@(xW#ayl)p;y$d(I2r(u
zJWlnz2};E5@9k{v+3Y)=-~7#cbG&e+5vRUfe`}9~fdjDACeD}5c6aAt-3CC_UR{nQ
zM!>QzV7LBg!n=Z;V~8^8{}|yX_##P>m8&r*N=}A?ih4?KncKm&9U%_k-E`fE2)={f
zeOvLr0Nm3gQ!BdjLtou3T)Zo_qV`ANq`6)0_i5h-!a`o7n5VYh)fltk|Gd=y(X2tE
zI^fr$6)Q_Ul(>a+7{YT&ne>Vr?}HAMe^c*PYeZ}qaq12}1HnXK=udkClEK&PktC?G
z0G91L9>044i0^ugmShD1W61^E0MLFwWL%s;sM3!F0J1rsS*oQF(R%R8yD>6)$lJRK
zVJr}2CDG`*MX{t2cEDsPxkO1)#M<4$i*OCqup~LyX`5K}J=}um`x`jMpO4)L5zL9Q
z{t&f)Lxz(YM8dV877oX@j9R1_M<Ps(f}^oed>02UpgIi4)1>)3=urSuBJB`sqDXti
z?tv%t%UJR$W@V6y=jY4Mb_MQ)&$XJcvoKzgEya{1Kl^h&O?ke<Gyx~&IZlz(Q;2~Z
z^NOb4A9#5JK|iCcz*F29Hjzsf#*yFU%zx;UFboh_?dtRCM)O&b>kD|}lXhoWoFmb}
zM1XNmkW9Z~{c-vd6QiK7qAycSe?nW2(~6{r9Qu{}4<k){v3fndKh9&HucdHJjJ|w1
z!x=RNbr!uTBL=QnydoXOP~46h3N?KUj}oeqqvDDpd%=eS@o6mk3>Ajs80VpXJ4m(Q
za;oImrWni^^|<Gu-kl~q;lJTqD#&?sS_KI>%6uOscHs)Md8AWwN;StyvSyJ=!-caA
zm7H_DH8?+fFTs81l}107P9QT<z@9%hnPzWme{aWm=-G<A7D^$PJefT0cz}4ge;9h>
zgNFVMJ#;|Pl8M-nIDoi_sEL>}RpmGQOmga=HrE0VX{v1sW{RthKFb|TAb#vHPNHz4
zZenoaeyO(3Cmo47zfx4~G9An^Q{AB7@;Y@I+a<`e1Z8t2<T`C7{FUQcK3dTl6PjlE
zoo26Jo~+PozlF)?d{fNVwrc7p{zXmD&-3w8UwYm{7xtLVF-6tVsP^$h#T)*a)SELv
z<%7(pQk!y{Sewi}_c0Jgf6c~)&{Br-IQ2OCcmO*ry99g9yhDXeMR0|{vj1}DvgN7A
zDZ%OS^0}8=rer2t=B==^@VysuD}SqIYgp@w*Tj+djMcH<A@c3;Eym&6l)|m^P5v$6
z(fR!O6r}*yJ0$)XVkd4vtBcVXs{_Xr`{t>Oubai#BX+H^eRla%O8Jb<3}@eMxA}Yt
z#cj%6$t=s?{rkA;C~9G8&$Cj{SMYbIlX)z`G0moRs(!|EbaaqywS2LB=p;&LF2ga)
zqI0Qz<>gmcp<Kpa<p}<Wfu!Z6z!CT))uj9K6kTy$Kiym1g>t2N<72jC=XpIR4N|>y
zv~=P0k;dYR^ol<3bmw)vExc&vY3ADxF3a2}FDED`X(tG$LU$H-^mop86Xc_0IOOvp
zo+5!Bo?fHgPHyeT1)J}BOZrNB5A|$GZF4_mUh@(DejhV}lkA;L_`$j8XOT;`|48C4
z$yw`k!^~}ddRzKx#gg;v+Njvypt5IGj&#x?lU}iNshf*?{Vn&=?aZR|qCeL$`<$lU
zrUs_Z9Te(y84OwTT+V|leMTD{BLU{Z;$k14#t&h|`^90h{j<M!{_dn%7we=Ao)1n9
zMtsS77I_+Zjeh9b^t&RsRD(AM^?-Ik9iK@)*TFi%Qo^Oe6(aJ%|AKEr;6xM0mqtTI
zH=y*0ckL#;B7L;tUA1LPo5CMP%EUJ$ec~ErP@$N|j`}u%w2l?*`ukDkaI_IAd_%!0
zyqVITIF;}*2#=YCr<CJJv;KppyXQUIeEE*Svu#JzWpqhoi^z&YqldR`xr39IlhsLj
zGq}05`Lpl$2f52+98X+2<kKHJeT#i!Kej)?>^r6LX6&SCCwW>`?ylyw5bhn0k7W6X
z8t@s!1PX?w;3U^d?1oZFYj6^&?-seJlH*=|O%GF->&*L=r&-g~tSlP0m#Le0C%7gO
zB=cnVO<mrrpBGtOi`6fdIIe~ET2)te{$KgTlKT?7P(nsRM!puheNsK^0#_4Lle!Hn
zYdrdn-=6a@Y5e!$`yJZHPuDB>PGKrj`Sn_r8W;pBoW-oZMnp!w&59k0hO@luHg89d
zw5VSQ0y|==HJYpI7MpzyE;nep<k|>mBR&xNaB!PwwOaeyUrYy$*p1XCy=rXfYw27$
z_^n<=X@yP~7Rs=G(R-Izk}x#lQh8(8Vuf#!XsvVZkUVFk8^S`EXjbl4UR?Q5E#JJi
zrKe^#7kKOEyuAERxoP<HSn;^v*roj5psPx`!$E3p^4kS^1?lClT~ae=<$s>J{tmZM
zWA$UhW3YS{e5XdEjpZv>x%~Ne{+S^rBf75@Wlfz+49oLfYd!(j7@_3&BLB`4PTCt-
zef1nW<brNprq8~tMUz;Pws!3WuQe<9sQ=B14k!#jypuaWcJOp{TCM8pszr9z;{QdV
zDD1YI4t8BmKTY##a5H4V_#?I3!?^xCFkoBbAa}fXwRdbiHKgel=~&T^by~Q~tDHUG
zIY%tF<NP2pKa<>)T%ofG5`50RZRIt<7p<3-lgT7@`MC2Xe!IxJC@WJ<LTom5)$d;A
zCDqYH)1<>zW+F?1(DO{C$?SgU`rm%E$wj-{4b8pf3VqZ23b9Htg<!YWO~ooB*W-`(
zBd2<zm7X`M$0AebGa*k7-E*H79u_!Evi&;F`%g%lTo~5Kn(13_AH45Q34Kt`R8~#=
zqkXGhI+tIM5T7uQLh9dYK6X2AJeYTzPxKmKo?{??&w5LM%zWRRRv1;7qm`%q6`e^*
zNs3O=ab-OozgbjUggY@DtPAlw{#3TV{<`)2enS6c@dEWRVxp_kujJa}ysV^3cz||*
zvVGi7?DF?Z#rR6ldGmSe`alO|D$|SPo5uCjlhr`cr24)1e&E{+=l$2~XLbd_322Z>
zWu>U43IP5L0090908h{%@BsjLaRI=QIRFT!005y|MysYM0KftoD%x_;2@nV*5rEu&
z#-*jC!o$QOz{VlM#iJl5p&})tA*aB@!p6tOA;7^U#Kj}R!zackAR!<mB_tvvA|@v$
zp&%ipCa0hxBd4LDWTK;IWn|)DVdY|jMzWlI+&u5NxCP(w3Glw-=iwC<6cXkakdcs-
zmzH_2ps25{Lrp<RLrKNU#m&dVD=8+fC?~J2simQ+rmFnj*uc=<#@5=x(%i(<-^bU}
z-Gc<5kdlNfJ2NXeF)1M~J}UB8cV|~^bqzHI6&)olJp~;D1w8`=0~I;d!~Mg>`Ni4k
z86yP~GdU|01q%x~J2N>OD>)}CITsh1AO{&A8yU|#5-DC%2_8~0Zc<ThQV}jvVNNnZ
zN^&YeVkLeOIX)5@C474s0#hkMLkU7XF(NHtVpV<;d1usWTl9P@j7&?6G;@q(Gt5L&
z%s6ALXalStdf4A|u|u_Sz*;y#nmGO%xW4MRKI*vMYPg=Nc<%4<T;%aT$`M$}5?CYx
zZ}GrO0`L+CdWr)*#)2MVLH9AB+h~}ZD45G%FlQ04ClRp6KVc7lz#fFd?uWzeeuvu*
zgWLQH|1T7N^$Yy+7x<;m@JnEX`Cx?UK*aF?#1VhQVLzlHU!(yaq&_d?9#7=XPskk}
zD6MWNjjkvSE~vFms8x=rm5ylT_Gl$`XhqiOIfhuj$jPY4NU4d4si9&dC8HuDp(Y@v
zCM2Q8C#Ht{z=3?nc?-jN3B!H<iu)9b`w)tI{{{E%Gw#i2+$%8dc`)u#Al|MY-kLYw
zj5~h6BSDijVX+BOnl5paCh_O@B%kC+ZN$k81j*HS$z?exL|7=^F;cSAQZi6e(@{~0
zi--gV2D&&o6%`hyrKH5g#QY2o4+{<b0tPqK)m2qgT%4buo}3))@9*vI?(XbtZ*6UD
zZf>lv|65yIU0Io(nVFiL92*@S9vT|x@9*pFZEJ09YHTbmDJdx~&d<xs&B@6~Pk(!R
zdwF?zdV0FOy}i1+Iy*Z%K0ZD=I$By<nxCJCB7X}(I|=|mfTxz)2k6)TpFhBddqjGu
zJwSF-H24GnsJQ<fARsM+2mnNzm1L!~eKSroeFC+0p8B(6gi~+$OXxs21l3@iG`hU^
zKo7tIS5Q@(gpY;o29F(+hxGKJyP<+(EleMY8g8^QA?HggKU`v*v=R?97LE-=YW+GT
zvSOSF?|Ej+ep2e=+vfLCu}|lY<M9FO0pkH#+tbKuWW=@*5kWPO;Q!U(qJ>CB9?_b?
zQCu13=oV=C=1>wEi$?gp1HS!sY@QU7wS3NuOdE@*fZwfrI^ieqni8142R~#Pi-(Bc
z-Bs(|^la_4Y*v6I>p`XkRJ~S*ZqF$BjN*#n9J)(_+Vu_N#{A4>ZO1%ftzsz#aJxkY
z8dF61gSxkA<Y`dJRDrSviM>>jH_ydu%P<;DG8Mq+F4!se??XLvo-7R^nKA$=3QC-G
z@R%msiycHn#Oda7?%6N+R$|g?W=$3m=tc%=4{+jbIgOO!C6=dQC6fcH5;}UyUh6DS
z7vX3Gj7<unB=H(4-(uDYJMV&P2C(^S22sB^!#X{9r{k}urM-K9p}6xM7RlUi>$h=P
zr>_s^7|v&_Sjsz2a7b{&(9wAmvGYBz>>UTV;bYa(O;B4lb*(F?UBfWz<2JK=-`AB}
zv{(~V^X(=hc7fW#n>TeNH-Z++0T}&UF+cqj-Z5kow$UHf;jbtgz2z!B<9r;>rRMu_
z#CI%UuaC!YV(Xu<y@h40vtjhL42Ml_X0mR+Ukq_*jci_~6*hjQ(>u`uAP@bXQxju!
zowKT#=XIP}3=NGF#55v!-K9L&auNcIn<Q4npQ}odFlWYJoDQT(x8fM@7{Ll<;<OE<
zqMXZa`1XTevhN=SqT)K^2}nAplNPPRJCHZLP7MuvBN=^2Jt^)%i)KZ-e%Ykz&&vtH
z-uyDwW-$7tVqMv@T(3QXy*f>r6%ro>9s=<BRB3`{{@H||C<C*3*)cv_H+;8NE>G6c
z>CryemqO-dyt3YOU_Ir98Im)HNWNL$)rGyf3<Ou5*kib5WQJS6BwMGezrk?T&I_hm
zZ9Si?(DY2Eg#$aQ#3j8f2%R;|W$SI=t2TBbI*`m?n^x@6d0UTe{U@-=6z&#E+B;CQ
zi_lS2jv;hnf<ji5F#473f|3r+y}Z*Jr{dFnQzr-#bC2?dJSnS2b>T#r<u$0Fb{{v!
zlC=##?k7j|{IUAMFI_){nJy;n0#c}JVL|PNcfu8$<Nb?<nJYmyD?3C%+7n|8454>i
zG6lY%n26x%87nlM%6lWH<h6~eRz($rQ}b_%hcG$1fsCDGMFMV&A>@nOho?c_y6}hX
zxMzNmvuce@MgXgFh?p#tFtKHgAgi4ToM)1`QdEw^`u=O_Y}zc{Bql?EGVl@`N?1$H
z(-Fg`A+vzHKMT)W$5GG+n}f>P83|rbUUuwz`7p2lySGrH6Us{leRK_s{^~KU<&?UA
z{U!_bqocZaXxGAD|K*(Sn5>_f)LNy$zo#VQ8!IlNht*ezd31VJ=>f7Kk08S-c3CC0
z&@diUg^`!1*T^fm8-6RivBiGa-`ClZW+P0S4d_fvj>VHhG5<hNb71RY+dF4-{PtqB
zxUy5#dND7hwW5iwoI$OX12j8R2o3sPC(h?l9xs{gS6q#oId$>M{>1IZalRDS>b*hS
zMw_dg)eD)i7I-Kr9y0eh=PInA)=C5Z38}F?EiI~MX9)Fs$iM^$KgN!PQ7ES~4D!jz
z7{K_pB<NpulyT2%oLV?vEl`;9%A(R{5ggR!<uHNt8~vOtF52y0=hR-zURCRwV#Q_N
zv6<GXbie17mxA%F^F*((=zqvZ=xB2uGDE!cEg5tSPk1L&Km=l&A(;LN6=l9dRos5i
z!AaTub*m&B;U8X-!g6Y@pTMA;#3w6sKAVW(a>lZy>;aNIu8$`&1!$o5yrB4bH$53A
z=jWfUprIXJnS^)gIz-ZWa3Hp$2FB3Yi>xKh4E*&!J+|mmF%%^5`WUQ|z)oJajtO+l
z`MQBIJvnl`l!twVB?MZamazLhvTXVQ`PtMr$4cprr*wvagJUn`K9Af-3y*B-xHjPJ
z@o$&XDZ<3BxrKMNN^i^Yb0_MiGVfSKo$$BaoMisNP_2lbL2(hPcAys$zc_;yn*lFb
z^^iqm@V?}MAnJsH@(FF~l!SN!Ye*l^P9Nw?-oEh<<+>L4ylZ}nvkj*}dH}n>o2NAb
zm9x<=i=Mef^Vh9LlMBgH&ZT2w+lCX^?KlXr>47wyDG(<j__d`ncB;ezZNkrv*=C4o
z{7}HgH+9$XLJfheo$z!cGe&Zm)M?@xNxZTic->n(rDIn9^|`;}FQCtR7{dx1azl?r
zgTJ_QZyn2*x`D0~VEm#p%O|_7pl(Bk9%9W1)>+Q>T@+Q0d1+uADApCLRjz?9h1<PX
zuKphvBIfmatpvB-6rngO<2Ws#4=v#xA9VbtXbR(-|JC7I@U2*i@pcV@$s-mxh&pV$
zN?%4yBZO>T(iqd&<Y<(xAQWSDql4ed?EXzr9%jSp+INg8TLMB*o90(e9XEv*>jWp+
z<mVKAY<|sz2ql<a?5`jhiw8D9nLbde#s-DM_X(1`1S399E{yNrMB%8wWBFu)<|ne*
z)FdMQ2rG7WgHpgq!~TJsgl7>Y^M-&7-W%GA9n+vBa2_I6`7pomZfJXMoeuGc6t;bk
zSC)HoWbvC7@eq9Xz}{3&(|=F>&#LLj$&PFu!cy3hMbXm{fH(M~J<QEIvKQzrdBTO#
z_Lt<XK=$y}m!wcG{-c6wBW$}(`1EhCsD3sr6mTq*q(Sadosf_;L78_#O41`1$nY0E
zrj}EfuKzJ$?VyO|CBaTeRJE0uW(ZF5-^v_Gx`IK>VTo=xTC6Ng&Wfm7WWrKAW@gZB
zXQ_1Q$m)N7Q{D>39`0gZVD{&^en;;7hksRXHiHg#dL}dsq4_iFN)|$FVZg(ZD9hzp
zNa(BAzkfTb%tZ`J=0a?rfrqoxQl}kp8M;>BAfS!oZPErxhg<i7@_K^S3o%VBe09MI
zjJxZ?jon{{kkcXii==ZB8u$Nrq8a?3(lo^m{7&Guur$PoU<S__mX6Wpebl^UCwo5D
z7M;iXAtXbW2Q=DfI#U>kyedk0!$$MT(u`yMU;y9JLlIx;zv)b|E148Q>GxsSJ^ybS
zHI5Qs4OO~K%hW~DVUPiIDlH%cz5E<>djr2)!mAch!(2%8Kbqxa?EsYt&%n-<Z8*YP
zqWe26Ibh`nfAk@4KH4Auz>(PhctoSOMUrPLlWK&)O9*avqS)>J#}M-LI{{aJ0*jjf
zkVsch>Y(Ve3duC2Pba2ngz>$veu2&cvWfHB0^n-ek-1JGsUmi-UA#P7M~P}tGY}%a
z-!_u^e+ELCoiV#U3{2a^?2?-wdur9)+z<sdtT95l#Qo%t-!g3zZiBrrW(X?-YHx|Y
zdQcA(n$M~7%ISI|y-1<<cV(z!T0}OVf*<}eL4Kyme*%@m|9VYk$8a0ju09qdZ<s|z
zqG2-8raCD<sM(UrqV~@=nBr<<>^@IQx29@;sx8~TlaT*aQi66auZR%xkpM;nWL!5(
z^}3yckKbT*>c6u<lW$U`{k?Zf<M5*msF_=&t}w;NYf5i!Nqs81VfDMyE6SW0!D!fU
zs!8@5c}~yECV6HV3%T9F09yWZDT{81b*CzBU0EHjWZh$Ln~7NeJa1cb++y+};f_U*
z<m?~L83Z~b(pE={OLvG$8gGJ0{1WpZ<i!mYx9{^P#{>srbze^?G4Uq{-qV1mb($sg
z0-RVT8<655CU<A^C};KOJuJ)Y9c%w@Y|JFKe(x^SN2OzCsdf%R!wRXz+wPT!Lldm|
z;GUA@aQ0yPP0a~HJ);3Y(tqp7*C*&V?d)eysP0AUY4X~u3C5Us<;*fz6b)1`qh3^f
z>bB;Z;Tt@E(b9rQjJVBk|2PK#@6+YSp&0~)_Xzj=Ph~$H?dhpeJBScyZpi_F0WbLh
zk^d}K7!7-9NINWw(?4b&QYV_sjTW}%w4u1nvq9kPE6*~DI7)EW{7`l!Fg+~IxH{6v
zZ~UYH0OmM6t<9ulw8X1==kM=g$tbEU+W93Jd;s8nG)gOyu$bMtv|T4G!tVHMc7%DS
zxQaLo;LW%A`iJVo`Q~0cTgr&c8}d*Rng7{|0tA3>pt06k+5O@ro<)>qq5m}~&wX{q
zg65{H91fhX;NvSlZ?o*o(_F+o*;bq~53y{K9aILo>8w2)7Git;gZ;H^MEIsVNvyH-
zP6BK_m#<4CImy@h1n6cc!I0?k-L{(xl>`VNR=rxp(^Y&}lod;nH`1g<qLF}+PGe;k
zAfc?SNq=ro5h*1c<t{ytcdzS}Jqd}0$J&}!s;E7Q(%|M66I(Wy7~07CEqR`2X$Vn2
zhrn&yEz_LQQkCqaKd-9medx@(+;M5+LfLJ?d+1EzvT+1AV?Sa~?%W3rZ+><d{$%cE
zP_Lkqv=!g;>P7K(^r>%0{mZW%*-ltv;Z=AqxgiAdT{ID6E4(fjH&-k0(KNzx(jQDX
zu8ezuFt}|XYx4JAfJx1&o7UF*wN)==HH1%*EcjmNzE`ItN#elo7;7rUe8;0oEh9Aq
zb#)c>X#Nw;a-VJ}y<VFVb~BwbPZC3dBrXNS$lBX~QUWEUd5U*Da!(M<bcW~+uLNj>
zwbR~`otOj>lAnp0hc>?U5Vo?of3pk8ROsGNr^w^Wn%y^OoJx^zZ2{*j)5xGu6N~zL
zes{F}i;iMV466+vYX2(XeS?;kNP$Y1fp#TrFIzM9heQiVNoX#OXfstBGLO=%VDZdU
zbVv_Ow}HB+QJO<1^M{81&$cjZRY4MB;$mX`ydSuCr32DJwfFZXU(AbcpGmjvMrlty
zt1(e#CLZVYU78&i6vk>$lo0AjU)q0$2Yib{!HjQ&&{rXb%Xrua(OP6a^oH*LZC)6Z
zAa+uE3l9h##Y~?NB#TgF2dE}u{B`%8AA|jF4lt^amKZ|~`hoN7z8zPUW!lJmYN`$(
zr}g(y07uTSN3YV4vH|i$uNI9cP1Qyi^%gnW(6{7JU;|cr&GcAR5n*8M1If0#P9v{u
zD$*54hU)t_x+R7LSRo`pQt~wiSDYZ|FE|v@hp%tw9WkB17y!r@WydK%M&tlDg}*ud
z2+}+$6jy2)&wP*cp+fQ#U<F-lv5jnWS{KTGiWVdQNeO+dih2}FC-QwZ7JZvFSDASC
zvn5dlgz+sk^_($ehZY*h<w6V~Wl5xG%Zc1?#pPMB&qs4CM;=|&V()m4LWGb3x85ZS
zuX>N%>G88GB?MlDX`e4?an?Q9YSz~DK#o!8*+hc%#laLb+Ww|ukbnx^LQyg@hEQ)_
z9fh<Y111_t{!!W-cu>tCvkCWz%mVGKQDvhWb@P+F4XOf?DV26ig~o~$4ci9jpGzZh
zZXuCUCwD>BBtrUq^)hSM>3zZy(!D0zKa;-tf867W9;AEb36lOfA+E^sq`XGK+WVHg
zNe)Q98yA&iCp_8;)~S{HtfFUjUiaSqT0A~JyzGyhd=d<R^DSulgDNYbM|5c-1M#R!
z4rx$fq58jJK{D3Z65ztm$62|CvBdjjSCBcbhb-ULJXVDJF`ZC2)fpN|>Om79j;dlx
z4cnN7MG6t79Q8%i8eUoYmt)HZBMdvNz(Y<kgIrd__VZDYeYzNkh=Pz~`z^T+0PAaG
zP%(tk*U%)Per$d8BV>#HHI=M7Xb4EUIa@e)$&Z{yQLJqeGf(G09jwGv{rT(R2O<S4
zRvtp2U1R#Vz%_CATRe`Q7k;k;&p@#jz8_A|+n(LdKS(Vhfb}_^_DDNn`7*#pf!j=@
z^FOl|p7w%{J#;Wcu)_)D==FU46x3C>dbZJHf?lH{kUQjZK_4K77C|@yB|Cu%=%Z~J
zj?fax8n5>b49RTk@}ZtPU=8F*XM&T*h5@d$eAZ;j$RUIDNwIS~|Abqo7G&&ah-ABA
z!jOO#F_P!(-wCK<k?It}!&Jmjd#CLhm9G=Xct6in2*IZXy76tlFJL<iTw+Cd<Pzj_
z{%7nMrwl_JHKG8pOMjbU!?r^7nFB$iF;iQQp4X6~%G=f-yjjRk96(ef%RfnrBY~rM
zZs$!HGvqvQt9{~2c*`GS9XdREfJ!^rkjlG7LzkQ~zlsmWSW^X$0VsB7{&m2SaJk0{
zGm5oKG-t{q@KlRjhzx{F56idC6;wct?w;g1P3c0Yth^b2t|$mln3bTz9SJkGa$+Ie
zvby2p(aP_B(<=Zb6J7WoJ<4x&<CVFgYY^+gf0zsmDl1~?^JtsF>?lRQSht!RuZOBV
zL@RHh7naiHgAIiB8Uv90bv-xKXU)}{=8;R5zkDoem)OqSr0j6>5my->m?TdAptvi&
zT~U*^8cKD3?TT$;8lSc0<zkR)3<9JY!Wv}Dl<w_JX+uSSb>gi;eiBGV%oQj=5m2EU
z-$$JH>XiiwmH53RI@|*lA09iHplryYcFuavRQc35iM#uGYs0<ZIJ(75&GEHDY7@E_
z;A^Riwd8B5GOcLckmi5V@`tdR0;1&%jA&V;#}>@Qqn^lD9D&LP|M4RbbWxjjg6HV{
z4Jr;Z9jG*Rte|w?Q31soJXd6e#&$U3Kkm6w(He<@u;V3&iG!BDnjit;k~*%IEtAF{
zbmI-sJ@YvY{KfRcGLgV8d`pHLv(&`UMG}R#BRg)oUXg&aVxn2eQu2Kk!r>FV0&yAs
zr?{epP@TnS0E`vHGUni6`4sBz9M{wF>t=_OT^lXGihfg~WcB#i-!Yk|GX{=Sp|&6w
zvZPj!Y44*Z=x=4aOqOpbC-8(~V&~;)on+>)ID1vay&3yH#dJ9946v(7qvK%WJY8*#
z;VOeFEVq{0(E78PYwO#DN~B-%AquYuE->lryVn6_e6qgGZxN{FD_xLrSa8FB3Q_e-
zr<f@BPuPvB^=1Uf1SK2NR05fMUYCOuI#7R@V#deIUij;4-v!C9sAC9pO-x$$jeCFz
zJXP1qkcX&Z#Hmrj&Zk*AXQuyh`7d9v4-kB@e<kE@%XwV`LBZ<o392wYfF?OGvygFf
zA!f>p2_u*8x@>LlmkR-~T?TiI!@!R<iOsA5C)DshL^F<UagFMqOa8DT_&^NT$@8+c
zbPHD4<|PS~Qs>kmg&=RDy0Ybp|FL9nLk`n4c|<|%EYBX%hxy{8m5yC7P-Ya&{!Fno
zUe>1mQq$e<I(kN_nzC1m6F>k2Y6#@SyyLP<8(Nb+fZ#8yW2QQHyF7lACj5pqHK#-B
zBpP-(%|lJYJ@UQlbsOtCBBi_X99aJRXgY9SeM&~0azU|z=4O(b@M*-G4cwZyf`$<K
z>lM>{f7~x^A1?fRI${0yy41`J@T)kCR`B@@+oa<LwDM@nhu3uZ2QluhYYipmVLbb+
zk{%6iYB0^;Jyc`AH8rtLJjtID`8g2o;QK$nUm6Ufq0WTa)9p+<$e{nyjJfJVq-}VT
zk2&#g{vFl(qMmkJh<_?!{7w;t@CcT3fk>a*Qb!z1xN369+r2bs0mLyy5qGz_{__=i
zLpfT@Raz>XublLDp<3rp#?k4v(O03^ip6w*<awZVZoXDHfdBXFwku4A?Z>6AYdFDQ
zSc}O3T8U-?pCx~Fp}E>3YGao5Ox7CAR~j^LdhkwgSIazZTo;zxkFU=&cRRac)%FMz
z&C6G<ci8{dE$$m#6kwQA+)8UoeoRhQ{0p<9&JD5pB#FN(oE>zRVM8&o__iT;8Y1Yh
z%hq#}Yoh=w#rQ$ZJ8$$A!Ou&~XD>$2ZACq_gGT-S>Jo*<#Njj~OTS;Fli;5aq!a&j
z0xO^eHX)L1LrVEAFx~$YMb<>5Ov!7vs#2<$Qd_nJx&^mt)!~&bYoHvWe{72iLdt2>
z2&j$ax!OJ>Aju*`^p#FeI}h&A?yeH&(1YzJ-z~8vMH)f<JeIy6_L}LMl3pjV_l&={
z7zVJoGNaHrafD-av>H{G?yi%VY^MC~SF5yh@I)Vv{LmCgQc7v4FB1^$YxUwC?DYqt
z_e5xV`nLxI&aG28x8w)UIj;FZ@T!j2D<hv)w4RC!cqMA%M~6%O<?q&5SYqN2e&u)u
zrD7LCEj8gxroe(0ViG*os1%m=?zL6U@mTf_0_?&@{9>aCUPB()qUqff@fO-t+W>$3
zGQ3`VmgJvYPf!BJaFuIbg38nE&D(V7wpG+`<lf)|DR){#k59HSHsPks^dvv-*-;j1
zSb<&XB^bd4tU?C-*OoT>PL$1q5EpUv+1~_2q)e&;&NQP~&MR`C%DjC#u0AB5(yO#<
z+z56PuaWm8bj@PvY@F7>xn4>@ox^)OMreAnwKs&X%gOe2*1q5kQxiUzu*{v>L|YIq
z5V1KSX-C@s_P**gIO7~rM6zG@!7c)&miv}{#-(SZUI<Z9&*@if6hXE*lP>V|hi(~V
z!`wvj2AlOwKqTJ-7y{!g8oo2Kvix??5h|jjhdPZ&aljyF%XEva!C##{C3zT<y=R52
zP~IkgF%cBy7oSC@@b4)YcVWLu^ct=L5@hWEwu}yJa9r_9ruu+4kNt_!6HYj*`8gJz
z!V+2RS~K&<uulK2K_hj|iE^~@{!`?3l5EoDv^@UnaCIa+W^i3EV$9EAX-^9H%-Kd`
zW*D6gM`nbC?&aq!Bs1@8#N)1jFwb9DnE}%w?T-TtXefbj?^gZx6AhKKABb_gE*nZ9
zAULuU0~w?A^lQ_pwvd<lmwczX5i!>d%7xbuGo^XRa2ssFk(C|(dQWRHt<+Sb85ae<
z%*13|4-|wBS+0-!&t{yAnPU2c8-AkGM;lHG_Atdn+LA0!pIfhHot7io<%$s!fcf<<
zFBY)gNcg;q_}IX#Wivynya7yc7wgmAr-Zz0z^ZT4t%u|I*Vel@QlV;}^Vx!F)3#d0
z{RVb9d;~eDVc7Z$K1Vv0<|w-|f#;hGmmU5q3`N*3m&4V*JDpnV_YhVT97(HneV^&}
zXxCTF&NpeZS49(S`z}MO@7~go);=+q0;a}1A`p>QKF5cj;#h(7H~Q7PHtm-MXL|2x
z^nDZ)sY2iMBB7eZ>PCCpb-!Qdp_7zu5GpTl)BZCF%~0Cp(XqS;i?NpYBT|lCp!5gc
zT~)T6&N3T`{5QneW;ebtT@LG{?$#s{S)m*_kg?;5PGKJY>(>xstR9{OBJDfIme};3
zyGtc%O)#K*&UQzI{_@O!{|~=gIBjG3&$6{qQr0tZH2eb!LDblwDbOIdj5BQ*a^KIT
zYASl|yAc-W!WdLm{^DKDaa7GHvZC-dXaXcZ6U3NyO5cc^jc)Q7+DO8w{Zn76N`m#O
z)GJTMU$@d@pm7Bmlda)H3no@HZ&f!eikt`UiQ^pJgSlx|TX&+@AnDL7ZsRLqR|W$G
zerUTLudD!4%Zbk9&~TeX8w-dSHOFaEh*Rrof19Q!Qd!Y~$?ID&yxBHpaPY}i4Z#vh
zPUXS8q2W|C^_fKOXz!sS2gy@5S}qHfKA}g(--m*+K^=futlj}Sqs^L^#pS_^OA}O?
z9q^ZjG`kkr4<$#iqVi|L%i|oqjT|@T0Nhi*k+IS%rFrBm7kPFqNC<^W$H(?p8qXDB
z;Au6BRP7rlsp4`5nv{P-cl?YrjSNT|jm52^Nc43sv8&blBSjSQI3La@y!GFvZE)Ec
z1Q<)mIl&qe!f7+n-xGLQY&~I>!iLT&*`x4k<y>F{S1P{fU!JZD>D4|T71kH16_EWk
z3R3(%wC=S-5AJ{SX`PPida`=s*1DDO(=n6`S_tw`eXFEp1jRU0gnIShbZRGK7NBdu
z>-c4xiwLp9@!$Y+d)WWIo&j$@4bo$)saN07p|}X_L$<{7AVj2*iWG$RJ0zcmJ_OY7
zviV0R@Ot+|gPr>^0=e43qjl(gj<Z_$pd7&Xf#sD6w_M8qHr6!mHpHETU7=+uN@Z_Q
z2B4QY;ExuOV|v<P&<SC5ei~SxJQdOVc+<s3@O}R6H~U>B%{$NgpNEgXtY6JE->lgF
z#!(H9G#w!7jhya$Mmqx%n-Yqd<;<r4=^Z1=1<VJ(w>y|wy=L{<+eG@d0|UizZmRCh
zO#hyyQ>ACwMd1$9nM+!gG;{-?g(@lFDVc~_aWK%7IhLQIaZimr_3W9OIy{JA51&Jx
zaxV9DeP7a&II^cnrnP{JSp4FM>$eiC^eaJWqk5ed6+HoYPEzM3%$5Ea@^iXV$6xD;
z@SzLBTmdO;ht1$##a1z}!p-}no-i&`L?xyyw_Mdbu)CO@aC6}*#{-&lrZ{f3l~bOF
zx~_zHgkqSg{(WW5R6AZAWN`LazBPp~JuP2n!H&9CK4*Fi10oZpY`vfM!i#yuSpF#y
z!o3iwzMS2G8EXl2qo?SONTps3Ki~hVAdH#0v+|Raxh~#vwP11SyRsXiV7hQls`gF(
z71N_36mSPVrR_<zHv@>e0aMf1zKkd7SdSPR1ZtTYq1l%yU7jPw>QO8-s_Nm^H*%?r
zO&IR*F_iwB6b@H}Ub0l_60A(bOW#vo{K$SJ{(=V8;jG}{;b5=&pRTOQnyAvwxp&r9
z__?{+qLH0W(kFB=^_=<X3SZ@0^RkDHlxOiIN;g=)+mdVgL*9!K_sPXjZxnd4+W&M2
zuZtJwU^Jl*kio}zMDA{?DS{4H^4&I<()@av`#aqK-v*cgxbL65ARBsnd4Jx%qePsG
zH03uu_}?9RXj3m`$x~OOn<cV6Sb14M+afj*fI(ZklT*~a`PAatiCIWz1Rc(ejRn5k
zbV?{U#qIr>t1Qk>aaVf!#v*!!4Oai8e#amEdlH@8E%BWszCP<NDGTfl4dA0Urbiv8
z6X=MzhnxKDx7W6;aOFepheRd2ze2B9`#5Vs>cTsj^vqW)@WkTN7X<t2*hc9SUk>3k
zYY(-SXNj6hUOX&BgTpG1w_DH#Jb9;MShvcRyxV`#(ys}=*PD$#xXp<sv{k*b<L2<d
z)k3AJ)+I?FASkvekn$f}$Wu`_CVQ0#nGQ@fS7Zh3_h*jPMn(_buP=5io5ir(A1Jc?
zH&|j*a8{W+@MT+HA(UWSDvl~lRvH9%jPbtNJ;}XWy?*+gYwSGT{;{P!X+BbfCk)c)
zZQ5&#wO-d`-C}aW%Ut+7u~;7MW2-p|Jbs!~0Os`%o#!M;uq*S&4GG2bpn_x~3xXo-
zbA>OosemyW-|aMeVL*kzZqQ1T0hvsiHu+S*H_!>3`DUk|P_g=8qNI(UfV!M?_3nDp
zoV;0kKC$+yd9HTSnoM{mfWuDK6`8i!IZ${RNc7L#{a#@T%^qbsUyOY(I4L-FzSrer
z%&tUDS?PLyFuue&Jc=^gofA0sxiH`I29g+{_GlPP{P8}}oDs}H%g$disdsytJjw<W
z|3J*9(gN@Ih!@1zKUPxX>f}|iyAwj!R^#Cf<17Acvbgi^Pf2jts3q6u?^7>k+Ut8+
zwtp4X(YoYc)s}Gu_WW$Pxs1t5Q`PKsW)8n6#GicG*!i-g2l&h-u6N>Z!_&8{XVRS$
ztJvy;$2EWve{o5B?-nJ2oB-rDE?=B2a^HY*B6+j0S2dGj+EdX7$%&6Af7~ou!~@qj
zjTBF%D+6hdej64&rIEp1xvF4&M4fj01sl<BPa87hk~+bK^&6&p`s!2tYhb7sHq9Ae
zt_4Uv#Zbx-r!#f5ftw+o4hxgJY_t}v!2cHWUyY+4K1|C~bI}8o6A*90-d|Az7&r0p
zd)2?f8UV0!fH*?~>eQppTeM&UXcY#j^oTxcO79~Chwm>XCXs+Y%C^32b$F`Bz)XQR
z{<l_K*oMeZZkZUzuByHR$aNQ;_U!Z%<WMB#z6%MOCqJiHQE@Due-(cJmDzG!1RQcf
ze5d!#<-l(l1<(8mJV1;H8%_tX&1J2tI}nvW8zy!O62-$j{0REk$`5sImQkpY2jv!N
zFD43PAfU=|VVdNL&&Q&Zv|1Y)7cYj^!+^SB#zY%yj1|iL!G4Pwx6FkWUW11PAGA&p
z$CL2ZB;$m5E+o52`fFAt+rPvdmgNPH($<%O^|~r|f8MO|jr^UGSXX6zQaU4VO!0ar
zfK@|d$Nevg@fVt@ltmS8UVBW$_h37mh67te2qQ7#C*C~aFmYnuPk1Gp4SOK5aUP7{
zVjS6AFD40?FD+TtQIVRwR(&TSQ*qtL<<IVj6}cfYFm-DJg7Mvww}j<)c>-^5`@&oP
z*-9M-7%!iw8UZk79gotfw5K@Y{-h1g!yk44QW^P;Y8-=;e*8I7Dd4Lr(r@f8mWNn;
zO-8#RbD4FHp@gKX-?<R-0`wwqg3-IY`!2kXoA0Z+U04e(f?glv3QXdbz9C5;Jsk{F
zK~vs*_5|DJ%`w)!;Rf6*c4awLEg7w5Cmz&NB}}aqr9WmN`AvTnryw}&Xa+wTkgGIF
zOyv)|#h>YnrLA${ao@Dnm$Aux`JHgK%~h!8hI8N__Vv=4(95L99S~Wq8PB{k+M6Ql
z=R~=zCRO@tQe<0$U~T(d)C=p&CNUp2`InJO%b5;&W3(>Osk{QptzS8JuPzD~bC%@o
z_07z(COK)7yhOiPD$ZrmpYo%q96obxn~zez2}+VSo)1wqKsORuM|3F)sL$@;VbI^c
zyzI+-MpSPd$CyQ0yQ{Qf0j5)qUM&0)ou3i`nyS*c?lt$uzv^E(8-NS4f6r;!9NJ-V
z)9d&a(*YGFw)jvfZdgTz)`ZW(02D@dzM#W@W$)+ynk99qHr<U|PG`Y(SNs0jdF6x!
znG^pzcx5THpy%*vkwMZcvGG0@cZ^Vee^VcK9=7=@HB3qY0S4H!95K~8^@Rd1n6J@w
z4tr=c`d(!n#&T+*`MIbD<qKgg7Qp4~)rX+mhT<#d$sX?_VsLFtB(sW5KGe~>GX;Ux
zxd}Eit)SfpUlMSyF{`5nP@oAK`^LKNdXPF7#<$4&UO?blc0V<VogR?%d5q#^hSL9~
zRtmeGe2Uw{#&+qZ%jpaNO#e873OsU^wRQfb{`Kv0$wD(*7*VYE%Yc?M`g<;<wqm>Q
zURWIkN=(AX1>Pid7oyC5>?+PWkszzI6w^n&{8D|6nA5ZP90^_PA~{i00-AR$Mbru3
z+?M?8at-Y@lQ(_k6aa0&x6750S5<L_t34?Tmkmiw7R5PJ6#ZATC;B&dj0^zka$?Hm
z<o9BUl18=z2|uMIOmpc&@+p7CnLtL)FaUG>`CEMjdtc(YI0IGFqF{}B#;I+e-~*V(
z8vQUdcwlq@(aa_9T|3EDz^plb`m#HY&KgUgJ^niHnSX*i+dOp_v?{kT)qE<$bjot0
zBY~%E&bK6Ol|9Y}4eSN|?z%*w^+40UZ*~qXle@urzWz-EF(ifg1g~_N`eTA5j<HLE
z-D7MltP?bRXw!(<8x4iH_k!Rj^>&1m__8ZfCH@daRP=bq`w>H+yX<4t3<&}eE#~#&
z?5_{NnUvYzDRoV*O=Bzcio^Emu$$|jQO1<evR;@kBqB56n+_B6t7@b(xlxPmyCW4z
z{F1}30gz#S0@7G$A+p=U8FboD7D%7u#Akm@o^x|%8O`#)4Q74u%3oLEfpSjj<-!N*
zi7MWbLT8v__HtEf;a5>YwYtH0tVdK}F$v0fMkCc_I)H*d+Wv#mDV-eXHJUld&b!1?
zUo{I-Xhc7?=dMNxf71o^0?_1Y$?&HJyBmvJa!GIg=*IlWw}I_UN>V9@V#l+5D_xEP
za^Jit{&U`~n(^U-kiu0ERq<Sbmk+p==5a}MIjVdBw9JK>UMrset{g*X%_rt|SNgZ&
zV<xoY16u#e<s8S@MFLW4c#atJ=60H3;TzN16XYBH+Qpo{<s{ogc>GuIY>J-Y&;6{v
zR$-P_pSJUgG>OShrx!R<buhp-d=w%|EZ2~BBR1D--Ga3qCiM}vi(WS{I?ie;+5pcR
z5x7W8(&m7B5THw2gfQ>gM){G&`vBV}a?t*QM-m~Oz<7-;z*k@OXl_+EJ`wqh9FnDq
z40gGGxXAw7^jJqsj{>mPGh)V*w6@9H3r@>Zz}OMF^(WRgF>)0Y*&vtXLhBbs-RMc?
zR<?O_)~Twy(j~`MmDmx%zwa`gZ$B2u{ty5zs?*BdYb<P+p;5Y?Vn7>>vr#0^vstPS
z0L?|uVpfkk)Ka~w-}e1<9de>@Rw#kl_{is{^-K!Mw8yu&wi7`Kf&&1Xe(VYcQpDAv
z1&7*#2_SE5+l|>7I=cnx9XTz7i0o~bpPsJ1ngt%}#y5lodCC@L4=HIaLq$Mi2J33`
z%wc)jOug}KuAp#1a(59roCk$Cm!Imw|JXiOo}boyL%n;K_9g!<dI{70$@iQJS|~zM
zrU}V*9)jC4{GeWu9_#tB5brfb?ob^7e9ND=?_)`hzML~P#w;fOBi31wJ%T(_L^nY9
z{lOTMf70pc%9OgRTHf2JTq%u{ZHzovkow0(1pmq2#Lf<^fwtME-v>)O5awM!H*ilS
z$^bo0C(Ui(lov5Bf8nZworpCgpln!CH(t^_KV*-bTms_|@2#vf&HLvP&DrTN(K9x1
zG45`7>N}`2uG2y7mG!gEubw;r2S~DuxaaN~EJhkb*(1cpY{LOAmNEM>?JML>p$N9J
zg#q3gzC*JM<TxkLW!i87UAqvWKL@kSO-!{=Ox-a88x^iU8n#7aZCv&G7cC&$CB@G5
z%kHL%4Na_8CznwBV?tcxoe?Pt<<)>1JP>%X9)jx2-|`=~JMJVXPNi50^Qg?y6;^6i
zL;x`QdR#dJJ5M3!SgvgBBD7qV3Qfd+Dkx;_Jm@96V+WvR8>PK4aYjWtkH6#aK<Qio
z@{S8s?%tdL8z+0ccYKS*<t9%P^yQujf$Gi_eU90vFznj@1{AP>YQBhiUT0DYk_xzV
ziFEhyw*hUaDycH{?oD}<ZDRlwy79nC!B+a$UL@ds!~Q*PdQ>Dvzz=&io<Hu;o~g79
z&+nE{*bT(O0daE$dH-G3z=0DDQAK7L)_?m+73lAL4n^+PYKfWt@7^XHn0`6V3HQ6a
z+}BDRJ_6zmUl?Hib<jjaT*9eyFm@17zyq4*c6#rZou|GFk$nK5&9h#`V~8bde@-i*
zWQ3yR1hq^i(1k6(EJd=K?K=ff+s;~1ERfULj+PnG*>mA+RYNfyA@cmH{WJV%g+pkx
z+f{+g08ratn(0wf*}?;dZvVeH7>?#lZ|)!Gd*O**{sL<{12@oL*6NsLR|$hc)6o}7
z`_}TMWkbXHVj0JE$y+bCU&UAh#I63?zwIIB2w8Fzp2j&Orsg+!ucAB1{W@G%Kui9<
z^S#LRtz>9%T|X$*7Ly}F)Lk{8cR*OE{QYjWY<(H-DaM7%zs*LQwSfDrGy4*F&MVQ0
z<r7*!@)~lkZRwJa6!j{(+9_gP`)JlI{&Kg5LHWxlM!$Yq%UVF6u%Yailqv;ywu^Bm
zVppFz4*2(cr4*%(X|<A)8vBCgpJ&vFAn|;4oiKm9hr#dlQf%Pd`nZ8<xBoztayOAm
z0OR=a^e@E2$u1#1;t;Ymn|={a18&$=f4P*YB{UZed@WK@2}z##hsN2k9CRK*$LF)_
z?(qKN;=@Yq?jd+LDV?1|;_ADj^UC_j-q?qD*`-P?G?3HN$<y60OwW#KGh1M_|2bGM
zbA4;2!|%GB>PeL<*x*=VI2k9ncWjNp-#sX}FkkaPl@1Z!Bhb+C-D6m+1psa(NnT!^
zkLFh~aN)-HeH}Q~4YL<3jr06w(_Hi%s5jp_ws!ZktJC!m4W?Th+1T^;G$|zVAXeXh
zhV!H5gDZW-D_6sU^wH2ySKlDWHMaEg-wa5=uO>Bwn3oG&@~HARVNxRg8<c?s<Fsaq
zljtr?^U6|OFoS>|A*NTidXdqNIP<tP%|*}IyaZ$)hjYzZ6Y^zG;IxPxl2K&?k?(%N
zs9s#0hLo&{G>tjy!Hx_BJrM&=<j)N5p^YheKqT5S!Uk5Mm=8;X3n{QVRRb}y-$?z;
z*I*C1>bu8)U9_;+-bytxJOiUz+B7@{(pS?|v!Md>swNF7W^^wWL9qJ95E8(AxcHWQ
z-8o6^Z01U$>p9}Keg+?q>^>a=e)8*+Yx`k<rz{wvuU`x6$1t)&e7BH*#gDr3(LpJQ
z0A^6NjqZ1=_x~stufDY3qFpD0=3yqQU;)v8sUrD)7Ow&JKuls&lt*I&)DWK8ioini
zUHrc>=V2s~4*CADP=qiMcV}JOq&Yn@0_IYbXV#GOs#ixiz)47E(9`Kl4L}iq3us9M
zuIya9?Zt2d7eh+J5c?hwfIG2G0X)3oA6xp{a{?+0`uEN_(F`EThQl%2f6Ewv@9<iI
z!sSiuJ#2T9;~)8XP$SI4z&Q|;Cf=)(ZhJ<83Z!!yiLYIu02)=@k2Sy@p+2FuGy}9K
zrQ%wtDFY;Ubf^G;?wbH1(CEq)&p1xPg8`Us|67&jN<lGyO!fof7}M5&SOgC%0*jOG
zDivavl(0njh-@=}WU7wP6~q|^Ojr4tdDEAHpnDVe@SXD<0W5@>E;i7<6AM(|dTsvM
z0+#^wlpsm<_g03V20%a*Tiv9~6d^GAksJK53Gi4|AeXWcb{Atgb`FP{16+LAmv^K9
z*W73^Ent2Z3b^GMSLZaFKaw=xVF4=Kezfg9k&HoUAVNyiu{={y%ql)Wz##~1rJIY0
zXCMQZ>a|;CfyJ=k{M7+dK@5P_C18G9iNenx7R+}p#$axKYQYS?76P;aa2q!R(>*(-
z0lT2ga71t(di(vO-58*5=wQpr0@!Vc6SR>4d2DwQSXUcGKxg1*@uoh~Z_!|#Fd&9%
zk-xm^4f>}8hQUl(7*tg;_ewb4p?(NR8(}CwbHuZ`I4~Mcm0<(zLta!)zpuvl2E#On
zz{R87d`%8qxM_}HvVMo@9^w<7pjJjeqIw|%v_DY<oDu=6GHDROYc3!Imx+ag2qlLC
zXhr5<t!*a*W*0(SAMFA0{bz<^e0o?ojvbJ1bL92n`FGH&dPHE00FYrqt!+$h!3b_B
z{Ex!N@emYq>(yJzWKRU})yMYn%gr+2;$j^hbr^1C0R~Lz(=`VpNmhf!U_k_Co5`Q&
z?^Of3c43G<u*@D3@Bxxd67u7%^so<XQ4>Oa!$6Y@2z<G!-j%2a<PctJqxJ&b>fy!B
z7WV`>2w>kH7t`2~cG$*?n`=J+<4Q>34-as_=!-D<o6XLBR&NFb^tSAm!PbEy_kxAp
zHqZeHBl0x4MdTb5;0*7?GYr5AxOOxX0GL)6-Fe3F*oikpBVNxPT5m#0tLA?w5&Ha}
z%FX?s>AnHupYO)3Ok$4ZraP>Y897WDrqrFsAw}7v$!<cJQ%<4y3J*mNJ&)m8=y2z*
z8?_{7S;^!)d2-0wlw(L^<~Vly7oH!k->=v8dcCh7uGi}#ej=_BY9zwi+i|jqKzJbE
zZUuq`2R{)8-a3Q3@H5iT&H*h5{*@TInULU!%gML1k&D8x9*W|%N@g7Mjb8j%?aP@j
z<(R)g!22?6sZ$<-hAvaKA-(F+2ri`YNPUK$dJJ$>_>#WGZHn{FdX>)FY9qV4C)WQX
zxPH3#ZfVwaP=QR<!(1MewxFWzX;$FH=_KdsattsH78EsLkl94rOD1G&OB~Lkf$NrZ
zQWjuvB_F0y588_cTi4jmpc_zAJ{MZdn*iN!pA%|@7vU{j0c$TnrMrbn*XmoCb=h{%
z{ZHe#>+SMn?S>HLn1F&$S~9TB>%_!tB;5P)jQ`bkP%`0qi?3$V{4C&E1wq#^q{z)T
zN)y0y^!dN|4xl8UeBuDm6E$oKlZpTjP=n%U*QbAz7t}?{uV{30FyQ3zt}Sb`n@8Z}
zjEmTJ0h&mRewAGy^=MmBS;vyPWTf0U{(G^YXB@EQMoPm>cR?OlNO@iXG<F$=z1$Iv
zK%;U7&BxYx?>!e#?KsYFiz0CKzkK>ixX=5G;L;)4CwNVo%rglO|F5#KF77gFbH8xC
z;st`eOq`6S(`6jpcShQI%CgHCUS!htBp3%)y_nes)@zSy1$!<ZLje84?jMR(lF1AM
zx&C{QGrESSOn%%=@D!<a^T8-NG|OjG0J+#(=lxUywo5grH!Lhn09AO@%K~Lin4*^2
zyd11s`bOMYrY2=w;(#<t2_(E?Ryqe*lNDJ<?vz0fZc&9&E0DrEg5EYT0*%(F5*1@p
z@0xvSJgUgP&~viWATvcf{gq1REE6z~lDC%5bRxp4$C5h7tWnEWWK#Dd1gPClrT*Ba
zt#Uz=JTSzxS)2~2j2a37wRs|nzk}=41Y_W9UY`m1Aw{AGRHC$6JnMIZgagI6Zw{cn
z2CeQMKeS`CbqxqxyLAfda;;*~Y$VTBFAdP@iBrZaVqh&M>g+7RxELwVTVtq`>E+76
zSy|4gcO05N|LYZ6@b4D8xC)@Bzhjvp#Q>%IuG)L8QSck;mKN}%LtNUjQ;s|8phjLU
z$O>~yXnW!d9jj8m>z;*x8;%Ac2+ndj?v8;>p(d;{Ka(2~3rh0}Rwqj!hYJySANb^|
z=DDG+!$er5NVmrTdSc$Sdkz~QGhN-NeA!5a-Jt>~BEpIO{1^n;bV~VaelLRERJw&;
zY=b5RGWs7tH`Y>%ZQT)kb2EVaq4M}HiXrA0Q2{Jt8N#A2M9#+&5#_Bl7;|)9Gf;qF
ztlw5~M+B6qVuqA~TNS{H%Ew#J0joz6cL-cx*q{R4$Fg_Jeld_`RfZmgGhNlZVx{#+
z5Hi)J#$X`H>EBIl5-i|ec_(dYm;$i7!-Np%au7zG`rIQ72M>a6Si?zw;lV7o&`^OH
zbp+5~xv6lyUoV3d!BsjA{u*A|+%&2No*G>^`pR2}T>eg-@qr3#@2eUUG68%u&49O8
zX9NxUDTY3NO~);+?*Wa++Ln$70G%u2&>3ycm+9Sr=RKdjZx^u6G6}C*as?XfxWb!q
z3_m29v=XILr~nF^nNBh>5-d2)?_uGz%4J!NgBD<ja&<D%dy;_!+#*Z+OI|YjhUX4*
z9s0rOzLkG$5VvE!!6=)pJtRc~WhX6#f}McbZ2sd~<@95QdaGQ8asN2vlbkNw{ut2O
zp4B*-QWhLDE_4WLJA~ZzT^jz?!U%B_V5K&oHyXB6wCe>g*Ytp+kvO`N6pjK{Ch5dJ
zTCi)UipczqDg)1|PA|0bRsnO8D+8U>G^zNe18#|k)sHM&OximOIh_;k=6aa(ik(KF
zeQ`;x7OB4NSbU{+VCB};@a!Fcl{gbY{r51ThxB<d@_MHDu-~$(?b+Zkfx;;F;X>l<
z#~xf@xFmPL{b8F^o{O3<QX}a1H!<G@+kN}`mxfqhHQ;Cx9%Gz(M9@B1-OtNN-e2j_
zxK(T>Dy^ZtZo3F5%;Pl<meM~|7l!eI=7w2IlI~Z<jeD%&p#N<fLbjA*2n}&JN%K!e
zA6QioQ~P}U3s&dv-2iA$zpu&*Es8+Sg421&1_`82u{^<SPthgw$cZ@%Yz0KE>)V<q
zDMoD#rg<b3_(j|HKJtwiK$1g37ORwe-Jknsl$}Uis}mQ+@LZJ6s~hv)c|AQ?AChjV
zx1U3!r!d`5ed5oi9au51JHM6OjL^uXhwIVb1_6$E#)v|zG_6Th^ska$5f2V){qR_o
z&vzG&m3|@psZZGhh8qcw#a@S!zKA)v+W35TKAM)WTV$5G`_F@s`U8T2`si;iX~{m?
z1=XL%iHZ>U(L^qHXq+@UwqbdL|1jk#e(5uno$}8r`}5e72D@OVME%7L2Gh08J72T?
zTkWX~S5=bSPqiD}Q98v>=Skg5gM0~wd`-P`s>DoJk*)s6jEjhpgULJRY3ZtVPx8y&
z_06u=7~fmRImNtp5GhMsLtTp*={>!{i{Q@zr>{ypVTy6~HbUQ7dpb`jc(k<``gMdJ
zJ3FwjBd(_T@cMxF%$Ioc%d_X1g5^-3s$Q#8kDNU3)cT;+(&VHr51Ru)qnqKE&=-eH
zEXinE@)0<&<L5Q|TKUmy6`S$wpvkgOLJXRAo3r%uu}=_q!Jnf~eE-Phy1f`&XjH;~
zypMibZhBeTMD6!jZ$jTLK!lyJg{L%h?jyp&?r;7awU8bCza_D;z@wODJ^1(A$7W!E
M%GvJu3EHi{0nFnf#Q*>R

literal 5198
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