From 610248b564515f3d83eca2b5845756f0018ce4c2 Mon Sep 17 00:00:00 2001 From: archmoj Date: Mon, 30 Mar 2020 12:02:31 -0400 Subject: [PATCH 1/6] fix issue 4701 - no zero line sometimes needed with positive base and negative value - add test --- src/traces/bar/cross_trace_calc.js | 2 +- .../baselines/bar-like_traces_no-tozero.png | Bin 0 -> 18601 bytes .../mocks/bar-like_traces_no-tozero.json | 164 ++++++++++++++++++ 3 files changed, 165 insertions(+), 1 deletion(-) create mode 100644 test/image/baselines/bar-like_traces_no-tozero.png create mode 100644 test/image/mocks/bar-like_traces_no-tozero.json diff --git a/src/traces/bar/cross_trace_calc.js b/src/traces/bar/cross_trace_calc.js index a50a4d41228..c2708b4a26e 100644 --- a/src/traces/bar/cross_trace_calc.js +++ b/src/traces/bar/cross_trace_calc.js @@ -512,7 +512,7 @@ function setBaseAndTop(sa, sieve) { pts.push(top); if(bar.hasB) pts.push(base); - if(!bar.hasB || !(bar.b > 0 && bar.s > 0)) { + if(!bar.hasB || !(bar.b > 0 && bar.b + bar.s > 0)) { allBaseAboveZero = false; } } diff --git a/test/image/baselines/bar-like_traces_no-tozero.png b/test/image/baselines/bar-like_traces_no-tozero.png new file mode 100644 index 0000000000000000000000000000000000000000..5b2944a3e14e305ff7103e6e8f426fab7976574d GIT binary patch literal 18601 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 and negative size" + }, + "xaxis": { + "domain": [ + 0, + 0.45 + ] + }, + "yaxis": { + "domain": [ + 0, + 0.45 + ] + }, + "xaxis2": { + "anchor": "y2", + "domain": [ + 0.55, + 1 + ] + }, + "yaxis2": { + "anchor": "x2", + "domain": [ + 0.55, + 1 + ] + }, + "xaxis3": { + "anchor": "y3", + "domain": [ + 0, + 0.45 + ] + }, + "yaxis3": { + "anchor": "x3", + "domain": [ + 0.55, + 1 + ] + }, + "xaxis4": { + "anchor": "y4", + "domain": [ + 0.55, + 1 + ] + }, + "yaxis4": { + "anchor": "x4", + "domain": [ + 0, + 0.45 + ] + } + } + } + } +} From 69f40276e791685a8c0e56bc5ccde10f59b59cd3 Mon Sep 17 00:00:00 2001 From: archmoj Date: Mon, 30 Mar 2020 15:43:40 -0400 Subject: [PATCH 2/6] add failing test for negatives --- .../bar-like_traces_no-tozero_negative.png | Bin 0 -> 16173 bytes .../bar-like_traces_no-tozero_negative.json | 164 ++++++++++++++++++ 2 files changed, 164 insertions(+) create mode 100644 test/image/baselines/bar-like_traces_no-tozero_negative.png create mode 100644 test/image/mocks/bar-like_traces_no-tozero_negative.json diff --git a/test/image/baselines/bar-like_traces_no-tozero_negative.png b/test/image/baselines/bar-like_traces_no-tozero_negative.png new file mode 100644 index 0000000000000000000000000000000000000000..ec3237df7e97e2778c5b0f49eb3f4cb29c5cdae1 GIT binary patch literal 16173 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 Ec}WjeY6c& zt)vc1FQ;}v$y`hDw`u2dCU?r1G9Za$RAVKP=PXVbu?x`C~|zwTI5e-==8B3w7X>+XII&baqEf!;h(c;DJ<{ru!c${w#Dn2$R^eB z{ziEpra-U!=^b4TLSOk_ia)cY9RqAdEU?T+KE@pN|B+L$LQmGZZet?Laf7s(mEyQb z&?P^dzy_a4l?+fP>^^BL1$xlzx%AZyY(oR772ZgLw`ZSBc=1-|r)On}ufKPoXME05 z`3`kBYi){ZvX49Whod4*b#MEI{HCfT$y_Dvh~SI=OcwR(k#BD71}Y7A8mobUjt`st z4QmUVGUhO3Aj#)tuc$x;t( zW}J8Y@D{iw+3hNGSSwFod!-psI}jetf%0FdoFpueBW)m!?L4aYk+xvTO0IxD#`bFg zguqi%v=&+gnu{Uy=QEY+SoI%_(Ur3Qw!)NwG;(S}jRGrGYXRLl4|7h8t;Ru# zfPUB{dX|4hGXh|@=JoW=Vh7dWpZ@ED|N2V*zcvlOD^dkp=&wEh0)Eg2kE8J9nM{$C HiU0ow`%Ve1 literal 0 HcmV?d00001 diff --git a/test/image/mocks/bar-like_traces_no-tozero_negative.json b/test/image/mocks/bar-like_traces_no-tozero_negative.json new file mode 100644 index 00000000000..432232d68fe --- /dev/null +++ b/test/image/mocks/bar-like_traces_no-tozero_negative.json @@ -0,0 +1,164 @@ +{ + "data": [ + { + "xaxis": "x", + "yaxis": "y", + "type": "bar", + "orientation": "h", + "y": [ + "A", + "B", + "C" + ], + "x": [ + 1, + -1, + 1 + ], + "text": [ + "+1", + "-1", + "+1" + ], + "textposition": "inside", + "insidetextanchor": "middle", + "base": [-10, -10, -10] + }, + { + "xaxis": "x2", + "yaxis": "y2", + "type": "bar", + "x": [ + "E", + "F", + "G" + ], + "y": [ + 1, + -1, + 1 + ], + "text": [ + "+1", + "-1", + "+1" + ], + "textposition": "inside", + "insidetextanchor": "middle", + "base": [-10, -10, -10] + }, + { + "xaxis": "x3", + "yaxis": "y3", + "type": "waterfall", + "x": [ + "E", + "F", + "G" + ], + "y": [ + 1, + -2, + 1 + ], + "text": [ + "+1", + "-2", + "+1" + ], + "textposition": "inside", + "insidetextanchor": "middle", + "base": -10 + }, + { + "xaxis": "x4", + "yaxis": "y4", + "type": "waterfall", + "orientation": "h", + "y": [ + "A", + "B", + "C" + ], + "x": [ + 1, + -2, + 1 + ], + "text": [ + "+1", + "-2", + "+1" + ], + "textposition": "inside", + "insidetextanchor": "middle", + "base": -10 + } + ], + "layout": { + "width": 400, + "height": 400, + "template": { + "layout": { + "showlegend": false, + "title": { + "text": "non-zero autorange with
base and negative size" + }, + "xaxis": { + "domain": [ + 0, + 0.45 + ] + }, + "yaxis": { + "domain": [ + 0, + 0.45 + ] + }, + "xaxis2": { + "anchor": "y2", + "domain": [ + 0.55, + 1 + ] + }, + "yaxis2": { + "anchor": "x2", + "domain": [ + 0.55, + 1 + ] + }, + "xaxis3": { + "anchor": "y3", + "domain": [ + 0, + 0.45 + ] + }, + "yaxis3": { + "anchor": "x3", + "domain": [ + 0.55, + 1 + ] + }, + "xaxis4": { + "anchor": "y4", + "domain": [ + 0.55, + 1 + ] + }, + "yaxis4": { + "anchor": "x4", + "domain": [ + 0, + 0.45 + ] + } + } + } + } +} From 46fcf8fe90170a7fc6167314f0e89ff5f0432d53 Mon Sep 17 00:00:00 2001 From: archmoj Date: Mon, 30 Mar 2020 16:01:14 -0400 Subject: [PATCH 3/6] handle all negatives --- src/traces/bar/cross_trace_calc.js | 7 ++++++- .../bar-like_traces_no-tozero_negative.png | Bin 16173 -> 19095 bytes 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/traces/bar/cross_trace_calc.js b/src/traces/bar/cross_trace_calc.js index c2708b4a26e..894c960f69d 100644 --- a/src/traces/bar/cross_trace_calc.js +++ b/src/traces/bar/cross_trace_calc.js @@ -502,6 +502,7 @@ function setBaseAndTop(sa, sieve) { var fullTrace = calcTrace[0].trace; var pts = []; var allBaseAboveZero = true; + var allBaseBelowZero = true; for(var j = 0; j < calcTrace.length; j++) { var bar = calcTrace[j]; @@ -515,10 +516,14 @@ function setBaseAndTop(sa, sieve) { if(!bar.hasB || !(bar.b > 0 && bar.b + bar.s > 0)) { allBaseAboveZero = false; } + + if(!bar.hasB || !(bar.b < 0 && bar.b + bar.s < 0)) { + allBaseBelowZero = false; + } } fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, { - tozero: !allBaseAboveZero, + tozero: !(allBaseAboveZero || allBaseBelowZero), padded: true }); } diff --git a/test/image/baselines/bar-like_traces_no-tozero_negative.png b/test/image/baselines/bar-like_traces_no-tozero_negative.png index ec3237df7e97e2778c5b0f49eb3f4cb29c5cdae1..bf9d5044c1828a2737e82e39df9a0ca66d637a1b 100644 GIT binary patch literal 19095 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 literal 16173 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 Ec}WjeY6c& zt)vc1FQ;}v$y`hDw`u2dCU?r1G9Za$RAVKP=PXVbu?x`C~|zwTI5e-==8B3w7X>+XII&baqEf!;h(c;DJ<{ru!c${w#Dn2$R^eB z{ziEpra-U!=^b4TLSOk_ia)cY9RqAdEU?T+KE@pN|B+L$LQmGZZet?Laf7s(mEyQb z&?P^dzy_a4l?+fP>^^BL1$xlzx%AZyY(oR772ZgLw`ZSBc=1-|r)On}ufKPoXME05 z`3`kBYi){ZvX49Whod4*b#MEI{HCfT$y_Dvh~SI=OcwR(k#BD71}Y7A8mobUjt`st z4QmUVGUhO3Aj#)tuc$x;t( zW}J8Y@D{iw+3hNGSSwFod!-psI}jetf%0FdoFpueBW)m!?L4aYk+xvTO0IxD#`bFg zguqi%v=&+gnu{Uy=QEY+SoI%_(Ur3Qw!)NwG;(S}jRGrGYXRLl4|7h8t;Ru# zfPUB{dX|4hGXh|@=JoW=Vh7dWpZ@ED|N2V*zcvlOD^dkp=&wEh0)Eg2kE8J9nM{$C HiU0ow`%Ve1 From ce2d66c7ab55e3f5f421f58e5d687367a2bd0502 Mon Sep 17 00:00:00 2001 From: archmoj Date: Mon, 30 Mar 2020 16:45:22 -0400 Subject: [PATCH 4/6] test with base crossing zero --- .../baselines/bar-like_traces_tozero.png | Bin 0 -> 17284 bytes test/image/mocks/bar-like_traces_tozero.json | 164 ++++++++++++++++++ 2 files changed, 164 insertions(+) create mode 100644 test/image/baselines/bar-like_traces_tozero.png create mode 100644 test/image/mocks/bar-like_traces_tozero.json diff --git a/test/image/baselines/bar-like_traces_tozero.png b/test/image/baselines/bar-like_traces_tozero.png new file mode 100644 index 0000000000000000000000000000000000000000..483264a31c45ecba2f4e7ae746d398037929ac7d GIT binary patch literal 17284 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�z%w5FH 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 vByP#bYxw`SZtTBq=D(iI|4K7EXa838`aMbase and negative size" + }, + "xaxis": { + "domain": [ + 0, + 0.45 + ] + }, + "yaxis": { + "domain": [ + 0, + 0.45 + ] + }, + "xaxis2": { + "anchor": "y2", + "domain": [ + 0.55, + 1 + ] + }, + "yaxis2": { + "anchor": "x2", + "domain": [ + 0.55, + 1 + ] + }, + "xaxis3": { + "anchor": "y3", + "domain": [ + 0, + 0.45 + ] + }, + "yaxis3": { + "anchor": "x3", + "domain": [ + 0.55, + 1 + ] + }, + "xaxis4": { + "anchor": "y4", + "domain": [ + 0.55, + 1 + ] + }, + "yaxis4": { + "anchor": "x4", + "domain": [ + 0, + 0.45 + ] + } + } + } + } +} From cb43197b3b69c6abe67c5c24f8bc007e53d34030 Mon Sep 17 00:00:00 2001 From: archmoj Date: Mon, 30 Mar 2020 22:33:20 -0400 Subject: [PATCH 5/6] add test for stack bars --- .../bar-like_traces_no-tozero_stack.png | Bin 0 -> 20965 bytes .../bar-like_traces_no-tozero_stack.json | 259 ++++++++++++++++++ 2 files changed, 259 insertions(+) create mode 100644 test/image/baselines/bar-like_traces_no-tozero_stack.png create mode 100644 test/image/mocks/bar-like_traces_no-tozero_stack.json diff --git a/test/image/baselines/bar-like_traces_no-tozero_stack.png b/test/image/baselines/bar-like_traces_no-tozero_stack.png new file mode 100644 index 0000000000000000000000000000000000000000..9c67d2ee6f194398c9e9109f96e416b249bffac6 GIT binary patch literal 20965 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 VY7l+;9C&;qgQu&X%Q~loCIFU+$;$u$ literal 0 HcmV?d00001 diff --git a/test/image/mocks/bar-like_traces_no-tozero_stack.json b/test/image/mocks/bar-like_traces_no-tozero_stack.json new file mode 100644 index 00000000000..f1903bc26b2 --- /dev/null +++ b/test/image/mocks/bar-like_traces_no-tozero_stack.json @@ -0,0 +1,259 @@ +{ + "data": [ + { + "xaxis": "x", + "yaxis": "y", + "type": "bar", + "orientation": "h", + "y": [ + "A", + "B", + "C" + ], + "x": [ + 2, + -2, + 2 + ], + "text": [ + "+2", + "-2", + "+2" + ], + "textposition": "inside", + "textangle": 0, + "base": 10 + }, + { + "xaxis": "x2", + "yaxis": "y2", + "type": "bar", + "x": [ + "E", + "F", + "G" + ], + "y": [ + 2, + -2, + 2 + ], + "text": [ + "+2", + "-2", + "+2" + ], + "textposition": "inside", + "textangle": 0, + "base": -10 + }, + { + "xaxis": "x3", + "yaxis": "y3", + "type": "bar", + "x": [ + "E", + "F", + "G" + ], + "y": [ + 2, + -2, + 2 + ], + "text": [ + "+2", + "-2", + "+2" + ], + "textposition": "inside", + "textangle": 0, + "base": 10 + }, + { + "xaxis": "x4", + "yaxis": "y4", + "type": "bar", + "orientation": "h", + "y": [ + "A", + "B", + "C" + ], + "x": [ + 2, + -2, + 2 + ], + "text": [ + "+2", + "-2", + "+2" + ], + "textposition": "inside", + "textangle": 0, + "base": -10 + }, + { + "xaxis": "x", + "yaxis": "y", + "type": "bar", + "orientation": "h", + "y": [ + "A", + "B", + "C" + ], + "x": [ + 1, + -1, + 1 + ], + "text": [ + "+1", + "-1", + "+1" + ], + "textposition": "inside", + "textangle": 0, + "base": 10 + }, + { + "xaxis": "x2", + "yaxis": "y2", + "type": "bar", + "x": [ + "E", + "F", + "G" + ], + "y": [ + 1, + -1, + 1 + ], + "text": [ + "+1", + "-1", + "+1" + ], + "textposition": "inside", + "textangle": 0, + "base": -10 + }, + { + "xaxis": "x3", + "yaxis": "y3", + "type": "bar", + "x": [ + "E", + "F", + "G" + ], + "y": [ + 1, + -1, + 1 + ], + "text": [ + "+1", + "-1", + "+1" + ], + "textposition": "inside", + "textangle": 0, + "base": 10 + }, + { + "xaxis": "x4", + "yaxis": "y4", + "type": "bar", + "orientation": "h", + "y": [ + "A", + "B", + "C" + ], + "x": [ + 1, + -1, + 1 + ], + "text": [ + "+1", + "-1", + "+1" + ], + "textposition": "inside", + "textangle": 0, + "base": -10 + } + ], + "layout": { + "width": 400, + "height": 400, + "template": { + "layout": { + "barmode": "stack", + "showlegend": false, + "title": { + "text": "non-zero autorange with
base and negative size" + }, + "xaxis": { + "domain": [ + 0, + 0.45 + ] + }, + "yaxis": { + "domain": [ + 0, + 0.45 + ] + }, + "xaxis2": { + "anchor": "y2", + "domain": [ + 0.55, + 1 + ] + }, + "yaxis2": { + "anchor": "x2", + "domain": [ + 0.55, + 1 + ] + }, + "xaxis3": { + "anchor": "y3", + "domain": [ + 0, + 0.45 + ] + }, + "yaxis3": { + "anchor": "x3", + "domain": [ + 0.55, + 1 + ] + }, + "xaxis4": { + "anchor": "y4", + "domain": [ + 0.55, + 1 + ] + }, + "yaxis4": { + "anchor": "x4", + "domain": [ + 0, + 0.45 + ] + } + } + } + } +} From 158a59c0f58718e2e7aec82e50ed7a05c1a4c005 Mon Sep 17 00:00:00 2001 From: archmoj Date: Tue, 31 Mar 2020 09:30:15 -0400 Subject: [PATCH 6/6] simplify tozero logic and correct two baselines --- src/traces/bar/cross_trace_calc.js | 21 ++++++++------------- test/image/baselines/bar_attrs_group.png | Bin 9979 -> 9924 bytes test/image/baselines/bar_attrs_overlay.png | Bin 10556 -> 10458 bytes 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/traces/bar/cross_trace_calc.js b/src/traces/bar/cross_trace_calc.js index 894c960f69d..628bfb1396d 100644 --- a/src/traces/bar/cross_trace_calc.js +++ b/src/traces/bar/cross_trace_calc.js @@ -501,8 +501,7 @@ function setBaseAndTop(sa, sieve) { var calcTrace = calcTraces[i]; var fullTrace = calcTrace[0].trace; var pts = []; - var allBaseAboveZero = true; - var allBaseBelowZero = true; + var tozero = false; for(var j = 0; j < calcTrace.length; j++) { var bar = calcTrace[j]; @@ -513,17 +512,13 @@ function setBaseAndTop(sa, sieve) { pts.push(top); if(bar.hasB) pts.push(base); - if(!bar.hasB || !(bar.b > 0 && bar.b + bar.s > 0)) { - allBaseAboveZero = false; - } - - if(!bar.hasB || !(bar.b < 0 && bar.b + bar.s < 0)) { - allBaseBelowZero = false; + if(!bar.hasB || !bar.b) { + tozero = true; } } fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, { - tozero: !(allBaseAboveZero || allBaseBelowZero), + tozero: tozero, padded: true }); } @@ -672,7 +667,7 @@ function normalizeBars(sa, sieve, opts) { var calcTrace = calcTraces[i]; var fullTrace = calcTrace[0].trace; var pts = []; - var allBaseAboveZero = true; + var tozero = false; var padded = false; for(var j = 0; j < calcTrace.length; j++) { @@ -695,14 +690,14 @@ function normalizeBars(sa, sieve, opts) { padded = padded || needsPadding(base); } - if(!bar.hasB || !(bar.b > 0 && bar.s > 0)) { - allBaseAboveZero = false; + if(!bar.hasB || !bar.b) { + tozero = true; } } } fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, { - tozero: !allBaseAboveZero, + tozero: tozero, padded: padded }); } diff --git a/test/image/baselines/bar_attrs_group.png b/test/image/baselines/bar_attrs_group.png index 70303cdec405cbfa2c7650bf70f5664c7992d5cb..66ae212f49aede31803ed1ee5a14c11e4cb64d5b 100644 GIT binary patch literal 9924 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ℑ-@rq|F+hXAU*3A5K39A`N`?7?7cx7b}_b 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 literal 9979 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 F{{w;l)Fc1^ diff --git a/test/image/baselines/bar_attrs_overlay.png b/test/image/baselines/bar_attrs_overlay.png index 63e845af88a1c908fe51669a722e3dd87b21d10b..d3650cdfeead2c3727ff72f9c44ed969bbd7a5f4 100644 GIT binary patch literal 10458 zcmeHt2T+sWwlBsgK@b8+k@^9FhzKZ(fFOiw=vC>U2%;b$NbeB@qy`Wvf(U|uQlv=- zMWjWlH2*Y((0i2{?#}<7b7sz+`)1zEn|XKMJTsG-FZQeUyhiZBjudR|P4u&67!JZ~oDRi^ z(XUU=AW#aN6^^6l8}|B(vOHGC)+f1-Bo(qO73s;edj3g^x6gU#!<|eEnWEZtHF)Eo zr@9;Mc;op)B?XAy!bnf%3@-S>*!!aT^DFiHg$4yCH#=qb9|8`Mt(RU&7g7^r4doEK z-{d6o{X00SmNWJFz8VC7Mxc}u8V=UgtA3C9O#KSwe$f_>CV0)Hg<`-)REseuJB)a~ zv-q=3{0Ml2mCs@BJ@m;5=Cag1$%{uOaEV!mxh{_wo0Qw}$6Vhw62zThVF^w8T*TwE zy+}oxFgX;z783+_U;2wFRjah51jEZqNy~vBt?^)QFp+n3ETpejJ!L&w?Ut!!o%70W z2ENfQRMh%hQ2&Yd!D^`7bLo}Z??X(CNNk9^!K&QO&*N2-(b7+1A275w7pY|}y;|Gk)9I{oLDHn38DNjf!NK(3&485PEYX z=EZc!OZ7w%^T;d=boS!(%nYGDL5S|?UY^CdKBqCc!#VBa@ihlS9}0}to4?7~J)?7% zvMhA)bJ@(M6P>A6`9l4sYsy&3j61W7^ynjvzx^X?6TS@ z4s-ls1{|3=fU^hl!wMwbsDygep1Rw`oeYzmL%TGww=#w zR_aavDto|4V}Sk$04D0`<2(G(;WKr;_pqw@>kY7G`H1UxP5IhtOg2N$3t`hN?R44o zR=ybQ;ojENXG(6GG2Zv256(c(2a|%a z!l(ivBwTMyUDX(7T;pCq!y)-$#4x?yZ(ps*qV9=@>~jtQ%@hN>#mKXli4mgp_+h7p z>pQ<~2rt^cYs(3%v5xzX1RNdWYW+9gaC4Gu`QyDdrqAxy(&CiPU{gZaw0oeHHXO8htw zj)~*zq6%ijK4%Q`7Mg2jcaq`A)MB46$o}XseDY|Z)K*(J2f3vaAp3|&Mckc9rz2(- zMmp!WJnp)Vp6^0>Z_d)wnAUl_JyMf$ksY-?g+`jY2!<&_ZA?_a_pDcI`rR&&MKvr} zFFfIyzl`TQk?H@IWQIv&zLjspbNnO?LU#QAKz{Ow3qjarp`b#|!ouRw6CLz(04?<+ z(&1D^!(lm-t^dS7){d~-S^f2S{7J4H)}riwk1kAid_XTCE5H6%9%)R&k8vTzzA*N3m(1mz z>F0aQ1IF7Y3DOX~@MzBP93#mU-^xK~gVRyt6L>mrrZE~yn4WIQ7-{W^ArDm(^^l>MI3WfYSl;cWbTTqby8L221Kf(^K@}q}-jxb9U;crO!!k-e z`FYPF0#!Ab)O48#PsH<)-&J+4N;AUND(k_E30@>T&a9#;o(fl~PdzCl4>iZGGvC5y z6&`V7TOBT5IDQO1;T!?siQxpY=3GXnwFKZ3TEdYSk?yR?pnn384VI zup_Z9U#H-4C5){ReoCb4{JueDJ_f|bmtSIvAU^uAmZvH}%PfCOx?@||p}$V$t>#OC zd06DUEJ}bI(S*`$nN|Q(;Qu*g8cY!{?<+6udwOQ3E1etLL_Cg5%9P(I)Z~(-49Iy(n(R&*&K86ltIZF0dJ+_6% zji@W^k!5KY2Hu{*q1@C>!JvJhM>5y~zcM%$0nDqjg<-18;-6|Xz;baw#th1k>S!-B z4)vSur?~)-kt#R`1&f9sj{SFoAC2_}+nN;n^nO>0Q?Y4y9fI0Q$AwQxQGuo6Kdwf-xv1krdrS%vU~^*adE z)Crk^bu!T@cq72mf1wIzV8~lQ-YQBjE(w1nRSyf5d zgYPQdzn3`=8lF+YF3I=wNCDA5m4^`jnErb_z;d9-QWX4+Y3t*}hdW=06A_{>wwH$4 zy<8w9AM0o;kf$LFh$GtPud+Bk*k5w%NV=pbdvx%4?nh}(EE|$h!R}*~h=g zAh_y6#I_L#@#>;=eXa4wajc(br%^zx)c{ar4U_fe(37dW{_S#CYo+rfN?LmOzn|wm z)t(^czG$SIlTq!qz~*BGA@80WeTe{UF#@(S5vVrPzY2{@RhlEu^6{xe;#H#9&id&= z$TyOsDKuaf9hv!st1m0c4vF#FS+8GXLTEY9N3ly>B?W`i9KSqLrBAjHr`k1@i+W5M zmJR;JXTG?)(T6?AoazFR5J2`FfNV9cfTR6!b-!uda=V+!;`T4dn{Nwr1~yT0`!lR+ zv4ns^qi@{nOckVN5qZA9(lCxaHUZ?x*c*8*^QtBSk!Zd9>z6 zSlMM@RxO;kEOmgwka1vFVSD~-Us-zJ8;a_RGR&KZ0auPUDW@e}Ei4qjyRg={E=t_s ztRZMNlv=0v<+^YFu45m_KR=inU`4cFWK<-DP#a0?w5%5A=nO8k|48xjN2OTI4}%cJ|Aqn$1ikJi4r z-6Bc^VH>b%){rWM4fvYgY*ynF(a z)tP;L`kBn3M7e;fheK67dOZC;voFK1Du?R^`7vS>RHBHRyG10_68uVn36|$qf*tozToF8d9QZ_4#dLvU6?hzcD#-=H zCw;n?G+>L%uUbTx*dFfb-2Uzh`*E-{nX&D8UuVjDD@&`wG1lsQ<864{#CblX^jAe_ zP7ddL)iud?Yq2zgeKu=f1-n!@!gz?ijX=3lS4kjoLwQs%c}VwK7x|1BMWlPr3mVt^ zRvF~!DVuzJDCoDpeSPP&+HpF#6-8!&ATo?|9iUukP6n8od9l^gT=f=9&tFeV$N>+7 zhHa{INUl>{iYJ6*JR{tJ!z>2g0FL(IOqIL(@Q+g4i0b5<>9T%}j=z#7kzw?a?gH|V zdnF%m7ug$TRoMmJLJobox-P>G6{_!V6=Xil7%3(P7Siz$QhEf4<5{nl4HelJbf(M6 zRfdcYS_TLYTKE(kOt3T{NT|)6>e$(agW1E$+y3fkD`zRS{M1r%tHH~>-Fe@WH$TN2N_96#Mw zRm%w$Gw8baCZ0{)4shUf=WNE*5DI`p9%N$0-@TS?rr;A6nhHe-T(F9bD+E(*z+_rb zzgG)7Y1W<rz(CH%2q7FZ@?Le8i3i`E8%e7KFnV7x+fxic2h1Qt z2T+`;0>mo~j_a?0~~w>Gu*?0=L}2hd@L#ib1o9dFbu{hyb-&G z!~w^AI$@#>i4Bhk#Vnqo0|U}&GZwf0eRuMZ3j6u5AhtNeLI)(q1tjKvt*b5{(Nvcb zY(WpBifW(5z`@ac)gTF5yM~wqx*CMxd^oe?vB?OMmGIzM=sF^Zb8VU^HKcYdnfT(bOEI zBk29@rTFh!(wcj}S46iK1}iMwfdt_Hk^r7Y{73QK(Au4eh~5lE$~=p@YK^pOHwOyM zg%m?*iY+w%eRi1m?&=r1DI6siUNv4oIr55}OgzS*Ip&6?jf}IdZmhMft-6+0bZd!R z#JAdl1CDZS=DGbsvYRIB{pI0|o+F&0n61>di8_m$miOnyUiRVnyku7$wr!c zp`9k%RWzwvq)TXXsYSg~Rb}h0SJ(AG+WYfN+~IPmp4)O-%Qsz_pN}W)KSUzv z9AxJc&X9LJ{==YFP%n~gq{Kqq_@j+6v69Cj1Y7fViMOSop*n4G^aGE9S-g~}+EjCt z&5CV$+n&&ubXRTD63L{1nTW^Mgzk(Cmpu9NA`%i3o1Q0|wJC7H)@DXVtgVwDhaKZV zEr~Pwyr3YJlw#!_wNty7$En3D6$v3?)ss~j%_$sN@VJBo{sbYzPDzJbzr5R$AKhto z4n6st7(nlxUw|9@RwYn^(Ym&bO7`1&XsS+|<}rHHFqFBq?ePp8Cb;1I^V6{(<@SjN z?{5jaE?+#Z*~KD&zT1ut#3;D7bf!t${QQLLt@H8NCH-#T=2Zy5CRJq9c8u-TL{0rF z9BHuH4m_5)%H!JpS>polKv zaMSQe;AYAd!N-fF!+mAHW7%MX8Pire*Qg*ojhnvciy%t67b51>SdcR=-Yo2fskTur zBZxo0Q{b9NEbK2$6ZCqkS8_`pJ=te2)MHF!MtMj4qgl%*-ZGgutDfY+qaNhQu>d+> zvegsYt7cvak$oVDQh|*yWZFk_#ht|EKlFE>txNky%xe=p-Vo3Lm{PRsf5+r4d-81z z1?-tlDY+^Jf)jeI8BDjF)q*vH*F9v~5fXIPCm^;_ab z(&5kU{+Hpz{FD8PEnBV9QkzEX$AuimAt|9F34{6kI0u*4CTTi%V>k?abu9}d(_ZJ? zl4BBl*!F_|^A7dAIa09jE0u7T+u=a0747LUDKD4V%EgmtHOHFwL2J4bE=83JCG6s- z(ps86U31&q`=aDHEtvwC?Pk)|g4jPYsgEV?(%+MlEZgv4CwwtCRgP8{dwmYnRN5Oe zeJ$3Pyi7@ES(8oYk|Se;FI;$@B5tpit(Fj-;&afuCU)mXaH~}MK{`5H^UKxPNrO+e zK_>}@m+u9KU(dV!yl=Truy5!?kSDd!g*?|7kY~+@VrUx`pc@jWVS*h%jh=T@*L2_v z8RWp>`Jf0{vz~%$_s#)Xs)2|DiLFG_pz)7Vdu31InhfM+kM~dzY@zJeYiGk$=;-6l z9fLD4I>IxLF$3Qf^^vEEi#*`-XW)-K{-@#azI3WLUasBHdN5jD{w-C?tAib)pg<&$?*iyE zi&|XZyAiDfNlD$41{FwTDd*RRml#2jg`&u$TuneD35t>3yMJ*VH1T`O?G2N~Y{EG_ zMx3Wq9>aQO&HinzqPlI9M-!F6XVS(jj@DFw_6MiSfUzwPGQKVXWEO4yR)s_4h$GC> zdyd~2H1SrM2QpelJ;sGW=2ur{*RMv}%#i~=%&$sO&+kb6|kG2GmdBNa~Ru5-Qo zl3soJ#@~aO!|I=AW@i4}yt7w9m=$tHXMXr_ahB3eY?3Fl-nZm#3vJ%b_so(q0)c>% z;h}&VLAU}70%p1Z>V-6qu~Cvu|REj!m1WUN0eC;+1LZTbG!ozAA1YXa5OK+j_09RJ5{)BkN^d^O}7A9zWi z2}u_Q1#mxPH3(GF-$XCMV8}qs1iKGnVxS93t6uuJa9_ff>8BHh-?{BpuPGsVq!2C<+Zr(WZ}#9{1KOE@PY@&aTh zaF0cfOIA(4tT#1kM;yAMF%JzP<=wxlh!M=f#5i>k)t+}9B5vR?Cigbn76wi$WuRPU z*VYN5goUC85nxPb+yd|*Q)&YyGZlHc^I{F6<=$|uS1AqWHG@v68IB(%HtK@7?#t0k zgjE-0*qzt1+7fns=N^pL`$4hc2S#Q0bss%A0zK{aeB)BuH>@(AA6)1AR7Gl68-I@X z%_*6GuDTJ!WihE|xnKbrXSwWAdDjE>;R;=z=HBv<|KQ;4@^am83*!n$^GEsx-dpo+ zpqj-oGEl)QdnO2^7l{n5ni8XD%(jo37`18e=X%b4&SmKdUp1=rECy>(X9H3@=3ej# z55K5ott|>~H!_P_uQMvLo1`<~j6~(VSzc>Fi5A{@#Hp!l55^QBQFREUxv}pH ztJOs6cP4HR*rxkk-O(`~rLE$XX}^Z!s9Fghxh%U4&{F*F($XCF(M~8RsZXz(8j+jA zAO}_jwb;Auv&&^RRK)T@3v%0#lf--r6tc1cjz~XbHA!LOVvLN)VgK>f)`ewtO* zx3U&=LqCs8=F)}tS45;pI9bTMTYA5=p;C(S1f5yfGiw_gRnTqDvL7sD3ehHS{y;=OBQR09=+Y*-*HlW$fvseoK9wM81`XL(oPe#Y?3GB9?^qSnW1!*;8!Pg&KXCZ|gNdW^z|g{? vKoECYm{E~zbT5Gz|7_up7XB{*X*FO~_-)JBZGlS^;G?RnrBtYJ`^kR*B;^q) literal 10556 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 Z6PTAZkJiu-jSzqjN?B8>MB#qmzX6FiNW%aC