From a8e798db3a75a07201f358cd17a09c721d515c5b Mon Sep 17 00:00:00 2001 From: matsuo Date: Mon, 4 Oct 2021 11:19:47 +0900 Subject: [PATCH] =?UTF-8?q?CSRender=20Readme.txt=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E3=80=82/Result=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E6=83=85?= =?UTF-8?q?=E5=A0=B1=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CSRender/CSRender_ReadMe.txt | 5 +++++ CSRender/Program.cs | 41 ++++++++++++++++++++--------------- bin/Release/CSRender.exe | Bin 71168 -> 75776 bytes 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/CSRender/CSRender_ReadMe.txt b/CSRender/CSRender_ReadMe.txt index 63c24da..59aea8c 100644 --- a/CSRender/CSRender_ReadMe.txt +++ b/CSRender/CSRender_ReadMe.txt @@ -1,3 +1,8 @@ +V1.3.1.0:2021/10/04 :UWP—pAData.pdf‚ÌíœA®— + * UWP—pƒR[ƒhíœB’Êí‚̃tƒ@ƒCƒ‹ƒAƒNƒZƒX‚âMemoryStream‚É•ÏX + * Widnows RT Windows.Data.pdf‚ÌŽg—p‚ðíœ.PDFium‚݂̂Ƃµ‚½ + * /ParaPageƒIƒvƒVƒ‡ƒ“’ljÁBPageRender‚̃XƒŒƒbƒh”(Def=4) + * TIFFo—ÍŽž‚ÌJpeg‚̃mƒCƒYíœ V1.3.0.4:2021/04/29 :Help‚Ì‹Lq”²‚¯ "/Result"‚̑Ήž V1.3.0.3:2020/11/22 :/Result <”äŠrŒ‹‰Ê> ‚ðŽÀ‘•Bdiff‰æ‘œ‚ðo—Í diff --git a/CSRender/Program.cs b/CSRender/Program.cs index 8b67106..ec7d4f8 100644 --- a/CSRender/Program.cs +++ b/CSRender/Program.cs @@ -105,14 +105,16 @@ For more information,see /H /? or /? [Basic Rendering] 基本的ãªãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚° {pgName} [/] /F : pdfPath(pdfファイルå|ディレクトリ) /Fã¯çœç•¥å¯èƒ½ - /O : 出力ディレクトリ。çœç•¥æ™‚ã¯""IMG""フォルダ + /O|Output : 出力ディレクトリ。 + çœç•¥æ™‚ã¯PDF指定ã®å ´åˆã¯åŒä¸€éšŽå±¤ã®"".IMG""フォルダ。 + ディレクトリ指定ã®å ´åˆã¯""<ディレクトリå>.IMG""ã€å·®åˆ†ç”»åƒã¯""<ディレクトリå>.DiffImage""。 [Render Options] レンダリングオプション - /D <è§£åƒåº¦> : è§£åƒåº¦æŒ‡å®š 9 - 300dpi(default=72dpi) + /D|Dpi <è§£åƒåº¦> : è§£åƒåº¦æŒ‡å®š 9 - 300dpi(default=72dpi) /JPG,/JPEG,/PNG,/TIF,/TIFF,/GIF,/BMP: Select one output format.(default=/JPG) /JPEGQ : Jpegã®å“質指定1-100(default=91) - /P : ページã®ç¯„囲を指定ã™ã‚‹(çœç•¥æ™‚ã¯å…¨ãƒšãƒ¼ã‚¸) + /P|Page : ページã®ç¯„囲を指定ã™ã‚‹(çœç•¥æ™‚ã¯å…¨ãƒšãƒ¼ã‚¸) 連続ã—ãŸç¯„囲を指定ã™ã‚‹å ´åˆã¯ã€ãƒã‚¤ãƒ•ン('-')を用ã„る。終了å´ã‚’çœç•¥ã™ã‚‹ã¨æœ€çµ‚pageã¾ã§ã€‚ 複数ã®ãƒšãƒ¼ã‚¸ã‚’指定ã™ã‚‹å ´åˆã¯ã€ã‚«ãƒ³ãƒžï¼ˆ',')を用ã„ã‚‹ Ex. /P ""1,2,30-100"" //1,2pages and 30-100pages. @@ -122,26 +124,26 @@ For more information,see /H /? or /? /OP <0|1> : オーãƒãƒ¼ãƒ—リントã®On/Off (çœç•¥æ™‚ã¯1)(*unsupport allways on[1]) /U <0|1> : åŒå上書ã設定 0:上書ãã—ãªã„ 1:上書ã(*unsupport allways overwrite[1]) /OFFSET : ミリå˜ä½ã§ã‚ªãƒ•セットを指定ã™ã‚‹ï¼ˆçœç•¥æ™‚ã¯å…±ã«0mm)(*unsupport) - /PDFium <0or1>: Googoleã®PDFiumViewerエンジンを使用ã™ã‚‹(default=1> - ã€æœªã€‘/BM,/BT,/BA,/BA,/BC: Select one box.(default=/BC:CrobBox): Boxies:MediaBox/BleedBox/TrimBox/ArtBox/CropBox + [Obs]/PDFium <0or1>: Googoleã®PDFiumViewerエンジンを使用ã™ã‚‹(default=1> + [未]/BM,/BT,/BA,/BA,/BC: Select one box.(default=/BC:CrobBox): Boxies:MediaBox/BleedBox/TrimBox/ArtBox/CropBox [Make Hash command] 比較用ãƒãƒƒã‚·ãƒ¥å€¤ä½œæˆã‚³ãƒžãƒ³ãƒ‰ {pgName} /MkHash ...... /MKHash : ãƒãƒƒã‚·ãƒ¥å€¤ã‚’出力ã™ã‚‹ã€‚å‰è¨˜ã®[Render Options]を指定ã™ã‚‹ã“㨠- [HASHファイル作æˆ] [Compare command] 比較コマンド - {pgName} /FC ...... + {pgName} /FC ...... [/F] [/Ref|Refernce] /FC : 2ã¤ã®PDFを比較ã™ã‚‹ã€‚å‰è¨˜ã®[Render Options]を指定ã™ã‚‹ã“ã¨ã€‚ç„¡å引数ãŒ2ã¤å¿…è¦ã§ã™ 事å‰ã«/MkHashを実行ã—ã¦ãŠãã“ã¨ã§é«˜é€Ÿã«å‡¦ç†ã§ãã‚‹ - /RESULT : æ¯”è¼ƒçµæžœã‚’æ ¼ç´ã™ã‚‹ãƒ•ァイルパス + /Ref|Reference <> : 比較ファイル指定 + /Result : æ¯”è¼ƒçµæžœã‚’æ ¼ç´ã™ã‚‹ãƒ•ァイルパス /FCコマンドを指定ã™ã‚‹ã¨ä¸€è‡´ã—ãŸã‚‰0,ä¸ä¸€è‡´ãªã‚‰1ã‚’è¿”å´ã™ã‚‹ã‚ˆã†ã«ãªã‚‹ ã¯ã€,<[OK] or [@Difference]>ã®è¡Œã§æ§‹æˆã•れる [ELSE ] ãã®ä»–ã®ã‚ªãƒ—ション - /NoExeSepa :実行分離ã—ãªã„(é…ã„) /Para <プロセス並行数>:本Exeã®ä¸¦è¡Œæ•°ã‚’指定(デフォルト4) /ParaPage <ページ処ç†ã‚¹ãƒ¬ãƒƒãƒ‰æ•°>:ページ処ç†ã®ã‚¹ãƒ¬ãƒƒãƒ‰æ•°ã‚’指定(デフォルト4) + [obs]/NoExeSepa :実行分離ã—ãªã„(é…ã„) /H or /? : This help"); // HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH @@ -201,9 +203,11 @@ For more information,see /H /? or /? return -1; } else if (isOpt("/F")) { pm.pdfPath = (qu.Count > 0) ? qu.Dequeue() : "";// next word. - } else if (isOpt("/O")) { + } else if (isOpt("/Ref","/Reference")) { + pm.pdfPathRef = (qu.Count > 0) ? qu.Dequeue() : "";// next word. + } else if (isOpt("/O","/Output")) { pm.outuptImageDir = (qu.Count > 0) ? qu.Dequeue() : "";// next word. - } else if (isOpt("/D")) { + } else if (isOpt("/D","/DPI")) { pm.dpi = (qu.Count > 0) ? qu.Dequeue() : "";// next word. if (!double.TryParse(pm.dpi, out double dmy)) { Console.WriteLine($"è§£åƒåº¦ãŒä¸æ­£ã§ã™:/D {pm.dpi}"); @@ -220,11 +224,11 @@ For more information,see /H /? or /? } else if (isOpt("/ParaPage")) { string paraNum = (qu.Count > 0) ? qu.Dequeue() : "";// next word. if (!int.TryParse(paraNum, out pm.paraPage)){ - Console.WriteLine($"並行数(ページスレッド数ãŒä¸æ­£ã§ã™:/paraPage {paraNum}"); + Console.WriteLine($"並行数(ページスレッド数ãŒä¸æ­£ã§ã™:/ParaPage {paraNum}"); DispHelpNoArg(); return -1; } - } else if (isOpt("/P")) { + } else if (isOpt("/P","/Page")) { pm.pageRange = (qu.Count > 0) ? qu.Dequeue() : "";// next word. } else if (isOpt("/JPG", "/JPEG")) { pm.imageType = "JPG"; @@ -277,8 +281,6 @@ For more information,see /H /? or /? var arg = (qu.Count > 0) ? qu.Dequeue() : "True";// next word. string[] sel = {"True","1","ON"}; pm.bVerbose = sel.Contains(arg, eIgnoreCase); - - } else if (isOpt("/SubExe")) { pm.subExe = (qu.Count > 0) ? qu.Dequeue() : null;// next word. var sp = pm.subExe.Split(':'); @@ -600,6 +602,7 @@ For more information,see /H /? or /? if ( !loopResult.IsCompleted ) { Console.WriteLine("Abort!"); pm.bMkHash = false;// Hash値ä¿å­˜æŠ‘制 + ret=-1; } ////tokenSource.Cancel();// 処ç†ã®ã‚­ãƒ£ãƒ³ã‚»ãƒ« //if ( tokenSource.IsCancellationRequested ) { @@ -674,6 +677,9 @@ For more information,see /H /? or /? watch.Stop(); var SummaryResult = $"\n[çµæžœ]\n"; + SummaryResult += $"Args ={argsStr}\n"; + SummaryResult += $"Target ={pm.pdfPath}\n"; + SummaryResult += $"Reference={pm.pdfPathRef}\n"; SummaryResult += $"䏿•´åˆãƒ•ァイル群={pdfPathLstNoBoth.Count()}\n"; foreach (var f in pdfPathLstNoBoth) { SummaryResult += $"\tWarning [no match]={f}\n"; @@ -688,7 +694,8 @@ For more information,see /H /? or /? File.WriteAllText(Path.GetFullPath(pm.resultPath), (SummaryResult + rData)); } echo($"****************[終了]セパã®FCモード***{argsStr}***************"); - } else { // NoExeSepa + ret = noMatchPageNum;// 返値 0:OK,!0=ä¸ä¸€è‡´Pageæ•° + } else { // NoExeSepa -> Obsolate echo($@"****************NoExeSepa*****{argsStr}**************"); if (pm.resultPath != "") {// åˆæœŸåŒ– File.WriteAllText(Path.GetFullPath(pm.resultPath), ""); @@ -736,7 +743,7 @@ For more information,see /H /? or /? } watch.Stop(); Console.WriteLine($"result={ret},time={ watch.ElapsedMilliseconds / 1000.0 }[sec]"); - return ret;//success. + return ret;//success. // 返値 0:OK,!0=ä¸ä¸€è‡´Pageæ•° } // リソースã‹ã‚‰ã®å–å¾— diff --git a/bin/Release/CSRender.exe b/bin/Release/CSRender.exe index 620d841505545f45132fb8a918713f5b8b78bb3b..006e3d54e5871083a3d43097fe0df579a38e99a7 100644 GIT binary patch delta 24217 zcmb_^31C#!)&F_RyqS5KnarEX%w!>u1QLd10>d8mMS_6HBA_71BD)|1Gq_+FCWOVR zh{mZXXsrle>sqz(tKv@Gt*ua(er_nOS~pN^wY9DI{my-FCNF^f{J#G`nDg#g?z!il zbMLv!d$IX$wfTU0?T^AcH|;+}*3TDIMFn!4sHpXpU5=Z3OVn_~C`B5YT_;8Kz5$7- z0+L19T~eJC&OR%R4!?gsQS?G0uuzvY&jF%q7i33Cwb^lUU0FXOwYol1v!O2v$F&)d zNR<-l)y@5~+vRR${X6o{W`4Qg_iy{H+)b7SWWQ9$0uFL?kp{HQay+3(t=SUykh!Jl zAnMA=7i3zUE)vC8xEK<}x40M<#Sgd`5yc~1EEdIK5{jL;7)hf+estzXbTC@4rR<&V z8#0xCT76q}nRZ)sr(}hJau@ChqC1bO2E1 zhV-Db!RsOl_zh=b9_t$dmf>&WM^q!K>r&sh99)xxZp=L#X zq!3BHI(Y*N{}dpxWT7D3#e_B{nD}FiKhusMWSpa5@!w$laE>1|O0GuKrRs3GfR zxCok)XF?Nr*=e4tu}ke*$A6!ff}*eICi}xw6&XdA zDjtcZsxw&C&skMbbR2X?F{bq>(t{SN&Bx_1>qlJvY;UJMyqQzSm#1*UXR0l}f3fs@ zYu6JpZA#`Rc*8@e6UmJUcf>ZNaF)6H(wtPZjns|O47!hct6Jy>BE-eAgpU${kDGew#>!v#VjO!bw?b)D<#Ee2PIS?w0aJ%zEwML{K8D3=iuvmf` zzQZDFL?V6jmazJUk3l^}^?W>*+Kh{xYqMq@82O|bEY9a)rt?_eRGi^Laq@B|1g%xa zC^3o=DqazyPAny9i~+S_F^tH!c(uL7xn>vg?J7n2Hq%)Aav6<_k*l$IVI}A?_$P@A z5bo`n<;6oi+`XSbqp7Ef1?_IixB8sD)x6_)(QbGiA<4_VW0(8)<1?d+EkMH+sNZ4v z?A5n8c?5cL#C(FQTVR>VYmiu$qAPejTlvwFPcye}fF;V~Db~Y6c+tt%%jmIyNzYYe zcFvWSW?Gfyh;jLB^FSyYJnCY=7Ra;ef*O*4^^90^!rcbvKIMqg1bG`8>1$BE{Ye3$H z2Bj{3@rWit2o@LxvEh+|ykG|7VGQ>n1+K@nVKi&!9rGv@j%!G(T52s=)y>R_y5Un# z>S7RTEEPPw!p9|}U|y`&73>rame-XUos9BbK_po?Mm0JoE`hvJ9+?>|H_DAp+n4t_ zl&^d?se@kT2#HM8)M0$;F;8+z&cC5rn@C63a;2!{+O3vr-z^Hqg=+=#l)e}=7VR1Z zh{xXcN@hHS8F{yO-5X9r6E?SCXOwdbbA(&GR__Oyz3<{SxTJKEOlp+5+lJPRitPXaycw$~)-sy>E06TFbaHFef5!N_8 z=*`c{vCxDzm*5c{0hT!<4X+vV21^Ssw)J(OZh}ZnU1huSj2g{1nY@&>m<^Z`hBwXK z5?u=V%txUXN)H0jIe5L?p{gKzfmIZnD_?X1tO|CsXgpf~od(SDrV~{ZnksUsrV~_{LEQ}R#Y!#BOpa~= z#pG>8DYpcONHWW2gb=k=HM|D1InOrnt~&WJyb(6K8M$V8hhfQ!t$ii{Yb0aIs(!c$3$GS5zk(xvY1h;q^Jg zZ8Zj6;K9^z#e5mVZPX;tL9JmXlf0IYFpI~1@&FG?vC4~)+1;oyx+f-a9~x>_FhL)`7sor31k> z?nFZ!nC!cl%dl(!i%qFN--wC`rZbFMR1wM!mH&^%m?7?TKN{7`^y(^fU~@;iyALIM3f!U6M5KcS<|(coyNZP~5Y1U|=R={o~xi_lV+5 zUtQiof(^SZ5($T*4n!|80HPiE=JL{k^uL?4r|f?$nvce-+*fgYsB1q{9L*DLPKxK9 z6#qUaaZ)|ONgRJO8U8yj{U4mv!6)4Csnbj*HxYkm9tfBVd@j*)`m~+4YRYr&%6o7m zNI7G~R9Oo`emrML%Q3~IK4G!1IEi_}k{=Gn!om7*uy+HWr8-E9PTNwH(K~Ss#*ewd z>XW>V?dqM0%oJHGS2Le8OlqI#O0ELxDaPIR>F#SOGx`W)jlSl?K5x03yx;$El{?h}p?AgE6Bw$i0o;CK>rR-{lcc9{=t; z!;`ocy-ofS?g{oZdM2MdF@CRe{3b(2u-~+?MFiRH$&NB#oG8Q7)|AQQ6=|Ij5A$@; zzK)3GfOgb`bx!DcTn&kB&9$kO#E=+1~vEMZpc1eV~mFvp4k z`_&v4oXtcfUM^%?s@W{Ibm#1V7=}0pSjWN*sc9x>;q^w zr^-GAgcNUWjh;q-ArR%AZ+^CYXtP($wwf-s*_NMdM$FvG&dA^lk*_=!vboNlJXQ0R z&3tu2Z+^f`9niq1>0ATmVB!AfC_E620k%mx(43?L{{0*s_&sw}Y`K1h0Oj}LnAo4v23k`Q7F@1Pxs$=kaxKJKylr>#iHEVdSf|B zR>bQ+rTyl%HW*i^2J!{jGdt@8e+-3DpmywK1X_zcxq{+IN;9o6n@I-sr+bSq51+X zwG5Ta8cG@`XB7uS7KmtpmU#w764GN8ISrUv z=2b@fy@J_-s9|1E;PQm4oA(mMxwG4^5De^LOrE*>2^XX;fTbRnmY#+RE>{yjnx^vn zjqYHpa3EG)O$-w^051>+YQLJg5lD^08SRbgUaJ~=A{Ni*odevS*ksxGxfUSmOu&U& zOVEUf{Z-x1f~xDS#_+Dn~{f>+q! zO5FxpP}O3ig*#U89rq;k0ZZf_=C}f`=w1}eg~~?!j~r1fQ>LeUTFm2$_JM1HZinHX z8vPlB5

4xgj`TxV=@-s!6c-sbk7*QS{sLe>kYWb055e zKJuVVVWw);K*j^PATfkn(+oA|f!s53I}|u$)A9}eLNqw+lnt7#y*Fa2b!q8CNi911wMbM0mb{A-7?V|K7p@dx(>!*m!g#p^cxKMy_ z+{p*+STR)CsX_-=PA)+=wI((uCe|`B!n7vl*$Czai@l+Vd;ats@Xgs?DkeM9({b%W z#L_m?O$WrL;=O|K1kZ1+iCq%|iJu9R#L5zPgBx_zbqP44_i#~5{tTuCwCFE@nfonn zAMAUxw|4845m%CnP0yJdQ4D#^XRXPuu4_)6%W#?sT|%L4>*{2cs9OIjwyuujVPq8R znj3GuqL@xFnqyW==9=e`V-2zoQRR%3l;gL_s6iBrI|%CsAyFA3^XOvO)|lfqpOs{h zj|ybPN=MeiDY8+u)}D$qk&480(vW~KYaDbgW|4va0;FWp=fkGd{V=aU&cDQrnJ+Pu zzl7^jL%{PSkLHTrpc)Q38r-Y{XVP6k&1GnbUqXnJV4@9$LC8Xc@&hPG68{O9_!U6( zL4cqu%&+YN6zzvF4~jk7E?V3!8gNG+f^d!Dwgl^4TGRR2B{iMT+sEo2W=(osz|a$q zaIwH?6eOSuHT1+|c-DV#XriGb?doRQb)RTsto~F6W)IgCNsnf~t{F1q322eS7lac} zvf64nu^&%8@oT`;Qvd~;C+w~35R{XiDtyCH!$tA2maIgFqDBogG_gQ! zm8=L!jwJ78*5S!Nir85AB}Hfu?``Y7N-{hL`pmbuUYqi|aZ0kYox_M|wyvj=tjTd$ zL(d!%g91iOF(>S($=)2TlCIA_5e*N24qd7%m9^+7n45SWSn36U0tHL|iztL^VXjK2 z!_*=S4LLdza*leuP}dw$p(67GRPfmS0xCkRqQ0)nqArV4zkzl?$>FfTUIG@86TihH z@jC#I>`J_hXY>Gr(P&hcwZuVY|DM4s00jtRQ44cexr>?6{{l&@3hu~EuiLqO z`G|t`-+lMpp;CM_cWYI)Pi^0sZ$L!XHoS?47z|qKEff=P189kN08@tm3c{Ycpi}h2 zrMVLCf^?fJG81`J$n<&NS({YqU2+o-D!-I`yej)xZKtyLAg6~5>dH0eE{{tDOimmI zG5W{sUu!GFIexLp{}VWJbVatVu2cV)(1GLu2Cp+X1i;@8VvugYpuoUXWi?&L4@Wx2 z4=l>{+4XguGtA?gwf9j4ewCY8im%g5LaE%u@_f-~5<1CE^-K_-Cf4o5Y-@WfbHp8TjPJ0e!T z_qGgC(s6c(*ghB49`GYEL_dH)>O%lsE{T++{)|$A=1hEq=UNu17VibZ z>F(Kh{eXD8bo66L$caw?Q=fi+r5*LXhTIG`PDorK5=l06MUOw@8YdXwloLll7IIqR zD2j>Cuj_ecW;iM+Vm&o2mxV=&@K(A9dtVStDBPTmf~pj!zJQJ&-f+ZosE0F#zGL+0 zZ)-746D7yn-sGIF*@HdDXO0Pdi7)Xeki~w*DKF#Jag=Jl<))Ie#Sh^<& zDE}2@Z$OED#k5{bQ&V4anMaQ&98~MVE-~K3Kr>&at2i&K*s1pUz-lYwO8gCV8oXE# zbIsocLi<1sI_&iI+_-4cG$v<2ly@S70HCEeL`<{oHEqV*$m5U>PU?t_uiN?*4r+Ck zcAmX=+4=FJ^4kzr^N#E!vBc%s)_75--L`OTgwwi082i)(Iax_@EJP%9H8RVJhGs^? zXYW=RvzE7}S|aZ%rkJHs5 zpSVm*YA=>kV=!jY++jKO4cbeiW+s+uRpiUf>6VZ!U7!gHt7pNq)$43VB~w zE(##~>&emGkbDyV07Xk6)tM`amOzj6#6JPr@4+hk7_-rT3CV8-JPw%L(2cTHead#`Kr#J)8d|JEi>cMHNXKbsA@k1$zrdLwDZ8Ribw-jPU6i*pZ*f^%BmRi7E9%R( zt7;$j+QiWX)l9Eux=Vh6ekj(Ro=wK~3K3})7YJ01FUG~i)3yw(k(^q45AAK0p@CS; zPQjV(ds?q)SSI70Vi-O3*lHv?gWz>*;`20@J5dfaDx=RqPr#ELTAe{C6h_tLNLYn? zYUBeP6q4hBDb`tA98ZGU0Y@$cyYS9M;}38&-rLq2$vKb~AypG9JJk02$d&sD(Qxr1 zCq5*^J2pphJ-3%F=+|kAgAHiE>TPC*IS8T{y}8$edZbrRvuEZz%jAvia+=j;j5am8 zGP|N*`M58^&86VsAP+(o=Z|KvC?JzCCFl(YeTEk=ex{)nqd?5OC|q0@=~a>R)W8bR zvIqK=h?nW+kChr4&w_>G zyF2Xq#fNoP>JSq$JAXh$<}Ao5ky)~NK{o+datmRsBzYb8iPEL_#Vzu87)Mp#AO?= z{y_&W8O;?~L3)wJNj<2`h8~$IZd&r=Y;6rbIV-i!3Z~5>8sfT@dthP3ZtQFgY+jL= zt(h&0D}`VI_q`zB_c?h>lMf@z1~v;=LCl*un|=}E1m5fGhZJ-qyT2irISP4m>O1S* zd0)%sB~)p59y9au+O07&pLMT;S#p9Q-kc$s8pA8DJ`OD~ zyqrYLUF825h;w1_4+w-gpbE?}>Wbm~bq5?PcB@>#pITizxO1jK8h)`Pa*a%XkY>cp zyd%?P@{E^r_8mxcsUp9})0AA+tqqMcrBf-xrk0`T$pcqWKwSX!60K;@;L5n|3!vF&`RnT{9%>7S5joyI<=r3k?i;v+*qJ5-c6vM0zchwzo}FGjL+?R_Q{pCd3Zksj%U*Vr zL#Tc@pqFSg!^LiF(3PN07rQU?cc$@?u~4zkU^q0$aHh&|O?a#~Ojifz8XBe0aG2%> zhrz7p4eo#go~xo6&dUQDUFT(UGZzbc*Of3*2DXn@M+OvYbdjLXcXGqQ0Q=@alrb_y zfXd;(0JTPL59zcWE)7r*FFSlwaU5$*fA8&~06i3DN{!4Rs46PPXc*^W|BVxYI0mn4 zv@#=<-s5EJ{#nAXCd9Bd)>zRmgmItv*zMOTY*uX%!^09&K9aaR z%~9;tX+z*BOuXOEaFv_=`W`k{Rdh=r3%?HZXISa;g^Vmk%yil)+@`O{Q`61E$41j>89S{B68xz30Eu&-r;Hl77|!Bc#WtP z7T6@U*58PCW1R)|^Fqcdse(4*J=%Zzo)0iqEwFtGW0|g02b27?D)dEBwbTvoTDgh) z)MHvB1P2LhgyS1;BXY(Vf$erO))QBQEZL|s)|Gg-a;XXkAcq4 z!%v{RLH#x81AKju>i*?n_-GI?Lstq?7xf9SU(^`h9btC8li@R(fG&oART#eOeHJpu z1l+E0d79AR_j5U{GQ3GNaG(2GSD01=7_Jep51>II?FATgm*cm9nMZ``GfTPJKSYzA zg}SW*CQ7(TubbhgqWQV51CZ=p#FX*cYbc-Qcn8oKI_w%iE0j;sm_(lgj*|WY`ZMrT z&O>W`EdT2WcXEo*@VAVE6>WF_6QswBnel4mLBJ6*x%rr@x>;$^9me2`0IruA4p1rp zCn~)lv(+~Ou&Xf9?95Sx^&DjPl2df=Z9kV^FB}cY4>j(p>BTxV!;P6yc}f`z_6Ye5 zK(lOB@G$*x&t$-7g>esw@=*`h^%rtuzw%B4*VJ=z!`J%efcuKZFbadlRbaT$4*H#A zUIyo_n=Q1-wa6{g+X8DPx1(BCsJW6wTd9-4wh3$pJ@2^Ct?wVv5z6lH7a=t+lZ0(OwBX zDzL3|OJU|Npek>PXe;e;{mflTMJ6U(TS^ZItd(x}&caI0pA~ROq(a7)Sy&(c{irvw zQD_nM%4oX4vXqh@bmPVZKh4xyG2Z>88=E@|Yf+xg*wA?R1vhql7V}c&Wp@`^Ce$G6 zO0`@`y98#&xsqHgVIu>txvS_S3wum`%iWdUKb^JiptrP7-Swp6l*(9t z_dnd3e)Jj6q>P?l=+#HkM82Iv4};DU{WN+Sr%~o@@KoqnK5!rfPYkoM)Ky?vdWE{{ zW2wQy?vr}yr_(%v?Qki@gZ1&WL}2C!8c(YPW@;Iqq0M=w9}CItCgyUK&QK=MeHIof z9idO4M@@_#a*ff?pfNZMbI|^*P0%OOjd^UEKAAof*bX{3JV!r^{yvo@H_}_7h59s_ zgcCbs-x|w-WmXEbm5v&#_33nb9$Tl+phE&P?LM2NXAw6HDm5v;z?14H|pXoT{$ z-b@EA<_twH*hp^*%v94tg*aK|OlzS?2dqM1o2W=CENG#>+jyG@`xaqncknjR&F7og zWVxtdGd;*y2F?FPpuZPPv%$^urX_j|c5fy>&TVHpdHc8xnN*@nLVmwYzjXTj3iS#2 z{VIJL@%tULRb}q55{A#ZGVTwxUL*60uwAbY(2Y@S6 z9iT#mXj0`S^OD?R#wnU~iN@Sm2dpH0e2^Np>ciD`AVqJ$MCfl;{m%)@7pO7aV?qH2f1N5M0n*t1pNy!KJJE2nV2F`uS_xbmH$9n z5<^C&&tZ^6e-J~@?7az1iV4jgoA9C%CpH^y3gOE$>~FE1DFM`}2cRE^6NZBX93|j* z0jCOx{KM=8Kteb;aCwb@>jc~=;C?{dgh&kC0vZCA2v{lLK>VFph0&s5NaZuRkR&oSh zro-~{PCp<;7*6wq0H>5>LSR2#d=22=A}sp1$ZPbme7WmQlpAoAzCx(j3FwD$BTC-| ze5T}m+DZR#e1dZS$QO_)b04R}w5dqJhni;pUMex9!&K&qN-PrtoEzyQNeXW~nKDdr zE6|ytk5Shk)_i(u%7!v^>Dm({5+2TDkOL@*cPrhG%&blD9tpS)aALr=;>Gia;^ zu`e!sSso*->qd(lp9s}oz}^o+7oz-7@wX^Di(JY?#6Bra6r*9eG@_(LS*~1A+(o%U zVOO^*A2@52R;AT7Oj@pdRnkSdL+%Z;T9wm%HOc}dUQ(yvr6jtvQ}}zMB=-Lsr9-%1 zpDs+fLwP$mM7cs*=D3D-O7s0usT=w_Sy?Wv!^P2ZX+_ZtC<>RDUE>z zXl6?=D!n0{>sY6}A^ijm%n_YgWa)g)n+2VR>R~Zc-jH4lJf}>R7iI#lDBnn}o;Q?M z$&KrhZ-me>2>l84dp(~hl6--058j`=7uiDxm2r+Ql!MAw80W{NDaO~R#Y$I-psW-@ z83RAnsB7V;!RmTi>zRZy&z%KI6?(r}n6(r4Y@5_Kl1N4_~PsR_-mlR{dC6 z>xoJS5v?24gNXOd>TbEWbC0?WO54;Q3+Hb}fG(7eDXet2d`ZdE>NmoftR2ORRk+%*K%N-dLkr{&T$iAHFpzePQg=ay z=gua_UeV)GYI*5ya6?5u1BFM}UNH_bYe14{uZZz1d3<;un&Ha(rRvfrVdKkUSe@># zQ4Z4<=X;KIkpIZB5%8#Exw<&=FUK17e8s1&QBOl>Il86VI`zz8t+rg<5*Y-_B_*T4 zy~aCM<61MdRzN>pA*SdR8RZQ%p;1B^%6ZA7^1?bZRWww9|X%i?b=pMinJq*}Hzb@EASCK#Cd5Uf#zvnRR0sIr) zMcX_iZ9-X+n4(C`-6SZRq(|s2FX9TyQ-c1Ul%lU0KwXxo(A^R0>L0 znKh3Tlu?3`IZcq}3(^8XY8K^J?Z3AppxtZMpN{&5L~>iwo)J^f!!{OQau3*GRjhHt9TNk+M?xh4L?DnmR{4sD7p5TT#aq zj$b%lbiC|%&7o)&+C*)>c9FJG+os*3J*eI6+~Y))aqlGFs5y(v3y4ZetFpb%4rb~L zyB7AxMr*#*S?(c^k)MIF)>u8qyL9o|c~g>!g^N?E zL^8W{^<3v!s55Hi%C;w0H%M*YtodA%ujrNiuECX2iD?l9WZ772@rc{a_Jx@Dp$VD$tNuV)^ zo+LR22Zkm1H=ZuU0b(gFhADE^dD$7x^)P%jEpMB8*?E$CJxwv$ZTB>Nthi^x1?M9P zo|pY@b0~Xf=6r27)h<1c+5*kpCAsT-Nsbrl{1Xm*`Rw-D(frQ2ImsNc@rbzIe@~ zi9cGscsNwYmNwF*Fltpid-Im6(e2eNkD&TcdNcm7_(Smzr)q2WAx=-lUx=HP+v%&I z)Z}Du-O?EzOjsVAyrplp&(_DrxO4uXP_D!t$@P~Uz2I~zWSAd)#MCiFs5=JT8K3=T z>$thWlTD;SW`ClVp*d4lFP<3pPFlEPX?#|EFkHo5Vvn?UO+o{>hAc377$0qomtP=f znm0{E2bN;+EQI(ptyQ~%w!C!AdaEa*8TD-V3$1y5}vXwU#W&2&VAmioN zdkILd#p_C{&oyR$R#02~Q2Z|#E2Gm}C$)2=VeREpmmY~9jIWB1MKb*(#@!2XyOdPI z7`}Ty`5zCSGvV%W!tKkjSXE#!oq++o%%W6??kyo2_86oO>vOygw+@Gti|IMs+s#M-yKDk8Mo35(J;0^g~nv%X5*+(ZSGzvXf z3TxWuG{U0byS)$(Hs&qnG$8(Qz|7FuCmN__-brg0yQb&T$=*zEK%<2oZoCX;O{>uB zRg``9%Cd%%Nl4*2>D7yE(q+sslfdf5+^UV&`>gC^SH+8aa|cpa#_{KZJmi)LwTqCc zDzA&++YV{O$vy8#nN2)?&ZAS03MoI(JJ!l!^zTNS%A+VdbxY8l6R*wgyQ*KNB!PLp z8jcieAneXho5*Qm2rU3_G3fcBHZ7M@dY+U8CJRl=FbKyEm5=4z}35_vaKe`MOn7W%lvwDh&GRb)P@q z{j0kh_cVU+o6o;~?X9-IU)LrD7CHw7rpx8Na$hLWe2?Vwxw4P`xcqdV3;)V}KK!}> zLq_vs;Q0b0`JXQ^2ao3cM)NZ+=JGECjbyH%nVN8$>B_pVua)k|_Pc(-fIFnlq*X|0 zNpX-2K_{s`U#Cu;R9y-bsU&%Q04^wzjE(zz5S0TPAIsi&{h|x^GsovcH9&VLu<@Ym z3N*hHBvn`dOY$^Fg%l*0Qi1Qwu@_aGQn9QRJDsYpypyYw$LRU){0Oc?_lmHXg~Yz2VHREs_&ma0HrPa8|&) z5??2LSk#&1&Uia41zNoLFZ=!t6Z|1xg%a4<-)J$6mJ*{SlpTI!Cug~%f&wj-*#$RN zxhhc~6)Lk=-8gu1HLR8bYrGYzj=MJ{A~>J!_z45M;~o zXUwQk?r?(%&c;Tc50{S{8zB#gY|+jhQjfObJL@H>F}reCl^b!Bjg1Ip_J&=zs46zv zZT)TvNZAQDuj*5XKPg6F7x{d$3^5#6opA0Em(LF(NaPXW6#^W5+12*Z%~4gNHs9_Y z3&Iawc5n;trEv-nZ(&}=|3m)O;0+JUQkB2l^N1(?dtc*?NB?@~tw%mBdhjz)r5mOw P(&G%qKIl`WFOB~O*OYNN delta 19937 zcmb7s34B!5_5XRxyqS5kWZq0NGua>n5+2C}!fL`MC_zvb0Z|YIqNsrAz>NDayaYr= zL5*WkaH)tEQL!p@q1FZ0;)+%KQ;S-v_>-!w*#7ET{D04VZ-xo#r~Sv~ynD_)+dcQ( zbMLz^v}3p0aj$yq71851UidIMKVMKS`Q&CIx$D-AuG?xPYPn%-sWdWou@uvfkR+lS zaLT!jQlq5io|le__L)ue*%?IWf-GsFCyB0Y&yAHDauejn%E3fxT~n-n#UL~eYBRx+ zt{~FuItJ&imitr=>E3@L_g9PlA=_V(`^eJJ+?VQjz*bjJY3TOZt|t}g%3Qg3#EGe0 zGA+$UATOuh;AW|4{)wAqqPdToQPKRIn=#QGC81f#%~-a|e!!qAo5NwYA@`v725W2y zExo<2QoFsbDm6ERw%LY0^JHegFe{t=bPo*cL`HfpJl3^zPdu{2peO1p^_K>;^c?hO zj{rfmB5G<;DJ_k-Mwf9MdtlW`8F!@p|)6JF0V zL_+23Fl|y@H1!T>x7Wo|ABbl>wU3|SlH4|5%sODV%{~Z3!qhSx3ykhGxDai2r#R}3 z?)-3r=xiCO5ykSVzxw|X53%^aT}9&mo?0wF=RcS?AaAo|xEVIg)8Xdud!aF&Gx z4UWvFpOV>Dkm&;%tKii`KgIlHf%$8tXap}5^RBQ*`*X7(R=3TP;e{TKh>2+Gm3j+W z1{U?06EHz$3xgUYYgt3ohz#%=k)8`iXJ9?$jbhd!xz3UbYc`sN1o%(0#zm*44>TAd zXWb^xfRRKG$MFL7Oi)GPYWbI3G}?K^#tas+NR4IVtoGGn#7kTp*Itt|_5-n6Lri+Rtp7GR& z{EWoxF&Qx<>Xc3s)wnT>BCfWa0Vf=TRy4Jr1@a|et|ON(Yf5RsX0``p?d}XWW9v|< zQ8RlEza_a4^L_QA_((qw?;9vA;wz3)VVJ#Rwo$7O7t=!Ic$;eZJ*K3<*y=C}zWozo@g|aCLLw4dhf>X(P@2bVCIo}% z=Wv%ER3h%uh{td@l@&OzDR4HP?fRa>t+*@fMpu7v#0*lX`~4!%Tt@ z(G5K@I_4`dqB5l_;f}c!y?)P%F|3`Bc}JpgP+NeQrI(?ru7i6_FM{e%r$MN9RB)n1 z4@!nUFVWzMR74|{jTJ_PQMoZvrDgcoWK<>31HVxjn-!@vDvgS(7Y%y9APoDhkMR`Q z8G2Zz`BQz_H!ksI4Mi-)u~joHln?Exc4$Gd$%R$WUA_<;t2jEXgW!q5GnDzS)EtUj zz`J5BY!*chJ4QZo+#@0vZ~`>I4p6n%sJ2WTJ{uDyPOPd$tQx(BYS_(gVcX@k16*gz zV?PoB?vcCz0cv8Q9zTxt8-{B7*v9PC7L3Zl)}DyWz_w{QJE);1FM^Ut&&G;yPxE4K z)}(eaf6bxFhMr5<(tGa*!#xj1kqnhdoTK$UW`+gwS;eQih~MxRm6~48s;YX|4a5=ho2|7()W=@lrpwkp*k$`zDtVi<0VZA@6!TK2$L0d(w)6K=) z4payHOH>q*%}!A4KJ4E*>gX^q+m(d799#^p2xpCk->~x4fDfUmz6eIt=w;;1@-}S_ zz*t07TfW69H$9z)*4yZvX-21`{J#oI5;aMyKg>U57QFb86OLX! zb`arRQ{KBGk=E&O)Nm()hR5ig#6)Q=W0>N1ctn1!5@EA2Vmoz3e)TbW8-0>f*wL0C zk9HoKkvgMJ%Z`HSLIzEQn4Kj?U1@eCx=JJU2KX|}c4!6+S2q&JsT(1J9PUoxTa*(r$T&y1@gLlH;L)Z`_08Od1-EU zRjE~&Uz>&m%8ocZWPECCz4`D^aDawi25NdWr0UaX>IH3Lz4E(c@^X+PeI3hDvFM_Q z{J<`lyc8S;I1Xy_k(uc$fSPMq$_$(4m1qoaMCD7}!fDMLVqThUM8!)(iw=fja^|q& zQuCuur^HxzsW-XCL?iuLwxOVQW8_7ZCvbd>e#xuAYuD|D)MgH8zt}9Xr4;jtA=%Uh zb1h38?srC{*DtUOb+;(;%bDySS!{G{7!AUEqtSj8=Y~@Py?JlMJQUSIdo>wY*Y>Km zPhnLUTTxBK4CKAan?gOyi*#4nje4lIbt8)kSL~(D$FCk(tGtrCu?uesH4t5#kT^lr z;YcuBWT&}~(*Ti=^fUV9WeW*>G-?^l zkZMnvFL@2rFX@da5RJKJ%$&80`N)9ts6CH1Zv#o#?qyow>wA?Ci9*!FxqzD@E8-eV z$qdiU>sxiiwJcbV)Yi40v&_C|tYDI6nrPNHXbnB&j#^l6h&0Otf60&Vuc*yE*tf+} zDTSmAfRJ7!G^p9*z^VmZ*-7H5WhaZLJBtdhYI1feKQheJzqJCaQ~& zB5m#@hNw9ODJ}|7!0S1voegUG7tm!Qz>W2esT)9eztlz&K8M%<;vRPcmZv?*`{=?` zBrGGoIo0S{ObKS(SWyEn^cB4TeL=O!Eusy7Z-lhJhD=PHtOV5zzuKIge|nP}&>e9b zZjZSUt>jGrp5)DdhC6u+9`F0H&!ZnF%yZy|Cw(i35migHrv8sBj+*=>6Fgy$c^evb z(iRan<%x$Q^c?aa(iDOeU zg`MMn(vE6!S{2zcph+!F;sm1AW8fSfPx4N{_jOM~^Vo;*XoG=k@7;}ktQ#>i58+pb zd;C+`tkR1zQ3)@gB~YSkK{Y!Aj%q0cFv<%A> z7L-un%AUeUa^eg-a;bq}6+98QmMK=(JFgD6 zIkrNNP-sh_I$`~T<(}L<{mZR;fod6^A5+y%M8fI;hfyodXkXzJ#m<6o|` zxm0>Ix4wDAh{qr%M;Awvzhkv^a`JIJ_2d(P=_dhvnm-z7tnzrfBC0#piSQWe+D=Sv z@~NDEU{7g&E-`SZh4Y1qt>4@UiG~x?M_|b2(`cWE-AV2cy;sXU=Pb_l0i&F{25Pc( z+!UYrWW^i_iF#O4a^JqjH;I2y8Jg5|@A)8~s=W4>mwB|B}3hTd6!KwQNRFtubrpBHNdM-%6 z0PP`?qfvqV9#~9H?!qJaB7k4^BwxbQe3`*fFsjR1@)hoWmBDKOK1^e#r{&FG+&+d; z;x69n?2qx(EJd!(wX z_yzn;ki_ePH#RHabzi;cNZ;}we)!@23VeX=U6uR8;K8%r0*kJ#_#+-78MO5OpqYFd zKuf*@n0^<)7xgzr++rLa?38~3>2^Z%AGo-s&Wtb z^r)|~T61sod&Gpv$@f4s-_Kn?q*pZGAGiBIK#y!L%DptCYUor9AT@)*YzFNB{Mi{v zx&lejk8@YeB0p8xm2Kn)_TogYYG@CO`}iZrSrECsE-q)73kMK~P$6fSA0M#?v|%?2zijRWL;5cOx?CPB zPk)G(Pje?f!t*?4s1r8`(QJKg_po8jhq%ps;EJE|7Dtn& zrMB@{wjPGl6EI_STJrB;%Qk_4Hj0TJ2rK3RruAozlku$iPYx8y#bJj1Zcn#*;;}txxIj*iL&{`%z;gQkU@r?vD_>Unr%ym{ z#~}3b20tAA_9lnd1L_55Qi~8vQRJ2L!>Imx>Nya!J54MuuEVE$Du{F%d1`PQt2L8`eGX_;y832CQkIe)GBbv z;#vo+c*k~YhsIZIsRHT~iDF6#C`Fo!Y}dEUkZ~6o#W?*%63HGQ1iYH~$m{VYtAUya zG2)0n>`y%jN1Dwa7*$ix0KrEh6a%~xq+TkF1T^dgcsJPX5(PLne^lwP56~@UP)*_w z$Mgmf(OO2t& z2GrW)u)qJLDvSAY<)f=7oC-?5!s0NfwxWEJ;cG?tM4@0xBoK`RjR3Bi@k**2KC!Y) z1hFwTpeA)8YXmK~VsyF1?4sM@k~5=0scVYY%kn`DX``hTI9?YCWx2x$nIWh#4S*F# z3C_Z|(=(Y_W9AO-S%D-h{y=yZce_P5_n24#jS;KF_Sh&%G1Eq6qTVl8+ zlBvU>B}x&#=Qi|DpAP*UPyJ!VMY z2!*H)Nye{-^K!=6s5KL6n!++(#?FOuoO@9Av_Ru9S==5(+)@6M23%Ef0?Oi*U(3vc zOl)@Y80N$zd-%4?o@80v0W?KeUlQHH zHR9uu`U)dun$2wBQlW-t5yww8)rO`y6~>b|74TgjyXvz?U$8$LO!mrlH+c)OmF+vE z)j}Ee5=Z}9wvU{c3(BE%i0E$n;ta|j5(b6;oVd9bUgXFJ`ZEpF}bHB-;u z!TIx7lzzDFw@+S{$97UonB(M~hdcSxK0241f&aqCJkO7PwC+GSjldx%1GbY3i~yGp z+ezF^$l{Xb=O-%l9Go^Zd!od>R?%#W$o|Bf;TjUJNq52naTL8Xcigz%)(~m%S&}F< zGW}kfS#6gcna-AHK9z63E02yVf@iTTuBsGgUD&ZOvG;2Y=tA*Rf2!+H@yPI|jyiYL zjAM_I_|KSgpO32?HNOg5HwwecczP<(o^f7k(Ya@(xk$Y^jOdFR&}Pn{XR(4%%BlA; zGbbXp^d|6luC1+auWNzz#4pr~gWO6yp`G|Riy}ZL=GL{fSyz{8G}O;3}rEg&U&*0}cxK#ksm28}+4D;nj33`d6;_LOf` zEuG$hM>@S27zXnngY;|qLO67=ED3+VjWN8q-xl5#*J!4P!`Pzl59@S+cSfiO^^J{yieDNGYap3X|vCQ{ZO9-xwU5N6?0V zm>>m;!jz0%R;JS`gfvV&0vzy}@hCQzhQMWIVOk$$O1;ce;3*9t8zy)-eg_b5jg|;) z+blQxbzeC{wT$7x5;miUx&4UndS;N@{WVr`pK$AgAP4*=g*ii|4EIV*`9$LODXu_3 zrv>4c;oJ=&hUa=YqR&S@EvuzV!{f^}st&Qv$4e|m&cbZz)F}dcgPZ5(2oc_2XdKdi zco;qw9s%=d;q_XLh1;VH8@(Llt0N0BvO$4e@hDweKF-i-P<$80{Rd1UmKt4zjh9y+ z{}-ZAEEH?AF$-u!eOqZGmAs;}Twrc|HQWS|CUvWa$c;}REGR{`dfI@M39LW*+8`Ab z*hy+A)P@gRJp^`h31c<*uM@|oyMyS>(7Hn|yV!fhXOPEi?arirBV3ehTzvyBGP3{qfl09z`A zxJ-|u?-uBvO)Js2L~stHQ<>8u>?~j%hHtqnI2Y`%!}vUbU59sqHX6ZL!Niet8t&Lb zw7HD?#?eB-dA-mwfffnuGH7X|<7u(Lwu-*#v_xPx2@CURslco!(D^#ecTn5!c3=j* zp>}!bj+55s>e4BrfF0nf(*-k@-M zf>8Ib5^ncY8Q$b)&ilPvJW-k!W_Xf-aX^E5Xm`Vv-?;7rd`xJj3YN0I6(%D>T}Hs# za#j@ZGW@47KiBgBSYxG3nXWyI_9WL6fcr|H_6(!*l$T*lqTPUFr8hx;4iU=7W>Jv& zZ;SCDNet|2?;f<{ld?~!`zI8Qqpty%%M6cHByW^vDj}~%nP3fI zZ{eIhj;|C}^oR(lTa4`K5Ig!(NpEm|tnn!A_zl4{Q%F zSEfCdK)WdHn&MTcqZhMwQJuin3T!>S?wXFiQMKH6S^PU}DIRJQSXW#s9i@0^iNJD{ zBn{XefvqP+o$vM1Lh)vE8SQ{O0eVbeokB~1p6%U-l`^{68=xfuTTebU?KS8&fw95d z*ORMG$at|uiJ#|Pzly%a*ZmH5q}t)dVsxv^C z7}oNEgg%y7ag084Fjf_(1TOiwkIj_Rc@D;k%jtIlyNq%r*8)>Z+OO zz0-@6nS))WY%Riq(fho(sBro^mEU-K(m0_7bE!=6_M!^}X3w70i!O3HdxXcJv%|sa z!@u>`(z6csy!w>4H=Qt=)vl*MX|H(`G;55F4fVe79ZZvswy~2+zVMEwdj-}-5%>4r zvDBx{?pxtk^rNX$V7B>j7OfI!j^4oS?Kry8!S0vBdK*1y3wrj(s`X>&d4btEcnrNN zFk8(r^iiQNgbl(oo(*2+d9-}2GJ!%4_WSZ$eF9b47(MFgt4}2B4hQ{Ttw}$YzAj+H z^vN{o7~Aib=#l#IGz;(4$X41>HeR1b_c_>y#w1`b3#^OYG-l}2$%D6Tp3paqQ}h`$ zT41)@Cs4bM(euXX`U!NY<)C$?rZkJ*cCZ!xCHgEnSR^=`O7X_d!GFuWOrK2?9BiTM z5`8YcUBE8a&!7{IvpJUpF4xbbM+NpgWdf#j7Pa85o|AOFKjS@%{F5ykz1zJ`Ur4{f zYdv?4*K+z|8iE&1#^z}o^>b*Qjfs3t(mevRgP){Fy7fIJuvIuv-liw1AMPcHR?)H2 z8`?4&C@?z~DQZ2Q|Aq~nnzThvF&`y(^m^qP(JK=nJ5jHBr=-)As_iJzY*J zUZj|FGAiqG@;lgS`3)^gr4BYhc}HJC)ebgS*@xqGy})cO9Wt!XcSs`l% zyinW5xp|i04k)ym@16rIoX(781o1-UhLVSkWPQ|heE!?jOAUFaLi(- z-w^S5)e;_=Vw4w&5qH8Rf7JF$car*Dic#A z3dDJ={128SktH(y9V3(IaglEJ=xu0IY`9vuWka*vP57t9UivN~;l#~Hn{q&%`T>S$ zpn$CcjumjCfYSt=Enquf8IJwTzf8c31?&`XCm`NyC5B!B4FSsq?8VTc*99_G{w`91 zEu+;{1Nd3AjCMh|9_>z7f;ONxgg@&^z*zIFngjbW!wHnE6WG4AsAl-v>A@ z`~)cMbr*eVyheNF-@8MA??)NV@RtE9CU1q79^Ie?>bI`-0Y3ROvlPd#Sxt!QV*QQX)jfJOo^EifFomr zBuU{jBvVF7UWJwJ2mjHMfwqSB^!Oz3_^|HRh`o+EXG#48XB9XXN>%hpFeSArvm(m@ z_rz97YslK*SubsnPA}gCIL5O@8mm0%HUWo+wn_VCul_FHM%h3DFfJ!(i9aRr2)>}L z(nfE+JOuP1fZIxrMDH2#%`{DU!F!DSfc%1Y3h2YjX9C_)GDqGdKT~#^yj6ZJb^+kq zQ;6Nn-97Nngglfu51^ALLGjuDl@H@SWsS1WttoxPXu3prJ4KRqN^g`%bb@eYlk#+=QduJ{ zb6tZ7-BB_?;b|JGY*nt0jZzj#^THY}k|vgpRUS|p!xPbacEpt4kxqBbQ{Iu1h|?)N z42u>x>V6lv7#*CGdxf!gr2E6$lxgzB@DAl0smuSQ(j^_lCCE2|=Ky$if&Od%Zbg#k z1vldo`-#|Q+NDf${ZZMa97H-FkcJt1AjLYDh>2JtCSn{S5)~ffm*!9&$zO4RxYu zyGTD!2FC`1^1J8}fX_w8yQazC`*$d_ zyz64{zv}7) zeACsg9v%COYms`k@=w5CW#77Za!FgJ4vvJhcJ*{C)>GRnHI(<&7O9s85*mw**17;g z)G3x?r}7tdrq-z}^32p)Wj@9Bfx8lB^c>fb$o6d|^R*>n0A17!SN6)gqo%Y=86Cb* z>k{vs7po$x=d|SL#EV4mbRJhg;FlJ zr+5!&n@~(V?%xQ??;QH7@)2$}yu|%14JuDb&x%ZHmA{MM>mDbZlgUM|xMl1u49f&8 zr`Oybs;1Z7LEL5i(ZT~84PYDn5pbetci|8hre9E%Cx~*{3-A`~bTaPbSkawO5k`%# z0%eW(aIkMkE1D| z&k&S33@tjH&IIXfx)v}^w*Y47PTyv_ivHnyhHe7fOPc{dqM??8te_k%DDwrS zT~IniyHm6`3AkDC>=f;1M0>Aje<<3LB8(}lxtD17R@m@Z(LP#PWdUgy$mxQqQ?yr! z_9oHZEZRFo`x(*RE7~85_BeGrG<2wJpi{uTsC-_(!P_9@0qO__Go@Nz+hjBvL#0_^9AF|8pM>$vBS|ejapRBGB%%hjF^?&i9zR6i3(Yvzij_M z*}ZhZna8)Ew{ZKu1@9=^Us%{r+y33TU&`CRUp7JAKIwull-z_%PRc!a$*k?s%wTEz zgymmo@)c8a!&g0@3tl?9T)Oa#^N%_+*<6cyHW~LZwe(i=*5*%}pUPFPK5qNDt51=( zzj@gwO78h9FVI5G4QCn6+mE`cuOxR?=FVRGbcGj#m_TE>PC#%|^BoX9WoqcOQz_SP z-5AN6TfD9%clWx6+&|ZS775^@!HX;Z>8PMHXeLdf6SkjvO`9~0iO1tAcRbGL=hHb< zLnEn~mZRK`Mk*Ee?1zOvHt%o#Yx8x@*3|LM33{Q~cKG+rqrh*Q@aE=q4Tf(6a6jKp zDg3g=`YDsHSb7F)%)NPSt+jgEC)aLoe!ux2&AXZ_ei#6c&c_#nHoAz;5bP&mj>hAQ z!trowDQIJH{#gKJXQ1|_;aCk6{c_HvE41lR@%SEZnh8 z3I=lwhQy z)J?0Apiyy=EC++CE`>`~k^(^h55Ad6MkhWQ)<|-=b4Tv_UoEg6=bj+`@v{u*Eem(P zB74Fe??p&uBWUg{&|EcAggkEC6a=fPs_^P7DK+@hUbhsNwYb}@2CJ()Rk~XZFZ6_$ zKoHi#9iIn%!cAy-Px8R!&b|2HfWNti`m*pe9Uj{@_U1BMrbzp8FK*f3{u~~LJNM@n z-!)n8{C950UDc{LywaO{_pW0H8^IbS+&R=(88B9s87mF2f_JEgC0dP+y;==bhdT%2 zMblVW4j5ipojYl3t*6>uBTI~QZXI6M3uBSO%K|m36f{=W87uo4E1Pn=x5n`QMfSL+);pkPoNbQ|t9$4rHUVI+$B`&#l{=?=>V9A@JnJZacR*NazlR7X*W{ z46Y!#5xCDi!4PP&Y>G&9-A#* -- 2.22.0