From 7ed693dfc898ce0f38b15208cebc05ef7f78b414 Mon Sep 17 00:00:00 2001 From: Jesse Boyd Date: Wed, 18 Nov 2015 16:42:19 +1100 Subject: [PATCH] Fix populator random seed / algorithm differing from chunk generator --- .../bukkit/generator/BukkitPlotGenerator.java | 2 +- .../bukkit/generator/BukkitPlotPopulator.java | 23 ++++++-- .../bukkit/generator/HybridGen.java | 24 ++++---- .../bukkit/generator/HybridPop.java | 54 ++++++------------ target/PlotSquared-Bukkit.jar | Bin 1374459 -> 1374469 bytes 5 files changed, 52 insertions(+), 51 deletions(-) diff --git a/src/main/java/com/plotsquared/bukkit/generator/BukkitPlotGenerator.java b/src/main/java/com/plotsquared/bukkit/generator/BukkitPlotGenerator.java index bc6473036..4c33d2ef5 100644 --- a/src/main/java/com/plotsquared/bukkit/generator/BukkitPlotGenerator.java +++ b/src/main/java/com/plotsquared/bukkit/generator/BukkitPlotGenerator.java @@ -49,7 +49,7 @@ public abstract class BukkitPlotGenerator extends ChunkGenerator { public int Z; private boolean loaded = false; private short[][] result; - private final PseudoRandom random = new PseudoRandom(); + public final PseudoRandom random = new PseudoRandom(); public BukkitPlotGenerator(final String world) { WorldEvents.lastWorld = world; diff --git a/src/main/java/com/plotsquared/bukkit/generator/BukkitPlotPopulator.java b/src/main/java/com/plotsquared/bukkit/generator/BukkitPlotPopulator.java index 863932e2f..13f3c8f53 100644 --- a/src/main/java/com/plotsquared/bukkit/generator/BukkitPlotPopulator.java +++ b/src/main/java/com/plotsquared/bukkit/generator/BukkitPlotPopulator.java @@ -17,7 +17,7 @@ import com.intellectualcrafters.plot.util.SetBlockQueue; public abstract class BukkitPlotPopulator extends BlockPopulator { - private final PseudoRandom random = new PseudoRandom(); + public final PseudoRandom random = new PseudoRandom(); public int X; public int Z; @@ -29,8 +29,15 @@ public abstract class BukkitPlotPopulator extends BlockPopulator { try { this.chunk = chunk; worldname = world.getName(); - X = this.chunk.getX() << 4; - Z = this.chunk.getZ() << 4; + int cx = this.chunk.getX(); + int cz = this.chunk.getZ(); + X = cx << 4; + Z = cz << 4; + final int prime = 13; + int h = 1; + h = (prime * h) + cx; + h = (prime * h) + cz; + random.state = h; if (ChunkManager.FORCE_PASTE) { for (short x = 0; x < 16; x++) { for (short z = 0; z < 16; z++) { @@ -43,7 +50,7 @@ public abstract class BukkitPlotPopulator extends BlockPopulator { } return; } - populate(world, ChunkManager.CURRENT_PLOT_CLEAR, random, X, Z); + populate(world, ChunkManager.CURRENT_PLOT_CLEAR, random, cx, cz); if (ChunkManager.CURRENT_PLOT_CLEAR != null) { PlotLoc loc; for (final Entry> entry : ChunkManager.GENERATE_DATA.entrySet()) { @@ -96,6 +103,14 @@ public abstract class BukkitPlotPopulator extends BlockPopulator { } } + public void setBlock(final short x, final short y, final short z, final byte[] datas) { + if (datas.length == 1) { + setBlock(x, y, z, datas[0]); + } else { + setBlock(x, y, z, datas[random.random(datas.length)]); + } + } + /** * Like setblock, but lacks the data != 0 check * @param x diff --git a/src/main/java/com/plotsquared/bukkit/generator/HybridGen.java b/src/main/java/com/plotsquared/bukkit/generator/HybridGen.java index 22f12b66d..214724cf2 100644 --- a/src/main/java/com/plotsquared/bukkit/generator/HybridGen.java +++ b/src/main/java/com/plotsquared/bukkit/generator/HybridGen.java @@ -131,7 +131,7 @@ public class HybridGen extends BukkitPlotGenerator { for (int i = 0; i < cached.length; i++) { cached[i] = new short[4096]; } - final PseudoRandom random = new PseudoRandom(); + random.state = 7919; for (int x = 0; x < 16; x++) { for (int z = 0; z < 16; z++) { cached[CACHE_I[plotheight][x][z]][CACHE_J[plotheight][x][z]] = plotfloors[random.random(plotfloors.length)]; @@ -208,23 +208,17 @@ public class HybridGen extends BukkitPlotGenerator { return; } } - - if (plotworld.PLOT_BEDROCK) { - for (short x = 0; x < 16; x++) { - for (short z = 0; z < 16; z++) { - setBlock(x, 0, z, (short) 7); - } - } - } + if (region != null) { for (short x = 0; x < 16; x++) { final int absX = ((sx + x) % size); for (short z = 0; z < 16; z++) { if (contains(region, x, z)) { + setBlock(x, 0, z, (short) 7); + setBlock(x, plotheight, z, plotfloors); for (short y = 1; y < plotheight; y++) { setBlock(x, y, z, filling); } - setBlock(x, plotheight, z, plotfloors); final int absZ = ((sz + z) % size); final PlotLoc loc = new PlotLoc(absX, absZ); final HashMap blocks = plotworld.G_SCH.get(loc); @@ -239,6 +233,14 @@ public class HybridGen extends BukkitPlotGenerator { return; } + if (plotworld.PLOT_BEDROCK) { + for (short x = 0; x < 16; x++) { + for (short z = 0; z < 16; z++) { + setBlock(x, 0, z, (short) 7); + } + } + } + for (short x = 0; x < 16; x++) { final int absX = ((sx + x) % size); final boolean gx = absX > pathWidthLower; @@ -249,10 +251,10 @@ public class HybridGen extends BukkitPlotGenerator { final boolean lz = absZ < pathWidthUpper; // inside plot if (gx && gz && lx && lz) { + setBlock(x, plotheight, z, plotfloors); for (short y = 1; y < plotheight; y++) { setBlock(x, y, z, filling); } - setBlock(x, plotheight, z, plotfloors); if (plotworld.PLOT_SCHEMATIC) { final PlotLoc loc = new PlotLoc(absX, absZ); final HashMap blocks = plotworld.G_SCH.get(loc); diff --git a/src/main/java/com/plotsquared/bukkit/generator/HybridPop.java b/src/main/java/com/plotsquared/bukkit/generator/HybridPop.java index 2a382e86d..780f00c1c 100644 --- a/src/main/java/com/plotsquared/bukkit/generator/HybridPop.java +++ b/src/main/java/com/plotsquared/bukkit/generator/HybridPop.java @@ -38,9 +38,9 @@ public class HybridPop extends BukkitPlotPopulator { final short pathWidthUpper; private final HybridPlotWorld plotworld; Biome biome; - private long state; private boolean doFilling = false; private boolean doFloor = false; + private boolean cached; public HybridPop(final PlotWorld pw) { plotworld = (HybridPlotWorld) pw; @@ -84,24 +84,10 @@ public class HybridPop extends BukkitPlotPopulator { } pathWidthUpper = (short) (pathWidthLower + plotsize + 1); } - } - - public final long nextLong() { - final long a = state; - state = xorShift64(a); - return a; - } - - public final long xorShift64(long a) { - a ^= (a << 21); - a ^= (a >>> 35); - a ^= (a << 4); - return a; - } - - public final int random(final int n) { - final long result = ((nextLong() >>> 32) * n) >> 32; - return (int) result; + + if (!this.plotworld.PLOT_SCHEMATIC) { + this.cached = true; + } } @Override @@ -116,18 +102,25 @@ public class HybridPop extends BukkitPlotPopulator { sz += size; } + if (cached) { + if ((sx > pathWidthLower) && (sz > pathWidthLower) && ((sx + 15) < pathWidthUpper) && ((sz + 15) < pathWidthUpper)) { + random.state = 7919; + } + } + if (requiredRegion != null) { + if (!doFloor && !doFilling && plotworld.G_SCH_STATE == null) { + return; + } for (short x = 0; x < 16; x++) { for (short z = 0; z < 16; z++) { if (contains(requiredRegion, x, z)) { + setBlock(x, (short) plotheight, z, plotfloors); if (doFilling) { for (short y = 1; y < plotheight; y++) { setBlock(x, y, z, filling); } } - if (doFloor) { - setBlock(x, (short) plotheight, z, plotfloors); - } if (plotworld.PLOT_SCHEMATIC) { final int absX = ((sx + x) % size); final int absZ = ((sz + z) % size); @@ -154,19 +147,19 @@ public class HybridPop extends BukkitPlotPopulator { } for (short x = 0; x < 16; x++) { + final int absX = ((sx + x) % size); + final boolean gx = absX > pathWidthLower; + final boolean lx = absX < pathWidthUpper; for (short z = 0; z < 16; z++) { - final int absX = ((sx + x) % size); final int absZ = ((sz + z) % size); - final boolean gx = absX > pathWidthLower; final boolean gz = absZ > pathWidthLower; - final boolean lx = absX < pathWidthUpper; final boolean lz = absZ < pathWidthUpper; // inside plot if (gx && gz && lx && lz) { + setBlock(x, (short) plotheight, z, plotfloors); for (short y = 1; y < plotheight; y++) { setBlock(x, y, z, filling); } - setBlock(x, (short) plotheight, z, plotfloors); if (plotworld.PLOT_SCHEMATIC) { final PlotLoc loc = new PlotLoc(absX, absZ); final HashMap blocks = plotworld.G_SCH_DATA.get(loc); @@ -215,13 +208,4 @@ public class HybridPop extends BukkitPlotPopulator { } } } - - private void setBlock(final short x, final short y, final short z, final byte[] blkids) { - if (blkids.length == 1) { - setBlock(x, y, z, blkids[0]); - } else { - final int i = random(blkids.length); - setBlock(x, y, z, blkids[i]); - } - } } diff --git a/target/PlotSquared-Bukkit.jar b/target/PlotSquared-Bukkit.jar index 0ee9f0a51b5369de19299816c0429a31f775f5fd..694be72ea74c34813d32588db75c11d53338aa10 100644 GIT binary patch delta 26851 zcmY(qWmsHIuq}+c1Q^_cySoPn!Ciy9yAx!P0KtO}?(PJ);O_1+xVuB(l9T(L@4oZQ znyFe<-Mj6_?&_}ROV!{jRTL#zXc#1jzaQ@4SQIKKuHYIDQDi92;97U&c&PXPAY`;q zWHiV|WHcxyUo={4XURs37Qh4?1OyivsOA!q3B-y74GUy8u{CmWNz|}$A)Leai)OMi zGZV*zg-@GS`y}UsD=mef(Zt(;mCoNl$j2?6?Mg*FVx!S&?12rvJD((bUQkdM>}-V; zjML5Jf7&UxDQ=MrmKC`{cP-p_hUZtk=PRo};YD-zSrU5Ayk5_`_npvud%l747fPN{ zqM1zbkO5lF+!dG&wHdILx7o-&P2WzNja<&GGU2;-$=;9X78H|_SKDL|Ey+|?wcz|9 zX0@B?5YPTyZ>RfldLLj4b!$0^At7ft^V4bsEJH`L#ztWw9kBB=o~PWYhilG5D)K?K zkY-ZImFkNH3;|KA`7n5%t0`lZbLddHQj%%g=n!bGfGST|6jf)o*ylR$A>W#8C4fJG z)1rD6j%X{97g7exT_sp(LRd+rCoILZZaC$xyJX>clV9V;l|qmTTluxwsoGc@_KNeb_B$;TW@x1$4#_#*!n?w{KmrrWp+$;eDRkG*BgyJr@mCq3 zX*7%%Ww`>T1|8L&KJh)c6>2#Fj0#U=`4$|dd5|XxwNh7P$jm5kFK$zmJeL;#JoJJ!3hildFkfbQ)Awrr2;bfrGB+mx@z+XL(!s+mF5z;n7f|S z?lfBu({x8gnX5y<-Uv5^81=-5)Vuucq)2)QW7X-+%v71O!Eh~694-e8mYNh`HEnKJ zAnecEs26C-C}-9I&KK>EzQJf#p4vSQu=5-3+YiJ{mPXy$vp=4KqH&>3TYuT&do9^~ z4S$hLTmQCLWFqqIy0_w>N$y6&e8Da#{6g6?C zC9G<1DhdusqHlzA51hrd=T>xp{FU9*{F!d__WC63bMoXEx~MJK$X$-*#?R)`(P^1O zFE`8Fkc9p!hUYD(2OzHzM`&UG>|IT@&)?c=bcQ#`4eaxACfrCsNy?}?q4 zaoZZ7W)bUy0iBg|*h^GNoH@XwaAS#k*LQR;vC-`|rfuTtp_pIB#~yKPF%@UKZL(ET zY#GVjKhF5lnrDMUe0`7!{E@Dg;E2|EVXL@9bXVqaL&SbWtol48u;-{5!yWVcD@x{o zazG|rK>=9s7nFgajbhtZn`j0JngsHCCz;KHU?40`ot$eu&p_P$L>GccuJls*SdP}S z&&Qv7{4u{e1z!p(w60=zZDXdVka3BBP?IVOwM2v6Z3KmUOMmv19Q%Ttcp zeDcb+3OG8l5$J?Mm0}brF*@Edz>&MTVaEY+ni{q#x@;_HDxUy ziA!Llv-?PBw=A}jm>(hgMLQEtEX{lkL66kt-mmU>S*S(wesJFGcv|Tkct(SaC}+)a z9e;MbdfoEoGTy#*ECM`rgYYOp!eS2IZNCI|4d+-2Ci>VeDtv#Y_YP@vh{>ma?x}I? zR_Mb@w7LCEC`~}KCx?gB*pKx`Q*{9yWuU{HAftwCbr@{7cP;Rvx z*}686hM@7e+xLXBdkAbP(^XL-geWkNORCmX_7xD-s{*#IayaPlx5T zla_Bb8FZw_tgtP-1RR|HxEVN^bqq|OS2P+q+LJbF<0d#?%fv8Hm4#mm@n)PgMkSL& z)j1KBY5KE_>D;ap`VGqld#{5BX_=pKH3BX-k-T^B$^hcIA({Xy3duw9(udummdywq zH5f~{Ts*!r@ls0&F`MRI!Tu-EW_BTGsT-~iVH$7PDxXWS|Eis-g^>zZHu@(w^0{Pd zpv2qYH|_EE_`WRwM?VaRfQ5g`Yzs1&YG%dCh{9*qO8j`ag4oWDP$yNJAb5!yInAuA zh^CR7liMAzNhWB#Wd!?{*jZDJy@nEM$~(tqdLCI3vHYjkSAS`5Y*!EXt7<@u#qxwv zWft}BGu~QiH6J@3nO5X4>QMW%V85I+I@g-PY~pq~>SGM#7=??a4>4>Ol+K8`IB>y+ zXo%d)y1(NhOe30t$ppXn?ov8$yT;`;kt_I0885=rXL_YH8Rhc`CWQBz;J8bX(35QK zC5)qGAhz<@8k+{{yOhcTDNppe$3rt{rw*TnwemHM`IXw89R-N1SNZe|Srua?vc2A4 zcYGDE7^~`%p$=Q`TTBT+dYZj<9`z?ypi{^@f;m+w?ORvhX2s z=YX7#TFzB_MxonGH_swlt4MnFMWA7ap`MMmZ_j)~OY}Hg*E|hns9)SBLmH)`%p}pT z3pzTj-wk{7;}te(+B}>O7x+H&y$;nH7E7xX_GPnh+PsmtDIkxtH~+IX|Jp`I$qwJf4XHX;;40W&dMM%R5mNl=(WNs0+{R8)ApIm zY1WLaTh9^fsMXvgIP%+oiS+ZPxJ7!dK(Xh8S7Abu|{b(dK;O1;DMh$QkxaZW*0cb5_j*!Fuv5V4$)w>Q_@{3 zGQHrx3Pu4D_`Zq770u6*c|Ddr$Rcm_-ShGo(&*G(?KFHVG^? zJj4bU#6?7Jk}@#{fxa@tHusxbNbJ?DV?1sN&CCEPbd!}Bis<5N`iChl%i$K!os7N5 z>!H#H1~FJrRaqENP6?Einxw)Ox)MrQn}1@9wf~NEkNV-%YPEW@S~OId6ShCJrdi}a zH>R20x>p*eE%TKt<%aI;Pv?$z(eBS}9;jUJ}5UzN9Mw zth*nXOJgBGB}3fy~2o~6YavCax)$7OnI$Jf2GR|4}NSS zOiu@o?J$`@_H?3le%JI{F`QuNu&q{iE}5xNY-D~^7i(;b{FOo0!BTx2KR$us!XW7Z ztWFfE;txxCfr&n5;<;KGz|n$&PE5|T2=@BGQ_vVv@?$hHWZckx&^I;Xy2)z>pOH68 zhhD+h$Py)Ibq45D zn?A-?1~jIpfyvsU@Nv`iy5+7(oi2r#Y42FN0*R%jCr-{w8D*1dZqOPy3}JHFk^R> zip1H;5Btn`LSDad#)RRZ^~+O9c)Q?ufX}E$jZ{0bI54RV`dnZT7+MydsV6})xBSMn z>>ZR~>F7i2ic|n!)3L><;lLYl&mP_ZqNR+Gxmf-BNoMHO+Z%1CB^c7{bwcUv zPCVo2gZBL3?z-BR0tame^Z1OoT~a*b}^Mk>``RekA)%E|J%LF>@rDI+GOe_&52AD&9*5TDxqe zazLX_BHB|04=6bARbN?Pr_U2-ChFrKgMP_k&Ei=iz9`=uf3nkSnv3JCURcOpJ|EqH zpT*}na5h&6mcyp0n^CnRip4m%P0a0*HVH0b0^Eqb-q{B{%2n#bW#kXthzIiw zTs-fLfJqfl1}|vKMC>L-_s_ z{S_K;$*BUfy#0NdL@=WL;R9I*Nbxr2Lj8d#ab;j&%nzvBElmFM6}yw;NQ1~w<26}3 z7+_|(AN1$G>5gK$t(1gt-&_GN# zO3^=4hz6$MUh%=gZlBk$oFnJvHCRae{uTSJf08bL4zrXbp`;4D(R?Ht+~VKpY9|Ly zK-=(Hz6Bz^Lca|y(R4u@JzY#q`;Im+XfY_Vm%PBd_4#`TeZ8|IqS-iSFMH#84Q(81 zmt+2ws)#I7zTZ}Njq#Gu4yE0K_9pu~xUP|4w0rfEn=9TF+%;jT_JcscXJhQ5{WE>& z$^^$Mvoe-6v&fgrZl}U3D4K#~JWX2>8iNe#KZwAqAytn4lD0PjO52!Z&XJv3fJY>U zh1NnYj2rU{9a8^Si^}(HP7kjebDQ;8uf*3mfQYzhdZ9sD0IcF!>UaVP30Kzaq1+=o z`d9WVf-c@;7sLqX!*DZPHUSIc5K@CH_nqnL?*c+e*CTFEaC+C#S7?{?d7BZRUu(*H zJE(#2)(iQ^RX1nTx0>HZh-QsY$9_I}H|~|;gpUs=&Oe3bS;ui`iFD6LojI z1*$lbKxVC*aYU0*lt#>6wb4ec)iHLdV|CjMuUUO?`;W-~7v4pHfDU$++!$8Ctww}^ zh{XEOK9msnXrQ)${ig5PleUYRdo?M|=@bUn4~r^;fx`5W79$a2OM@Z?j7ZUglH!G> zJj2M{U)LZ{xXfvd8)a7#WmTq}pj9EiLMgvosMEqCa>pX&Cx!de?hz8p^e5X#xXt^l zeLwSBXg|~CET!@F`N$1|>LE0mF+e>>OVP=Ja*q;7qM+^6n%5+>v_|Y6E^t~*+?cM_ z)}+nE8CSqIpB6dDMV#8%t<~m&c_zg;n_&bP4AYs4){6Ng9W)Dw=69zw4o%O;M(nF- zk0w^6z3r>H^VMaxms=c)){5s>Bm3BJ-I4hw04w-xaw#P_dsG8!&UsQxQWH+0QCHiv z6c!51%P@5hZi$<+Z{|bNj?&#WA76IlJW)e3#l@*dvgE2kTZyn8W&Igp#eW5>vCb~W zVs0D)4^@lO^pk?Mf{du1hsJyP)H7m^L|Mv&jA7ckug5u4e>T0+Q7pR-?B1qmvf5sP zC{aO2WOvGam>Ztp5~skcl76@IIR;QKv+4mPWZk?s62>{w`uLMaKPkYwTI$nzUB=k( z^<%IEmM@FMnoTEi7P^F1E(Nbff{K+PUDA|$_;O`sjy^jsp%&Y(Hr3(g34gT4d=2~y zDQjvOR38|#Ht_enNE~!erRaM8gNUs+pv^F{%o{a>wcD~2^nDM-X4%TLnrdrNO=&Z* zKx04>Hc8?1PWt*wd-3PQ$aL#K`tmB!I^zI8bbT?_MOD?B?uy!+N~?vQx@=U@8q<=<1n*%ZC`1lSIGHBH+R0=CfJQ*@j1 zgNYgpadql)T(V?F(9iiFc!G>JefxW#?4ZxDc%=#T$d495leEkaXTicFjHPL_f-KnIF*O$btO4 zb3z9#IeU_gD|tyrJQ2BC>Fj0)G#ET{D_-m@Vv7PTjf8_a1vH9VsqBLf96_bW+r#d| ztZ;EYBJ8(*uF_b8NVh{1qT$&}U(-M1zTqz|wXp>3s@Ab3PG3b?g6>DVPgD>o4Y}no z3*(eeHzZGeF}p>@KDdYYmamzz;61|;9T0oL%h2G2)T3_aw&xnzu4Gx37i69 zoA1~VCz&|uGm(xkz=d1@txKy5Y^HS&OLM16@&bA1e$;5ZK`glGnxH6*8*PR*btbToQrh4eh-^rCm0Rz}2>>GaHF#5% zqK51esFu6QpSb;Uw)an9?ezi!42G@qZ@=fQ6l5FVKe$4YyJE<7a^n3Nh zX-%D`Rd$@?Dzi%teL>aimMuG4ar-P|Q!=-L9VH$q+A9dVAj8U~%I+q{{2 zMXlGTNYj%H#WaSif-pqW;SG^&*AkRMn=Qlb-oDDj8e#nb^DrK*V z_$NZXeP}>j?L2d)uxx?u|8O^G_56`vE+*Z5$m;&%H@M5{9R;LxJinD2OS?Y>Bs1|K zk8cn7GfWot?-+mFj6>$l&bBVJ`H;1F;-*Uz8EJhEp#al{KbPrGQ(-9{(uemcW;V`MBA?RC&J#DeSFwX?=3h3@O>W_mo+`Jf+1Un2iwuvUetsM54PO&V?;h>$e4b!_MQ; zGR6x%#7mrI^ZC-xR5G#UGR>^QPV>ttlsCvC1)l(z*ycYG@2q^K`T$izbmS8!wKiJz zVW8&#NJHFjQkR{@=MKa4K>oXz(HrgfQtpUEg1HR^EC+ULd-J3%$Y%VL-WIzJ)|Gv7_?#PO{FKp7px6e4ls=p=8{0|driCpJ zlx`QJmsLJdP&Y!^BJcU6I!lG3lG_G{`t|Vl zCgLR5{ZbffT$X1|)Y%&=X3eZ+nYSutl8b(Lj2k8$l3%9H4666GT5L{_n`IH|dW5Mg z%p~}@s+lI5T_l2IB9U{7d#rrStbFXtl?p_+55?38RAT#f9?%&mo+<4u6PjvkYSg ziYUK@ckFw{AXwvT;0XTb!~sOSf`$ilpnhcM@QA~Y zW1$}Ifw#sa!I)IS%!iBnZ^h(4{@H8Y&-7luUv-%ntIZ-7hBJg? z;xPI!ti46Nt5@Sm?`7fv1gmI0OY^eZ|jr4b(Lh`VD932ve_1*(#uz~5d z8iwGnI=;*w^_b=v;+;w(64Nq9W_*0hR|jJlP;(=k>DG-!XJcS3U}Q}cOqM@kUX4~= zZIn9A7I=P7t8EvK`j=I0YThLpNrc$tXB~cs)O?@H@@n!b$9lAXg{`RRKe?t$rKV7Nk+G7|t(5uN+GYQzs8e7s?vJRU#8B6S2!A zM_UPAjKt=k(ah5yH8Nsp-8{h~CgAagtA4e>s0w;La4@nN5-9JpsiFpJEXAZ+Ffyw~ zHUpr)YXmNTIq&3jXL67u20C^3G@M2d6XVtPS)0;D?3?%Uy7`=#p82Z6FkslYvubUM8%z5wj;~gw(%@ZO$s6?V?_7a z|LH={2e{FDj}VY!g9MB?P0wU>QT7~xD#~?^EdwRLeggYN?lMiX*`+sTyDQ&bJ$V&U z!hz2L{U(8*S^*^8_RJ1pjutj;K@o!pF6{V+_E9V|a_V0vf!iDR+3+Ilm*V56%CgE2 zY<}HKv92;tVr=I{NN@hY9p6mNF=pG%nN$4{pqpOO9sLPmb=~Ah3n`YvH>&!hQ&u7+ zURon1ck8)%#%*!qEmk8R-~+D5fU)eBv2CuqtZY65c9chSDO5p~X84r@@*D5H6+_p= zg6arrM7Q2JaomVE*QW8leQv(%&8dG_Q8O~0?~waLyC>4XZeh!hb75{vCsUVxc(Ji+ zpcmh;lqcVn*~#xF!tZbe*`HT= ztbmG1HAU8F@K=vhT(0=$SRHs?$Ah~1ZTjEiKaT!Q;2;+*Po#gpbcfbl!f&*;E>+3qU?Aj1;t92SuD50pTw~08%>HGd^Lol zWBAfD^zRLfGiZvl5}v}LA%q|JhC4JKqE^}JWX4a<0e&nT9lzrVj*bXyKn_||u2l?? z^$rC**z5ce=27Sl+r(IJ^2zM<9DrAUk7hv{ijrn`8-YsGY6fT)bgMgrbGo(|AUdy3 ziq%)jCE{)35oYkRDa%_-_uJN+mbq*j2X?f(^V0-@kvF#|?$NRA!jDdLY~k*K=va3F z`(LrQ(Z5xHz0k2BD@3w7rLy#4km}ldwIB50E2yl)o7UhhrKOnCI%A0V{Ms8~5*sA_ z>5tq!OSr|qpCR=l)UTy`8wwryxNw2&^!foTIu<=C5Rf)i3grA2 z4;V!{w7ij6rxjz?R3jJ5_n4G5c23Ea=1k$p7E0GGuQ0jd`lY9eoj4M#S&aT=Z+%0l zwdtFEal;o8`w$%X=09%ZPFydtDhX-(NlaH@8y1}oRKArF$*+jXB6MPLjJ?G63YEX$ z{T7>fSDJ+gAE|nq8HEoyMu17ChbUX2I+n@4nC*7CJk(hYX|P+0;7yv%`N|s($GxRP z5dlt9#jdK}B()r}S7- z>2ITM{el)KyvM7>$7~xZxV(A0kuM*oO=3B41YY(9C`7t$dB=11_dp%SW5LVg5nk?e zF;^gon60>W6ud|%Lgs_7O>!o^h<@7wjAi%~yk)l2kO@i3EYyk3-`FICcmI$hk)d9p zyy}lV5iYh;opdE?n*wu~AZA$CE-m4zq!522VK)#gw2ls8Mn2?kUnI(ZgW`}-UNT9( z!85-#Zh#&?l&FUu_eQz)#&9-|xV0@AEq&x^Ey0Z%pLY9ZmB^vva^j@OQt6?$7DV2! zD>5${lQC|}(14%tg=ocXk1MoD`noRPOPeUJFh@{6H54(r*#jsZc4KlTG)U(n+h!Xl z#j;H7sLH}m#JV2wUF$b=u-O+DmB7qX`<5zPo?A;`X>E&pwLNN|y~qzHFT0JcIW_bv z_>WvNdvwH5I{tZENkL5&xQ!q-&jC@N;}5^ZH;GRIyfLs6&ixx1i`lpzqlrCbd9eaM zseb$*5Dx#XMimP9!E|T5rVE1Po|8ZG+_Z6H_p%G>0+!nJ3R;v;BGa;=4BGFb5W7rFjyokCQ$$s1?xZY=R-YKwh z0K19Ar5bV}H%znJQk=usvWrP@Jqp3kKg#oG&9mnVU+x1Hw^J2i&+$R0_dzesk885y zT*g%?NJ?5#X@UrVyabPYkGxtGQyqY32F@pJ>w%rh33)BDYSQk3-WO}-z|SYj9ejMl z8Uufc`VAB4F^RY;J#pFks=8`s3br?aI%8w*YmA~2tnA770^@;~@zRnc-Xu31hoML+ z79vL!`xb9VPO?v7vl+noS)jRiadPIxP^dJ=;-SJfk__a;Mt{i>vg#>D`ba((imJx? zdlS&#%rLOK%auYT4&Z+nz-GSq< zE=apn%g{HonuIT3F#1wOspmj^#o%?*0TJvp%2MTC7nFf*^q25jq3??*WE@Mpu z4q>i_qYd}0nN268+>B6JlmrRvP4 zgu%dyNngNQ!?GI;OF51_{Dtwh=*u&Oc)0yJghVjDL~shyBmL`)JJmjFbQ)~avDR|c zN#50p1_@#7SsAOB&scwZZ2zv--XEnTMlNpkWR2)i=aa7rPIpdfE%bsy$y=otciBz6 zD_2_j`t5%{ypEubjP&Jo+j#9Jw3&IC?$rPV*}av~Hk{Nfhf0K!bA#Dgr`VyrS6yTX;b1(LA^K~$ZFWOOxbn%`rE&m z^lc)WNPmRJ%veO&Nt2eYTds_=GT12z^E#p6#N@Rw(d3Z`e1!0%p`$NL+-Z^MM@$CH zHGcCO{ucO)!6m{aCNGEAL*x-nnIwmOGAMkjlkAsg%wgcLprp6cIvD{?G4lOPpL~+y z9;jg7HorOn(>oVo<)mH zTW5}L9m1X(6PnG6KP6fq&YxZ*EKSy%@* zB>{)7Pt~sW_9fzVcu^>%+x$-)_D`9efXXp!Pb76u0xn&dn36rLl(cTf>#NmepyDa*&Z)&Xi?Mij$VIz_*U`-sp!(i8O#INxg>vyF5J9V3tKqQ zZc~uGfLrtDIn*aPA7HpKX&VKtkRE(k&nvnRHsB|nyneuHAKqROeEUGELMqJed{LwP zT`>|foxN~NH4oFbUo4$_elxO*MQ|I3+=LLnzg7L?AEh_Yd!R<2ZSgW;=;>HEY2>s zIA+%xp30a*<9nEvLA`L*vy_KPJ=p@4i9?*nmgDK$^c;NG;8|}EV)?v7l~ert5AGuc zJx%ye{MZLFf8stI(3frk1#&xuGR)b>KZkh>`Ud0>eSfg$9oFjzWw}M>JM-&*B_ic( z!o8p$GmZr5`~=;W#$X%twjPIW9Srb2>4(ry$*FS^`mKi*xNdmVPuRNv5+>gKo=>u2%-@*S z)gR-SpSKSopL3kt z|G08l&b|GW_!v0fRlqe{6B2KgP7&nfJfwK7Uc&^15YyMQ9xNnFMq`S5~0(VazNlK%)& zEOD;3+Ol57?_@C!V$S}+G=9e_3e7Zj_k#Z~M1TzefdIkueip=9Qh5Ih6#@d1 z=sz)n!~p<0utF2rCt)t}E$cjO6qK@>B1ip5uKFo}oH_v03y)Hik}NE2hYBkmL4#d7 zWT?}WT8^6hM5g{%*}PpNv))RtB;n`0ikNWfK=P4FCbe>=*0uTyUy;?*p82(TdylVd zLic_fJEFxfK!J{(zX5}@=6&A@p~rP(NyzeSSyW5l_uTQ%?Syxh;egYgt#1KcVN)B% zSgAW8M%~!x8s7d%Vo~FlR+Tlkunh2yY42@&J0>`;)q^^&hPnHQzr>j{6KTL0Jgx?$ zolilrlMjyf9Y&jB>KoK(u8;gVg&}`ay;*yNIV82LCR4P9)Z9&3S^3#bn{~O@_)0fi z-qAgTzqN-kz(t;uM81NmoR&9+F)Z3Hk~tIjA*VVxs!@0f+g*GBDj?$0C{SN%aSIBp z5`b>h@SPbeIcNzE39(E#yCH7OIKW4DM+{P!yc$5_F0QI)a-B54JiJFB?b!SYEn0E7MFuSgqA*#_~@F_qG8FvL( z$&i2~-8GMB+C>Fh_CbpU7OP^{%}uA&=J?2(uriiX9m-x>tm(_APKq!a*h+P6TH}IX z%3`d+x+X3J&fKt`?B*J}irrshxRumKd7sc;;w)-AZ{vzuf44OlZB1$f=tgY91;|f7 ze3dCpEnT*;PNnLLf?7&ifR{RT5KllLfR1p)|A&NDq{-IXWK|pW>?J zJHO9F;cdZv8x>0U4QZ6&nB8epC8{s0vNjiL zNlwVkMuDX`F&yMWOe@mBnT5X{ftto9wCjlnbY&Gxwocnsjzs|-)T7=&IC;^4R!1Jq z45{SftM0(=>-0qc<4CvALw*3TgY02^UU^gXL8mfqw497m)`o;59ihmOekid{PR66E zbHj*K5dxcKov-c6dLZg~r6icnX0! z5qTPA4-2wjP|#>Ki)|u39CBdS=3aO=4)lbR%=qG2`hvY+gtAwd(1bP4AZr3W367^| z=|O{9Iimx!$2LMVfoB--Cx^T;e)QWXElxfpf;l#`;2Gt(84;uxEd4##b&_@L1kv>P zXudv>GEt2|A0qU?QjIDO%&HpaG=TYjkKIB?L4Ul@h2r9v!BkUzyov9%oyfI zlR7)P!Vpb!SPIZVW~y>AaVumC_2tuM=mUm)w0gbUceCBO#!EQcdQq z`@r-%)4B3}>wX`Y9j#8jQo?*;@IXAW6kqvqWIP^ohBsk|*H>~A{lTFj$(nJy^xNZv zdaGZ=8^(h{`d$;Fo165~k~8Xlu{OuZ=wTr(!|G0V)n#QTzIwZTY%QCpQtjG_@U-dH zYh)jFXf}%1++JBYmmji2i8XCiaark(Tpgj=+YNG99yLC2eTsCqY`zrz#sA^s?spfK z5^JLSPSVZpt+KXjoX4fHEMdf3w$H7+1!Ba$cJrO>jpNMQI$nDokPDP_X-5Z3k_zhI zo(mT=zmhL1DUT%Xdn>eiJ1@wO9sjEL zk?C=LT<|dj<}4)P*ZEh!bpIJwXGlI!bPst9?mhAxNUJSS5ggrT&%3Ta+>egW!bW-A zITnpt)i0Z}i}`vt=-W)tewS<)Bka9{qaD?Jmuzv(F?RquCv;Pv5cBUy_4!od6fHDf zFS(_2g!wwYJ%pGP?chm3|Bd82;s%2;AxlCcA|}TW2qPgOF%j^VbV4XvgUVv!S%3-> z44uZ%wVN28D_0rUxB@yoBb1&N5Y*R+cE}jmm>k8B3=ws?eG4@=z8YOJQ&|eUA5G&?j zib!Iwi*ji`B01+InS-^TSh*)vW~Z!YXZSglun9`SHk?FtC3%b~`Y`f|Eelts#O}A? zT1e9lkegyBV6wInAVYMjWxvpfw_f5B`C-ua88}Z3{Z-;NbuY<*xA7RBo; z(pgH)s)>ABVt!S-KVxvZ;Tuv`6~C}kfYKqP5Lga#!#qs~nzTAT3K z#G^zB&!$i`Hsm?2pZXDDKNVz_Z*P@sE&3J@&f_`sQr?3}nXc-KpJ7Y>FXoxuYt(j+ z;n9RzIS$qFXj&WV7=`KOg2-M4AbS%h?+xaN@rvMtG#?d>tV4kj`5Tj6G|*w}*+sz` zxOOcTYcTd~5Z^Wd99GU9+FSPNa1JedvP4q0hF7<$bKlJ%qk?K3lv=qUG?z3|(bgrDjj z7&j5NKTx_~)bfW(#&*A_Ig0K%C&-@hG|&DX@4I`}RRH#FTdm5Vosf|Ve{pI0hO_0) z+)i3l<^=Bx@IKTaIq%KTZ932W)0D>ai1-che$qzJkMPe8waN|9`y|i9ku;;or-+eW7El z9KcR`n`}a)iU-#h`M*&V52-x0t9n4U+=6)?;Oxw;M-suRjo_XqEKgC9AGo(Bf|=d2 zPlUXs9l<6~@AnyjZ_vNDCNF3EW+H;=;XWSPBn7 z`pD`_C3F{DIZGKxMN1A2H6qc`##af-i`oyz5fh1v>4{@ru_gpOMz>RXbJA2g-o%|u zqX;T2Tm|(FwXe;nb(g36Z~<|zm-ZBz9=!vdlgG#IfUz$?6tf!K%v{~!AVUK|DQbgb zlDmGv`koQLrogL1@(}&N7;|Nar5njp>0^|!5?}307puo*JIZIl#s;b5f+Z9)t6=Sz zxKEav*78T3F&cRl6ie{m>bXyy<1!2z+|!t{V%lAFhqg>eqiDZ6FUlq{`rRqE$MsE+ z&@27gIZ`YF-XC?yirYS?F*2V7e2YMS?%Wf@tu4_c@0m_wHnL+P-mj56QtRJcv=|H8 z*dlZK1(|)G^MEps<)ty^1xnF+3r_GLNHIa^E+Po>MoD!r6j>61o*>}u9`{OIDPVK| zaqnBq8X~sy;sq5%`WQZAJ2WJe@sr7qAajP5amjp2p8xgRqcfXJ*R}sR zZ2*7`ioEHc()m{*ZTqXRgZ$c{;6M!6@8#83|Fxic6$%YR%k;E!npl9s&qL_H^HNrrHoJaulppPj~Frc6K09X(v6#y6H`PcU4{o?3< zZ3B4kJqm^YFa16&`0pdJ3^Kw8SV3{3{MU*A!deGlf~s$^U_e&r&>v9#C-wjRCqF<2 z{lBhoAWH%OE0iGde`y%d=wI4{`5%2j_})k+LI5Y!CyxJzN#}q@_&ZYcP>MYNOLIXH z3;$D;i2xi>v0wfv)qj;PnZF7H=mYV4Ri73ADd~#uwRjP~*CMU{mth0V|25-&{ig_# z0N5exL5?H!+zZ@ON!2}u=ghcvYWXI(nV?YWJg!&QuPgxI!MgmR#H7|w!V_1H? zGb|t9nT~K!0NMLm4Ey*#LGdyFl(U%kCg86FQ2vdXOu~Q0j3MElmps{fOZq_mWB>!m zub@pbfFYzgNR%942*q9s0+RulK$GMER!D0QBn3bpk_==>@$RS(>ZEvg>;;igzB^tI zfx0N(9jhtd9ScEV%J)tY?tzRb-j~B96#xe0LiIk|T1WrOa6xID{ZlH=pbU_|eCI4xh+ikU{wLf0s4Q`$CIl`A0X> z0RB%~XC7B$`u_2HsBoh0V|08%02k*1 zY@H~rF$(l*BM}2FX=AIPrvAuB)dcyJg>qYuCSnWWZ5J+jb+y&f{w7HJTTf2(o-hxH z;KDu9){f#m(b6+RB%-I=o=C6^UCP=69|Z+?Aqcz2NW_kodm+{9SQ&ZC$nWtoQg4#2 zl1>{@!wKG~;kX3JW=jXWk>k8%PVOYzI%+9G#3nXob;O(G=;oFXFc1 zrs%2B#6@s3#9Q(zCYsVO&CqQtH*lfzL6rDXh>ti#_>j$*C&l@R8j9RzYfpC|1^*o~ z9O8>W^xq>RKQpp0S4PTmZBfCfnu|rJQOrswG@;j*qMLC2 z630H5k%jY2;2egR7jax(WNYA~S-UxwYpMvqoPE=cv1XL~6#^|ioQo&nc4~U`6_V`zhLaAhVRrA!L{rLY zjWC-S&4d?O2V&`?(M&X<$Uw1`&@+~cV}TgBoe5khrr7Dpw+*t~n8?Z7L^~}HQQYm>UN7b9=OO(!-FA@;i1bpRtI50 zNm#|i=j3LiP*7|T+VS>{L>%dA5SrQGy^ORC2AT3fMm90>g%vq;6x}KAyxZ3pugTA4Yg9n7yyW|9#qh6^ofNmg;`+HeK+s&q8cnoz{l zEEjGnbWym`yDe-cvu#k>9=6kNQZglNZ!fCo>-HF$iS;dUfZ*cE2=*CIg^`@fk#}Ps zg*>{{KHMSFN1-QA2b8j;13L1#FUL1Jh%K%AlCdK;fbkU95gULtUF;~15YoEQ`Y^Et zRdiD*dCs%LFz*~FGfW&Qq<+J#L7fnOCn&BHnEhbR^qs-ZQ%Gm93Bx%nX3T|*UBHfw z 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 delta 25940 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