From 4e5c02f5f00198835794e418c47b2f540d38617c Mon Sep 17 00:00:00 2001 From: moreoreganostodump Date: Sun, 7 Feb 2021 16:53:46 +0900 Subject: [PATCH] added menopause --- About/Manifest.xml | 2 +- Assemblies/RJW_Menstruation.dll | Bin 48640 -> 52224 bytes Defs/Drugs/Pills_Menstruation.xml | 49 +++++ Defs/HediffDef/Hediffs_Menstruation.xml | 132 ++++++++++++ Languages/English/Keyed/RJW_Menstruation.xml | 9 +- Languages/Korean/Keyed/RJW_Menstruation.xml | 9 +- Patches/Hediffs_PrivateParts.xml | 2 + Textures/Things/Item/ORPill/ORPill_a.png | Bin 0 -> 4950 bytes Textures/Things/Item/ORPill/ORPill_b.png | Bin 0 -> 5516 bytes changelogs.txt | 22 +- .../RJW_Menstruation/Configurations.cs | 4 + .../RJW_Menstruation/DrugOutcomDoers.cs | 30 ++- .../HediffComp_Menstruation.cs | 196 ++++++++++++++++-- .../RJW_Menstruation/Patch/GetGizmos.cs | 10 +- .../RJW_Menstruation/Translations.cs | 1 + .../RJW_Menstruation/VariousDefOf.cs | 2 + 16 files changed, 444 insertions(+), 24 deletions(-) create mode 100644 Defs/Drugs/Pills_Menstruation.xml create mode 100644 Textures/Things/Item/ORPill/ORPill_a.png create mode 100644 Textures/Things/Item/ORPill/ORPill_b.png diff --git a/About/Manifest.xml b/About/Manifest.xml index cfb218b..1a077cf 100644 --- a/About/Manifest.xml +++ b/About/Manifest.xml @@ -1,7 +1,7 @@ RJW Menstruation - 1.0.0.6 + 1.0.0.8 diff --git a/Assemblies/RJW_Menstruation.dll b/Assemblies/RJW_Menstruation.dll index 2551e3a0b00d4aece030dd8e37ed2003cbb2d250..ebe0c66992fa7b85f9d94ec8270084ac377b2fff 100644 GIT binary patch literal 52224 zcmcG134B~t_5XQqX5P%anJhDtwP~9)Y09*dbZ<$ZTbi!WeWMGIPLoM9G|8kh32jLe z64?<@6i`IjM1`M-@&^@vZY+YLBJLZC;POL%q5`5n`6=c9J?FkR^Cn4K^y4ou_uYHW zx%ZxX&bjBFd*9NHd*4kiB68#R)>}l6;L3k1Bt3O90(4>Ze-_fi{%58=qHTC)+K#Sd zrlv2QI+%|4)U?NYdsF>22NE^uf!>;AZ_TRB+iQAK9f{cm1?F_C=`E{?HfSy?dh-tt z*uA|#wKV~4F40#2F%)$1uW+s5yv9kfm=lENJQO`~%x>F!zUI{#l48HClLUskw%6te>1M9 z(F*Y7n?;eiZrToV`MWd#8Kl<(In258C=fBa6pg#ngACHshb2hY`p;bDdoU@^o3_XLPoGXt)_>e;dLzgm?a~7>0 zg*Hr@RjWtA88WQ9?^6%)6`SkDyfx;86ffKLIQo z@gi6AHMBAU^LI}kfqLD;+|CFqW|*5AVZ{w|QzNW^VQy`N6*SDPjj*7Hxxo=u#4tBF z!U7%U21i)n!`$cyxObP2uu#iJM2I6Iv=J6k*@y^bgoj%;!lIb9S9e801}=0xijHDK zFhut(BG{KkV2O=1M8j=>nlUoi?mYAu*u?)KazP?@wnWjmX=c#48Sok@G;fl3cmP!{ zWk!ZCMv_8zCW*F#zGf3+Cod{LzY@vF3Q1Dv+AQ!7!#%k#Wv+*>%vSUdU&T-!#qiY* z=rzcvFR(SsW^Y8R&`e2cGSY}UuXTEr9bH2BoWV?kvLyG0I)B;pNuBSt7U zInf=lESBLH+u|R-7QHd6UoJ^uVwy8zOZ>y{91Dy3hp!t8EAbCsKNdz_e`+dPfgpyD z0C_2^YxpPW~->2zi*wG75g7Lk`)UZ+93%BYWhWEC{!ZYSHy^Mgw9t%&a@x91o zvr*g&x9S}pMVdYY@n6bwFp6$WF-2rXzC8R6!0cuj&&`f3N3w3Er3i+4hc82VDNobk z%aK@?kUorNEtB?#{0%F};WBcLBIh2mPQmF4at?yLsXDMHwjG(P(;2V{G=sHi5Ju!K zJE56IL!lmpDHwxTdfb7SUmpas$dGr|4ANagT$+V?k-0AF!WGVg>rV%`MCxybOBuvm zbk{e!XOzTDMwx^4Na`Dn8R_@3q0T^Qh^u5P2D}Xgqz}IrFhN*N2AKgSl*NyEhV^oM z!+oMnt54tXO~?zk49s!MCH7rvtni*(4^8Bcm7RtmwILo=dnM`RLrjPvGZ5>6PHWIN z|LLN{A`138zy(Y< z^nbvIN7Qgahhc|Fx0v#X>L?cA4xuFB6uc>GVZFHNHzFA%`f(O%`VQD_c@&lx1B5Ly zeIHvgOo{eoNq-&BEEn(xonL zpR;z*a=eD&bpq#Xc@$z~e%J!jXA7LOS$a0*^d5n8ww$dYmh}g%7%l)IUMT*fm6wur zs{#^z!8HVZ4L)AFuWH>Bkk|{b0>6R<0W-WA=o4#ij6yQ!+%$^z_)pKoc=}IDHL&Fm zEke&0sLBE@&Vec|(3uR1HljvqHj>O7BtuO(;M^>*S%C9UMpv#OI2SiGjalZ_JwqU~ z{FOn!056~kQJJX^&*%0QAi)$~s4ifPOJK&t><0s86djr=bYMH0*@jpx9Xh@QbbG;niVVs!g^SXE&&*qrRuUwU6$h_gnObZ7~%p&i-O6* zeP@emhLO52ilxFJe{>~E65g2bS1ITZ{qfxP(k&k1IF9|D2u;$|Do~_WGue1ByxTV2binQo9?nh=2LsslTdP}Pz`ql?wb#Bp5bUVmWJCHz0EMIFzgo>)Jhm~mc zWud^}PNvy~BvKqMmZ0PA`f>>m@2;;11=XT^9`JY9S6bjn!`*1??&xknRm0Ie$Wo|i zxCaOcr_u6Wz*75=q_4t&qcuX!%tg;Tj=tJGs#awdp-8k6HE>v9ILSjEHl9~nIJFH) z0IHUnr#vA~W=ys3dVFA6?TeS(w5)c)f`^u&?#S{?Cs#Pg;|LkUhrpxQgqln#h)(UX zoVMc_y3>LY7-lV)XJQJz)QFUXN*b!sGD04=GOi@(R6Ql<*o9VSus0)88Y&g~zLV3> zw&>yFj7V9itYHe;$CNxt`?79D%0uN1GbmhvK|jh~bsG!(n=6s5v!z}UorD%4bzbqr z#B#>=in6niceocFMK5A`g?%>NE8JpPtEJYgo-A$pq7~fkETSsJ7`H%qLH5zIhpsOl zg3Qf&sh`4JHOVwwYFllfJ!^$fN?#$WckZAA@D?I#tZ7E75Y>aRa$gE-fLVY&CtA(! zU&)s;0d9Qp`GBv%>q}wHH|b}FSM5uU>?T1ghA*YvR5vI`0$5jk603o25eGIhKl<=1 z%T$uHAejj+iHOxIqx_6ZALPZjq8zLs4rMPVIaP!UG6^K?Z7mXgkmt!*8i&b2jNr*b zIDDc4mSdP8CthB0;pG)|UuoevCE5)t?S{2+M1r>T8rH|5RU5(9Y)cj?<}`bS=l~=> zgm}Vj11@F&^uWyjb3$_Z8JL%;+=`(Oa%&Y)OdXR@;?As+Lmpm>pCjnr>Ao!I8a+A& zK5M>gqRc2}n2Ex1h|V3w^f6~`vO;4>5m6Y{QS2ILXQrTm5d=UI-?``p$RCD=^Pniy zXCTI|G>${B?y~FPwDc2YoTf6U+_+I8D#jreDnzw^9A=V*F~?#MYhk-sPDc392n_*)2|9@y z3&<6w=yZq?9hAvIs04Na2b^?ctFn0))!5_GE!nGa6}h(PMzkKyqz2JC&0;_EPF>FV zLz&~EC4K027MpA64wjcXTb6TE?y&hk&~SCYiZpzPDvUv<6TMm*MKg#iDr9v)d|?sn z0F@PqOiEvm*x~N_DuqflqTh%SHsq}8?)u5;j|h5-Rg?8*)ts8fAtP#5`>m?YT-6)) zTKH-+{T(KdD25%JMaHX>VC3v2XbkcYRh$^{g?!Cl!l-bl!BB}LIatg^j~o>?9A}f@ zp@#e_aJ*CU5;-;$I>|ZMMBLbLHd#;(0LMj7g z#AzukLBLNa?;k0Qm4^z&|3`{^p(2NL0EQWxjW0Z35Gri&p=hlDGJFY93NleNRIel^ z;o#5^s?__2hWTO)GK)i(a^5?%9Qk_x&okz(u* zi)WEqTmGa?kLYmSSWc{S5oOF8%^Lzt@6a?SONBuk2@|*B~3c771M0J2|hG zH#peqP^$gFt$UX5)d#OfULS-*MEWkI?&!OblFy=sXMP*h4p+`MB5vdslst5*ggnA5 zkMs{<|C#pyXByG>;*z?_Nr&)F{`Bg?q16x-U)S(;^3Yl-nnUaOS~0YqFX`vd+R!vR31`)V-E-kR?w zn9L7WL$`yU@1B;Q`4{B)=>497 zOWlPm+A(TV;mgjlTVY-r(1u&_lC7PN!Nj6>qY6R{v6bb47+*(l#lbZ9J%V~=mVWd5 z9{w;YM(?pZ#2w)lCu`A<0E5FVY#cs{9LEE=9kSPq6&b@Ha{|T<=U!lk??aOM4aV}k_7X$zc6Qw zu)Y+$radWq_T<8PRYW%sJn9wQyqerwVQ7&l*K%$`!QC8Tf7Ji!|mZ7K|(bdyI{CW$~%XX za@{Blq|b&K4POL^3KC+Ag?t>iTDTbpcHV_oK844NeIm|WC(9545 zeGqV*Z}Z|&o^FLcE6T2i*tIC810Q_zz{=Ab9f(4OU?WbS2e`85@+ejYuCRmQNr7|L zdVE1YzL(*n0_SWNzK`J#3Y@c9`1uU~iNHCVg+mYSw8z8!ayARUkm2(L&e`lq|9K2w zEpX0S^y+>M{F^P;UBD?*^Xkzxa0N6AvBC+8J_G@!F!A73c7i4a$HV7{AH+pD^Uolc z-iHpNm>XvFvx1LeKB`!Q*GgWSrYQZeplu_DincqAI1rl!6JaA}+u`N0q0l#2gR3j` zIY8A$$K$h&={CR`pHar-Fy@l1F)2S(Lua0sv*Ul6mqzeXCA?(*J-m462k?ngSuTi& z=0fIJ6Qd2d8oL7s@Ulzi2_26*yvYWONjz!kM9h>6ej-L} z0Q)5tZp2F=uVW~@pJ`|WtX?7_W4GLJ<05qCMv*TeZ=pMdiD3}ta+X&3@$cE2S0fAL zdN^lPPUjualac3iLK6M(eQ0=OwhI>@NscT>d!9mfCXCKf{|SEK^WiqI8b`*gY_ew> z$Qxxac5XPRMp;0i0_P}kiq4}f$R8z&&QTWRMu~pWl-St);60enyX>=zLPZT_Ht%D2 zo&}CII3=AD^p2O5{pobBw)?}H6+;>{NypY$=7p#o!5?-34z&lo&C_8bA+ z7^8LUg_?P7%#(+w=@vl39wib3=dfyCO+_YW%nd~-)<6Rud!F$lEDZ}luB7F*Y{Gze z{A>gvb$YB!!zlDvrU98-HAIs>+cE%TDQAJoGCU&Pvo3t=t+yaxPo9ANY{+bwHI{s{ zl_BRsPX=4Ltabd5M~&MxV+6u?W_Z=l6G$M|6Amb81PS*w#LG-YCQll{G1B0hI153Z zFO6VU8bOTAy6+nbW~C8;RZr(zxW)!?J%+&(TY4-rTe4j zu#s7TjQOLwCAg7>2dWwZeC%uqTGgzzuxzhB!*4kZE7CcuM4488umi)nmEE8Zp^8tL zg5MHR$e;QmP&mx@DYbE^;>%N;k@^xSXqM7Tl>S_0>t%s9V^2;mpMdzMjnNBs1pygA zLDRc|maHi{;=}f=jw0@+0MKE#V$Or0TBHOKcwBP)DbusU0xS83JeHpJnjz0vZH^&v zs*;KGbvc$;bR$n)N-o>co;*#0w|rIda=m+eY0wj90!+Z5S1;VLl+Kkgay>rotV8AI4Pz)Nw;xBJ;a z1;}4M#I)r&ZbEfLCuZX#uq^l)L=E<)2G4-@Jli8N>cRpl2S16o**5@+`I$Lp0;y zlZE#|AZ5?uI6XpufYYPLfZ-E->wyklk@JbMFgy;LlQi=FagFe4{z)65rUUQ>y4)_R z`P7oP-ol`9;NQFfP=4$|)CdjY;m!pM7A&vr?EL8RD9$>}y-7ryImW&MQ0hq})kS-v z2>s0JB@T<)2~ia)DoK4^s!Ua87aLGLRs#i3%HM-8*w9SvArhVXz!D(qTP zy-wBGb7=2LdJj1&PuzQ+#;rRy`~-zpuM)PL4P3(Gjf5f%Ye?NG<3|e?Iyb*+moIk? zqnMS(@YehRl%>AGL&jd^-Z93ex^9d)`cw7?LdS8RvVIp#mhT4fqY85zd+({I?Kw8z zLH@S6jqQYDc_#53;^!SOhd5?bvulb7>R)IVPrLDf!YqiQ3TJY`&vGFI(1%apBK1k5R&WS!#*b=2pTh>tCe zy(idO#3!EVoSw?y7{yM}>4ogt-(*uQ55~&8IQM;q3(PGqV`r^Vt2ge00BEmdKG}&? z+GG3{*YKv~QXcWg&iC3Ul@b$Rb@0mK8c`7$25d%b0U;uL7G*@(f!tvrA~HvBR?D)b z!`kV`+Bq4M87KLV{lVTxFVbf0Q|o7azRbl5t$j%NHn zJC^a#QyTH}{~;x;t~2pF8$T>_)P~<-{4T@q zX8b;e-{u^WYe5b?VOi`ysRK_ zJvPlx6$Hw%Az1pjFGNx{ZD8q%% ziL;^In6T+ov7N&)s|RFGwKCzX94tZ9ih=0&VXghpf@bQ*5F`f$ z>T(@&C)`#HvRhu@;(KerA*uv^7+T_cX(f(%;)>#22KNJe!#|R%oW1LG7wVu}>%J{d zNafv4!`k~HwhgPf%TLfspTSt4x<4q>AdINwn@c4$v9Q|&yByI48$IJUEMp?O_Iv|@ zREF`qBuM>bxY1szdJe|IQpoX=y9eo}>%lL~AJ2GKM1L%!4Eh4z)h>W_{2K5(2ftXS zj@WD){z#>#<^LPd27@%C-p#BQ>C4F2?5A2d8Dt@8&U`B+^D`Ad$9l(g+)O zAWp{%^dttA+jxSxM_24s+fPAN^D~nzGOoa(;$3OD%TsBs@7L*#vueJj@V1 zmkmgdV#*ma^yoTV;694xsAH=TB5Y0kLwZmx5)Qv7c+^sG5dvkvdsTSsN+% zIek#-bar+whs9lI?I4xi;Z&{|(@h;Z%*G9<_$P6ucTMY^V?Y$ebAxGlW$IWMqrdv9sN^G&FHsj>ThQ;SVsC3)q@OJ zt#vNKOdltsle5Y@BaxlOtSvj|#ADfcL*)%F-eWl26j8bY)>GbR7**ei&rF&i`?eHIi|2O)_pZv@I@s0`oW7EGNk0w5e zx5OQuUw?AJf8f?z@!}O0LEd8X0{t)b_8V5`Kj)O;bWiD&;bTwfl#Q`Y8H+SFY5$Z{ zMh{sRqMWkNa>~A}Q?BNlP}x-$UYX~?Z5ZxJee%C#zyEgE3_f*Q3O>jB%G3G*uda?F z_2^1=qROXusD*XRfA%KKHTJ;EHRjyykb7^^Az|y(Z+v@hwW&LOd!7l~`{ikm9uK)D ztoSWw#ka{kB7Qs^tU`aauYf;M?_s#}-UX<3G;TPa1~T~NO{{m^%o%WfS^2KOjK$sn z&$pDbJ8o_eXCP)7(7n+YKpS*PvB2e*V#MtVxuY)vAzQT}>!pSUQ;ucf)H$~0V=Z5K z#McBm>s1ksU-y9%q9D~fQ-#Nz@!c{&hNQjd0n zeM|{F(3@HzBcY}dl+cWD!iV`8to)Zqn@&#n{2ULr`C>Sr>p@LE#%DJ8uKo(*p(s9F zdX5i%XrvHtCT01EO$h~Et_hgHqc%PqfcYd2em@wR&$3jndE`k1D~ub*d6(F)&42|2 zq345Tcrg=uo#=nzYDtehVkHg(#t$1&)0sA0pJ+~5;sISz`Wk-X3%e#cNW_PP_&K~c zU0@P_=^rujB_N}}MKXd@2Y34S`LO*A(~La2IK!sp!wxX4H6Mo693SGyhjlP)C?A$! z*lqc+PKJFkA9j#o&*j6q81_H;uq49@ym>rd#ISk!utN;nnGb`Fxzoq;VK5nY`a}7! zUWPrE4@)uZH~FwWhWYXQheOUdM02Mb^I>U*ZOw;e7&ed(>u1=l`LF?oeL5d@F~gqC zhaF+q@AF|t8Rqfl@pp`2)AC`MRQR$$K5UR-=jFqWGwg6aY=~jk=fj2>_OW~z&IsJ; zC-Pw<4EuRLY?NVd{M}Cm(h>!`A1+u3%UqA9f|f@I@`B-mYTUhw@=p zGwgHuuxl9hqkP!44Evva7(#w`8aJn%eO$+|GxK5BGwi&4*bNLD$cMd)VK?T(-p#O2 z=EH6TY}Q4!B@e9SFVa|dH8Q_r7w{fN@mbOqoe29Kcw${Vzqoz%X_tk=p958WWBH8X zN02#TfM+A~->6S}_xTpEoA!CTj0L^V`FC?e-XR^7i08 zCv5NY`Rzegc6*FDd3zFuPT1lX@>_(Y?G_nxk`^0-;er#Tg?z8IAQmtN{|LEc{)8lg z!Yh0Y;`Yj`$mCJt(U<6J0EU8l6}4ZNS1}@H*l$w@tabyjA^?RNFD^;jUf$9y$5H96 zYKMc5MS1ONeyf@v)x4^j&#LAb{xfrA;P!*X5snFjcQ0PZ@hDaNb-fHzWvHL^(VyW9+$TR5?8O&|VZzNBHlwxk&&lEw>AB`_&i zle?rKwgD8WzcBCa*fczx^HY6{s#n&Kg2B=Jo{3V zyL(1xOP$%OXF#^n>`U$Yi|U=%MPqp${!%`(m{>Nmj7jlCa4?HQ;kV6f`DvK75119N z=g{n<_B|e*-!Y-Z!mC6(JZmds9(kW5drx34XwFnLn}kdIOBo1KLS)E0l0l!m+*qLA zx%sk)hhuyAbN&t_e1p7~VH%FQ(QMsDS4k}FlP^{%zv1Bz$HnR!^%;=#GGm|_2U@Hg zj&yL_qo2zhPIAQv9)a2kz9y*2I=9c(anD*Kevb+7$F0R@3r&~Zs+^yszX8XmzTFXQ zIs!_U&1r$Z`8<@#B?Dy^q&wj-_vI@2V3ozf;Mt;Ue9G!CXcT<9^WOYq3#+mY7|#J^ zdP)#}9g&D>Ho-OG=CUGJyIzTnLq>W*j_64T5#JNRT@ZdW52ou$?_;tmY3p_e8M1t{ zgoEi~CW~juVwdFlt7ICEs)goYj%Jrl!%we(hT~_U>B-T|w`tg?fQG+#A~cyCO(FMv zEL*0Sk-iiq)379OeZNwtwOCWm61!0cu`DN3=g<7$I9T2YlN(0?d1cmY;#&<~`$MgzAD}<+b^MSU-!KCDvpMv)1pUC;7a7gk0s5;s^d|*9STdUh%{vvKf0RS> zbD!SY>MIV}dI0*R9Qv@J`7;`*&GHBOe{$$;g60ow04*CDBke87a=t*&SN#4vjAp5$ zc6kn6B53}?0?;gQpwGym;p)Iz$pc>22k&fvJ~M~@p`e$V<&5SH4$y0JXlw;gyR&l! zqj`@5^m#e-`vv{3#}_f0p8+Z~(g(BX*l};|BU4v14vzpa?nn-|-;3{x>|h)}z60D< zIovANV>{#c=^fzSm%~N9_FX@Ing_U#<#0i$G+VOm$rmZbQc}w2A-a5z7BdsR$Z1p7 zyKDFeBtir<^3@3%QLi#_tn)eqzC_w^#5%)Ymie9yau6BWzMV0tH^gho8k2h{P*xjs z>Guwv3!)&V0>51wRHsAMS)(|-kWbBOw&h?`7dWtJEC(S5?Nd`)(eR_G*>=P~h*kU2 zGNlzwO^(L0A2DrTTBfw3`3F>NwPP6(`x)>fQ(DpdI7h?xU!gZKa-W*!iss=QjpabZ z(tYXYY+(nRuzK5lSq_BFz0j9_F-sFmShOPbPu0Zt+u`p2p&`sdfAPpkhtIf-sr{}_b0bdh&fPL@Jg`5?$CKW59xk~C`` z1Ub#e#>k1)4uYK85m7l5Y|F_n5BKnM2HT*`W#i__WBGErDJLh!SaM4J9U@J?1tl0M z7@(Q<6v7?WAg3Pb!d%X8Kc|Ps^V`2U*FIz3e*3ySE54lhmv6zUTMu|RI94lVI17#_ z@iJmqPu&mBFpn9_5Ihutv9rIKhAS2;u5*)%)e4D17enQ(P>Q2cl-(GM3CW5tZoud`Lq6^yAz@`VQe0Czbr7CU=qkG$6V> zl9&CY;U^jX4S{nu`-0_z4F8qDIcvX2d6C5qJ{0)>0M?^!3}y&E49`yRyN`8XAPT+e zgN!zf>NjU|tX#gQe6b!2((`!T5=RHd&-kl}D&{W7ZBz0x-~22Y2MjB+_3`A18wdn2 z#8*Flh4{rnv9cx(^qM>%Z#oxAnfY@LMDdgd_ls5R)40f^p7!gPcAyf`5?WaV zlRMw3~`pGAuKn_vz7hKw0><)vOjC2AJi)DT)mas&snL#QSo08zl#^no;!QN+y(Qn`QyhGyODmd z8t-WgL%%h6j=3KB?fvOw@4*aHG^{2%irs$Q&h2#14)raAy0tskuLAC2lpn_OUAMA3 zb%2TShpDTbSABQDZ=&$O+5-N_1owUoelRI|9KW0K!#TA$0Vs%{KbBt$t{(i#@tcGn zJBbi}T%TP5Je%N%eimXFL#_x$CK>b*No#|zRTj}|R5fTva95#8FHgEWU{D)ABWlu{ z-pd0fbroG6D5R-VpT&EFbw0+{O=av&e#UMnVeHWg#@<@M5O*Cz8a>aNVLEI+YZlVq zb;cGHULGi;m+JmhTS)J6J!|5woBoQ&r0+xI zy{0kcBk0SZX4Eps3;s>ICc=Hy7jyetN-qygqQ%p{49aUU3X}dK^fyNI@KqGW>S@qo z8TCsV^S=vNldb@_23_sf!v=k(;&7Eg$Nil4Kr$vh4w^EmEdNt&8SMb)Kf-h4@E5cY zawwy3PhS`+UObIXPGoNn-c z*IP(+LbC{|Nw=8{?}D7e^fR&Zx@+d<>DUah_!rf(s#YkT|f_) z(SJ^7`azNE?}AKo2>LbY{^{J>ErPwRf+2m-i%E~ce#+>DNnESB{8dQcW#Qp&*t|hE z)Uej-O7t+#oDfem%q;$|m=09UiBx7wb0Tvh(=Y=)f;%TXCo&J;#_&n$!YOkitMT-A ziIff%%!wp$Hc=&|UzN>?^dQo$meOCX(ljZ38a>RT<%k!!zwdeGM6O5a3>v{iKDU-} zEqHF0al6s`hfqSifKoI1`w(qHNW-NSz}`DCv59y%nYFHYyud*K(kl?yRGE)9|nKHmdpG=*-Z zBXf#4{pwUsKPqXlKwgymRLOrDd5vE3R3Y6L=Ja~WcNTO0J<`j}@`usOU#D{Veo3!1 zIe!V##q_dyKluN1;cM`bjTMg|e*-u)=pAU;pvUT}ka9Z)4NhlBvy5w(q&G?W)hUH; zgC3Uj4oQD5>1&eK)p5)7C3TxDjdVHFHv_VDVFjJ zZ>t#cd_ffb&hc{HA=K5Vsp>1>|G7!eAYC_^Aqyp)D(QYnk3xovsnC3l7Spsarv*Mv zhe|o!Je|{D6>-{#u`j0gdpX@!BWXFO&q>{Y!TGqx=_Z|1my6T)NvgX!zgE)gB>k+U zzm&9!7<)@Gr^}?Bha|s8^52$xzvQ2n{HWw#mi!Hp|6j@9CV3yMXffR@`7+6WTJqB+ z|G4Cj3jJKkUnTh;3Fp5T&W{MsuSt53V9yoG$0Xm0d>Kvg-3zOz_1urNt>};F@l4Nj zRm2|=?)nG)G6j&rU z8AByiOG(MPlJJ}*{=Pzi;yGp|J>{URqHjBJRb(#CwK9cDq;w0dt2@)2LibAPM*3LQ zYO|WYZ@cU%aoH6pP1n)YQu+$L9=_15qwCJfwOLQ^my+VFo*vD^Exc^+W>uFVs!c_^b!zz7! zQW&k=B&Db5URX#yeQ+gHK1J2u6#Dy;ReG#w(40Y!S*6Pn#hpR!R%w$Kgh$OY=-pPS zA$*k?rOCX7qARH*TxHIr$!qLVvDrxb*QwI?Yq8GI-`3lu8_fCi+jCXvv%VY5h19=M zl^(!X^B2?PO{z4j0J{TnZ|Bk|Eh@Mf2Jxs>I;VyyJ9aAEH_*dkdc-R2EBXK^U$;t+ z)ET(f`P*HJ@}m`ZnrG4%cB|5z<@cIR^fRmUnaT&uv#5BF!aZ1irFJ$wYLyKC!{*s^ z{$9o@%Q~ArD&^fxI@->+~Q z*5KrDQu>0qk!t!>iAsN?Z=!EnrLg}cb2GhSl^&b?Q*#S799ERKO!=d^l^(H5Z-)P3 zZljKj!u>9M!rVcR45-rMDD9+wSf!taJ%L^Hk0T2AEtJlq>Bm%QNhlcDO_y7xZj|=W zudULbeBr=e;%5_iw3n7t1oqKxDXH=8qt~URB)E^>l+tCi3Od?Hvj@4JjoX8N+FRk}r+ z9=MRcVwLXHrw7{T1*_ELnjY9s|FB9oqh6dUE@eJ1qo1O5fEHS%MzqpSTddNVz;#f! zRq976L04O)&!fZ!sL{u;3)1N0(>R?xmD8W$U@1S{TEY-cb?hMUxBy)lDlT@@^4j8J z4|WG*vCmCstP{SVlxr16m{RpJN&1>KE>*oGy}343zNvZV0Fdsu`s1rxs~ z@iXxIB7TqI6mUVMh8T?_(MqHy&I}e*7SpRpODUu=e5Ry(kWQv!+HuU_QH^JAkS>|l zfP5$B=BRcF=41)gSDsDRX!V$bH%hG+wQm(|!|t3T!Fke43(^!$BmOpNfPSa#uDgZy z2>ey;9pT%NKg)X$(ickZr#H0V)Q6G(b?xVoj)WdVdQaqO()4QzpB3!)0Qq9+bL1Du ztJ-sj5niO9Vz2x(y&pTX$@GcPn-rJ!EA?*`MYL&1Yqh%oS*hJB@LOr5W}P-q|4?|d z)~p})>=gK3mqJ!sDNuK%wv`f+E-m8x52tdvpz>OzA;6RRqvh{GJMDq@qxXHqPa)l3{!OH7 zB;8cZ`4)k{Q2IUXnEoz&YU-H&vZVen=bP}s+`F`Y)cr&o)#EiUXb;lICts;er#Vyq zgkC10mt*v1;IGdyjO$+N!({A0cCCk%*19US4@IJ`-|5#*Z+5+^$8espmHrZ$ zslTXqPi=MGMZ4;%kxr}U^kV5;XZ@EVfBEFATz*%1{Rdo2FoPa)t&*9wig=c_XrHKg z&UK&cl@HUDf-AMdw6^F4*EHACslRc}beVcjA^mO;+i1}^ zLf`88R?)TYxa$tzhmn4=>^^tWb#>7v-8bs*{U(CVtb;a(z=Um}`1 z=Blon?^!~>3^pM>QfgpCzpQ$nXM|m`DbJ0r*9t!4xsSB^Bl@kb^`0j{|J#D^dy=jrMZfjjrQKf|H8x0(8>IaW($|A7 z&G$!mgWuwVA1~6EN){WBxi%FoF}~yasyS#hyY@{wto_9Go9XXFp316S-210IEuxph z^!=(wj2B&h34X~Kb$JS&Fy3%QOMhY9N3UZiby&L(_He7~wP|O0Z*^VcS&#HJ|9bCT z+S7quNPiTF8k+lI??qnC{p9rD=zjN?1AX{%il_RBmuJMVw*zUdtDC+Ndcs@j{%+~_ zy-(|RR=?tXOnYKlwW}Z4*Y(G=*I=Lh^aPFv`ss%12Abx6u(ldnPE03vx9ID*=uLSm+E={YIH7*fcdKg;q;wy(1fHe)==sUd(s$72FMOBNIo>~M*Gbx0j?=>%9*ibvhsym9y7f3jGH0=2x3P43Exf zi=;Oq4bq)7AL%`GCenK)y&r3EkUl{>k$#F=K>wgnK1^!>d4$eI`UTp8^f77YNx?ot zw*m44q&}+GxaB32II(|FSDtZUfI(lcIPK(jh zV7rFBkl&@p=&E2H(pQ76NVgWaTnhkim-I48_ZzMBlfZtH;UkjXDe0q3#(%z6|ZGkn~PTAC>e4Nh!qG8cENg5xSgyNiX3f z-H(5Xs9D>ueMq}Vzd^rOe@Opdz0uX}dZ+72*AHB8xN6-E?se|1?oRg=?$5iw?S9oA z@+|Wl@MJuH_PC9W#v$V>7{Lb#BZxvII}1_HOwVkj4;3sxdUHh+(on%t zr2lQML^@p{6=9}qk+iRd^TX3Qy}FXqqmn)@X`*BeAg`5kJDWqBkltR%?HrA8S}pl+ zP1=V1!!?Y3t!7t12S+Y&=trs}V)7sj;La)k%ky63@x6593z717#_@4L@Q;5v7O_SV z(gws*I%Y=%>1>=~>3Gi?&u7qFL{~cIOBK@jxUZq(orY?p3uzkCMX)a&rv~_Z0L}-_ zK-z>jjQ?E(Ja~eC@v0H&RcNV-+*$;wp_L*vwQ{6EtrBUWR)w@!n}Rf~RnrW#`4@T# zA8Yx&{&CkAT?6hR_cuHbc|Y&feYL)qe1Gz}M`2D`;g;FBzl5}>1D@+=(e!a-v{mZnXkZt9yqzl$KtK}2IywCxnr>S!*03$@?V_w{+&N3kl$-3eS1xYp6_ z?$2v489&i}?|lxx&ujni&Xemb->cdb?ep3**!|FwEs1n8)v-OHt=(i`ty-=6B_8Vbm08{0b2vn$m- z(34=a0HyLgtMab+!DMfIL;OIZTj~p3C@g}FiQY_qdLZ7PO!c;=disQlaY8gd%fmn> z*N8wFFPU}m%tVbSqV~47Rmn_Wcl=mucRZ63;KY)!x@@+3T$|`k_U8sJ;MQ~^-k(^T zyrd^3;@aLH?;ps>z{g5)?!1#q92n+(ZW}TX?-&72Q14({+uGEo#L<5AcQA3BwT31# z&<1VpW4Xh6a8&!oEf&S zWgTs83+B`M-hQN(B#;>|i3u9bm&Eo&|GLybngs&d_JN*di(nFCWHO(2CE78T`Qw;g za8jm$Q5r&KJYN&k17Fb1vDSff8ludqX~7s?7VxOS&H{_41><;Hcv7Awz)a99l$q&g zfh-);^}=yoEjnpeC&erp*T~|NHgZzT;&F|fd9p^%97o!8GSa4Tq|L0vlaT|lG1W29 zomfU}o~t&sP)DLOKG5CI*&Uc`1L?&4RkZD#^V-($Tt#@|iQo~CGWkK}8!{`mY?E@l zcR=!>ri_N6ijp02cR;9zD$@&Jyk(>o>b;nvcL@oz}QJ4EbTQkj1KwRGSR6u?9Wb>Y|Am1sY7AazuhAC%z`HbGY% zv>}o1+u7UR9q;KwiR}VjmC$SgqVEu$ScbGF+0PKxt=-ACL{I8sz?3r9B+~uK?&Ku^ zbmp?_GcCOx=~S|VQWwY5$NEx7fWy!-U8(L4+Lr7&4~Eb|t9wz1BSHH;d}UV-50lO$ zW^YdoAP-Xqu)Dvj4NvMJZ!eeKR{4NH+0%o2_GG;s@pK2ROm!UF5>NMUOTgmLg3VcL zSG>19LF;?4toC9F zmBr$?d7ytyDvkcuB|8#yZsJ&L3RkXh$jWbTk9Q|9#st1TojN2L%&8-55?Gwq_rM@9 z;7o?EET&YC$ei^Et5NxOM+QBEvOk_i7b@S2X{>Un58Reix<4IH_Gen-?Oh3i$7q*K z52V~noZ-25U zvEx`@VjV^R2$<*6nslnif^g?8y$6BY4khBkj;0TeD$}M+Dgo29bC6Nnj$}WmxMP*u ziD`0dbuYrT#O(DO;qX8N2T4wNYbwox9t&nO-kAd3sl<$fyGR0Ww)io~vt; z=}f=U_U2ATsyyfHR-_AY(hSXDtl5GLlA&9$Y_-Pw;_Z+Nmj%&*3>I=Y;WTnsyj0t? z5#q73N;FmhBD8W{vg}L8;BocAg9IPanLKFCsFmFb5cD1-N2rj63EOs*Vd-r)uQ}j@ z>+FE@OLV9Q$+1#ioanalJ5n}KEjNztZEpoDd;UzMzYE(hQMAy;C1IU?1%5^)$D zrsFXduV_dF4c}!IQXPoFc|)}&-hPO-V}W3I*@}JB0S2Jv&fd&eD0grkR_)Xg%rsEh zl8^}^0Z2A@*pURD*E!lckW3#EH-A`isEW951LktP+o>}PvKa%qm{F@z>m^2krm(iQ zr+O0G`x5PlkT4RC2a(~(gV$=p>Y-L`QB$gSQ!341HqUHDUjXPijLZmQ{zU=f;=$mdvi3o6wc;Q-mV#emuAF)MREptP&Fr%pi+Mh;k|kU+Ai;?T zqS4;=V*=n{38BZuNts|IQC3TPJ62mPcaY#Xky;L$SEf8st7(}|^>J*R$mHXASm-)$ zGTT9VTZ_1C8TuOKzA@mA?P{}@b*za_Yx{+DP@a!R=#{1ID>e z>@ji$M3}0;b2eK*0KxH*+H`JANmVF&`#@hGg4;yL>Z9!mIak@lN zS{3K;nu8(f7=wik$SIFR>nZ|gY%U(>5>^$YAYGMck00B{BIlANC|=vLVA~A}OT^bObSnqII z(>;*vzyg}=Orn%zhn!(Q4=c^aj8JS_k4>Va#p@a>b6lme9CWm`984etZD$k|Zf6Cx zPL{+x(00h@jf~_i7<{DN614h)=C2gN_K$`t&ws9UKZ%f(_Apnjavlr1cj4s`e zLkx_aH`(CcTEJGN0A%yolI-qQFad4mee)QY%iv}{6B-GH(9*o+5yHYVjL3$6oT>^WKo zGI0H>*zU-44UpRiE5lIs&yMJ7~c8jO6+FyA??Bf*HgLnfgY8Cp~&6_ z430UOC;JQ=_GC{hbTRfsYqm{>ZSxXq_NgFq84kVrt#j~`wBe{bhIlqlYvL1gY`Dgp zbg;{|khT(K;ZWxw7FJ}+8+d1#*GQ|JU4R^Tt1Am4VU#s%^D*43MbxQyncXfdb>T#u zy`3#D+}%0Yi&L#+dxm(~gXOfQ;3%>LcJR(VkGF=~5x6DW6Tr7)XP9W)mOx(#9Qb6c zEh55mxD^x+#1CK+i=XUH9L1qc&c#rBT(&8U-xkMyH@ieSoU#LG^(A||Y|q%@WRxeu zB*dn9O?MnGrLt6^)lCCEsZQ)!GL+y1G0^rzKc8P^c-N54gEE^3P1dz$flHPxY-{W9 zN@i&F;emK}#&$-tcj812gTs1;H5`-LfJ~>!#cCeRX#ke{NS;CXwupS zsP=e4mAh~(Rcs*J5B1_)&I%!+0;{YPoKXjh5Y9oIcxHI9&MGep#O@8$YNQfjukT$c z%M@T6p)pn*+&C;ZrM6cNfNcR|5V@G4jf42H0iM9vv8f#ahXEjR+(NY=6W=P#9@JY@ z7?i|F;}ozeer&A#1qAV{5W<$TK*tJSfS48=EKN&U1#j5mu{q=3A7LHo!KH^68ibv+ z`2e4~A+$sS#;l17G4U}t?hkM-dtR1v!nOm2Kb*ZSkpU4K_2$k_&T_+6HqqIcD*)Hl zo#^bxX_&R#O3B`puS+BkcJ*VbOI**5SP+gn9YrX=txM5zLspg>PfG*Y)>RRKGJDY^ z&QG#i?1XaJ@HMRrA=OXBFs0rB0r%?eLRLSya!%Ypzh^K(n*%GpXT5C=MoXKWcD?3tZ zUx^i+11X78;@!!Ey**r7-FtB|ol^M>b|Ps$=#w!D8etw&O<-&Y-ay=*UGZUbV^@6a z%THF@X{x6ndmEkb5Kqy9vm+%J1)&sQSEi2A(W6HtG{B03E%VA_(&jNofYY|!vTe))_+STy z*Ls zDL^&$K{X%hIE!$?5@}(|Q;WL4nPF>&&8QQ9YY-fNF%53n*jbBw3*Xhsx-okf1yXf} z-;=}^n``m}v!yFmoGq-z{WK8ZRuN9dHm6tj^r3_gju*-X7uLuvfm_7~$9 zXIS+*O5#fc3BWs%_R|1mkWYfLlkifN-^SyiuX*dKhx$+}4s1VCtcjrMrB><^SUXz4 z69;(8i(Bc(=TF{F4T`Nny|lE3qglEHrIWT;eQH`dqZNJk&?>ai4xWzTD`hsHd7M?9 zoQ|3mF2ARKv~}868~>S_G-Wkp7ss=4-Qe~-NU{g{_28RjN_9?b3m{40S!b=_q+ROJ zlvR*hoQ`B`Z@2Wq@~3Gwb{A+4icaH{M-ku=9e~6R5|yq;AFOkRv38T_gQ}feYy_qk z6n(&Q4+(tO<}6qXx%gL)QVktNzieTQ?FX(O^fh8(xSxYsI7lZ7tP?G<9g&|~JHolp zDtr;6MfBDVi$d!K7o&E!(4thz7Rq*#2d!p~`caGZj-U>Fx8ti9y}|>ekgc@_{j`H3 zg*K?bS&Pb@r467vfZ7=S6g5iLD%&$_s8u+UHp;or3E-u+F6Yo{)aXM^Ohd>9QYtrP zp7AIY#~FNQ1n?>o?Ou$Y)1d7`{)miKa78Ba2l1ap>%xPXcyfOOW^}G6J4e-PLCw~} zI>bEEf4a{MyVh_ZcVGH0P@cBO>azp?YNoQL4q(`R zlHi!z=20^3MbLQ-dgXb;(&!M&V0&X5VoVaf;J8D^N|B91(?&Z0=|>wpLwHmy?KWI- z_zYg~nryY2w`{36ER+7)XeDZ-qy?Im(_tH}0c@ttlPi0-!7{>IhW;gpCwF*FHdG)t|f3`oC8CwrkIa}WbTu#GO>cnlrsMsS=ofFzB zJ+W71zrek-HmPnEuB;Ut|3i}Y%(7)Wm*%|<8hke4wCyZ-8#D{w2F;?kL4yw>oR*(6 z-v&+7+n{MaEzLYUi%(UX#W$)L0&lUvqh&pBc~o z3r|staTC{Cbc$Mxo46Lf=yFnNFmB>nXP%-K<0h`vbc$Mxo48iLlz7a_G2Qq!6#P{O#=izWYe4dJ21lomVn)L}I0FSP7j`J+G!Gue};G zG>u-ciQ*aTu~Wz!c}Nv0WQPs^vdckLW5uMLOe7y#;=J>nIjtuZt_&HeL z*amiD_E2mcEQO;fJcI@4__(1J+Es)ag?C;zSa&5JCxksiu}wIM|u3W?SV6P{pOEF8}7LJ)|uKp z|9CgKYc$P=t&-+JCKTdgp;4o2;ekSiga?4rJ*DBeR_Lz5%WEi3MsY|h^wki9BfN&IFtLs6->%zw~D_lmnMK=n)rQuP(7OucY7b8^Y0YSKh)6i0|qx*|B zd`S=kV3xzpzG6+6B9|&Kl0qKIQlHlo45G?bu%Uq`mfmQohbTNc1%e81l%Z}6cnuj! zXr`{ajqoVGG^PvDOh_#>+9>HfupRW)xY1592&Pbj^`J++mBH{%mIP#>E?{*}xEcM< z^o1@!ihouTDQjS~nR&oP3QG;r!aKvw_==bgdLHp=ExaB@j97QWYL<#{m->v-@W>Sy zCrIQ9UVPx8a7rQGcGMu-@J5KO8Dk1Q;behRACP2k@D}@W_oGFZjAuv_GVDHROes2129U*FYgGN)MKXM()$X z#o=PiBMr=qUV{;_=@nZFD)wXEF;RrP7BM8^tf_mvE|ggj*K=|sCpUXBUBV-O(3M3L z8eTUvC`9IVR@0JN4@){U=j>FJW7(i$#{|C*vLmi=x zLLI#5dUg;nda&Mwp;@r5aF@>3$fnk1@!!Q$)E6n%JX*1(NWCyL`iUu%d8T!Uz#bHJ zep9>vi68CXhe2Immt|@DFOCkxz>e0s;k$e8`8d$nIp7 zu~CJ0vQnNz?>?U|NG`!ZX(K;p8yfjJ+qcz71fGP^Keqwl(I1!$8~KPYd{{4rhQiH? zBS25vYc^ZY z(F8059E7KYI>J+6i66lW(&5qHssG`3|9^XD6Wc}+#qqJTWgT~G?9B%O3fcojl`xhQ zrNlu*kx3%e5+t;a1CcCM4UXD?o1{r21YF!)5Jxz0t~kMso)8DbrN>H~InjbZ;!r^k zJ#Ybj|JhxCf&>T-h_1CWPH4#N`>dxyh_DDnKK z-K^ib9Z}hJYV7cTKTCST@ee%U2-mf25VF4!*dG^0%s3J&CqysX(5*$>V}G_LqHC^t^p6A=&yUnc+x5$c>LCPIrkWwG*|e~ zR@e4;#2wFg)C?ScCG8%`Kp;R@#=uI=FUE~5uwOYEFvDn~54vd}rXvWyq9HyfNl_Df zQv(TAXeb4)B=O700OhSaux}{h1hgyma`>2CVoO78%&wMDl9gS@nU~+xV!V_3^sV~Z z!_&9kb&R=ICK+EKc}K|yN`6w^&F4ux{cX)Vr+M9?M3PXFR6+;FQKdt-hMn$6*t^L% z3LAIWZ3knNX~7M7s(s32+ziaixfgJ0!Wr~*Ip6P zK!q9ZNVvSi8lF&6wsQ~D*>rG(b?)(a%EMwAvz{#tY4Ml*3PMDs%WP|q$cnmjka}7WtIo_Ih1!<%_y^8QKS#_`xyY`qVuq-sjtqiKN|HNS!V1??M zu2KlIS>c9$^|G)Ih9DjW&3iAsLQ+E~jpv*c&Pd86xj7|gsOJO3;q)kHI8&U*`7nYW zsxj=ulrXEw@t60`?-DN6cK0Pna_5cx1aN#!f#XGXUn?vxt+s=F@@rv?#~dFLm?=zg zlgw!QViajF-}OB=Vn&|1 z`5+$QWMQf>GgCZOm^w8%S)`4`|U(_h z2P<|qUaQ-9wSh~8-NuITzU>V7NtJ`n|L)R67aR|iK*_~sQ!Z#>y!Pg%4a!i9Ur%t4 zel&F7>OWf6{`^MY&}{WiK%B;)TNtbtoCMMtUIu4XjG)b>A*-|(>VBNzqTsww_pf-m*$59 z0m8jrpxp)9%a$%()SGt37tkhM0Vd!)Yx`V@>V*wK$Me&_zuxz>owsaQvh5vMn^XVn wJM$I}^j%fqstkT)PnUmybguzVx)*Ex?Pz-c_`4Xm6@F8wgwpo@@&CiXZcmlg=c) zkS0vI3W9=1LA-MHhzg2$!E^KoDhM7p=n+Ldiqs=22NBStU(rMPJH?zmaGlu~Yd-+D`_hjHa+nWU#rvOtIG|0$%t;D5UD zVPnnHja&95GYtdjR8KnI*U%O3?@tXj>`64Fhx!|m{S7PDZ*J&IbtjrjO9N-vO>bDK z)EdL3F8%B0e(Ch~f|}Y;V$4zMOMqA!`o3pzZNT>he3dGbys7ynz$OEYp%mc!xYX`z zNXq~Dt6d}rpJixwJu@#T^@LrI#r(%mK@|3VU#XTn@a=OAO8E+?d?>FjC^ru#4iBRI z!7m^IPR2T>e}H#4r!(m;poO;=kfEX+B_YetGW>5&CwfyLB(F-@GWe<#a>+8Kmgfp~ zW{`5lhrF4}qt*;5HR)1mLEwLDQa;B}=c5uh2rIM18?aWAV~#9X&Oxda_*0(o5v(OQRLwm2Z|RpW{|bKrWvvN+5%D2au!8RY!q{sVmU9J3UM&bJbCF z2xuvxcM{5+Lkk(X(@zu1oI^W-&{qg$&Y=wvT4?~voI@KXbS|OHIkYe{cX~ge%sI5> zgx*dlbJbDIHgHx!=$8p)&Vg1E`X7Wc=Rm6neS=Wu9B4J6bta(9InWwH&m@$&>L`RC zQ)U!$52#sF%_w+4MnR^Adde2*RHd>@vyh{^zBUWNxu-t;)S4w(FzT+KmqiOUz@q_} zY64iA^&;2s1X{_$)ZLS^P^Ej6?PRHhQ8tyOl1AB7mckxoYgsB|l&xhc)KNB=rO-#& zV3xugWrJA?ca)80!N0pYO9578MPOMGP?iFz%2EJTSq^yC4$~C{0s1%1D7uJ^)DkS? z1uHbfuo~R~SRke>!aeHKU=RPp$^}W>(H2Fcfj|b021>kE3e5(TcQl16SCE0x0VFB3 z8c?FqpszK6F)J@BKffGFc9|q8*mwbH=UtGv$ZFTa!=UP>q{0EQUq>qt}jwRrp7*8w*oje`*R^fgnZ?04Wwennq5` z$~&4tKHbj2(K^ua6U%p$`y#$*J*uV82O`>loNzQc$cn<1SLXSCfR#dW`HEB{sFK>S zXkA1-v3zHit$Ig?km_D&Z-P2?F9$*5^g^Q?-;0>4gSvdhPO)O|=%HLMwBWbt<#0hS zH1qMji19lp_QF=ZqeqbHv2aejO)r;E`G&iGzrIyorz!dAVb@S5)Qg%JN0oMlmT z6A+_ACj0f#qkuWh63=F{=OJ0W+*Smk-q8`HS8yVZjv}#jp5BONZR7Qa{Y}eMfm6u4 zg1iIBP5Z*ho_7Jto0dlmZT#}pNgV0O99su7CLl+|_w6OoVx zUO=Oih|8?dW33n=J7yGOhlC+Swh6Z=pTA3+V3v}%+k)eBvKXMvQ54I8W$Pc)ZF2EZI<)(&0Fqii{S zpTL>T!8wc4Ul%yDIXF!!{d0jcn}gHF(ti{~0+Rc+Th7o>=cAT&ED zDv6j8Bf1!1T$bp|QhhlO7a`mpT}Frt6m1$N%k~{@x)~x(Ula?4rTo$5C`lL-fWJyX zf9Q|?&Z}E7a=Jxi8ni}A8hu`?W@NBbR_j}xMbXn!l>KvLB%iHzT;#ThZ9m!OwO_(UZv+z5w3kv*@v zI(jLfl8<(hiwGx`2-t1}Ma;2ftjjo0P_uOVd6YR!*CRsK-KBP;f)+L644PRgPRJf4 znph7yj6j9h;Vxpk$6!Ta(FCB{V#__^Gs`34NYiS9u4^y%*wRSB?O1d>?nt@tS!5R0 zHo$Hr+t;;gvj~?*Yf%Fmf2)u@?4j|z*2dH^BmwAJdY*DZp30b}zV{nLOQ#;c{QXO( z&Y%C#Qq;|!mw|l*qOb+ngf)usXq(WJDFvSOUaHV`3Wi>2!3Yd<7R;HLg8f+K72%4e zdbFHm%VJ!}LC$&Oid|}V20dBjmElUEzwFfX%{Kia(pQD6nkJ)tOvzKUFY8u$b-21| zhKkf+(2vloZlb`ST8?D3BlVgn7JW*cE1sBG-q>E#b{6)IVwmnIxPv|V9J<%oVpY4X z)|{SfZTg}$YpmnuP~6njgwn%k!;Un&6b?Bmau_?o=Fl%IY5)bi^6r{!!B zl!5(?skW(U!(2)j7x^SsW1e=6ZOn6bzqV8-c?*)6;F5?~uQJ-txXfWL#x>Qbsgzib z16(I6H=j{fhP@Uw_=&YY^{bp z1r$o`%q|tk!)x<%0Noe5FWb3B(_`SX=1GM>6#NEIIEsM99YyWHtaWy13}GS)Lq+Tv zn=_NqKo-%Ey{AHGpkQb?_o3IY0@hKi%kHWhVdLhBDyFFnYR<0Jh?=no1WnlYd9CUZ z*5m0KmQZxWSo9jSJwf7^4cw2$0wVk+XNdxWv~1b(|uU0@0wnxQK=aEEVm+-oDAJHeNy@wqGjc$ zQ?RM%(FG%?6+vs5Eb7>bM_;Y~g5lyIfKZ9P%6(y9KH_4y)pS%@y0NfN2U{Nmao8u( zR#T{uoBUg%R|0!s6aXZi_d)Fc}9pn6m735+LC3xGz0%@P1h2W5Nc!unw#z$8Rf+q zCW|9iFz+3KdvZ_rk0APY)8jv}d?YJGCoEXDl{tpO$dyQFsO1x|r?LSbM6Uvrdp5&Mpp4!GXjr?v!3^&wUO15y_?w%W~)Xn z;3fJ2wyezWLPKU0b0@$lADHz%GyP4{URXo~?^#F$F6!X>_TXAhzF`=sYYuNlr6`u* z7`zQ54TKFboKOiobvsB(W0etC^h3y%yOkAo%PGV*#>vqS133E^&rgWBPE`5OzGJug z){t#eF*S89-L38)?p{^AUH_Yk`=6fgAKgy@!}PK|VGod>NdOe^^Y3rV&%8_W{9qw` zdwHxY=I3vghdI0sJPsqua_>BaY`8A9f|p7?$8z-M@JArz;g2FoeGJJCsEjKb&IPD2 zOZJvK0+!t@ViuP=+i3^t%$|n|xh94`&c^OQGKyK@u1ejBEZVWArXp9J=sV828Dw}2uVWH=;;`CYbH#rbG~Usx#V zU~DS3?DRXO$}f|gV^k+hSyDXJ<(}uKW81Ht&<`M2#DxV;h)az})|&#^&R1vc$_huAZ9<0{*4n=(1_y%abTxU zD;>Qys2QvBdW8>^bLp{i;f+u3JN}bn<;RSE4jtg!m5#bP{VJwlP1Q{hqY;Ja@j#Z0 zR;S-6K!h}c29tKVd4kJqb##J;GrCJx3Y=N{7P)zJE8(*R&TI~T5#g5zoY@@wV#2Qx zII}tUHo_kiII}tUcEW!qaAxfj=vi1)@&AO1!qx++hme@V8-Y)KK?a`pUa2nvkbWHv zM3cxxza;qRmwCbT5qs;$6$=9GEw{31d)r)STqUttP#uknI-P>vnnFG~=XRwY22=<2 z9-pIRS?QkEN-i+6iky=5+-*>2U!1qE|1~eO!3!ph+a-IPzXLBG^#enx$&?Gih-SDf ztRqp#%(AwXAQ)PQ&SZHyVd9qgo3uMjw(NNY81K&QrLgH@v2qb^#hL;$%?AwSR%{6S z0}8j?tHR!bp)kyEnhn@=i6X3Razlqj=**2GFJW)Uoq~Z|3Ue$+EByGk?A8eWraxE>lZ4(y6 zgN2UmKvlTiDW+kCJho{-=5`Iyq|dPo07;nxvOumV-E%H|>#esSU{8^N{qPTBm<_gk zbCn_IkSBv}PtH1iNLFw=V2nU`@_!pqg#syw^+igwG=d7}=Hg|hAX6lb;23Fe3%CH} z#nK4oq!BETMldIha)=6@i3#0+5tbBOQx&8&mZfm;cJK zA)gw6fk1Udz7=7Tr)38anSX+Sd0T)mk8q-r9RvSYIUy<6Z)Ym|vW@)`d)gS5{z05aeY|rcEeu%$ej9w5)m&gE0 zTW$tgvH{T%4|8)mDtEV(03C5_<~#^QMM@BXN3T9IJ!@>RmT%Z&>uE=~=gF(iem zByq7W#}bQfTd9Tk zPJtFS<0}puWy0~eqMCv0Ed_AyTjD4;oLb*2fQI;BIw#fl*MWIEeM7GzVRw;+v*)=T zFPqmSfubx?+x8thY)Ad~(b3aSJ+%ZA@)SB+sOQ}OrH=I6Td4ls>&(4+W5!Bn?wJZl zP<(FaB>S5IRmG{s=v=lD!Pt556%Rly+|O_u!F7j^4F>&YbOpT72)4lRQcQU}nGUK% z`Kw1rTa6KNrotCQ9o<|YC)u)E6F;33(`IwY+*%joyR+O~xNXKSC#~`uoxd23@fh2og^ignxNJK)i+0(vA1jjSNpc(5KGfsJ;*PgJ; zI2toL2bQ(NL}j{~=!Gnu5G!HeGr7>J9GY*?>Z*gWDld+_zR3a^qBlCHOFLm40R!kb zB%jQZT4xyFVhwLfF4c&Jc6ptHAejyb!Mx%l%L7f0bMXgBo)$}Zmfv0P$4atEinD*7bg zGjLDOrM?4ZrqeFO0vJc<^j{Kd&!0a{AHD~jj$+5^-af*tZ@O56K(>w0FnmIy9jVXq zIqI@cs=fegEk3ETa=PGR#Bf;a!UJ7+v@S4g;U{c4y71(6f!$Pr<}Iyd9?0mmvqEj? zc64x~n(_JknshZReg?-}5pb3IOT0rhn7ge%fF!*4G8^=*#I}Zy0rMDF&BPaCS8$1{ z6W;^)UWM-m@NJ<_Fi%)G&(b%z0xc&r1Sd%jxVfJ87_JIS@KyK(Ht|kgSGa$+01^1GtUDr4bjNy5$zwF^g9_a3@>vxWX1VPJJi* zbZZ1o62TG{HO)X278V$U42^(kjX)~kfT?}@%;!=o!1I~Zhs(9!op8$>*pb{OFJtg5 zItsj-_|bnwTkyCQ1vc)AJ_R7|2aG-~SGgZxsyk5!_3ZmioJ`vL1}r=NMtl*`^Nvr+ zNuR;kfWEIGu|Nd3IG$P}_c?6rCc&O(ulvNWSxO?O_B;y@9%YE9%a-~}abvJn_Z*Bx zq>$$&fA7StZUVm$5}xC%iT<06GUzMuu5jGhHM+Ht}o z5n>afNIq!;Rqg;7(r92<$$GXM5(C#1@Rp!JA8v(7r9ax4*g~_VV)wB#nK^t~tAHRDP5KtSaD7wfvF-q*!$P zJ4P%TC;=|t5)*aNz33y_(VL}{+-g@5{Vq&_bHomc_wL<$9_G=FdYc!67xu#`RIx{dw-6cO)TAuU|4$ps^JR9E5;%6;Y=48!* zFod}&W4JKSLv9SG-@eG$rW7=Vu@z1X{T|Me|4qAIbBbP;`4FT$J_#N@sts+)$62mj zW4A7@F*~UJ?j6YjGp|ZLLc7*uE^N=Om;bkK&vVlDe(|>3#r>|6R{XcZitmtl@Q(*y z^opU^pg9mqi1z0$dQPprpmD3%Jh<8|e0$Al&I=#W1); zclx$s*e=4pTnvL#ai@P=47-%DH;Q4{EV$F>r9@gM{5*3>zZs z$zs?+!v3=uc8IXIieZNdtMwO+1A(PGy|5UD3FA($FNO^hw!av5l(1`xVIzdySqvK` z?4OHaR}l7GF)T~i>&38RgiQz(@q8s=v0~U&gmo0dt|ly547-M~>x*I65_VrP>^j1p zEQY;{uwNI$t|!b@QpDd4gf$k!-VNBS%cfR5a6aEfwr@scUf^`UktjYVw!u^idkT16 zQ@p&mc>P-Mg3$*+HGOvVjM4j%IbnfkD+7lfn4Tpj`U_+$qG1G0{OyDoe>Wi(fRASw zzWQYCeYUtgjMr(8m{Ye0PkGYzK3CixWaYF+%&FUxt^P?{e6YAhNZM(Um{YVkI~XZF zQ5j+wT^cK~hF^qSGQUDnj>4~b4dO1^P~!nyY1_;F_IcPs-)^6y`XXMZn%}PGM>Vgm=CiALM*oW(SvXR%Il>k|c=zG~ zQ;#OLcCg*0PEU3lCFbbMs4LG7%K9m<&d3WYN}ts2DDm14GV?6$1F$*7DJQe7Ge$pO zENR%UBWYqp(s+=!0wx7(a#xhb)_@}QTk`IXHR8tEE6nmnX|xhVC0;J-JU4ZFOP_Dx zoweVAVD=Aj%!d0?6Y@u*3T^4VyuLrPQ8i!ToC~|ud%*MDu{@7HRLm?UmcuMDDNcj} zW^q{Xj+w1~8)lt@2hHmRs`;>UZfEkDNi|P+mB@y(wl?OGXUuYEMUcOmuW8l^m(E*~ z2uQ-pl4t#cK6yQ|R6j%dbrBEGIp9~-f>YFu=IYLNRm37bd0SEY4G(`DBsP7vIRlbj zY7Mnwvr6SKs=;B{Aj=FLS+N|qC%1yHlhmZnoii8QYcS;gES~c|A3r}6a5=5=*h;0B z!13w#HiIpPKfszI3PB_f}YJvP%fz873IihR)j6n|?1)uJscSmVq zb@mCtYEY)%OP`yhXj?F`a8p2&bNb-mi*az+O5d9&daQtmXJsJbZ7P_qC;c?Z>ZGlY z6_6pzLo^1?WhDE4jx2V0zQ0=1@J5!<{5Vf@kwY_o{(RCfRu-C{=V|6SH1sK;;Tlm*^;+^hsadtV@+8kcB2njD5rqQcfN7dBTqQXfntfg`VnXe zg52vo1wbQ#z-ogzslEdJiLc`gXdWa2Ju{E~H$gve{&AwI9iUtD=+6pzxT3j08y$Hx zpULn}t-of!qX*R9o<|=LG+&`a`Tj()-*rL)9_p#Jd2V0^fcErkb={W?LfrRed)E1 zu!Ai(=V@#QLURxK(wlQMv6RisriU+OM>Kd4Y|j&{vk9KNdw>Kqc@T8w31-^_51fCD z1T=aOB=Q77UwVJ8Q>#+Fm+_mFG)0F+>*{=n=Z>Z1WU zeJfthJ`3B=>j56CaI^8=eEY<_^Y%@7j_X|VFRxSRBWgUj6PxP%Di|Zms*+g5ls76c zkBKD&H_I?~#y*X>V!^W8z~NR6n7|Pk?(gFebSyp25kSw6ygxf#VuullBpTiVbWD=@ zZwO=rEXsRL`4FAPWiOctgs6Vi^)~r$3r6!GDUV9zey-*o!v836W^*qoe1h=O z5b2q<;j=EY*};#%{3F0-^sgAq$bHE2nG}=HqsYBebC~FWRsUu)W8v!U)r-tnP(AN8 zqc|F{e#&3O(J^&3Zh0s#8Rwpb0RglT*7b46(G3Iw6ve9_-w?jBaIC6@fn19R zsS5mzfhO+$v0vPU_!KVk0FLus4IbzZf`W(jIh;HjGxBMWn)Po=&6aNp$x*`OSL^v zigLP+wL5Lr1DSp&?bO)qJb$Uvh=Tc$FH?`;!|3vy*?2NViyd~rft{%ILE5p&=IBn8 zG)uKkQ{}b{s{+sa%;-@l3%^@1t8Ee}!7M-5LX7;P5&2wZ*RUHec>8D;UNhi;XHCq! z2~I9|ih7QpjoM3cx~@MlA5Ue|lEkLwmtY1^N@gHdUgf;FCaN2u{w%Z|y%OBvo%w5U z$?}XOf4tuB8a{y@`QrhB6kI?c-3q;=l!5m|$KzI>26xG6a6_lTUH5;0`@sLQ&3wJ( zn=e>yKnnZ>@jbYpc~0~EIrHaYVdf(yy-4>>!Eb>M*goRu??kf2CCHTsS6uJ>bLz(jR)>H)M_ictjAFNA(H@@m<2>Yu7P#`nmmPZ;FC9oT^SS8!`7!~bd-p7g5z z&st0U(Z}>LNG6~@3z{nRXywAjD)phpg^kat5ojr(?uQ(zR8<4vm%&z!;oP>U4qetpk>m(SWo%vocfW7r51tzfLhZ)$a>MpqKTvrS2DeJ z5@qu5ASaMCXD7eyw25}9=R-o)d1+bffv87fuzk=iQt#ZpS|704%`wu!x6C!@a3 z#WpRmhsCuQdMylC zq)9;w0rdc^rAloQ-i}vZhVdq($2(!+7UnW_R960K8RyA2#g)?!82I7oXKN=#Y9-Io zq{yU5Bj%e&aA$`nMdsqoRiBg|teX^BiRbewr1bINq(}l0eVr~M4@h#o$wF2u7(#LWioPPIlMRzT?} zaCfR5>QX8Fpp>obP`lMJ1QOq}OM9gB4ZGAOrEg<=r0kZ`Wy0Bwcmja+T+@iVN$r)= z`!FJw@P-@syaKYCtZq>Ul?#-mfXv132^|#Nhp_lfR=2Ce@Ni{nA-vvPbvH_+oDB)j zRsX1lm8-E#eayqs{pxC*$@EX2;##C4Q%c>7)Wwqj<7DRVl>9t_e@XIdCI2p9tJG88 zDXuDYe*^PhmHcgz&z2MZxa8j>`JYHW5FzCq;R8mMI>XQOCv{Bkko2pi%->&D=WkT4 zrS*PGEiIpJTBvgH2?xS?+MOhmdm%=A3T zZ=S&X8P)9NdzEJ)T|AlT^OKmqEG{a3=Wwed+Jv{k~o`ANk|p(8AHmM5JuN zQjbn0QlAnfzP$ItC4;fSVLVW=>bU}k~9HXEmGI{f3Fs) zP?+hpUZ$5-F#W((roRX=U4}6(Qqu+d!70rDrIP8E0Mo+;(}c;?{<3g>NVxrxq_+t6M?(34N9b)Hi9McKz-+ZSbD4Kcm6oatg;9dxAaoK|Y7zrx-e`hkjbLG$6M zOn(z%x~i0E%**t?DNI!r(?o#jXMx3f;iXkv3O!ot%qq^HKVaS&>VgucPt|kQTxAja z?%Eh^;Mc}Rq{q!2;QSNrOZ`=Qz5?nj&VNa=BPDIy0`z0yeBwKb1bv-D>v-BL4HbHHz^?=q|sTnf0~Na=BP_0(th z+v14ylzLos)qM=5hi3?-??A(~hFiUCmyR_YGTrLWcIheikRK7_nVRw&!OKy)-7Y;7 zyaJ_r>{40v`H;_Zc4=buUm>~Q=#ud1Rg0t23QE`bz3Smy>D_*xS~klsV!2vRlTS2^Zq*Z8!6qQY9~J8pR6htk@6Px&AMm&_3CI#zFwnx zmz2Jxj)#8??|q}h>{`>))CZ-cd!MErDZ)i@6yn&#G_^sOd`9?MW19M|U797O-RBCW z@AFfL`>kDia4Jg+ura43s%ls|Y?mx4eaSxL>z=jV@gpv{0&8&(blK43-5JsPEdP zoAC_a0<~?U#)Z+t0`(cYv?Ejr%HPbl0Yfz|2>DQPKPpuV<;IH&X@Dc!1S z16u9+qWmMRy}N&D(bcd)~WxtOE1+W1M5|` zM^pY+cp$JrH6?ZFhv6fEO)9%zmp+TqX7w$*^zCpqutj~VPvia>rLF3>{kk->?7F~3 zeE$)jTh(@yE>@qhOZ$8`1-7Zz>{4&}KLoa`h5=IQ@oiThk&>3+c6G0mu2MUpqwVU4 zMYuO}B?GuK4zLyNp?9borNmYY#NeNl(sAP#+;^$p*rmqCsVLncCk)5b#juc_>Yt@_ z+}~OM3`*bBCF4Vri2II>yR&{SO3&K3E!DRLcB<+@_I}*>VD$>%>ZPPdv{S{Tq(`(< zEs)YxIP>^8>TR$~_ZuG%>{7jU=??SbflJi8>{5&CL%qL@>Ff1O`Fr_>T7V;(;&f>_ zAx!Z*S=g<+RHm$~%&o3zC@b?I8Xt>ooJMRRyrF`%{u(Bw?xj!q;`_>m{Jeyd>R$e2 z5k5MFJx=#A&(u^q8<^KLY?HOh%1pIY+PPf#d;zr#aOhAv^fLlwWiF+8`{OvC3rD1} z=Z4wx3~944zgk9dpK$f$L~_L+f-(?~G5wdV#Vs_Ts}W8U2&wT>H4hc;pF%Sdgm z^wNejg=fkys~u7=86RtePZId+Mk@R<N`dIZ1NG}FFX>O`| zAKLk8;DhLW^@PWf`l_Bn`nyV|=T2bSEbuQ^eBU@?{s1>pkC^i&GyM}zK988w@hrog z#`38@HjbJ9IOPT7L3Lu{wZ<9h%1N)Hm)+>)h}v56C*y$mi>ki@`>PtmY*KI4N6aVH z5$w+>?J9Gwd28b&^Fj5Eis|Mp=FEm?aN5>aHp$$mGKj8kH?N%3Y$naOtR?1g^%`Qi z1IiazV?Jm;k4Wx-x_9a(^DE{pe%6{;eX)5&#yHpPtz!On)}IXaatV6rE9){}H~s;q z3$Gh*l^z1*Q-PzX`vlr#{x1?8oaox9ei4~z9yh-}X}Rl8^^wLYNPDI+eKN8N*jFR# zUB~gm1LuS0XTB-O`zJ0(dRxs_q&xgmT$Ivww9FYa7ipP#!(2c0fNQStNZBD*tH57U ztNo+MKR5AOm)~{CwA)>aF@rwuS|KxQh2ku0GyX8;C$9Ts=XyYG3|?y-P^&^ecQv|h zp7cxCOxNVnmt6N5KMK9>n(G>_c*}Ln%+|Qw_ZeqE0}wao?wE@bfNfq~9&l?-sjXM%f!(Plv8{$6YnPk0RY)dAB?1x-N8| z`xdjF8h0J?ea_uxFv@P;brB_?ubG0-)iS%60kC5*7|H!)2Xe@aV=~*R@dR}t1dEc;Ja+OSb(R|%i zUGkRohU>z~mY23&>g`6_=;~Dumu>PI?)xgbyic0HntX-#QN!Ob#We`*f18gQPlC5W zRfpdz8dT3tZc={t{{wce>(f);LS1V7s7U^(Nd8IlmWC_5y*RsF=KG$j#FGK%{}gye z-KXZ(J)^#dHv4^7tLLm&jTlC0_)-nQ5D(*CP$8kElnH-hq8}P~9Wxz3P|9 ze^UJ`DDM-RPL@;UVbq+d`!LHe-zInu94J6{u;$5fR+sGdgZQ^m0(;an(N5O%BE8xSB7K(`_BZ2))4vyJ z#;=$D1Zkam1L-t8BH}V)>H{V1#<}WuzW+r2M2X9cseQp|NS_G)r#T<+b{EqwNgJ$o zwV^}>2x*XXnWVcV%}RQQq>o7Yf~2ZM=p|hy>2680lHQ>q6Rtv=SxH}zRFx6ZAn7tm zcT0MK%Ho{(7wXqINA}}4)LV_+#z&3I%=eg|G#@hmVm7(t7U==~S(55524 z{iXN!UbnB_H_Nxi7x(q}?({w2b0doI;Gczmr8w=M$X{SZRCzDro&Rv-L3#E4-~&j{ ztbPdT%HYFDy8>TB`lTvDJYiBcOZufL%ztYt(}^`q1Cnl$bW{1GfLtxL7MJ01d-c&$ zwv&i3ohSLfOd-6b{^@`TUR>bKkJLmA<3U=2JB9p_&O&r!;_-)aq)iwRe^nIE8{jP={3HXOyRSn!2j}=E=0H8td8!fVeA*9oT_oy=%UXg#ISOM#)dxZJL+N9K=0R1zIw9; z&qf?M_VbW`EJUdfp9EGd?IBt&=x2E9_`2Vby2ZTQ49$?2!cS7#s{()3&{qvKP>b(G zeCwcBz9`<4?2oUB?@9DZeSr&wO|Ul6pBYRK#RrqA z{`OSgfKU-9MDuby3}y0-2$Xoqtd3_+)`%wR>g-&R%nbC#kF@v3GZ_J%TtIf0t#*&+ zC;F3v`GE_#J)MXTCeBY@-j@<7ZXS#e4rOHEV}(0s?kN=k40)f^iHw$gp#V=(ucx!~ z{M0)9`C0VWlQ>FcqKOQ&q1F#jZgb~$u1I9MP+m9G+Z*50o7g>9b*$`%R?>E9MPl!Y z_+WfbJVV@ubfP=ig|Q&tp6VY=^bf8|_ID@J1@&M$EUigq260`yw6C)hH1XcvBXh?M zcHSumJ5P1=56%Z(4;h*9Lq19E;vsKN46aTMr8#oYb`A9{T?pNe8T>qTQKAb>&l|_x z{8MrVjOGiO@qC@69{7S1jX{bk&YkIPD<^IXF3mxzfv3EFxK}cHt$OfuJ3P;a~@%$^bM>$ zJdnyHIFr=sp`Of|co0(k`|6NM&VGY~)2k4LB4_6{b}Yf|xUk?4k0 zW{}^u?rzl!V4_>?!?%53qHF)2)M0V@C}Vc6gBrTknnZeFYkya7yl(&{svN#dq1gna z+AZR?ZDdt)kPxcP>10!)FLe+wnYf*+66wKYZ}M^g_U5x4nYRA!bSl}cHYNKmhCaL1 z%6=5$NYGXvuXL7}+UZQ9d2?zAc~~rfy@UHY@wgZA&Vtlym-h&iz7(9&h4gpF)7@%$ zs{6=>czSSC0)~SY94^}T#rwMws-q7JS3edRu8kVBZwL(ZCif>glYIl}L{GmUJG(SC z-k%^hpuw?G6xrwZZisWb&W7EF`gl;8@Du5COT z*gSXy_4f=74sxN8eCn{yuv^X;I#0P`K)F~Aj9v!cljuGup_`b$orQ_-0fU81+0$iR z3Sc(dk&*1mgIEG7BLNOFlfLZGW^l@E#=hpfT^drB5!lnSaH^`U8QqFZ_vHvuuz>DO zwPTKSw)ev0stl)@&e|;&=($;|JfWwg+Dl{J5FbLd6^Y(N58@oPB^~e2ARbPr_IN+$ zm7Y2vNaf}cbZ$!&CJVyFOXqfW!YYyFs1NN+vNpU)vNw?yj}26J+aR6?g$CHyo*`|I zc~}Qr9fNRbaV=~ZqRnHs$P`$WhMEqg();rW-Bcot3E7?K&%<@^GUYcVdgF&Bm&xO8 zGbR~Od*Iv#kL0l&1%l;^xD2YkWPe|Le_}74mMo0W4xOXcuy)>?;Txq)KP80@jUYVd ztb`&%koZDGn(OzfEf{H!&R!J9eq<=43z*8tcWCx{-;?f|^DS>xph#t;I0yEJknV_DR3e7beEao*sqSy*Jro+xqg} z1PJ=o*yn*@NhwiZv9L!)~17rUOT@fI{qh%AQs`Y%p)qs*uStIMD++0juR zz$H0f5;K=-`x0^31!m0=N>3CZa)bx53#o1dr`$MfhEcv`t~P4pP%^z=ob3V0p=wW}a}B0kyjQIU`v;j> zk?N2b0D8fC)|Ki@Y#vB-Ap!y4n1sx5W#{^+;IZ{eDN0H8uS=x~rmf`)WVK(z5#IEw zLGXj1K9R;`aU!!ho#L;Y;@sk5acN#rvABfLt+1iu(t;w~!lKfmqSDz#rIw;nt6k!- zbYJHu1`9Ulj(Iu@wx;P%4Pv*Iqi;hntqYiIjK~YAdb!7k2@l4Ty)qHFgz8K$=LL%r z!fl5C#C{WG;^cJ=38~t8dtvG@cxD*iJ7E+9pyqA>$-XnQR$;Ge&rDI>o)nhBKAQwv zci5_Q05vj;?(NIEl;m_{_ zK!SZdBEbHxBLZN6g5~~TQl^uV$fm8U3rir@AV_eWNNw-S<)TQ`dJ?8n1B^!#nPMD= zg|3UHt`it{wu%3hp|8@u7z6I!toJ!NH=5XM?|d*W9Qru>AeBxGq!Ih*Hc|tf@Zs1* zfN}PT7(QP>RHqA^v$+CRb;cxmzqU3dRiW(7LjwZ{C==Z)4|gTxzyvS9U}Sc~I(!lz ztLP8aia0}B1|ZTg1`8XI^D&8#b<|62J_cq9>jhGfu1Ivnk8GmIS+WJig(?S@{h>6z zHa-CR7_c>wlXP!8ElgXNExpcli9=fw0O}QtO2giB+|d_JrEuB^9lS9|!75!$D7C@V zfNINR5`BAmkIZi0yf2;};Nk~A2glAMIUc60?*}M7I0Tg5wXR9_A5iVRiFn%CL_vMY zE*v$c)$%kJ%|x1~OWGRy;#R^S=Bp~ z?8d^F+?zxxN!Od9M~6M;LN=(dv(F*Xa^ZS~$_#6Cma#(TYFW<^1a=WCpv@TG5eK4G zj@_PvwxbL5rlbF~v)_ks2GcZI4up|?*M0<<@gvR(n1&6d2eF;U0J$dxi}rf7B1Oh9 zr8Xpcdo@fz_B;oVy_j%$>DlGI=ukrXE|@m(5@d;1P|!=(YQ$}hKDd=+iI{zo+mc$7 zIs^#W?a1(C1BJcLRudh{d9hXoqBx2tY3oLc5_K<^JqEUkis5@(f7d=_*#}qqp0q^g zsb0X?3vF$vZ*5YJYB0Y6Mljw!l!1TN#jb)pYk=HA*cn3UMm3nFEh(KB;{_9W47Y^& z5`AGYq)S*}J)P?s>eCr#R{#db911Jv_!L&+*gm=#dt%ec_$7LfAQ0J{805iChJku65B=uypvif?9B}c{1)ZIP z`;r;8^1x8M7wqUG!{)6xb^`NQRIqU3d&&cH5t;Ycusl+ z=ID&65JZV{)Ow}Ma6`mMLzW)h9p|ZC)PlM=Ik=Cy02&oD3ac?v=jdj2I-`1%dwGu6 zzYlqImcj*=FIy!iIHnbVP{Q+K*xuYyQ4CLOmvy8VnzVy$-5!@Mxr0NoVXN4+zaJ+~ zcAy3s+hyAQ`S7|jBQS^_96M&XB<8e}17b%6>WnxniDNtZm&^J9*jlKBnt{iK>813R zr2yclcnl(MZk-I3$A(b?qi51_Hy2wF72K7xAt%4hlsiebsW2#sM8+v#Mf}KE`3nf* z*9)~HXMv6tz5rqOYivzRS%*m2NYP$#-$-F0=)`=67X&^nlL(RU6} z7$6n^SLqeGFiv!^kf?a8^=SvPDw)m<78IS;TyxjfeHqqQhj#oDQjEvin-5LLp-#e9 zF^vwLpgqc?6Q}W#5$6Cyb0lO(i}o}GIFrj_7GiDJ8#b)M409y1i1#LY`ukW~*?%yZ zPU(CGA%2?2S~5mKBj6&{N$d-u6^OfXt2FFv>?(~7@2P4RTIXrV-a#iE;%Qna?5L1* z@zQynop8UxAQ4WUC#1GJ;<*+5lv>HHk9f0oL}Rd6#?NhieNv!T*WSsw<&gJ#*u|uE zMc#_A56F0{0yDW^u81I6?BR`X$w_!M)YmIe@YT(&4K&X(r&D2BOm*!1(b{v2qac2< z5ht<9Q|zVe3Ro3zc7rWM_mR%HjJY!|7NX=R58*cJ^RgB}F>j_T9nvzK<+-(r@5!Xn zcrapM2sZ{9&uZr`ayqQjwQ-%nq1a(LSwm&DJl@R?1iMOm1fbT^*i1(;7$R|O$SK&ny zzk|o)LvuS+AAYr`7d87q8OJvXnts);_6e*DE#N*lo)=;(gZQ&B@1%x`twO!Dw1!hp zbva6>Y_b0IwCc=u^xcQQH<7@*nsIeRZOZXk#97^`=~S!6756lVw%)eY*?&t-HF+gu z7spdpcy?4>3`zDO-vPcUQ#Gv++XhGycw331`qsm8=#m&`y+pKsZD$yh5#meNZo5u$Y8Wr3X>FS7=eHqy^FrilFuVpczCB z>J^b1`07&o(K30!D08(|NxS4Hjg|{*sp`Vg8qn=QZH#U*4?UJ2_Qj$OJeV}1`pg)t^BaXbBhAyV9oLthk^qiKKp-UhuYG*Wh`t>`@cTB^=|x4CT#=Vz)1+V_quLZ6jHLTdx5v^2_$cB1METi*m+UYDw}5VsDa;yhN7l;Tx;HGY7uwxTJuj+i@1~5T5y_L#GSm>!qe0u?&P%=ou(FXC$Dw(X=)L7 z@>(sYsYTq$Yqg%H7IC>+lZ!Pur?}o28zA;nHOE*;eQ~?QIyE~vLr;sx>^v~W^!i_XFy@1rNvk!}k9svF~91)nt}d37e^MIAq% z1-O&fGAf9TDm$^B6~@tA6Hi@xCH!IwRFH(#Lf8}~TE?OHQVNfCk9x1p+3SK?JAyVoE zKPHNZZzkfdRgg6!;(gAlKVcL82;arfMTgpo*`s2sp&7@;$6+_!av;aIH!P zP@hpL>fs&WgUID;GgiXSAe0ZH{hin6epoLVuXAR zir{hv>ExavMQf9b~vMDMw1%D|ifVKlh5MR?BFv8oU$?2XshMIz3KQ$sg zm)8h|y@Bw|$ZQk;O*RoU@#a!^W_V^$c$(>La2cU8GlXkob})$F4RM9=@idrbh`{j7 zP*5{F8{CDw%1tyz;R12c?KRDy<#m~6q{d}M+Dt3tt&AM=8<86Pgj=}^c|Z_pV;Wup zc1(YnfnO=Z0LXHr)mLViQe>$HBMEUNOMG5W5PuRnyb){|;EB>ZR_VbD_QxheP?5DV z)U_pEONJ7jX_{^;atyzNWD3ztNG*J9wxn~xcF^14MmxbEm_iNe!HjxqgORP21Z1Hv zV0C+>75&cig)c#hzww8Z8aUQU9&nMu68x-TWNV}qzj0)Oo+DmqL^@E!h)p+aW{C)Q ziO;HxWUs+EK_XZ1;sXz%$sxR1W z9w0FW^j_~Ri|mSYgu+WeYzEE9R?61Y`~iePcbFDT&@?91U{Kk6q02}|q$9ipo#K5u zGjePQ|6NviqYw7Fk^e-d8v&XbR$f~+fX@s@vbT7=VC!~K{)kr9h!;v43Lj%%Lm?QH z8LSLv?=vE0kuppp1I!$|9s{D~mD&0!^JChPs9bq%VhE(Lrs?szP^KPkVsZ~_=gk@ij|_kzVBE`A7ppUii>$c&-qISem>{=-Z7 z4~lb#cZYX}Oz>iwxk13@!Fo4_X2ZH8-6oBZmey_a-(6m2c#JYzg=Q#x?EcA%+&Mq^z<}mnk@%V^1O%X$$$n$G$h&>&U!-om>_=0|SxC z;oXtRu#tQ5mT2VI5A=UHL?5~cvJ0Qs8Myc2^;n;e`Y~~>@cLv#a5venpwS17aQ2Hq zSUbCY^2XL*s^I&SIC zY8;Ji1-p?20KzS7g^#i)%~npV1=WRAwuO+$4d1gHa}wFe_FyUW%M8|mNcP3Bw=`tJ zwMDjvM0%z<(OVS?0y6Fs=?Hi|A(#cIJ1QZSt@wi)g;bG_k_L>>9_R#b02FgU^SBB|FBP;Qvdp_2LeaTWX3FC_F zWabh}NLwT%6tuA{}tx%;9erARM73VU2<# zm+6l(okaE+z>kWbjO!6`=7IVJa?Ctg2G9m*J>^U@mBT0>20Ubk{f?wyOKi}bVnOYqy@ zXE)D7BcX~M(tdN8Pc2ulRznWcAk-`HBdy~eQ!aQ2r0_Y+*eTw%R{QWPVPqoF%*PU& z8l1aq_A{AH4GxEMo98v3y>MYm^Srt9Tjn%1wBv?5UWHuJpBNfU$9tO^HVo~-!wPtR zYfEZ>qJK$0ZdUnm|IU8IMN9}ty&+e7XH{{EO zxxoTDXcX_It?2FLb5Z&&*F-{|$7hYVrlXCqVkm6t|Ih!QNr1luuK2h2vc+A{9m?N3 z90w=eYJ9i7fWK!z!?r)YCeCrxMYxmIiF76I?rz3O%6i;a$&b**RHdJG{fF&+OSt1HN;xqU32W0;fFP z$HAyjFan+oD#%fvN{u~#a{6snc<-5KLik{XLtAT5uLt#c zKRN{tkI0C7aMCphng)C~NuTR&IHf^qM;{ diff --git a/Defs/Drugs/Pills_Menstruation.xml b/Defs/Drugs/Pills_Menstruation.xml new file mode 100644 index 0000000..6e5c64b --- /dev/null +++ b/Defs/Drugs/Pills_Menstruation.xml @@ -0,0 +1,49 @@ + + + + + OvaryRegenerationPill + + Recovers ovary's health. Less effective on unhealthy ovary. Does not relieve climacteric symptoms. + + Things/Item/ORPill + Graphic_StackCount + + false + + 2400 + 120 + 0.05 + + Industrial + + Medical + +
  • + 0.3 +
  • +
    +
    + + DrugProduction + +
  • DrugLab
  • +
    +
    + + 10 + 4 + 8 + + +
  • + 0 + 1000 + + 0.08 + 0.14 + +
  • +
    +
    +
    \ No newline at end of file diff --git a/Defs/HediffDef/Hediffs_Menstruation.xml b/Defs/HediffDef/Hediffs_Menstruation.xml index 4638851..9fc150c 100644 --- a/Defs/HediffDef/Hediffs_Menstruation.xml +++ b/Defs/HediffDef/Hediffs_Menstruation.xml @@ -20,21 +20,37 @@
  • + + 0.90 + 0.95 + 0.05
  • 0.2 + + 0.70 + 0.90 + 0.1
  • 0.4 + + 0.50 + 0.70 + 0.2
  • 0.6 + + 0.0 + 0.50 + 0.4
  • @@ -44,4 +60,120 @@ + + + HediffWithComps + Hediff_Menopause + + menopause + reached menopause + {1} reached menopause + (0.70,0.70,0.00) + false + false + false + false + 1 + 0.1 + + true + + +
  • + + 0.20 + 0.25 + + +
  • + RJW_Fertility + 0.00 +
  • + + +
    + + +
    + + + HediffWithComps + Hediff_Climacteric + + climacteric + climacteric + {1} climacteric + (0.70,0.70,0.00) + false + false + false + true + 1 + 0.1 + + true + + +
  • + + + 0.75 + 0.8 + + +
  • + RJW_Fertility + 0.50 +
  • + + +
  • + + 0.2 + + 0.50 + 0.6 + + +
  • + RJW_Fertility + 0.25 +
  • + + +
  • + + 0.4 + + 0.40 + 0.4 + + +
  • + RJW_Fertility + 0.10 +
  • + + +
  • + + 0.6 + + 0.25 + 0.25 + + +
  • + RJW_Fertility + 0.01 +
  • + + +
    + + +
    + + + \ No newline at end of file diff --git a/Languages/English/Keyed/RJW_Menstruation.xml b/Languages/English/Keyed/RJW_Menstruation.xml index 54afe75..6c1bb91 100644 --- a/Languages/English/Keyed/RJW_Menstruation.xml +++ b/Languages/English/Keyed/RJW_Menstruation.xml @@ -1,6 +1,6 @@  - RJW Menstrution Cycle + RJW Menstruation Cycle menstrual blood Empty @@ -12,6 +12,7 @@ Pregnant Recovering from birth None + Climacteric State Fetus Father @@ -47,7 +48,9 @@ Show all informations about fetus after noticed pregnancy Do not show informations about fetus, but display image of fetus after noticed pregnancy Do not show fetus image and informations - - + enable menopause + enable menopause effect that makes pawn infertile in time progress if you have problems with long life races, turn off this option. this option will apply after save loaded + + \ No newline at end of file diff --git a/Languages/Korean/Keyed/RJW_Menstruation.xml b/Languages/Korean/Keyed/RJW_Menstruation.xml index 52ed322..b136765 100644 --- a/Languages/Korean/Keyed/RJW_Menstruation.xml +++ b/Languages/Korean/Keyed/RJW_Menstruation.xml @@ -1,6 +1,6 @@  - RJW Menstrution Cycle + RJW Menstruation Cycle 생리혈 없음 @@ -12,6 +12,7 @@ 임신 회복기 없음 + 갱년기 상태 태아 @@ -47,8 +48,10 @@ 임신을 발견한 이후에 태아에 대한 모든 정보를 표시합니다. 태아에 대한 정보를 표시하지 않지만, 임신한 이후 태아이미지를 표시합니다. 태아에 대한 어떠한 정보도 표시하지 않습니다. - - + 폐경기 활성화 + 시간이 지남에따라 불임상태로 만드는 폐경기를 활성화합니다. 수명이 긴 종족을 사용할때 문제가 있으면 이 옵션을 끄세요. 변경한후에 세이브로드가 필요합니다. + + \ No newline at end of file diff --git a/Patches/Hediffs_PrivateParts.xml b/Patches/Hediffs_PrivateParts.xml index 655a421..6860f64 100644 --- a/Patches/Hediffs_PrivateParts.xml +++ b/Patches/Hediffs_PrivateParts.xml @@ -4,6 +4,7 @@ + @@ -22,6 +23,7 @@ 3 Womb/Womb Genitals/Vagina + 420 diff --git a/Textures/Things/Item/ORPill/ORPill_a.png b/Textures/Things/Item/ORPill/ORPill_a.png new file mode 100644 index 0000000000000000000000000000000000000000..b2eaeaa245c9c94defef7d6c192e746393ca6bb6 GIT binary patch literal 4950 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 literal 0 HcmV?d00001 diff --git a/changelogs.txt b/changelogs.txt index 41d6d5e..4b39ce1 100644 --- a/changelogs.txt +++ b/changelogs.txt @@ -1,8 +1,28 @@ +Version 1.0.0.8 + - added option for disable menopause. + +Version 1.0.0.7 + - fixed errors when attatch new vagina. + - ovulation stage produces multiple eggs and number of eggs are determined by race's litter size curve. + - but still, only one egg can proceed to pregnancy. + - added new attribute ovaryPower to CompProperties_Menstruation. + - default value is almost unlimited that never comes menopause. + - every ovulation decreases ovaryPower. + - when ovaryPower is low, climacteric begins. + - during in climacteric, cycles become irregular and lose fertility in progress. + - ovulation using hyperfertility pills consumes ovaryPower double times. + - hyperfertility pills decrease additional ovaryPower (abuse of hyperfertility pills will cause premature menopause) + - climacteric and menopause decrease sex drive and satisfaction. + - added ovary regeneration pill that can prevent climacteric. + - ovary regeneration pill increases 30% of ovaryPower. (no limit, cannot cure climacteric) + - in period hediff decrease sex drive and satisfaction. + Version 1.0.0.6 - if pawn is fertility stat is 0, stage is fixed at none. - added option for fetus information level. - depend on information level, pregnant stage display as luteal stage - - rewrote misspelled DNADef attribute + - rewrote misspelled DNADef attribute and mod title in mod settings + Version 1.0.0.5 - womb cum capacity is affected by pawn's bodysize - changed cum volume calculate method. diff --git a/source/RJW_Menstruation/RJW_Menstruation/Configurations.cs b/source/RJW_Menstruation/RJW_Menstruation/Configurations.cs index cc36bbb..6a98751 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/Configurations.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/Configurations.cs @@ -35,6 +35,7 @@ namespace RJW_Menstruation public static bool DrawWombStatus = true; public static bool DrawVaginaStatus = true; public static bool Debug = false; + public static bool EnableMenopause = true; public static DetailLevel InfoDetail = DetailLevel.All; @@ -82,6 +83,7 @@ namespace RJW_Menstruation Scribe_Values.Look(ref DrawVaginaStatus, "DrawVaginaStatus", DrawVaginaStatus, true); Scribe_Values.Look(ref Debug, "Debug", Debug, true); Scribe_Values.Look(ref InfoDetail, "InfoDetail", InfoDetail, true); + Scribe_Values.Look(ref EnableMenopause, "EnableMenopause", EnableMenopause, true); base.ExposeData(); } @@ -140,6 +142,8 @@ namespace RJW_Menstruation } listmain.CheckboxLabeled(Translations.Option2_Label, ref Configurations.EnableAnimalCycle, Translations.Option2_Desc); + + listmain.CheckboxLabeled(Translations.Option12_Label, ref Configurations.EnableMenopause, Translations.Option12_Desc); listmain.Label(Translations.Option3_Label + " " + Configurations.ImplantationChance*100 + "%", -1, Translations.Option3_Desc); Configurations.ImplantationChanceAdjust = (int)listmain.Slider(Configurations.ImplantationChanceAdjust, 0, 1000); diff --git a/source/RJW_Menstruation/RJW_Menstruation/DrugOutcomDoers.cs b/source/RJW_Menstruation/RJW_Menstruation/DrugOutcomDoers.cs index 5f5e314..cfe4e3f 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/DrugOutcomDoers.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/DrugOutcomDoers.cs @@ -13,9 +13,37 @@ namespace RJW_Menstruation protected override void DoIngestionOutcomeSpecial(Pawn pawn, Thing ingested) { HediffComp_Menstruation comp = Utility.GetMenstruationComp(pawn); - if (comp.curStage.Equals(HediffComp_Menstruation.Stage.Follicular) || comp.curStage.Equals(HediffComp_Menstruation.Stage.Luteal)) comp.curStage = HediffComp_Menstruation.Stage.Ovulatory; + if (comp != null && comp.curStage.Equals(HediffComp_Menstruation.Stage.Follicular) + || comp.curStage.Equals(HediffComp_Menstruation.Stage.Luteal) + || comp.curStage.Equals(HediffComp_Menstruation.Stage.ClimactericFollicular) + || comp.curStage.Equals(HediffComp_Menstruation.Stage.ClimactericLuteal) + ) + { + comp.curStage = HediffComp_Menstruation.Stage.Ovulatory; + comp.ovarypower--; + } } } + public class OvaryPillOutcomDoer : IngestionOutcomeDoer + { + public float effectOffset; + + + protected override void DoIngestionOutcomeSpecial(Pawn pawn, Thing ingested) + { + HediffComp_Menstruation comp = Utility.GetMenstruationComp(pawn); + if (comp != null) + { + comp.ovarypower = (int)(comp.ovarypower * (1 + effectOffset)); + } + + + } + } + + + + } diff --git a/source/RJW_Menstruation/RJW_Menstruation/HediffComp_Menstruation.cs b/source/RJW_Menstruation/RJW_Menstruation/HediffComp_Menstruation.cs index f12e64d..4af1068 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/HediffComp_Menstruation.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/HediffComp_Menstruation.cs @@ -25,7 +25,7 @@ namespace RJW_Menstruation public string wombTex = "Womb/Womb"; //fertiledays = ovaluationday - spermlifespan ~ ovaluationday + egglifespanday public string vagTex = "Genitals/Vagina"; //fertiledays = ovaluationday - spermlifespan ~ ovaluationday + egglifespanday public bool infertile = false; - + public int ovaryPower = 600000000; // default: almost unlimited ovulation public CompProperties_Menstruation() { @@ -53,6 +53,7 @@ namespace RJW_Menstruation public class HediffComp_Menstruation : HediffComp { const float minmakefilthvalue = 1.0f; + const int ovarypowerthreshold = 72; public static readonly int tickInterval = 2500; // an hour public CompProperties_Menstruation Props; @@ -60,6 +61,8 @@ namespace RJW_Menstruation public int curStageHrs = 0; public Action actionref; public bool loaded = false; + public int ovarypower = -100000; + public enum Stage { @@ -71,7 +74,10 @@ namespace RJW_Menstruation Pregnant, Recover, None, - Young + Young, + ClimactericFollicular, + ClimactericLuteal, + ClimactericBleeding, } private List cums; @@ -215,6 +221,12 @@ namespace RJW_Menstruation case Stage.None: case Stage.Young: return Translations.Stage_None; + case Stage.ClimactericFollicular: + return Translations.Stage_Follicular + " - " + Translations.Stage_Climacteric; + case Stage.ClimactericLuteal: + return Translations.Stage_Luteal + " - " + Translations.Stage_Climacteric; + case Stage.ClimactericBleeding: + return Translations.Stage_Bleeding + " - " + Translations.Stage_Climacteric; default: return ""; } @@ -256,6 +268,14 @@ namespace RJW_Menstruation } } + public int GetNumofEggs + { + get + { + if (eggs.NullOrEmpty()) return 0; + else return eggs.Count; + } + } public override void CompExposeData() { @@ -269,6 +289,7 @@ namespace RJW_Menstruation Scribe_Values.Look(ref bleedingIntervalhours, "bleedingIntervalhours", bleedingIntervalhours, true); Scribe_Values.Look(ref recoveryIntervalhours, "recoveryIntervalhours", recoveryIntervalhours, true); Scribe_Values.Look(ref crampPain, "crampPain", crampPain, true); + Scribe_Values.Look(ref ovarypower, "ovarypower", ovarypower, true); } @@ -276,8 +297,7 @@ namespace RJW_Menstruation public override void CompPostPostAdd(DamageInfo? dinfo) { - //initializer moved to SpawnSetup - //Initialize(); + if (!loaded) Initialize(); } public override void CompPostTick(ref float severityAdjustment) @@ -546,6 +566,34 @@ namespace RJW_Menstruation if (crampPain < 0) crampPain = PainRandomizer(); if (cums == null) cums = new List(); if (eggs == null) eggs = new List(); + + + if (!Configurations.EnableMenopause) + { + Hediff hediff = parent.pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_Climacteric); + if (hediff != null) parent.pawn.health.RemoveHediff(hediff); + hediff = parent.pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_Menopause); + if (hediff != null) parent.pawn.health.RemoveHediff(hediff); + } + else if (ovarypower < -50000) + { + ovarypower = (int)(Props.ovaryPower * Rand.Range(0.7f, 1.3f)) - (Math.Max(0, parent.pawn.ageTracker.AgeBiologicalYears - 15)) * (60 / (Props.folicularIntervalDays + Props.lutealIntervalDays) * Configurations.CycleAcceleration); + if (ovarypower < 1) + { + Hediff hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_Menopause, parent.pawn); + hediff.Severity = 0.2f; + parent.pawn.health.AddHediff(hediff, Genital_Helper.get_genitalsBPR(parent.pawn)); + curStage = Stage.Young; + } + else if (ovarypower < ovarypowerthreshold) + { + Hediff hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_Climacteric, parent.pawn); + hediff.Severity = 0.008f * (ovarypowerthreshold - ovarypower); + parent.pawn.health.AddHediff(hediff, Genital_Helper.get_genitalsBPR(parent.pawn)); + } + } + + if (parent.pawn.IsPregnant()) curStage = Stage.Pregnant; if (parent.pawn.IsAnimal()) { @@ -556,8 +604,7 @@ namespace RJW_Menstruation } else { - - if (parent.pawn.health.capacities.GetLevel(xxx.reproduction) <= 0) HugsLibController.Instance.TickDelayScheduler.ScheduleCallback(PeriodSimulator(Stage.Young), tickInterval, parent.pawn, false); + if (!parent.pawn.IsPregnant() && parent.pawn.health.capacities.GetLevel(xxx.reproduction) <= 0) HugsLibController.Instance.TickDelayScheduler.ScheduleCallback(PeriodSimulator(Stage.Young), tickInterval, parent.pawn, false); else HugsLibController.Instance.TickDelayScheduler.ScheduleCallback(PeriodSimulator(curStage), tickInterval, parent.pawn, false); } } @@ -598,7 +645,7 @@ namespace RJW_Menstruation if (egg.position < 24 || !egg.fertilized) continue; else if (Rand.Range(0.0f, 1.0f) <= Configurations.ImplantationChance * Props.baseImplantationChanceFactor * ImplantFactor * InterspeciesImplantFactor(egg.fertilizer)) { - PregnancyHelper.PregnancyDecider(parent.pawn, egg.fertilizer); + if (!parent.pawn.IsPregnant()) PregnancyHelper.PregnancyDecider(parent.pawn, egg.fertilizer); pregnant = true; break; } @@ -680,9 +727,37 @@ namespace RJW_Menstruation case Stage.Ovulatory: action = delegate { - eggs.Add(new Egg((int)(Props.eggLifespanDays * 24 / CycleFactor))); - lutealIntervalhours = PeriodRandomizer(lutealIntervalhours, Props.deviationFactor); - GoNextStage(Stage.Luteal); + int i = 0; + do + { + ovarypower--; + eggs.Add(new Egg((int)(Props.eggLifespanDays * 24 / CycleFactor))); + i++; + } while (i < Rand.ByCurve(parent.pawn.RaceProps.litterSizeCurve)); + + if (Configurations.EnableMenopause && ovarypower < 1) + { + eggs.Clear(); + Hediff hediff = parent.pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_Climacteric); + if (hediff != null) parent.pawn.health.RemoveHediff(hediff); + hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_Menopause, parent.pawn); + hediff.Severity = 0.2f; + parent.pawn.health.AddHediff(hediff, Genital_Helper.get_genitalsBPR(parent.pawn)); + GoNextStage(Stage.Young); + } + else if (Configurations.EnableMenopause && ovarypower < ovarypowerthreshold) + { + Hediff hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_Climacteric, parent.pawn); + hediff.Severity = 0.008f * i; + parent.pawn.health.AddHediff(hediff, Genital_Helper.get_genitalsBPR(parent.pawn)); + lutealIntervalhours = PeriodRandomizer(lutealIntervalhours, Props.deviationFactor * 6); + GoNextStage(Stage.ClimactericLuteal); + } + else + { + lutealIntervalhours = PeriodRandomizer(lutealIntervalhours, Props.deviationFactor); + GoNextStage(Stage.Luteal); + } }; break; case Stage.Luteal: @@ -776,8 +851,19 @@ namespace RJW_Menstruation { if (curStageHrs >= recoveryIntervalhours) { - follicularIntervalhours = PeriodRandomizer(follicularIntervalhours, Props.deviationFactor); - GoNextStage(Stage.Follicular); + if (ovarypower < ovarypowerthreshold) + { + GoNextStage(Stage.ClimactericFollicular); + } + else if (parent.pawn.health.capacities.GetLevel(xxx.reproduction) == 0) + { + GoNextStage(Stage.Young); + } + else + { + follicularIntervalhours = PeriodRandomizer(follicularIntervalhours, Props.deviationFactor); + GoNextStage(Stage.Follicular); + } } else { @@ -799,6 +885,90 @@ namespace RJW_Menstruation else GoNextStage(Stage.Follicular); }; break; + case Stage.ClimactericFollicular: + action = delegate + { + if (curStageHrs >= (follicularIntervalhours - bleedingIntervalhours) * CycleFactor) + { + GoNextStage(Stage.Ovulatory); + } + else if (ovarypower < ovarypowerthreshold / 3 && Rand.Range(0.0f, 1.0f) < 0.2f) //skips ovulatory + { + follicularIntervalhours = PeriodRandomizer(follicularIntervalhours, Props.deviationFactor * 6); + GoNextStage(Stage.ClimactericFollicular); + } + else + { + curStageHrs += Configurations.CycleAcceleration; + StayCurrentStage(); + } + }; + break; + case Stage.ClimactericLuteal: + action = delegate + { + if (!eggs.NullOrEmpty()) + { + EggDecay(); + FertilizationCheck(); + if (Implant()) GoNextStage(Stage.Pregnant); + else + { + curStageHrs += Configurations.CycleAcceleration; + StayCurrentStage(); + } + } + else if (curStageHrs <= lutealIntervalhours) + { + curStageHrs += Configurations.CycleAcceleration; + StayCurrentStage(); + } + else + { + if (Props.bleedingIntervalDays == 0) + { + follicularIntervalhours = PeriodRandomizer(follicularIntervalhours, Props.deviationFactor * 6); + GoNextStage(Stage.ClimactericFollicular); + } + else if (ovarypower < ovarypowerthreshold / 4 || (ovarypower < ovarypowerthreshold / 3 && Rand.Range(0.0f,1.0f) < 0.3f)) //skips bleeding + { + follicularIntervalhours = PeriodRandomizer(follicularIntervalhours, Props.deviationFactor * 6); + GoNextStage(Stage.ClimactericFollicular); + } + else + { + bleedingIntervalhours = PeriodRandomizer(bleedingIntervalhours, Props.deviationFactor); + if (crampPain >= 0.05f) + { + Hediff hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_MenstrualCramp, parent.pawn); + hediff.Severity = crampPain * Rand.Range(0.9f, 1.1f); + HediffCompProperties_SeverityPerDay Prop = (HediffCompProperties_SeverityPerDay)hediff.TryGetComp().props; + Prop.severityPerDay = -hediff.Severity / (bleedingIntervalhours / 24) * Configurations.CycleAcceleration; + parent.pawn.health.AddHediff(hediff, Genital_Helper.get_genitalsBPR(parent.pawn)); + } + GoNextStage(Stage.ClimactericBleeding); + } + } + + }; + break; + case Stage.ClimactericBleeding: + action = delegate + { + if (curStageHrs >= bleedingIntervalhours) + { + follicularIntervalhours = PeriodRandomizer(follicularIntervalhours, Props.deviationFactor * 6); + GoNextStage(Stage.ClimactericFollicular); + } + else + { + if (curStageHrs < bleedingIntervalhours / 6) for (int i = 0; i < Configurations.CycleAcceleration; i++) BleedOut(); + curStageHrs += Configurations.CycleAcceleration; + StayCurrentStage(); + } + }; + break; + default: curStage = Stage.Follicular; curStageHrs = 0; @@ -840,7 +1010,7 @@ namespace RJW_Menstruation { HugsLibController.Instance.TickDelayScheduler.ScheduleCallback(PeriodSimulator(curstage), (int)(tickInterval * factor), parent.pawn, false); } - + } diff --git a/source/RJW_Menstruation/RJW_Menstruation/Patch/GetGizmos.cs b/source/RJW_Menstruation/RJW_Menstruation/Patch/GetGizmos.cs index 5fbe0a9..9c9f7cf 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/Patch/GetGizmos.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/Patch/GetGizmos.cs @@ -47,15 +47,21 @@ namespace RJW_Menstruation private static void AddWombGizmos(Pawn __instance, ref List gizmoList) { HediffComp_Menstruation comp = Utility.GetMenstruationComp(__instance); - if (comp != null) gizmoList.Add(CreateGizmo_WombStatus(__instance, comp)); + + + //If should i have to add multiple vagina support. + //foreach (HediffComp comp in __instance.health.hediffSet.GetAllComps()) + //{ + // if (comp is HediffComp_Menstruation) gizmoList.Add(CreateGizmo_WombStatus(__instance, (HediffComp_Menstruation)comp)); + //} } private static Gizmo CreateGizmo_WombStatus(Pawn pawn , HediffComp_Menstruation comp) { Texture2D icon,icon_overay; string description = ""; - if (Configurations.Debug) description += comp.curStage + ": " + comp.curStageHrs + "\n" + "fertcums: " + comp.TotalFertCum + "\n"; + if (Configurations.Debug) description += comp.curStage + ": " + comp.curStageHrs + "\n" + "fertcums: " + comp.TotalFertCum + "\n" + "ovarypower: " + comp.ovarypower + "\n" + "eggs: " + comp.GetNumofEggs + "\n"; else description += comp.GetCurStageLabel + "\n"; if (pawn.IsPregnant()) { diff --git a/source/RJW_Menstruation/RJW_Menstruation/Translations.cs b/source/RJW_Menstruation/RJW_Menstruation/Translations.cs index f108354..4ccf982 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/Translations.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/Translations.cs @@ -15,6 +15,7 @@ namespace RJW_Menstruation public static readonly string Stage_Pregnant = "Stage_Pregnant".Translate(); public static readonly string Stage_Recover = "Stage_Recover".Translate(); public static readonly string Stage_None = "Stage_None".Translate(); + public static readonly string Stage_Climacteric = "Stage_Climacteric".Translate(); public static readonly string Dialog_WombInfo01 = "Dialog_WombInfo01".Translate(); public static readonly string Dialog_WombInfo02 = "Dialog_WombInfo02".Translate(); diff --git a/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs b/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs index d44d8ac..d33dda5 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs @@ -21,6 +21,8 @@ namespace RJW_Menstruation public static readonly ThingDef CumFilth = DefDatabase.GetNamed("FilthCum"); public static readonly HediffDef RJW_IUD = DefDatabase.GetNamed("RJW_IUD"); public static readonly HediffDef Hediff_MenstrualCramp = DefDatabase.GetNamed("Hediff_MenstrualCramp"); + public static readonly HediffDef Hediff_Climacteric = DefDatabase.GetNamed("Hediff_Climacteric"); + public static readonly HediffDef Hediff_Menopause = DefDatabase.GetNamed("Hediff_Menopause"); } }