From ce919673c4e935e8c756c91938f973d5c9a23ddb Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Wed, 20 Sep 2023 14:55:19 +0000 Subject: [PATCH] Bug 66425: Avoid exceptions found via poi-fuzz We try to avoid throwing NullPointerException, ClassCastExceptions and StackOverflowException, but it was possible to trigger them Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=62530 and https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=62491 git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1912433 13f79535-47bb-0310-9956-ffa450edef68 --- .../hwpf/converter/WordToTextConverter.java | 2 +- .../poi/hslf/dev/BaseTestPPTIterating.java | 2 +- .../apache/poi/hslf/dev/TestPPTXMLDump.java | 3 ++- .../poi/hssf/record/CFRule12Record.java | 6 ++++-- .../crypt/agile/PasswordKeyEncryptor.java | 2 +- .../apache/poi/hssf/dev/TestBiffViewer.java | 1 + .../poi/hssf/dev/TestFormulaViewer.java | 2 +- .../apache/poi/hssf/dev/TestRecordLister.java | 11 ++++++++++- .../poi/hssf/usermodel/TestHSSFWorkbook.java | 14 ++++++++++++++ ...nimized-POIHSLFFuzzer-5231088823566336.ppt | Bin 0 -> 19456 bytes ...nimized-POIHSSFFuzzer-5786329142919168.xls | Bin 0 -> 13976 bytes test-data/spreadsheet/stress.xls | Bin 54784 -> 94720 bytes 12 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 test-data/slideshow/clusterfuzz-testcase-minimized-POIHSLFFuzzer-5231088823566336.ppt create mode 100644 test-data/spreadsheet/clusterfuzz-testcase-minimized-POIHSSFFuzzer-5786329142919168.xls diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hwpf/converter/WordToTextConverter.java b/poi-scratchpad/src/main/java/org/apache/poi/hwpf/converter/WordToTextConverter.java index 2c061e0960e..915abe819a0 100644 --- a/poi-scratchpad/src/main/java/org/apache/poi/hwpf/converter/WordToTextConverter.java +++ b/poi-scratchpad/src/main/java/org/apache/poi/hwpf/converter/WordToTextConverter.java @@ -54,7 +54,7 @@ Licensed to the Apache Software Foundation (ASF) under one or more public class WordToTextConverter extends AbstractWordConverter { private static final Logger LOG = LogManager.getLogger(WordToTextConverter.class); - private static final int MAX_NESTED_CHILD_NODES = 400; + private static final int MAX_NESTED_CHILD_NODES = 300; public static String getText( DirectoryNode root ) throws Exception { diff --git a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/BaseTestPPTIterating.java b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/BaseTestPPTIterating.java index ef146dda238..7cc9272781f 100644 --- a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/BaseTestPPTIterating.java +++ b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/BaseTestPPTIterating.java @@ -35,7 +35,6 @@ Licensed to the Apache Software Foundation (ASF) under one or more import org.apache.poi.POIDataSamples; import org.apache.poi.hslf.exceptions.EncryptedPowerPointFileException; -import org.apache.poi.hslf.exceptions.HSLFException; import org.apache.poi.hslf.exceptions.OldPowerPointFormatException; import org.apache.poi.util.IOUtils; import org.apache.commons.io.output.NullPrintStream; @@ -67,6 +66,7 @@ public abstract class BaseTestPPTIterating { EXCLUDED.put("clusterfuzz-testcase-minimized-POIFuzzer-5429732352851968.ppt", FileNotFoundException.class); EXCLUDED.put("clusterfuzz-testcase-minimized-POIFuzzer-5681320547975168.ppt", FileNotFoundException.class); EXCLUDED.put("clusterfuzz-testcase-minimized-POIHSLFFuzzer-5962760801091584.ppt", RuntimeException.class); + EXCLUDED.put("clusterfuzz-testcase-minimized-POIHSLFFuzzer-5231088823566336.ppt", FileNotFoundException.class); } public static Stream files() { diff --git a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestPPTXMLDump.java b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestPPTXMLDump.java index 0f7b38a6b8c..ca4eb18ac50 100644 --- a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestPPTXMLDump.java +++ b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestPPTXMLDump.java @@ -65,7 +65,8 @@ void runOneFile(File pFile) throws Exception { // work around two files which works here but not in other tests if (pFile.getName().equals("clusterfuzz-testcase-minimized-POIFuzzer-5429732352851968.ppt") || - pFile.getName().equals("clusterfuzz-testcase-minimized-POIFuzzer-5681320547975168.ppt")) { + pFile.getName().equals("clusterfuzz-testcase-minimized-POIFuzzer-5681320547975168.ppt") || + pFile.getName().equals("clusterfuzz-testcase-minimized-POIHSLFFuzzer-5231088823566336.ppt")) { throw new FileNotFoundException(); } } diff --git a/poi/src/main/java/org/apache/poi/hssf/record/CFRule12Record.java b/poi/src/main/java/org/apache/poi/hssf/record/CFRule12Record.java index 4381c52a184..2b0fb59c5e4 100644 --- a/poi/src/main/java/org/apache/poi/hssf/record/CFRule12Record.java +++ b/poi/src/main/java/org/apache/poi/hssf/record/CFRule12Record.java @@ -408,7 +408,9 @@ public void serialize(LittleEndianOutput out) { out.writeShort(priority); out.writeShort(template_type); out.writeByte(template_param_length); - out.write(template_params); + if (template_params != null) { + out.write(template_params); + } byte type = getConditionType(); if (type == CONDITION_TYPE_COLOR_SCALE) { @@ -432,7 +434,7 @@ protected int getDataSize() { len += getFormulaSize(getFormula1()); len += getFormulaSize(getFormula2()); len += 2 + getFormulaSize(formula_scale); - len += 6 + template_params.length; + len += 6 + (template_params == null ? 0 : template_params.length); byte type = getConditionType(); if (type == CONDITION_TYPE_COLOR_SCALE) { diff --git a/poi/src/main/java/org/apache/poi/poifs/crypt/agile/PasswordKeyEncryptor.java b/poi/src/main/java/org/apache/poi/poifs/crypt/agile/PasswordKeyEncryptor.java index c31caaba40c..5d8c0cb9528 100644 --- a/poi/src/main/java/org/apache/poi/poifs/crypt/agile/PasswordKeyEncryptor.java +++ b/poi/src/main/java/org/apache/poi/poifs/crypt/agile/PasswordKeyEncryptor.java @@ -109,7 +109,7 @@ public PasswordKeyEncryptor(Element passwordKey) { blockSize = getIntAttr(passwordKey, "blockSize"); keyBits = getIntAttr(passwordKey, "keyBits"); hashSize = getIntAttr(passwordKey, "hashSize"); - cipherAlgorithm = CipherAlgorithm.fromXmlId(passwordKey.getAttribute("cipherAlgorithm"), keyBits); + cipherAlgorithm = CipherAlgorithm.fromXmlId(passwordKey.getAttribute("cipherAlgorithm"), keyBits == null ? -1 : keyBits); cipherChaining = ChainingMode.fromXmlId(passwordKey.getAttribute("cipherChaining")); hashAlgorithm = HashAlgorithm.fromEcmaId(passwordKey.getAttribute("hashAlgorithm")); saltValue = getBinAttr(passwordKey, "saltValue"); diff --git a/poi/src/test/java/org/apache/poi/hssf/dev/TestBiffViewer.java b/poi/src/test/java/org/apache/poi/hssf/dev/TestBiffViewer.java index 107c87668b9..3b8ee50d96b 100644 --- a/poi/src/test/java/org/apache/poi/hssf/dev/TestBiffViewer.java +++ b/poi/src/test/java/org/apache/poi/hssf/dev/TestBiffViewer.java @@ -42,6 +42,7 @@ protected Map> getExcludes() { excludes.put("61300.xls", IndexOutOfBoundsException.class); excludes.put("poi-fuzz.xls", RecordFormatException.class); excludes.put("protected_66115.xls", RecordFormatException.class); + excludes.put("clusterfuzz-testcase-minimized-POIHSSFFuzzer-5786329142919168.xls", IllegalStateException.class); return excludes; } diff --git a/poi/src/test/java/org/apache/poi/hssf/dev/TestFormulaViewer.java b/poi/src/test/java/org/apache/poi/hssf/dev/TestFormulaViewer.java index 3b10498e692..29b31dec817 100644 --- a/poi/src/test/java/org/apache/poi/hssf/dev/TestFormulaViewer.java +++ b/poi/src/test/java/org/apache/poi/hssf/dev/TestFormulaViewer.java @@ -53,7 +53,7 @@ protected Map> getExcludes() { @Override void runOneFile(File fileIn) throws Exception { // replace with System.out for manual tests - PrintWriter out = new PrintWriter(new NullWriter()); + PrintWriter out = new PrintWriter(NullWriter.INSTANCE); final Function lister = (doListFormula) ? this::listFormula : this::parseFormulaRecord; diff --git a/poi/src/test/java/org/apache/poi/hssf/dev/TestRecordLister.java b/poi/src/test/java/org/apache/poi/hssf/dev/TestRecordLister.java index dbcb3c06180..9135eab8842 100644 --- a/poi/src/test/java/org/apache/poi/hssf/dev/TestRecordLister.java +++ b/poi/src/test/java/org/apache/poi/hssf/dev/TestRecordLister.java @@ -21,6 +21,7 @@ Licensed to the Apache Software Foundation (ASF) under one or more import java.io.InputStream; import java.io.PrintWriter; import java.util.Locale; +import java.util.Map; import org.apache.commons.io.output.NullWriter; import org.apache.poi.hssf.record.ContinueRecord; @@ -28,6 +29,7 @@ Licensed to the Apache Software Foundation (ASF) under one or more import org.apache.poi.hssf.record.RecordFactory; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.poifs.filesystem.POIFSFileSystem; +import org.apache.poi.util.RecordFormatException; /** * This is a low-level debugging class, which simply prints out what records come in what order. @@ -40,10 +42,17 @@ Licensed to the Apache Software Foundation (ASF) under one or more */ class TestRecordLister extends BaseTestIteratingXLS { + @Override + protected Map> getExcludes() { + Map> excludes = super.getExcludes(); + excludes.put("clusterfuzz-testcase-minimized-POIHSSFFuzzer-5786329142919168.xls", RecordFormatException.class); + return excludes; + } + @Override void runOneFile(File fileIn) throws IOException { // replace it with System.out if you like it more verbatim - PrintWriter out = new PrintWriter(new NullWriter()); + PrintWriter out = new PrintWriter(NullWriter.INSTANCE); try (POIFSFileSystem fs = new POIFSFileSystem(fileIn, true); InputStream din = BiffViewer.getPOIFSInputStream(fs)) { diff --git a/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java b/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java index 6b9a1575f6e..eb87441cd39 100644 --- a/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java +++ b/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java @@ -28,11 +28,13 @@ Licensed to the Apache Software Foundation (ASF) under one or more import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -69,6 +71,7 @@ Licensed to the Apache Software Foundation (ASF) under one or more import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.SheetConditionalFormatting; import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.usermodel.WorkbookFactory; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.util.IOUtils; import org.apache.poi.util.TempFile; @@ -1217,4 +1220,15 @@ void checkNewFileForR1C1Refs() throws IOException { void createDrawing() { // the dimensions for this image are different than for XSSF and SXSSF } + + @Test + void writeInvalidFile() throws Exception { + try (Workbook wb = WorkbookFactory.create( + samples.getFile("clusterfuzz-testcase-minimized-POIHSSFFuzzer-5786329142919168.xls"), + null, true)) { + try (OutputStream out = new ByteArrayOutputStream()) { + wb.write(out); + } + } + } } diff --git a/test-data/slideshow/clusterfuzz-testcase-minimized-POIHSLFFuzzer-5231088823566336.ppt b/test-data/slideshow/clusterfuzz-testcase-minimized-POIHSLFFuzzer-5231088823566336.ppt new file mode 100644 index 0000000000000000000000000000000000000000..dbf00b326524e870ee0474aff5b631dcb3a319f7 GIT binary patch literal 19456 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 literal 0 HcmV?d00001 diff --git a/test-data/spreadsheet/clusterfuzz-testcase-minimized-POIHSSFFuzzer-5786329142919168.xls b/test-data/spreadsheet/clusterfuzz-testcase-minimized-POIHSSFFuzzer-5786329142919168.xls new file mode 100644 index 0000000000000000000000000000000000000000..c83bbf76e2ac43abd6f03a0f0c745b747da60161 GIT binary patch literal 13976 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 literal 54784 zcmeIb349#Yz3+LvFBq`dipDHuW4vIg)vaD6na#FjVS#N4OJK8#mbxW1ZmC6g%a(y8 z&cYG`2}^)D31JNhkN^oJB!MK51rh>*KuCbRd2{dEX6}1;-s8Txci!BYB%a^zU#Cv> zDV4#Pd*^LweX6_bU;p#1f1UcD|M{O&)uq>7UG!J?ee1ZtR-xBvYKHprzIkePoqQU; zkNE2gl^Vi#%Kp4>-#%ZAuYY;{cT@v^(zedP37m;#78aiKIauamnTKUQmP4>Cz;Y;- z!>}BV1umc#VL1ZJkywtxax|7>usB$b#S+7E9G1mcj>mEWmJ_j@gvG_O1j|w^Cu3QL z{;rW zLtkc-m$v`cYPx!2=JR-0>R(~GM2#~xwC75L?*Ct}^??r%KKq>pQfIcGVh2aiOBQ|Xw6l(U=MuF znzjxtpomskLS*r_?)%t3*H*n>7;5h~5wdDwomDO(%or>jM61msTDXWvz3Rl73)F** z*=HBV3YA>x#F?|zS8=pzEx$d)Z;8K>`23*yhkdRbtM~StOF0i;3kn=W4GW-VMuF?ML3QANi^Kk1w2N2}lV;ByaG@a4JZp2No;wRi76wKp|{KKNzz zGW3V=w-0hPg!PvRgh~A4SK$dk7~BgANx7F%e&4>mYA@FJ?L}E|_r1JVrH1yY)XOhJ z4s9-bu?zt}v{yay$RkL+hE!@V1W3SASoX>SSqfz#xLo4xwTRI#GlfDfxnXj!FkUN` z$Ew#NgZxhqQ#w~|%#Gzsg-Z1%H50ksYW4iIxmb`>-8@bG2V_XdH{WF*g&yi%mmhN# zMkq?+IHL|!W%0kK)FJOOFa0qT=c$T3b}lBq)@0eWskhx z=y8_?-^PYWOB&sYYQbG!92#oXM*{~qx3D{2E!5g4Dis{m`PD*2@36LVm0K&j*cQMB z3OJgATOKcr6~~5YF^mw4Q3>@G+dfgPl}ER4-n2P4J`UB!D&9(kT&-3q4ouVvW4X~n z6_s0Hhw&Tz-EMcWjj+Wxp++@6W-S(bbrCKl*jgyxf9K5O0pB;{$8lzLA1ESRRA*HMczE7D@&BfxDsy;PO~Uu9jQj zTjmw772f=~2X@yARj7^Tifk!vwN@;Z*qjCm zkmmC7lWnV^U6aGFt{ck>u*xGqrci%u)f}C&aiCE1PRo(H`itdwSGTcvnNkyDw2Av0 zXA5$xBdD@Gtf;`4s#}w-R_&nC4HR-?)%f<&k|F&O!HKQMbA3M|`97X=YjBXl+L2mq zd`(l6=PuPag9B&?6r;HsRx86z`ATjVc05{YYEC4wO{|nPuEF{3$ixJ9v{*&i!4cPQ zB<|9K+R0LP7@qgR%cjJ{r8xDzkxhf+sGLHsGB^?+FH}lAto~|cu)kIw*j*gk(VrU} zEi_gp#!#R!5lng)`r-d|&;mkiio>TZ`skGb8x!X7O%6`JFK9z1u(JOo3vq>ZqD?19MTFz<_t?%C= z!h6fMB_twa(kUutbeHn<(-NaZF6fM}_l~PNF+N@@(&dBR9$i^s6wWV=P|CWQc%rE# zo^V&L@9ON#tkP#7?)G$dx#clb207(Qt?E*t)jvZkhbrY!*Fzv)@Eld$wibGKqG@{% zKU1qP>GU3fqcyW~eHrf3%RI!Ys$}B*>uNrF!h9Z4sXUe|F&9A2fQZ6+V)J7(Nna7C zf2Czi6CWS1v0{2Rbz;^rY;CnP6fc+* zn1=Ttk*G-T6*3)J_4-^Do`iOYc<1Uw$z`U*fQpWz!QEY+5bvUMjpTMB;QIcTa|1Gt zkqx`S-8E7~a4S~FR@8hCE952r+vH_a%n8i#jE|=ibVeRh2PQNB3HF5)9GHq**ZaA< za!9HQMI2)V`IFndX+yI)zA>B|%DNeXyn|-WU`*^N?ktX#`?nT$7D~B%nU;D<-KI|T zMxoj-mzm+Ai2=qoB(8`lVUI4M54)HctW6-*9H_ASZ}OArM&y0S!LY%10<=jqqb28H zH(tk+zM=_{75P2_KyGZX(BBSqB+m%jwPK;#-_hPzsEk&biAe^!sW@6h3&Hv9T-UXU z-ZY71Hf*!cu6LU*FT)QxOk$eC{@uU;oq=AwIUP@3y2gbm`H4ZvMMn^DC6OJ38`TO3 zz2>O=PO&zE9)U?G`b>uCq2iciof60Bj~x>OrQ#TNhdR-PstxEkS+CM@P^q>Hi9GU6 zjz98fO5(|0hrPxcWF%z+#Zs}hdvmU`V`AK# zM2wC0dmfr`9@hEMoObcBm?hzSn4@CFG2KMI$FCk<&a2s_8{{lrw_*+nmm?1FShW9b z@9pZtSYw?(Lh8p6_EZX0M00aUNND?DiSHXL^a)$xj$*jw1s+@(5(i z?jVjyx(WxCZj>=#jeGuL1&vYZO!r8$f$S7NIP)IH+oH0>Z+-~QYclM zFf=b!5#3=tYSIfaxv|~;VYu9byTsi(QNoUbR&wP;5#5nKR#B=V>A`VS3akkv3-B}V zqt1K)lHt{*8xY;p}lw~Iy|Ss!g7MIG$Y!M z?)JV5dp2<3lgG&3n@RGFWOEoohs^xLA3W-rK)6H`T1u1NTy65pHlpWdWi;jsgQcZ1 zYla>HX-pxG;Tk3ohpJ5zV>`ymyT!5wb0EtP4>rV{D2oGwX?LURb?7@*<^2FjxYQX_9pQx_G-U9O|) zcr%PkWU5PCXjgdxNjlRBI29{q6f<*fg)<@S7&*^{j)nQLs8`Vuuy?1XeAk^P2J)Db zgH|4MEAjb#%m+quyOE0Ii-SykB+rqGhm-T9py$O7%g`8N4&ja#M#~r$OmIF|5|rA= z1ak_SH(o|JokOJ$PE?QxxRqjcM|{2x7YG(tuzQpoq{L*;-C4}JIOtyL7do*+&VX(% zj&*ta+RCHD>}PRE68kYZ^s#)i0C@%TLt@kO!ZeP6TGq`O#;`CyemNs!3@h{yA-EaHf(R-u&H0B!*;y?p<~3w z38a)Ba>QL;=?Tp+G5FQbG9foWyu;K4>lkyga*?Q9Ifx^dUGMi8q+>krV@UtkJBIXr zk0HZT7wYJOvxM0oY!1yYX4(=ha_Av>HqqQF@&;T;^sc9I3YOVVU3P_h3ui`80ZP*d zW75f#T*h&2-|3Yp{NCO;hQh_cnz$TNO$P44njUR<6GKz{zmUgeJzPWMe0~8lBNM~! z$>{Cd+Hl>h-l=UzuLzO@3a1Hibk{G63dg zgEBob=H_^bh>1t3FgA=aVzMEfZEeW3BpQ(6dBZ}sBP1!s(TP!C3o*kB9vHuIvQe^D zgg^A64d_P^7@6vGNI<8-%qgZwIa^d7>y!!74ZH|~8FT+~1m;Yb*_|oFP|TZQUFJ*A zTwb4Jw|l96AF@JR=|xwK`Pu?5h;aIAhK%MAYx4P_CMsfD1T&wAnwSgOxOqe8IjDdw z8#<9h4Uc)5C_T_m&^U!duj53IcNx*mw4^i5ZRrGNk1;mpb&tm8ET%^@>2wlT*}0!| zOOn&2x!OMsyrr!ro6V#{j-Sb~*W2FJ)!*KeY|bS6H??ZbG@T^w zR*(%ra=y&kELn>SI{KM1a`FXwl!FOKCZyY4G0WW- z<=l9&5yPj!=2Rw26L8;#w;`17PL?Z;`fdoc;>O&-AY&F<9lnKnkyNI&twpZ$OU%O! z8ABCh{N>SbRBX*Avl35n8ZRi6b{1;AyD&<`HHYzVoYc30P#aSU{#_x6Gxc#A$KegP z`l(PW?(i<^!pHdifRqPt3OHf0e%%z0G!q>4ZppL_UKu@O@h=Z3k70O~YXe@4kGmXZ z;p#GGW=fcd9!8)ocq4nXN#=7hvdiPzB1TM{*4y9gMu)!AQ}vMksEb$^6U=h|1{$x; z#szM818)hD;hkiiD+|M3ex)xNF*vZ2R;@r7^zW)c@0m%ZTQZIQ$!RQB<-1$}z&W6N z_4^g5mP-{RXC*0wGwrXhtSjj6K+ZCg@qXjVEQSbRj54Zpfc^n#xRt>))sWG9lL*>t z#1S#>_k?n(7|zx|zAK+>maKFVO~YF=T7kpmhM9E(J83p%6RG9|+m^n`2(-z0@CbB> zxSG9W30jS1Kq23cF=r;}P03&qLrwq!DQ*iunQ-H2Nw&&88KW?(>+CJvTQ?xgaDLuP zwktBauDVTfri_r+C&P(b7KxQ~Ft~Wmn@!NK@+v6C2~16pGBnD4PLeu!_lsZ(0e4|w z4xv;ok25^_7ti}QPGC}@(Ys%l7={$4ktXWkP6Xb$)HsU!LTYkd3)5((d?J-hRVFI& zTz(Wcvw78%O{bch;yGTx0HMCr$uVaPhEO=IpEAie-AIFgb!db}(PN6DLw`I?>ZO zyg>^SG5^d{KoXlUV|>6`hAwe1Q+uoJ3 z3U9HKB>Q=cq4ZsH=oUr`n{#8BzN;MEEklx}p`LSkn%sA_1E4YN>W%`HQGXwjaac~y z`{e4x0Q%z^1~do>2z-(*;S^UJ%R`MALlno0@cJr~r7QwpZU--M;(i8XuIT@QK8apF zfEK+&E`I6(9qO%E%2#pAf`0%_of5coZ(zFb9ZfnB1@OL-J>>MdY zUJ`M+)$HuL)A9cM)%(o0B-)x=TT-c(WLrxn+bTUOu5E4A&BofPf3}fj;IfsqbBxFQ ztp`%sxKyqU$fT34ZK;;#wp1#e$hOEd-+|OJFO;Dplj~)Ok7H<6xG_=Yg>mKs*Lwe& z;0-qZ8Nh{ywq&LaMkUjkY=Rz$JB2!QHS0*pi$XHkmD4>`z-@kvPk1loG2e%u_SNUe z2Vy|4Z$PHGHIqrg@iNUVEo~WzmdN?`<8!h{T)<>LrHw0po@B6TBl|vQFGL+l3HV%ps{6J&*|4akgpmsO{Et8ya8|vzDoBd}meeq=Sb1 zF2Pjmd-SI6>288u6sZT*^|YiiXsx(v*P2OVQjA>>;*L!9bRji<@1Eyij~oY`YH4Xr zq*~IgZCSKa9QlWfI@uHkFNol9T5!Fn6GMgI05H|4hXZw&MKF<6=d$+Ies*#PRhgL- ztY}H0CX?ybEUZ9fehA+~E|5V*wV|JGg0Q@U0}`kT;d)xezVDq2cyZj8Wx=5RBF_zA0BeoI_{Q%}7DhEp5#$3Ed^|eEI#6 z&Pcqg0k|iU15^yIcb5u?i{8vXvw8HgxR0FoX(K!J?gL|{Dw3}J!Fy8zNdwLb96g&x z-{mKd+EL87N&5QSnrdZupuJR?+S7libCOOYTSE9i{+LYZxg1P2O>OHKuC&YKf$4GrT~WB8o^Qy=_@%jJ)_MlipStD6KY`1cKen4`z9 z|1xL{IQ|T-Wgu>I&I{>#F!WiiZL+&r{FMOmPuwl| zLDKH+LE4R5xzcI;G^4pC#oOV%mJKiOTJCl5iS>wT{5{V2FE&O5* zA-cH*i8kV?cVim8Lx(q4e#WH7U%dOxyHgMM{POk_w|BfU>ZJf^Y@s{tIKdWY2Dx{eQkDv94< zuFn630wz)ASHAL_-w%@AQ>@}}#?9!`J^+S3jnA{Jq&iqsop z3k)*QCJ>9zj9Dj`+m{;)y`MXHxBiuf4*r~E+Oo|pNJ$gO0FxQqC4zH;yF|jlEA-J9Se>k^!qksNf_n#FunD~3eKP%$j`Dr6EDTl|EA z^PK*V4DeIhHA^uCD()onVDr2m-Q!-~N)0na8zuLzxEQkzA|V?b8PDZ0RAS&k&*k@E z{2cYxYm-_&0B<#Eb_V0l7M>ZD?M6b4_F}f-hh<1eQ}R2mkQ{M2EhjW2&ti<9C2p!b zEuGQns$(X)-1>c>OuBi1h3XCC&1gcxEU(cPVL$FBm8owQK``6TR@q(sTrLaah9jug z8^8(ZwhR&rZMC_C#Glpqm4m$)IeveDJ5UOFd8R>E2a91ZX7lFa;12w7A5xwTe6ZH> zA+?_`duIXbyxiv9aYDVTisSr%+sa3oSMViR>rXj{ap;t*K4wmomG#8Pn6nn{-#YtLW_lYfsCuTs>ToRo|yQq zN|9^TkzM?_YNxD?j>`dExl2BFjaRu1*G>5`InGB$#H%ID{LAr<<~b1^-#N-(OvY=I zUM1v*xK^pj$8d3o7L3$99ZaZmQ?K=nL16OajHdK*n7^+C^50-iDbL3p zCv%U+0)c)Z3dw6awkhvfUJI>fc`d*bQu26u%5*#(Wsy8BWg(u2^2dk&?)A+BJ!kcc zd=DR{qF<*>p9#%VrhOb+o}YQDlvpkApAg-n@RU8+vb=ry(mtfeRd-8am%Ft*nj34t zwcoLPu99E6JlX8>Ch1@@C`jvBkl5 zoYHBJ;XKM~`eELuJWLT=)ZFQ~Xph$%b;LA&uAO$c$hb0x5A3OvO^=Yxh>*e6rj$hl znIc2Po+6`7;r-HG!ZP&UQ)G0?u-+jNGJ1Ge52KeUGS*dC@9+p2YcQ;biS{WnbjMR< z=<24(kc~`{@%)AN!E+v#;Ta)QWC){EWQdLiEDKcEB zwPb&i$9;Ma@KnlMn})}E(*L}*=~$!Zd22JUMxXQ6W@3%r=B>@b^Reh>-r8(zqla;g zv>5j5uT8@my~^9hJ{j*GA0i{C2NL|eVb>1=Ey@)NoIubY@T6}X9$_z>1p|7 z)>uGh01j-PDP(#t%gi)nMxDUsnHG7bv6;0WlLsWy=2@1_vxH24CwZ13&k{0y-Ydh} zptpN#v%#aEbB$*+1}prv`m@OTb>y+Iq_a-E8sRZG@+d-&Kswulr{&iOJtKxck37e+ zdyYk(W5{zX@*JrVwjh${m>S_3i^=0?x&OHqd9FpCYshmg@?0VNH8L0EphoDmF?rA} z>GLf5JfZu3J0JG__kW0G^C6bahZyo9LUvKoD?{=UtkLE}44H8~AhTx;Y-VB-*u21y7g*#4 zVzW(eEnLSlZ9(2q)JKVCF30lxv4mae(g}h83=ix#=1#7J5!ws1cB_J=fY+h)Q7aHQI7g;th67s2x<+g4EYElW8Oo&?g$|_8ZF;97|~+#kZ6*Rw8%#a*>8hK8uF1sb~X7(AvbCA zk;Z1m#DL7lrUw3el#u%{Sju~>yBFCgQd~(c?+0(@25#uBuXOWK+@)_Ei;|%#YA)g7k zSB5rYZdq#MI74Q}7mybVnUR%c77KZ;F0@x)ftvrk?uHv8nohRnP%CXYZT>v+rN z<1L$yH{|0j^6^4mulIkvA+t9N$R}7fpJ3U1f+3$EWIxuOAmnyUKEaULGsaX0-f8oR zmdz&$d4n!`6MB)(q&FE%aVZB6zjBzil$LJT9r6OeM2w5gVmW_}xT7~z~8X;pO3hOaygk`5i$WD)t zF?xi{vVDhTY~}Sb`mzgI;MuO#8eQ@1bD_aV?HbQ^Ezfo>&vs2~q!-8JA0u!-ORP4t z#A-8340(w~ULxepdjCrdnQb8;FSTsu1Kl0@mkhLdsUa`5$V)BqQbT5oipf85pv@;+ zHlJ+Se6k^*Y>`hEa<{hmWJ6}V49LqYo0nNOFEiw27I~RPUS`N_-7)!x6SVmh%jQ!o zn@=(1Q!Mf+LOxI1e2O76Mg-*Lmd(p8o0l8%a*Mp&A}=>&Mw*z~ig(()!m@dVMP6aZ zD}?Mv>J>uvBlQYHX1of>D=nK>TI7|6yi&-1?zmFOz2MM;RvI#+UQGUx2W?(u*}TfC z=T(Nh%Bqc3LOx%UR~a&6XFxvHvYFGYfj^&W$fsK5Q!VnThRg^YlYcrwn^#*lbLuw8 z(N`PtYKy#D$lJ8ds|}g86_6V&n;R^f8w|O@A~#s%2190V5R-q9LYo^cn;V6Ep|+;c zkQ;@35#(MO_Tm>CEx#9MpAwMcmd$Y?`!gPKLyimC&phH{^Cg-bH#W0pipf84;r^Q} zo127unJ&|0$W2ylGzq!iX!$m?e+$S7%jSfT{hTIY$O(&_u*eBxGkeLHx*YGcIceFP zwCXu&$VrQw6mkv(wv?nHv#$-v&6ds0Ry{WxaWcK?3Ic?dTw#aEiP79e)lGdb!JgCWOLuU36lWPvt$_Tlj%VdN+ zq|0OsIV0p@qeXunFs2J*4^w=dp#KFyGsCkEuxE%NC?_I=}YLq1)|Wo^yrLLS%T(+!!~ zW_e`d}akk1sd@6TsiHlJz8X9}4ufnI;6ko{SM zGmXv6d}H|cJ)YKCLav%M_Je-pKg*EM60)CfoF!yG-#AOi9KWpvr9P*oY+Zzm-9v)n2Cn< zm@9^5y%Dm$2pKc3aM=qYWXy8HdfOvpjD2A}<{n`gGmx;1xkFfXX@rdVLRgR4LA{I~ zzZSBjJ;hqnX6VH+{M$FL&8!phT(d^MFdmHqN$c<7^?% z)7G4A$Y)!%akh||DbnlCHe|-Dn7Ue%H(KP47I~u~Z?wo8E%HV~X4H$RYc#pbB6nHj zE<^6J$Xyn>%a9p6W4NEgtBrFk@;Mgy978_GBA;WC&oN|1;DCItkQeCvoGWC%rJQTX z=L&hg(PDn^QLM3^&oyMm@tFFU*4kv*yvee8lOb=iY~EzqyvdN+8^qKeP2LQ$BmcUR zp0ZiUeqX!UkT(n2?`t;;`Qsqa=FNu8J|(6;p~+h;@)nD{#gMmHC4f#Tge4*5aPrlID%-k%d z_G{jkC7HR#)IGXnzg4o|D%oFGl4GgMQKmlUrHpMfEE|ZB4MxcF z5i-ukgn2^|vf&8XNQA5yA-f_%#<_~{eoGOu(Fhqw{Nb`3xrb#OzlUX4M#w4=vTB5^ z79nGXAKnLZ^RSHBb6CcFI4ol(8}2Ed$c- znelmRY^z_@i~(V|rmYSN<008PAO8}#zLgKk-oK_x4x;37b*-E&B&NQuOXjVTc`5m@ zE}0M6&2|)1kLZ#Gt7Jh+KB`L=LM7SSV(J@s=aCJeWX$A@LvqyLG~0O8;W!JFS^)1=90NdR$%T~#DJCSq_zCG<4tvp7)HSq=SD0OTRb_|Hyng+QD(sj-?Dyt*E3n;BpEhOa z+kW0#F}}?h9gwSXL}^{7YLTmkTorQGXp!84HSWJ^$c*%k`kB_M3E8)~W|3=#T(fMh zNe1HETr*_$7moV5CQk@?fmvfl?bpVHAx{W-nbD%n?O3DD6Cita#$Lx!FKDfu7I~-G z{Gu+i(~x&sK@@|W~TgXRZ8*6a4A@3IQuS^-%^UFrduV?ngj(SCFT_t4S z>#h>Ae+I8IZs+9F?V$X8qBt1a@?hRn>sQLk$9 zHCAn0Bjj_jjkR%&Azx$F#x+8I&1m_x!Tcg1e?-WBOZkXJ{)i!eM99mvH6Ic3Z#4NM z#%5+I4u0$9#jB4B*^gHr1)1@ReYY2{K8kWN^@i4FHsh$@nzj0Qn2$->!?BIW`!QqH z$6!@3KkzYdm#8<57U|5t_drsgCsFosk=egX`b326lM%8{iR_eV_)z|Dny!tIT^Av{ zK0(Orm*ZY5we>iWH(31J{uwXT!ieF2-&R>vfCnLw@1i6A0fLV zLUw0_?5+qI$Kc_5;pjOm) z{T}b$8cV)q*4R?#nKg3W#@dhY>!VMEIBXvQ=aX`5%&XZ>`O8PIpZlcP;xj%OVz50q z>K(k(mQNXmx5obU51RNX;dpXp8x5w+EUf(tqs9BQsl`_5sQ*Q4U2BoAg>{ai-_h1< z4f$GF7m%+-%`a8|(rEc)w(Wp?osj*U;5s4u=kz*5zRn_FXOXYNdGTy!gmBdVigzBt z^_I=o3)zqR*BkQn7WsN1{}l*4vg-|*amG=9t;si7 z{tez)&z}*p-wS?5$YpE2am2>Dm041MF@8ZG|}GX6U1-)XIzta`pl$ZT6YH#Zsb zO_t3!iOv6;(elZR;sN<)%jTP{+PK+}Zx%Ao5Rda_A^SP*&89Zk7X;+b3fcGP&syZq z8uDi?n?GyW{8>Y0j}nkSCuIK&e$FC)&X7MRG4m`I`zJ0ed4y{qK19*6Q|X=&?N;sHZjo;{LCF76m-&Jre?iC%djDS#@_#Z~emyhuan!q7Yp+G#E966UnZ1U* z*COu~^4}RPpUnIzAb(NFzHfX{$bMY=q9K3LB7e~$f6>$iv#@~tC5!wetDe7P$X~MR z`Ab6n&)ViM88UM@NBy68=h^tOkbU3yvXK2g@5_e#Wg-8)DMNq$2TlI6A>VD0@3w5d z+p_s?L%!Q0-z_%#@***79&-;9tw79o2)LiR+2>{}7CZ%4?UjF3GQA^T2*?7I=Nrz2$Fi;#Uk zLiU3Q*)tKcXCq`kjF9~(LiXd3jP2rH$O6y4*J_RTTAqEc@$7rWv;PZ9GRwGEJloGQ z=(~>kzwu7`eO4R1Pk4Txa-ZSdXSJ03td?@0X@hJ50r`Hb4c>2AdcPsxZ;|h}$oCsE z+fhJ%K*(u*1P@r`2MqZEA^REa148~slwlA5fFZLr2IL2Y>_^cDE%Jkg{GgEiyz@aJ z`+4VshRinYsQ*V>`BkenzAEJZS6lN{L;k9e{l5FFLjI%C@_Q>rhJgH#kp153Ao*y^l z$1U>X7Wr{QX0PU`S=#0&tlD@&$bJ-k!jPY^$WI8_&t#r3WcG~#`CCHvedAk}&EGQQ zZwc9t_um5fWH7u@CHvKY_ifA4Z(F=?8{W5t=X>$D#ZupkziljK?~J|ZI(X8m-6w^7 zE;Q&7Pa5)*LcR!c`r4C1o}+#3Nke|hB0pu>{FFt0%8;KD@^VdnO2~6H`6)wYrhw-b zX`8=e+58MKd@@!2NwAU zhWrD|<{t?8a83S!Av2qE)Ix3ZGnUQI2-)}NXAJonA^TqUjF1;;@-v3aoY0YH#j(zw z74ngKKhIh=KWoU(S~fpx+5D^_GqViHKNPZ`zx>c5|ImwWag(lf*%Qa71o$v{z%A(vw9mxmB(n_j|`7x9pz}=kA>&Q;vZX<{@7UhW2<(5 zES4Ut$v+k{M`+K193G)PA0himgzTpgvY$oBejXuvAwu?IgzOg)vR_8XUW$;h1&5FA zHeL|&T5a5g^-tP@-GaTQOZ#(wAL?$?Dqk`6f!dp_5r^Xvfl^%Qg|yh@0W(h z2!|&fXx>X!?Y<;D--}-|mcC@w?n^>GRg+&bWO{i({*_e+zp}``GUQ(g*>4}e60+Yu zer3pvwvJk@ZGKtEe&7AFsROo;mks%4A$OuAYxiX#`_bZMLuSkl$gfy7zhaSJG2~aQ z+IU6Ce&79yAv5yhO0Ty0*FyHs+pi6o_uBnh$nYNMd*cQ65RPipWnY!Den0)HlwAuA z9`CEhs#nFT`H=H?Ulpt3`W(G#tYSYCkYBTo_cbB=e)^grzb0hgPhS(V@29UBGJ7jW zHEElFBjmr;*8E1uex&)0A^%3me%tzukQ3VG-xxCcyny_=W%KKn&958s>q7SZ>UAL} zHTiWzX3y!UW^MBuRz1HVWVS8V^BaczhLD%(BYQ*0?MBO=5n=xukbf&=Kkok4BLCKq ze=FoJP5!NrQ`+X=8k^aR2jn-c+IZ6*xR>ho8K~IW;X%(Z6W*q{I+HD+lKtMkpCVf*#_Sh zoBu)Y|7}BNjuepJ5whQNz9VG64ZdT@?^rg!BV^y^cMO@C*3oK>KC(Xu*^fDY0QqQn z78Gs!19(TP<=WCefOm{K4ds~2|KmQ0Lr>8DqsRcn%fBn_PZ6>|N67YtWPhuA_@MQ7 zH-d$StiQ`+7w}94`HXiHSU+6Ne0QbD=e@fSpW)YZHDAi%Fkrh<82V55i1>ZDJ8FNAh;PQzaSrqm z@%rC<{I~vq_%}{CTI$n#Ks+A!en_y66E)?5?s?JXDWvQ1H7n$Lbd6b|hrCaZkj;pY z!8@ju<-Wqa*%7ii5i&YVxa_cSwYcoqAaB&&_P4 z3}mdK+0b=V2ez?JW?OZ__T#7xy4)PA+#IXi9IG7Ln4>y%xw%%kxmLNkRyo$Uqt4dl z=2_+DS>@(g<#;X~wNaOwZo6R=Gp1a)(;w7&{!bNtZj!DtDMw?l7wyvD%%<jkD#tkGsBT?ukyUPyRc?`0jur}#zaSL)#Z+|${i);SaWO-M_J_ki@WxT47J&eDOxGA=u6o7Rn4 zy0MThOTjdz{9d(f|cf6F_ zAbVJV2d&x1%>KYp7i--UEZq}Ay6h($b&1wJ(b7FJq|5%pQI~4nlPq062HCH7<~1&K z!+qwG2-(sI*~t;IWf8JdB4o=WWGfel%xb?KLm>esqUEZrp`UHYq|F4wwCMb~flOQGxi1cI^9d-$-QFVUwR zmDA-;w#uC>xaMYkKcZ!tDV~zRFDWPLx zo54eRwC-|CcX>#cZOKtXT6cw|yCS5^Hij{$)?I1ot_#nkNSA}%hCLLAO zx~E#Yr-pRdRvmSP)?F>SJFv!jSRK-38+KGl>o!=r4Iy2&ZAXo2-A2)U5i)WcL%MA9 zjvCXtanYsEP&XdZWh`)1S?e|#8|bG^(DfcSLqBP<&Nt(QqsDc)gek{;BtrXO9C6f@ zS~qFwCPTW6FOI5c-DXR-Ii$#(Y26k}wW2OYIr>$X|CZ6RI8M@Lz-!mo)*$&JayDHTK9BI_wF5|MJKBjfgvUJa?(`CM}7P{eBzb-e@PAr7r!_Q6Ja3>nz=MAzk{bqduW^ z*IT;lL%Q^1M}1Q3wp+UGAzk{nqdui|J1pIfkS_h+QP*nS4VLbPkS^PUqps7sotAEA zNSE!zQP*qTvn}1TL%M7~j=DkXZnShahIHAk@aPMz+hyr?g>>289Cf4CJ;%~LC#1`E z=%~+V-E%G7b3?jppN_go>u$1iH-&WBZXI>A*4=FBZVu_PJ);lTx?3#WEg@aDb4Ptn z>vmhZ-637Je@ES-b$cw`o{%o%f}?KLy60KC=Y@0`FC2B7*4=99ZVl-&jyURet=ntq z_J(vBUmW#$t=nhm_JwpAcaT?W-SaKo^Fz9fM~=Ev>t0~#UJ%k{oO0A%T6deJyDg;4 z_~ocCXx;6W?)H!_%PYTXMh-3vpyjCYRuqSn30(!D68%Q)z$FKOM2E!~Slx{QyG z`m)x&#L~Saq|3O8$G&OZOD)|?L%NKoj{1t$z0A_RETqdg>!^FQZoj45U#H9d|8nSt z`^a2`Y#>557?LqYUk;h0?$!Ig+}ii$b^E3+_v5Jhv~JGQ&4qNie@ES~bq6fnfsiik za?}G_chJ%utkbQ(Jm}V69-Mm+mj_X17WONb2l1(-XH)Wk0;R0WgR&Jyd9U}mJgBw) z^6@`S4bUwn-Hn1-`GV?J(+z-!^$={W03Jtyy~b1^*@S!`>_Shb{wR#|}^U0p58fj3~w~+HoL7sejlDp5`<>V6KdR&N8mL zVZ#*%Qryzv{%1hq*MYV1JytmS;cFW9Taw3Mdg~wbomX=GeSeVSKT7Xt79O@ef#V-V ze#CR%1uqzqb3#cC{~o9;|9ED9c5#N6`(?jzp!;WieZ%a(1A7=08w%oqAIu)k%5lH` iYkzju%h~>G^@0!i-QPDq4+O>j^+5CvROiF&|NjG@PMN^~