MZ@ !L!This program cannot be run in DOS mode. $uH}}}l}y}|Q}|}x}~}}}u}}}}Rich}PEL;c! & V@A `2P)mp320|.text `.data> @.idata0@@.rsrcP@@.reloc)*@B3 X0zz 0Ї `p0O@P `p 0@PP`pPGGGhG 0@P`Pp@@p@PPP`@PlKxK `0P` @pL@@p 0@@`PMM$M4M @DM4PM#dM$p@`p@PMMM@M 4M@DM4PM #dM(0` %%%%%00P0` II0JE14478 91`999:4 RRpR`RpPPpP@PPlQ RigR0f q qP[Z0Z@Z[0[pZp[S@e[]_@`P`bcS`V p`pp@0@@P 0@@P 0@PlV0xVG 00O@@P00p@PP`0O@pP@ P@P0O@`PP`pP @P\]@`@P^4$M 4M@DM4PM #dM(@@P^4M @M4M@DM4PM$#dM,@Pp@`$I @PH_$MX_@M h_pP@P_Jq  @ P p`p  p@P`@P^4` 4`` $M 4M$@DM(4PM4#dM<@@p0ppp`p@@P@P^4` 4`` M @M$4M(@DM,4PM8#dM@   p p@ P P @` P a,a  p p    @ P0@@0@PPPO0OOH`H0H NML L^_`a__```P_0`_`_a__^p`=;p: <99`^0__`0b__Pb``P_a_`0aa_a^p`=;p:;99`^`_`^__ ```P_`__`ba_`^p`=`;p:`;99`^__`a__^``P_pb_`aa_b^p`=0;p::99`^0G\FKKKF0^^]@]`p_ _paaa@` `__ P`_@_`` a``^`=`@99\ ```P_`9p9p9`;p:`;9999 \^p_ _`baa@```__0 0`@_`a``_^`=`99\```P_`9p9p9;p: <9999 \_p_ _Pa@aa`^__P  p  pb@_`P`@``b^`=099P\^``P_`9p9p90;p::9999 \0_p_ _^@ba Pb__@ p9a@_` b`a`a^`=`99[Pb``P_`9p9p9;p:;9999 \TTPTTSpS0SRhPhhh0iii j`jIHHH`H0H@G0GPKFFFFFpPrqopPrqp`oE$GE4G LHXH`HhHpH|HHHHHHHHHHHIII I$I0I8IDIPI-FGcJQgl%A FY?㹌O{8ekČ & : O8e?"ٲ\}2E@k2yD{/,BTv7JqHOJZkwl4A`6%7BmR DMx9˄Nkrc:_Mߑ]qS`J_8fy(TDFL?O(rKO uM_H}ӂ+16@]vUnknown exceptionbad allocationExceptionReturnNtReturnHrLogNtLogHrFailFast%hs(%u)\%hs!%p: %hs!%p: (caller: %p) %hs(%d) tid(%x) %08X %ws Msg:[%ws] CallContext:[%hs] [%hs(%hs)] [%hs] ntdll.dllRtlDisownModuleHeapAllocationkernelbase.dllRaiseFailFastExceptionWIL Exceptionwilstd::exception: %hsRtlNtStatusToDosErrorNoTebRtlDllShutdownInProgressWilFailureNotifyWatchersonecore\internal\sdk\inc\wil\opensource\wil\resource.h_p0WilError_03RtlRegisterFeatureConfigurationChangeNotificationRtlUnregisterFeatureConfigurationChangeNotificationRtlNotifyFeatureUsageNtQueryWnfStateDataNtUpdateWnfStateDataonecore\internal\sdk\inc\wil/Staging.hWilStaging_02lengthC++/WinRT version:2.0.250303.5winrt::hresult_error: %lsLocal\SM0:%lu:%lu:%hsuT:Au<:Aud:Aul:Au$:AuD:Au:Aܝ-9CN޷VXu\:A }Te++Windows.Foundation.PropertyValueut:AuL:A:2NN+leDu,:AQ6Fu4:Aۛb2OX5:AAlphaMask = * .a;string too longbad array new lengthInvalid animatable property mapping.CoefficientsClampOutputArithComp.x * + .y * .z * .w; = saturate();InterpolationModeBorderModeTransformMatrixSharpnessXFormAffineTransform2D's source must be a source parameter.;ModeBlendMultiplyScreenDarkenLightenColorBurnLinearBurnDarkerColorLighterColorColorDodgeLinearDodgeOverlaySoftLightHardLightVividLightLinearLightPinLightHardMixDifferenceExclusionHueSaturationColorLuminositySubtractDivisionUnsupported blend mode.D2DBlend.hlsl.rgb = D2DBlendRgb(, .a = D2DBlendAlpha(.a, .a);ExtendXExtendYBorderUnsupported BorderEffect edge mode.BorderEffect's source must be a source parameter.ColorMatrixAlphaModeColorMatrixEffectUnsupported alpha mode.ColorMatrix4x4ColorOffsetD2DColorMatrix.hlslD2DColorMatrixPremultipliedD2DColorMatrixStraight(ContrastClampInputD2DContrast.hlsl = D2DContrast(PSBodyCompositeSourceOverDestinationOverSourceInDestinationInSourceOutDestinationOutSourceAtopDestinationAtopXorPlusSourceCopyMaskInvertUnsupported composite mode.D2DComposite.hlsl = D2DCompositeWeightCrossFadelerp(d3dcompiler_47.dllD3DReflectLibraryD3DCompileAzimuthElevationDiffuseAmountHeightMapScaleLightColorHeightMapKernelSizeHeightMapInterpolationModeDistantDiffuseLightVectorc_defaultSurfaceNormalD2DLighting.hlsl = D2DDistantDiffuse(SpecularExponentSpecularAmountDistantSpecular = D2DDistantSpecular(Invalid float valueCommon.hlslreturn // Non-finite floating-point value.)Output semantic can be changed only once.sampleUnexpected effect input type.Output_Normal_TangentSpaceXYZ_Light0SpaceWhiteNoise_XYUnknown input parameter.onecoreuap\windows\dwm\effects\compiler\effectgenerator.cpplib_4_0_level_9_3_ps_onlyPixelShader.hlslinvalid vector subscriptvector too longmap/set too longO8T>[K`0˶Unexpected effect property value.%fCExpected a D2D1_2DAffineTransform effect type.onecoreuap\windows\dwm\effects\compiler\effectinstance.cppExposureValueExposureMultiplier = minfloat4(.rgb * Unsupported effect type.Invalid number of sources.No more than three graph source parameters with white noise effect are supported.A graph source parameter with a transform can only be used once.A graph source parameter with a border effect can only be used once.No more than four graph source parameters are supported.onecoreuap\windows\dwm\effects\compiler\flattenedeffectgraph.cppEffect is too complex.NoneInvalid effect input.Empty effect descriptionFloodRedAmplitudeRedExponentRedOffsetRedDisableGreenAmplitudeGreenExponentGreenOffsetGreenDisableBlueAmplitudeBlueExponentBlueOffsetBlueDisableAlphaAmplitudeAlphaExponentAlphaOffsetAlphaDisableGammaXfer = UnPremultiply(rgba * pow(abs() + = Premultiply(,BlurAmountEffectOptimizationGaussianBlurInvalid blur border mode.onecoreuap\windows\dwm\effects\compiler\graphicseffectgraphtraversal.cppSceneLightingEffect cannot be a source to GaussianBlurEffect.Non-tree shaped effect graph.Null effect input.Malformed effect name.Duplicate effect name.Malformed named input name.Unsupported effect property type.Unexpected property type.Property value out of boundsNull animatable property name.Multiply defined animatable property.Malformed animatable property name.Animatable property refers to an effect not in the graph.Specified property does not exist or cannot be animated.Specified property cannot be animated.Multiple animatable properties animate the same value.unordered_map/set too longinvalid hash bucket counts/hD10/qwGrayscaleD2DSaturation.hlsl = D2DGrayscale(AngleHueRotationMatrixmul(UnPremultiply(),));Invert = Premultiply(minfloat4(1 - UnPremultiply().rgb, .a));RedSlopeGreenSlopeBlueSlopeAlphaSlopeLinearXferLuminanceToAlphaD2DLuminanceToAlpha.hlsl = D2DLuminanceToAlpha(OpacityPSConstants row_major : packoffset(cxyzwout const // Copyright (C) Microsoft. All rights reserved.// Generated file, do not edit.#include "cbuffer : register(b0)export minfloat4 lpkgUnexpected variable scope._minfloatminfloat2minfloat3minfloat4minfloat3x2minfloat4x4LightPositionPointDiffuse = D2DPointDiffuse(.xyz, PointSpecular = D2DPointSpecular( = D2DSaturation(AmbientAmountSpecularShineReflectanceModelSceneLightingc_defaultNormalHeight = SceneLightingParameters(10R^ѕOZdKjIntensitySepiaD2DSepia.hlslD2DSepiaPremultipliedD2DSepiaStraightonecoreuap\windows\dwm\effects\compiler\shaderincluderesolver.cpp↯-jLZתeFLightTargetFocusLimitingConeAngleSpotDiffuseLightTargetVectorLightCosConeAngle = D2DSpotDiffuse(SpotSpecular = D2DSpotSpecular(TemperatureTintTempTintGains.r * .x,.g,.b * .y,a8>>y@y.8>">s'79>s>隉ŧ7.s:>jي>7R;>R>'8 K<>ލ>KQ8`=>w>{8>>m>¾̒8?>ǒ>Ѿŧ8TA>v>b8?B>-&>/8wJG>iR>o9/iL>P>g4RI9-R>[>XY479|~X>o>aTQ9M_>|~>k9+5>o9 n>>jݿ-9u>/>RI9}>o>Zd9>>г=49+>X9>5e9-[>H>'9G>|'> 9PǓ>۶>=9>i>+ l 9/>ط>/5o:[>'>J z' :>W`>-:R>>{#™:>Ĕ>fRI:deque too longFrequencyOffsetWhiteNoiseNoise.hlsl = WhiteNoise(RaH'Windows.UI.Composition.CompositionEffectSourceParameterModeColorWeightOpacityTintColorTintOpacityLuminosityColorLuminosityOpacityBackdroponecoreuap\windows\dwm\effects\compiler\global\materialbrushfactory.cppCrossfadesource1source2Crossfade.WeightV43Pu ~9↯-jLZתe8F7F$V~EPAtv 0@h kFCoIncrementMTAUsagecombase.dll.dllDllGetActivationFactoryFWindows.Foundation.Collections.IIterator`1<String>8FWindows.Foundation.Collections.IIterable`1<String>N0fP)D26; Zri~7F+Idʏ[FMicrosoft.Internal.UI.Composition.Effects.OpacityEffect: DPFcʂ;Microsoft.Internal.UI.Composition.Effects.CrossFadeEffectE*~LZS Microsoft.Internal.UI.Composition.Effects.ColorSourceEffectB%Q{" Microsoft.Internal.UI.Composition.Effects.BlendEffect$sVfrI^%u: DPFcʂ;E*~LZS B%Q{" $sVfrI^%u"n:@EޮJJ "[T; ɱnn>*P>Z>`>>>?>?= 7?xI?hm?!x??(S?9RFߑ???!?333333?@@-DT! @@@cO@f@@@@@A.eBpBBBHCzCCUUD0E@Fa̽@A?A;c'qe;c qe;c$ui;cui`1aʡ3VyϢ?bˣ&`ڤVڥ'a#Fv <˨?۩P}Ъ#Ь'd׭2;?b:tDZfزo+s%RWҶMз"Ƹ#<~Hxȼ#[ӽsݾNqڿ Cf`p|qHaz1 ":PVXw{[~:;=U>OOPRUXo@ozooqOqq.r}+.36AHmrYюFILO͐ݐH$ ?.uX`~,POݞ1ERSDS2LbMXP8B],wuceffects.pdbGCTL#.rdata$brc3.rdata$T$brc3H.rdata$r$brc3.CRT$XCA3(.CRT$XCU4.CRT$XCZ4.CRT$XIA 4 .CRT$XIC,4.CRT$XIZ04.CRT$XLA44.CRT$XLZ84.CRT$XPA<4.CRT$XPZ@4.CRT$XTAD4.CRT$XTZH4 .gfids ? /.rdata@n.rdata$sxdataHp.rdata$voltmdq.rdata$zzzdbgu.rtc$IAAu.rtc$IZZu.rtc$TAAu .rtc$TZZu.text$diw).text$mn+.text$xl.text$yd.tls .tls$$.tls$ZZZ(%.xdata$x `.edata.data$brc.data$r$brc$.data$rs$brc.data 6.bss0|.idata$5|2.00cfg2l.idata$24.idata$35|.idata$47 .idata$6PP.rsrc$01PTh.rsrc$02 2LbMXP8B],.iM ƹ;t;c  |lphYhYX|pd)Nh<Ydpp`hht@1hY̋UXt;u ]jXD$jP $̋UVu Wu3iu1j^0QS]t;rVSQ8) 35WjQ/ u 1j ;s1j"^0jjX[_^]̋UtGw?VW}++ttAuҍA_E3Ʌ^zE Wt]̋USVWf8tu‹+3#ȅWEtQu+Q OQ_^[]̋UE t=wMQuQMrWtE3f]̋UVt%E +Wt<0ft f>Iu_3ɸzENE3^f] ̋USVWuru 3VWx;wu z3fw_^[] ̋UVF$ `PEPYY^]̃yxAEA̋UVF$PEYt j V YY^]̃aaAA$̍A$PiY̋UVu$^]̋UU Vu+twEPuQ3f9u t΍Qffu+4N^]̋Ujh1dP3ʼnESVWPEd‰u$`3ft 8 ttPWV|23f9pA+t5tt u+A$AA AAFEAhQP Ft4 |F tEhRP|2*FjhQhPjh0~$vPvL^_^[]̋Wt$uV7h0VjPl0^'g_̋UQSVW}u/G3PSh0Pd0EtΉE~_^[3 @@3 L@@3 @\@̋UEP3@]̋UV5tujQ|2jY)^]̋U3ʼnEMS] VuW3t(PVj0ut;;7t +#3tWhPW0u2>QAu+ʍx\t H;wUPhM_^3[q̀=Vuj@Vjh^%$0̋UVhC0h0CP0tuu u|2^] ̋UjhdPVW3PEdx3Iu:=t(V|2׋ȅt=t NƋMd Y_^̸;W;jt^@tLt:t(tx:n4dZP Fpt:zt({t~53#~;ftZtH>t6Ft$GtruXsca%Y ttOtetVtNtU#=uȁD3#= u N3 +̋UjhdPVW3PEdD0uhu֋PPuDMd Y_^̋UjhdPQSVW3PEdكeD0uhu׋PPuD NƋMd Y_^[̋Uu3QQj3j]̅u3@ÍQAu+ʍA̅ujXÍQffu+M̀=Vu5t|2քu2^ð^̋UQQS]VWjY}KHK<}KsKDKK8AK07K$-K #KKLUBX0Et>u Z\9;sZ\uW6U F##]BP׋s)Cu׍NQsCN Qs vCN$Qs$fCN0Qs0VCNLQsLFCNDQsD6CNHQsHBN8Qs8CNIEøËE3PPEjj̋UtMuhHEP̋UQS]VWSuiV @jC YXPJXuClPNl_^[̋UjhdP$SVW3PEdeu t3fE3ۋ=t"PuV|2ׅy uȉtE=tPuV|2SS9hgEM ut UF PFEЋFEԋFEظËEuЋuU MMEeEԸËUM yȉEeEԸøEEM ut UF PFEЋFEԋFEظuU MMeEԸuU M>MeEԸøËu33ɉbFƉ^Md Y_^[]M̋UjhdP SVW3PEdUM](3u8efE0E8~@F EtStCt uMW8x$Wuuu u<ω~F 0 }E3ҋM3@V9AuF@FE tf9u‰F0F3ɋEF$EF(EFE F EFPE~,~@FT3N03~4=t |2=lFLt V|2׋=thu0V|2׋=t V|2׋=tFu V|239F|}NaF =\u)=Tt|2 (0؅tFt$=`tY=tuP3PPV|2?=`t=tuhSV|23f9u VS,0Fu =dt5t |2֋Md Y_^[4̋UPVW=t V|2׋=t V|2jPEjPfNP3@E  EEEu PMFEȋF(EẺMj̋UQuuuQQu2;̋U SVWEMMPQj}EPuQQuM̋U$SVWuQQhCE@ȁNȍEP"Q}jEPuQQMhCA̋Ujh3dP3PEdu uQQu:Md Y̋UjhVdPQ3PEduQQu:Md Y̋UjhVdPQ3PEdu ̋Ujh3dP3PEdhu7 QQhCG̋UjhVdPQ3PEdhuQQhDjY)̡VuhB0VP0^̡HV3WuhC0Ht WP0_^̋UuhB0juu huPh0] ̋UjhVdPV3PEd5DuC5Dt u|2֋Md Y^̋UjhVdPV3PEd5LuC5Lu2 |2֋Md Y^̋UjhydP$VW3PEduWefEFEЋFEԊEffEfF(fE܋F$EFLEe=uC =tEPEPj|2׋EFEtt uN NNMd Y_^̋UQQVEEEF$ `PEP YY$^̋UQu\0tY]QM 6̋Uu 1t]QM ̋UQQVWEQWP'fEy#MXCVWjdZ2MVWjmZ% E3_^̋U3ʼnEVu% EWusQuQ/hD P3@EPV+yMVhXC3M_3^̋U SVW3ۋSV(1uMhXCt=t ]u=EPjV81uESjV81u D0=*tnuE]PjV81u w9]tKSjV81u8D0=*u+SV(1u 9tE3MVhXCP_^[̋U3ĉ$ESVWQQ3D$QL$$8xdhDL$D$PWh1u!D0t@MhXC*T$|$J؅yMShXCtL$D$QV$$_^[3]̋UQQE S3VW}CGCK fG(fCCKGPCGTCK O;O$OL {({$ut97s/jYEts$h0VjPl0EC$EK$tC7C }Pw$1KQwL1K Qw1+VjP _^[̋UQQSVW]C{k,;t*$؋7h0V3VPl07,w؍G;uދ]sh0VjPl0_3!C^C[̋USVWj,_~^ u6t2jYFtjYfN3fNf8;u~t^ۋ]t,Fk,;tF O9Av;Ct8,A;‹F uF3N@3k,BfFFBRS_^[]̋UQSV5X3WtQ9^uU]'x 9^uEFvF#t"0j Y3ҋL99tIu_^[Ãt9YuFA̋UQS]2VW}u VSVt:u3@T@4u 4}@˥} qAu+΋+Ã~3\CJqAu++A;BVrYYD_^[̋UjhdP SVW3PEdu2ɋpM03E u9 tX[uta;t\u΋Wt~0CCu){u0|2֊M CM몊M[u‹uM=xtu Fu23@VP|2׋Md Y_^[̋UuU M09Xt:3A `A}"Xbt uX `] ̋UV5WuD5u9uuu jjW|2_^]̋USV5TWuDv5Tu9uujjuWS|2_^[]̋UQQ}WfEMfUtfMV5@uD5@u9EP|2^ ̋UQQSW9څt/Vujhu VVEEjPWUh1^_[̋UQQSVW}C+;sdD0@u3Eu V402:s+3V3YYuK !Mu C9C40_^[̋UA+Q+Vu;s;BVJ^]̋UVW} WtNF+;NWu#~YY_^]̋U$3ĉ$ S3VWj C3+Z\$;3|$hD$,jP D$ D$ PD$,PD$(PQFȉL$$t$ 3j Yt3t$ 3ҋ3҉D$D$@+k D$;tWkD$ T$(ЍL$(;t;99ufAf;C ;uF =w t$ ;\$u|$jt$$T$0QQVFL$$\$G|$u d}_E$(^[3 ]ËCAt$ ̋UV5PuXD5Pt u|2^]̋UQE ;uPqug +]̋UQUA9t,QuffEEjujI ZRPYYfuAQuÀHD̋UQQESV0WC} <u'FE;wrfCfEEjPjZtCt:uN u ut%uu~W 1UtW1Md Y_^ ̋UQVW}'>tuv|tkS^S 1~xu3F Et)fxP 1MFxVhPptMuD~W 13N|fEEEfE fEEEEj P4tW1Md Y_^ ̋UQQSV39^ unWD0E9^ t.9^uNU]Y x 9^uEF~G#^S 1~ u~ _tS1u4039^ ^[̋UQSWC!8{Eu??u*VD0jShl1P V40E^jhЋ_[̋UQSWC 8{Eu??u*VD0jSh@l1P V40E^jhЋ_[̋UM9t A$Pl]̋UjhdPQSVW3PEdEXL393u@=H3u $D=Hu9ESVPhж|2׋Md Y_^[̋UM9t APP]̋VW3WWV,1~Ɖ~~ ~$_^̋U}t -t uQp]̋UE ЋM%Vuuuu -@:@tQPV-$u=t RЋ QPV-^]̋U}uu -u4EVu&=-t4W-W 1-tu-u VW1_^] ̋UEy=-t%%$.=-t-Ph-]̃uÅy%2̋U VjYUu9w4PjPjЅt0"B3ɉBrBA3fDr^QMh MhXEP#̋UQS] VuWu3]RuO苽YY>_^[̋UjhdPQSVW3PEd‰Eًu~u UMOøW#u UM4ø>,3Md Y_^[ E̋Ujh3dP3PEdQu3QQj3 Md Y̋Ujh3dP3PEduU3ujuu # Md Y̋V>t6jP&^̋VW7tNu VPP'_^̋UjhdPV3PEdteNtMd Y^̋UuE jPjEP] ̋UjjE PjEP] ̋UEtRjh0Pl0]̋!tPjh0Pl0̋USWtVD0SV40^E_[]̋UQSMY(Vu;t&W>Wjh0Pl0u>;u_^[̋UQSVWh3Vuu uVH1tD0W_^[Y]̋USVWtD0SV40E_^[]̋U3ʼnESVW3Qj@0PhdEhPUhSPS41Pb9u t Pjy+itB A9t 9t M_^3[Wsy4MVhXCP̋UQSt nV EKP/ 393uHWVK_VK V9utD0u[W40oSVh0Pl0_utV.^[̋U3ʼnESVW3Qh0PhdEhP蓵hSPS41P9u -t P8y+itB A9t H9t M_^3[1Wvy4MVhXC̋UQSt ;uxKSnV EKPb 393uHWVKVK 9utD0uW40SVh0Pl0_utVa^[̋S3-D--------f-$. .{W\.L.-[̋VNNA~tv^̋VNN~tvc^̋V~tvH>t6<^̋USVW}j@Zj'YD$D$uMVhXCH\3ɉL$L$ubQPQVL$(yMKVhXCvt$D$PSd$73L$4L$_^[]̋USVW}jY'(D$D$uMVhXCH\3ɉL$L$ubQPQVL$(yMKVhXCt$D$PS}d$73L$mL$_^[]̋!VRp|2^̋UQMA(W}E;t;SVt$[NVjh0Pl0uߋE;u^[_̋UV1jjV1=t t =u3E0^]QM̋U3PPPuh1jup1]%d1̋UUSV3ۋM Wj0~FFAF Y[SjW fG3j Y_^[]̋UUVW3hF:U WFB:F FPz8 ~N_^]̋U VWMM̸eQQEύEPuuu u_^̋UQSV3W;tE}t>f9t9t+މE;s E t+ &PWӋE YYt0E E t_^[̋UQSVڋW;t9}t2?t-+މE;rPWӋ裭E YYt0E E t _^[̋UQjuuuu u]̋UXoVWE|$WQu|$hWQ$pWQuujPjjV/L$̋U]̋U VWMM)eQjEEPuQQu_^̋U SVWuQQu"ΉuֶeQjEEPuQQud_^[̋U u3ʼnESVuW}hjPYPVQQWPeM3ͥ_^[y̋Wy@tVp |2^_̋UVu >t"W~W 1F!tW1P_^] ̋UVu >t6SW~W 1^|C+ r YCF tW1_[^] ̋UEVt jV訹YY^]̋UEVt jVxYY^]̋Ul3ĉ$hS]EVuW}\$ \$Sh\$xL$MSh$T$ U S\$ jPVjWQL$@RT$@S]D$u$t_^[3Ÿ]L$̋U`-3ĉ$\VWE|$WQu|$hWQ$pWQuujPjjV߽D$ u$d_^3H]L$p̋U(SVW}3UMEE^ff;Eu+3]CCEt:EP+PwuPE؋P|2֋UM}䥥u䥥}tQWSuQQu _^[ > 0UQWSuC3QQu MC"̋UVW}q,_^]̋USًCS;r-EVWEQK 8EW0E VER0<_^tC[]̋UUzBVvPRvEPw@^3̋U}]22̋UVu W}u }_^]3̸F̸}MEGMPQvEP>hFhFvEP>}M؋EGMPQvEP>hFhFvEPv>EE P<MIMA& ́rVq#+΍Aw ^RQWYY1̋VVvBfF^hFd2̋UVuWy;wϋ+;w ϋ;B_^]̃aaAF$̋U MhP-́r(A#;腩ȅt A#H%1g3̋USW3jYEccx9HvEwHKV;w {*WNdOQu{Ps ^_[]j`J wU$$Q;y*yyyyjFyyjZty uhFMeU\  ̋UJ $APuu  ]EE EE HEE H֋EE H ɋUM BABA뱋UM BABAB A 듋EY(mE xU'h̋UJ $APuu  ]EE EHEHEH MU ABABB ?빋UM BABAB A 뛋EYlE 냋U&Vo{̋UQS] VWw`jXG4;wVu_W 3f>4SUEM7_O<WuV 3f7_^[̋UVW3MQ3~~ff;u+QuE_^]̃yv ̋A̋U3SVWHX HjXD$@D$QP D$Wt$|$hD$hjY3PsXs\ݭD$ _plpp^[]j|uQoeNtu &̋VNt8^+̋UVNt Et hVLYY^]̋UVuWy;wϋ+;w ϋ;B_^]̋Vw p^C̋UQSVW3j}ccXw9Gv?wKC;w s.VOUEMK uQWPs, _^[M̋VVvUf3Ff^j}uVeFtPOt f̋UVWYϋaVPhWx1WQphpP7̰2̋UUMuE] jX̋UEE ,]̸@G̸?jdڤu} ϋEj^VE6PMnejV6PMWjEEP_0G,EȉE}W2hFhFvEP5}M؋EGMPQvEP4hQGhLGvEP4}MEGMPQvEP4hFhFvEP4}MEGMPQvEP4hWGhTGvEPo4}M؋EGMPQvEPO4h]GhXGvEP74}MEGMPQvEP4hWGhTGvEP3}M؋EGMPQvEP3heGh`GvEP3}MGMEPQvEP3hWGhTGvEP3}M؋EGMPQvEPo3hkGhhGvEPW3EE P1{tYMW0hxGhlGvEP3W0h~Gh|GvEP2EE P$1MMM j$X̋UEE X]̸G̸?̋U}]̋UEt]j`9E@8t8uhGMweUC̋U UVuWIqU |$3L$RD$D$P耣D$_^] ̋UE8H@ Y@VYHW\(Tm/\l%lT$(^L$u }@YXP(D$(@ WmYHYXYD$,@WmYD$0@YD$4(Y@YP D$\P\ӥY̥YL$# jXjaMt3PE<1}9=lu}hL0؅uj0hLS0pujhMS0lu&jZ}=p=ltS0y j8ZV Elht01.̋V>t 601&^j(X̋UEE ]̸M̸?̋U}]j`٪Eu }@f8u fxu23A(QhMΉ@$Ej4PeEjPwjEEPfhMN,EN,WhMhMvEPhMIESIWvP}MEGMPQvEPSWvEP}MEGMPQvEPSWvEP}M؋EGMPQvEPsh~Gh|GvEP[EE PM.M&M ̋UEW/v / Lmv@F2]̋UEdm/v @ư/ Lmv@F2]̸̋UEVW0E FZ8YlfZZEǜZEZYlfZZE螜WZEYM蜜WZEYMO聜ZG@_^̋UE]j,X̋UEE (]̸N̸ @jxyEu }@f8u fxu23A(QhMΉ@$Ej4P+eEjPjEEPjEEPhMN,EN,8Wuh*NhNvEPhMQhIIESvPEMj_9}GMPQvEPahISvEPM9}MEGMPQvEP.hISvEP9}ԍMEGMPQvEPhISvEP9}M؋EGMPQvEPh~Gh|GvEPEE PMM{MsMkP ̸̋UE]j #蝥3PPEE@EËE% øøW $ø诤jF5U EM3PuREtpE03`E츁ËET ̋A +A̋Ajv赤]3jYuC#蕁twww w}EtW0|23GEPk{E Mu83ENËE臣̋UVN Et jV֊YY^]jej@YҀEEtu uv3}EtW0|2֋E]eGߍM#E83EËE辢 hBMeA#QddEutN视dE 03FE츛ËE:̋Qہ3@ ̋UjhdPV3PEdet!Rp|2֋Md Y^̋USVW}O؅uBOυp|2֍O؅uOڅjp|2_^[]̋UMIp]̋Ujh dP3PEdet !PMd Y̋USVW}O/؅uBOp0|2֍O؅uOjp,|2_^[]̋VtV+K3FF^̋A +AjHY̋Uu \uE]̋Uu,ȋA@+A<]̋Uu]̋UVuu P<@@+;vEL^] ]̋UuU H0@4+;v#VututDD^] ̋Uu<U H0@4+;vD]̋UuȋA(+A$]̋UuH$@(+t]a3jL<螞(Eud,3ۋ (u `.;SEQZQE$5d.hPj P“ȃ~W3QΫEP^^n/Нÿ`.WQ=`.YuhPj1Wd.݊ zh,NM>U] ̋USVډL$ W39{vXWQp|2֍T$D$RP1|2֋$K3 :u AuD$G;{sL$3_^[]j}E3ۉ___ __]___ w$Ej,Yu^-z@@f@ O,EjYEytX8XX XP7E̋VNDWN8N$GN?N^̋UVNlEt jVFYY^]̋V񍎄N,zN$NvN ^̋USVW];Gp|2O֋ȃEHMu~Nj+‰U}}E;s1kHuu;ut]un!;u]uEp)v'F+}Q;v Qы+UF;Gp(|2O֋Es~Nj+‰U}}E;s.kuu;ut]u;u]us)v'F+}Q;v Q+Mы)F3u9u3ɉMx@ +Ǚ};9 CV;juEGp |2Oքt^C}w+w K0VKV<GW +CH<@@+tABuzQ K,?K,C ;CtC{$7vWM3Mv6vuFGCCuM;u_^[ ̋USVWu nˋ0VuK,hTNFjpVN V98p,|2քtC}WK,+EhgNh`NvP OqKPEh9Hh8HvPs EE P_^[̋U SVW8EGp|2O֋؋E8Wr |2O֋}S 3ۉ}O+;sЉG.v,G+;v QR+t YuOEMp+p I0VEVH<9tME@H<@@+M;vttOWn>etP5ƋMd Y_^̋VpVbj,Z^Ƽ̋UA+‹M;v]̋VtV+у3FF^̋UA+‹M;v]W̋UAV1+jYM;v k^]'̋UQVW}7t;S_;tj_";u}G+jYkѻ3GG[_^̋V&jZ^餻̋UAV1+jHYM;v kH^]̋UQVW}7t;S_;tjH_;u}G+jHYkH+3GG[_^̋USVuW_ˋ+;sG1v/G+;v QV. +tVjS} މ__^[]̋USVuW_ˋ+;sG1v/G+;v QV +tVjS| މ__^[]̋UX3ĉD$TEVWL$0PhO$;tF$;tG$N$,d$,L$WVD$PwL$6L$0-L$\_^33n]j}g$EeX$tW0|2։G$膆̋UWy$uh2M VQMpQ|2^_]̋UQVN;Ns~AFvE D uEuQ3^h,Pl2̋SVWFt Fuf ~?t6^tK<t j4 mYYu^ߋV茸߃f#_^[̋UQS]WM{$t.;u#VQp|2֋MA$^y$c$_[̋UeSًM VW3֋~ u)1Njf9ps e@ Ex tދ3z uff;Br E@B{]tt@QEMPQVSMMp`VuW MA_^[̋USW} ـ u+Vwu?Nvj,Z9 t^_[]̋U USًK+M;rcCVW<EWwNM{A}EsQv3VP  W辶 SP E_^[̋VNt跶N^tj,Zt̋UAESVuF;u3ssF } u p;Cu s0;u3FWGP;u7PRz t1;xuWG@ G@@ GpHz u@ B G@@ Gx(;8uWUG@ G@@ GpGx hC_@ ^[] ̋Itj,Z`̋UVuBBx upFB;puPF;puPrV^]̋UUVrBx uPBF;PupB;u0pr^]̋U S]VWF++=Nx+щ}+;v@ ȉElM f _]EfF;u'+P6W萃] 7 ;CȁwY뱋+P6WgF+PS]CPTt V+уE> GÉNM_N^[誴jЪaEUUU+j0YEG+E;XG+΋+;vJuk0qkM0؋U e]ˉMA0EBABP~W9Uu)‹;CuUUUwY룋UWS MWEWP EV@PSEQM uu; jj蜳̋UQQEVW+EG+;O+SX+‰];w4 ;BhM ؋E O9Mu+Q7S蒁 'E+P7SG+EPEu@PiVuSE[_^+juE3ۉj,]Y^q\MF f fHH3YAFM FHFHFX FX ~̋UQQSVW};NF++E+;vhȉE2U؋Ǎ +t3҃ IQuF+P6SP t V+уFE_F^[ ;s;v衱̋USVuW ];wyC+jYVˉE,E;wakxQkM։}+UOC};;tuW ;uu]uVui_^[K̅t W3aAu_̋USVW}8ى];C+jHYEC+΋+;v_ukH藰QkMH+UEgKEE;tSHH;uu}EMVWP(_^[4u;s듁8vŐSWtVVw3jHPWFq Hj XfF3FFvHFFFĉFȉF̉FЉFԉF؉F܉FFFFu^_[̋UQQSVW};NF++E+;vgȉEc؋ϋE+tQjRp F+P6S} t V+у!FE_F^[ ;s;vӮ̋UQQSVW}?;NF++E+;vgȉE衮؋ϋE+tQjRo F+P6S| t V+у_FE_F^[ ;s;v\̋UQQS]WE;wiH+MH+Nj+;w< ;BVˋE+QM  Q QoMA+P1V|MWSV^_[̋VNt2S^;tj0^O;uuF+j0Yk0[kE 0M_FkE0F^ ̋UQVW}7tut>Mu6WI PVscu ~t_N W~j0A+AY3MEt7]N PWNtH QRH^E@E;Erύ^CG+;(_^[̋UVW}WNȋFtuA_^]j8Ь`щU܋M}}ątNjы lu}ċU3ۉ]̉]Љ]ԉ]ÉE؅}ȋJPeЋẺUJ M;EtEЋt\Rt6t%EtH c@@DE DǍMP<UF;uru؋M܋:ЋpMK_̋U$d$E $SVWtMЋ luL$ D$]IP l|$ ȉL$A D$3t]Qt3t"uiD$ tH @@DE DEL$ PL$F;rD$t$ HD$xL$ WWȉD$'=D$_^[]jj|' _MC3ɋs 3ECECEC EjZuu ];ȉMĉM}t#Et EEuMω}ĉMs}ȋUEutE luUCtM luMċ} lru>)M)MEEVH9MWVE8EE%MЋ7EPEPEv@PQR|2֋Euȋ}U<B E3ɉMRʃt]t6DMPI Mu܍}@xu9|u܋ME}PM!u܍x|x}ĥUAM;Mg MEP_umNuM3tC9ƋM\W:Mj8d[E̋}eee}e3ۉ]9]}ЋHSUԋM؉Eȋ@ E;tʉM3tc]EȋPt2t!u:EtH @@DE DPMuF;rM؋Uԋ]+t4EȋMS8qQML̋Ujh3dP3PEdQuQQu|Md Ỹ!aaa ̋UQSVWM3p|2֋3ɋE;u Au |r3_^[̋UE E ]̋UQQVWMQMQpH|2֋E_^̋UQQVWMQMQpH|2kE_^E̋UQSVWپ l‰E3@+t"PoEF@+;r_^[̋SVW lڥC+t73C3;F+;vjZ:P蘐CR;F+;r_^[̋UEE $]̸|Q̸@jH2yNu} ϋ]jVPM4eFf8(QhQω@$EjP!O,EnS諼hQhQvEP޾}M؋EGMPQvEP达hQhQvEP覾}MEGMPQvEP膾hIhIvEPn}MGM؋EPQvEPNhIhIvEP6EE PbM ML ̋UE`m/v / lv@2]̸d̋UElZ AE Z]̋UE]̃!a3f̍Axv̋USVW}O/0؅uBO/p |2֍O0؅uO/jp|2_^[]̋A+Aj(KuЋM3ủFEFFEtuu P* K hQMUE荅j0?K}Ћ]ME O GQp |2քpD|2֋ˉEw ؅t[3ɉujZ (EEt Eȅt8u}ЋE3MOGt'Eԅt2'tEPjVK? 3Owtq'tO3ɉ]jZ p'uEtu}3Owt'I hQMReŰUQQS]V3ɉuF;CF ;C Wl΋c3ɋ;Au>F[EpD|2PSu,K uYUuJB ;t~+;u:A;Du1;u~ r' F;t+ff;7u ;u3_^[̋UVEt j@V/YY^]̋VN0N$?NN ^j$;HEЋMXC+Mԃdt_8p(|2քtMj A4+A0Yw7KU;Kt "C RQC+HG hRM]eU)jTGًCMMpHEPQ|2KքC4tU+C0j YM;k C0} uxu}lxbNhRM~e[+C00uhSM~E:$ujC3ҋK +UtV@ME;t118p(|2քuFMM;MuҋUCBK +U;reEEPu1hRM~EUE K4EEEj E^;K8tEeEAEAs4 EPQK0C4+C0}HMt u1ME 蹿hHSMn}EU7M+PhPT̃9t11̋UVr;rt-M!AFAFA F AFJAB uVȋ^]̋VF9Ft&+FHPFpD|2֋|$,L$HPwPZG L$HD$D$jP9Z|$\$,v*GL$Hj4VZjFPL$P ZC;\$r3ۋD$L$HjD$PY|$v#GL$HjfpfD$D$PYF;t$r݋D$8|$<@D$8;D$t$@|$ vR^WNjNQL$P}YjNQL$PnYjF PL$P_YjFPL$PPYG;|$ r3ۃ|$$v*t$0SjL$L@D$4D$4PYC;\$$rڍD$@PD$4PL$Pe$tD$0T$4_^[3&]̋UQQSVW}p(|23ۉEt?G8p|2֋о<@3ɋ;u Au C;]s}3_^[̊A4̋Uu(@ ]̋UQQSVWuEHE0VzT|23+t\t0uR}9p v]@ˍPFt3F;p r)}9p v]@ˍPu݋F;p r2_^[̋UUt ttH2]r0̋UQQMSEVX@+W;R:pT|2փt`}3Ήu9p @ȋMP]toMAM;H r9p v[@MP_F;p rA}3 9q v4A֋M‰UP uF;q rAEMP_^[賶̋UUVtukJ F0D r^]̋UVWjYF +FM;vZk~} t u 71MtG }t+wN蝲w0uWHNQPr_^]̋USY,Vq(W3MtG ;uE 2_^[]E 8j`;hTM9seUvjX;EM ]MQȉEñ80|2PM3e+EЃS}EjGEQuPQuMrEE؃}uGEP_MEmuMB3@ E}uO"HtwttO @pWDM3E uI0uQEPQM EE}uGEPME7mtSjhTF;Esjh8Hg/jhNTMl9m̋UQQAEMEVEAyMhVhPTU*^j~9}j Y3҅t$S{X3}SCSډ]UtS0|2EA9At+AHPCP~GMe貖8̋UVNkEt j V YY^]̋UAV1+j YM;v k ^]`̋VW7tt 61j Y;uG+k k3GG[_^̋VW7tt 61jY;uG+kj3GG[_^̋VW7t.S_ j;uW+|j3GG[_^̋VW7t.S_ ;uW+9j3GG[_^̋USVW}O؅uBO?p|2֍OX؅uOJjp |2_^[]̋Ujh?dP SVW3PEdeeMMET3EhËEMd Y_^[̋UjhbdPQQSVW3PEdee3"EhËEMd Y_^[j5qj,YSE3ɉMt vȃMP1|23x5̋UQSVW3j^EEccE;v$ ƾ;w jY;BN%iE;suVuCWI7u7hhKP87E_^[̋USVuWC++;=?K@+ E?+;v0?MhM E! Ћ{M ;uT% M;CȉM?we!R;u}uuu_^[!R;uS;t̋}+΋&D1;ug̋USVuWC++;=?K@+ E?+;v0?MgM E! Ћ{M ;uT% M;CȉM?we!R;u}uuug_^[!R;uS;t̋}+΋&D1;u!f̋UQQSVWj UUUF+MYE;@P;w|k fE+Ej YM k ׉U!ABABV9UuUVWqEM VVP^MSAQW:E_^[^ f̋UQQSVWj F+MYE;@P;keE+EjYM k׉U!ABABA B ABV9UuUVWEMVVPES@PWE_^[苸6e̋V1tN 誧耹jVYY^̋V1tjVYY^̋UVW7t2S_j Y>t 61j Y;uG+k c[kE MGkE G_^] ̋UA+j YUUU+;vUUU ;EBE]̋UVW7t2S_jY>t 61jY;uG+k)c[kE MGkEG_^] ̋UA+jY +;v ;EBE]̋UVW7t$S_ ;uW+b[ME GEG_^] ̋UVW7t$S_ ;uW+Db[ME GEG_^] ̋VNt Nt N^| ̋U E VuWuE;t%+ы!AF AD ;uuMu_^̋U E SډEVuu;t9WQ+BbBFRBJF BF;u_uMu^[̋V1Wy>t61;u_^̋V1Wy>t61 ;u_^̃l$醌̃l$̋SV3Wu SQ1uSW13Btf9utf9uʄtJ$u SPV23҃ B;Oʋу;L_^[̋UVW33ɫE NN9Eu F+EPu袾_^] ̋UVW3MQffAu+Qua_^]̋UQAU V4;qwRPuq. ^Y]|j8,EEԉEx 3ɉH@l@OOXM KKp$NNP0 JJEHj@ DEMEPq{jEPqiF;ur3 Et%jIf qfMEPq2F;urۋ8pD|2PEˋps_^[̋UQQSWjEP}}C+j Y};vUUUwpEPj YtQ}} VC;Ct`` KPsjFPjNQmj Yu}^_[/̋UQSVWjD$PBt$ wbG+t$ ;v?wOD$ PGt/ދG;Gt GPOQM &u_^[]虫̋UQSVWjD$Pt$ wbG+t$ ;v?wOD$ P>t/ދG;Gt GP' OQM u_^[]W̋UQQSVWjEP}}wC+j^};v EPAtq}3ɋ} C;CtHHH HsPk sjFPFjPFjPjNQxmjYj^u}_^[v"̋UQQVWjF+D$D$Pq~6 MV;u_^]̋UQQVWjF+D$D$Pq~6 MV;u_^]̋UQSVj[jF+EEPqi^6;tTW}jFPqJjFPq8jF Pq&jFPq;u_^[̋U S]VW}pE]M)@E+;+ѹU+‰M;:U+UEE+E;wM;MBMM@UˉE+MWu MPEp# u;uuuuV# uuuC#E+VSP4#uMuuEbE+;s4W+PV#M>+Su+AV"Wu u"$#S4PV"M3Wu uA"_^[ 蒧̋U S]VWF++=Nx+щ}+;vB TM E؋IKN]];u%+Q6P*"] 7 ;CwC뱋+P6u"F+PS]CP!Wuu_^[豦\S̋U S]VWF++=?Nx+?щ}+;v>?%SM ЉU ]NE;u%+Q6RH!] 5 ;C?wA뵋+P6R!!F+PS]CP!Wuu_^[ѥ|R̋UQSW]j YG+ EUUUw+k VkRWWVl3uVI^_[ R̋UQSW]jYG+ E w+kVRWWVj3uV^_[Q̋UQQS]VW w+7?wFQOЉME;Mt]!R;u]E3VP_^[QQ̋UQQS]VW w+7?wFEQOЉME;Mt]!R;u]E3VP_^[P̋UVt V+уOME FEF^] ̋UVt V+уOME FEF^] ̋UQQSVWj UUUF+MYE;tz@P;wpk BPE+Ej Y3k ljEHHV9UuUVWEM VVPES@PWE_^[ŐUSVuWC++;=?K@+ E?+;v)?MyOEЍ !{M ;uT% M;CȉM?weNj!R;u}uuu_^[!R;uS;t̋}+΋&D1;uN̋USVuWC++;=?K@+ E?+;v)?MNEЍ !{M ;uT% M;CȉM?weNj!R;u}uuub_^[!R;uS;t̋}+΋&D1;uM̋UQQSVWjYF +ÙE;t{@PE;wpkME+jYk3߉CCC CV9UuUVWMCVVPuE@PW_^[kM̋VWQVQ~t33džfFt_^̋UjhW|1QphpPjX̋UEE .]̸,U̸@j0tEu }@f8(Qh0IΉ@$EjEPheN,ZWhFhFvEċP%}M؋EGMPQvEċPEE;P1EE P"MJ ̸̋UE VuW6H (Y_^(Y@YH@H]̋UE]j8X̋UEE .]̸V̸,@hDZEM ujPP PJeh@h/j jPjE_GPPqPK脧5IGPPKP_IWP)PKE;tjYEt3FFFF FF3uVE u Q+tR;Qt e2A EPRME;}uű M $PhV3̋VN ʔN^j`ز }UeUe0EPh\R|2֋MEq MQP|2֋MyPhVgM؅Z}t+p$|2քth WMCE:EPuPEPEPO@uG;GthWMZCEEPEPOp|2քup,|2քtE Eq MQP|2֋MyPhVyp|2օup|2EtE3҉U9UeEEqMQRP|2֋M}u1jp|2քhWMLBEeEEPM*x0}t*}up|2քt3@Puup|2քuMЉU;t3EtRp|2֋MUEMMU'M!MEEME6bMuI cO@;ODt)EE utVp|2֋uG@URQOht\hp\vEP=h\hx\vEP=}MEGMPQvEP=h\h\vEP=}M؋EGMPQvEP|=h\h\vEPd=EE P;M7M/ ̸̋UE Vq0E0|2^]̋UEIH]̸\̸@j,Eu ΋}jP=PMeN, W*:h\h\vEȋP]<h\h\vEȋPE<}M؋EGMPQvEȋP%<h\h\vEȋP <}M؋EGMPQvEȋP;h\h\vEȋP;EE P:M ̋U3ĉD$ VWjWW3_YDX@;r/dlviT$+ (X.ŸDz!XكuWZ迾WZ^F^FF^F &ffL$_^3]̋U (ET mWZVY lZZE Zm/EEv YlXl۽ZF^̋UE E 0]̸]̸\@h$EM ujPP-;Pe0h@h/jjPHE3WP4PKYYGPPo4PY40 r΍I, V6h5Vh$VwP 9GPQwP8h~Gh|GwP8ƅ P6VX6hQhQwP8ƅ P63ۊA A!A"A#Ht6hiVhhVwP8ƅ PB68Vt:V5ƅ.P 6ψP5PhWGhTGvP715ƅ.P5ΈP5hFhFv$P27C0h~G|G$SwP6ƅ P5V4hgVhXVw$P6V_4h~GSw$P6ƅ P4z$tWV4hxGhlGw$PO6V3h~GSw$P06ƅ PV4h@jj0EPI ̸]̸l@j,Eu ΋}jP7PMeN,h(]XN,W-3h[]hD]vEȋP`5}M؋EGMPQvEȋP@5h~Gh|GvEȋP(5EE PT3M ̋UEE ]̸\]̸,A̋UE `l\ lT m/]jD&Eu ΋}jP5PMDeEjPL/N,EW1hFhFvEP 4}MEGMPQvEP3hFhFvEP3}M؋EGMPQvEP3h9Hh8HvEP3EE P1MoMgL ̋U SVu3W ԃ FF BZF AYċWW ωXPEP0_^[jWu3>~~~ N}/N$E#~8~<~@NDEl̋UQVW3ujY>~~~ ~>x0_^j4E eM]}jPM؋Ή]eS}/eEht]$Ehp]vP2E= uh]hx]vEċP1EزP/EE P 0S*h]h]vEċP13}j jE}PP1MQAu+ʍEPEPvEP`1?t#EE.P/]ΈE܍EPq/EE)Pb/EE;PS/EE PD/ֿj$ҶE]} jPE؉]P}eN<;N@t3a}AF< QN8v<}tjh]OWNj 8}UuGU؋ROE؋PJM2̋UQVu2uM PuE^j3Wu}}u}EA}Dth]h]vEP/u \-EE P-ut hFhFvEPr/W-h9Hh8HvEPR/EE P~-Ej MHEMPe~^7};t<}}E؋GE؃~v9~uvPQȿ t;u΋};u!GMQ;Gt EIGPMőU EVht]qDhp]vPn.^j4@}MeEh]h]uЍMP-.EE PMX,h]h]uЍEPM.EE PM/,EE PM,OGM;tOh ^h^uЍEPM-WME"EP+EE P+;}u}G;GtEE PM+ vGE PMMQ+4h^h ^uЍEPM,-hd]M*h'^h^uЍEPM-EE PM1+EE{PM!+EE PM+G$PM[E}EP*EE P*EE P*h9^h(^uЍEPM,hKM**EE(PM*EE PM*G+Ǚu;@PE?E;k]E+ǙjYUk3ʋMaAF6;u;tUVCjX;u>;tVyCjX;uMuF;t+KSPCjX;uuuEuP>E_^[y>$̋USVj ] C+MY;@PE>E;kW}lju+EjYu kƋȉEBC3;u};t^VBjX;uDE;tVoBjX;u]CE;tu+NWEBjX;u]uuu=E_^[o=̋UEE H]̸^̸|@j\'9u E]3WP"jE}P"jEEP!WjQE(hMN,N,*Sg$h_h^vEP&hMC$hIIESvPu&WEh _h_vPS&}MEGMPQvEP3&IWSvEP&}MEGMPQvEP%WSvEP%}M؋EGMPQvEP%h~Gh|GvEP%EE P#MMMy^ j0X̋UEE H]̸ _̸@jt")u E]3WP jE}PjEEPjEEPWjQE&hMN,qN, SF"h0_h_vEPy$hM""hIIESvPT$WEh _h_vP2$EMj_9}GMPQvEP$hISvEP#9}MEGMPQvEP#hISvEP#9}ԍMEGMPQvEP#hISvEP#9}M؋EGMPQvEPw#h~Gh|GvEP_#EE P!M2M*M"M ̋UEE `]̸$I̸@jD&ٱEu ΋}jP$PMeEjPh,\N,EGN,W hE_h4_vEPO"}MEGMPQvEP/"hIhIvEP"}M؋EGMPQvEP!h~Gh|GvEP!EE P MM菰 ̋UEW/v / lv@2]̋UEE ]̸|_̸_hƸ&}3ۋEu Ή04G,xSPjE]Pj[SEEPjE]PEG8uh_H]3ECjW!P``EPM؉4JEt`!Et H jj Q"hMN,N,n0h_h_v8PEMj[9]GMPQv8PhIhIv8P9]xEGxPQv8PnhIhIv8PS9]MEGMPQv8P1hIhIv8P9]MEGMPQv8PhIhIv8P9]ԍMEGMPQv8PhII8SvP,__yDP1hISv8PeW8h~Gh|GvP@DƅD PfM MMMxϬ ̋UEE ]̸_̸ Aj`詬E@xt xtxu>hJMeUjD&YEu ΋}jXPPMeEjPh_N,EN,\WhFhFvEP{`_EPhhiKhhKvEP}MEGMPQvEP{hIhIvEPc}M؋EGMPQvEPCh~Gh|GvEP+EE PWMM۪ ̋UQu/EPhj0uMh(`j1Z贛hEVj uP0u h(`j9V50uh(`j(\\(\\Y\\^YYXX _^]̋UDm (_ Xm/VWw  l]ʍE(PUM6Xle/m/v&WTM(Y mmY\]YY m^(Y%$mY,m\Y^܋E_^̋U %Hm(Y4mWVWM/؋ev&Y|llYhlXpl^F/vFY|lpl%l((YllYTm\\(^^E tlEPU(čMpMEY lUMEYlP\EYlXEMMY lY xlX tl }m(Y l(YluY- m\e(]YlYlXU(YlYlMY=l\(YlY5l\\EYlX^MY m^]\(YlY%l\^M^/mY-l_\X^m^^̋UEE $]̸4a̸AjH2ٕu} ϋ]jVPMeFf8u fxu23A(Qh@ap$ω@$Ej#PtO,EShQhQvEP1EMj_9}GMPQvEPhMahHavEP9}ԍMEGMPQvEPhSahPavEP9}M؋EGMPQvEPhWahTavEP9}M؋EGMPQvEPjh]ahXavEPR9}ԍMEGMPQvEP3hcah`avEP9}M؋EGMPQvEPhIhIvEPEE PMM蔓 ̸̋UEV0E NQ;^]̋UEp$]̋UEE 2]̸,a̸\AjL<u} ϋEj^VE=PMeFf8(Qh0I(%ω@$EjEPG,EȉE}W=hFhFvEPp}MEGMPQvEPPhFhFvEP8}M؋EGMPQvEPh9Hh8HvEPEE P,{tYMQWhxGhlGvEPWnh~Gh|GvEPEE PMtMlQ ̸̋UE(%]̋U VuWzBu+׍2PVqEP_^̋UU$3VuW+w tЋMtu,Ru PVuE_^](̋USVWF NuA9FwQTNH!F ~Y~ #؋F<ujYmNF EF_^[]̋USW3C}OEً+rs+;ߋG E?Vw+ދUOUы}+EVRWő > }uM;w5PvQ裑+Nj}PEjP膄W}jWz6WvQnv7+uVPuYW}j>PEuN$t V^~^_[ hXcd2jj~-sK;uCO `K HWU}U9C w]eIKQK;uW +MOC ePWQWURMMWKsfO K NMYEVF;suG WMЃeRWQEM܉EC WPWsfO K NM 觎jj~sS;uCO `K HOM}M9C wweKrsAH#ЋA4VS9SuӋW +MOC ePWQWURMMW#sfO K NM_vEKQJ#ЋA4VHsFs;suՋG WMЃeRWQEM܉EC WPWsfO K NMb̋UQWg}G}Vvu跿N+GwE3!Eu ;utBSvMQJ#ЋAMGu @FGu E;uu[^v?8_(̋t jub A;Br̋tjub B A;Br̋USVWF uF9FwQBNYx#~ ~ DO#؋F<ujYhNF׃ E F~ _^[]̋UEUS] VD$ML$ML$T$ W};uD;u^t^9^̋Atyu!9̸W̸W ̋UME PI8]̋UEu p1]̋Vj@V|1^̋UE Vj@ V|1^]̋UQE S]VW33jP00uWEuP.E ;_^[ ̋US]VWsxtay;tȅy M {4u1tjr |2֋ tQp|2֋_^[]̋USVW}x;t,q;tȅy M 6_^[]̋UQE S]VW33jP00uWEuPRE ;_^[ ̋UQE S]VW33jP00uWEuPfE ;_^[ ̋UQE S]VW33jP00uWEuPzE ;_^[ ̋UQuE $eMV0QhDjP|2EM^̋UQuE $eMV0QhTjP|2EM^̋UQuE $eMV0Qh$jP|2EM^̋UQuE $eMV0QheP|2EM^̋UjhVdPV3PEd!Rp|2֋Md Y^̋U MSVW} AE]'xl3ufU ^ Eȋ ;]tCxUˉ^ Ë];u&,jF VFGYY4N373_^[̋AyP2j`E @mɃefn[^Efn[^Efn[^Efn[^EeREPjW|2֍M܋_jݾ_}3j$]Y]<ttV+F+F+F +F`+F eVuE]Pi]܋Ή]]-x*EM_ËMhhdjZPM9jݾ_}3j(]Y]'<tw*VF*F*F *F*^ F$?Vu E]Pi]܋Ή]]x*EMB^ËMhhdjZPM*9jݾ?^}3j,]Y]d;tvs*VF*F)F )F)^ ^$^(VuGE]Pi]܋Ή]]vx*EM]ËMhhdjZPMh8jݾ}]}3j,]Y]:tzb,)VF)F)F (F(^ ^$F(?VuE]Pi]܋Ή]]x*EM4\ËMhhdjZ:,uXl`,,uJdF,t"f ,uQVQK xQr|2֋Sp|23Md Y_^[̋UjhdPQSVW3PEdUًu3M|`>l+uXl`^+uJdFP+t"f;+uQVQK xQr|2֋Sp|23Md Y_^[̋UjhdPQSVW3PEdUًu3M|`>*uXl`*uJdF*t"fm*uQVQK xQr|2֋Sp|23Md Y_^[̋UjhdPQSVW3PEdUًu3M|`>)uXl`)uJdF)t"f)uQVQK7 xQr|2֋Sp|23Md Y_^[̋UQMj2hf@sE̍A#̋UE@8g]̋UVu3W8g;uBuA#3_^]̸@̋UjhqdPQQSVW3PEdeu3] E~ωD3jDYw #4Ѕt@3B%AJ(b FBFBFr (3ҍB#3M %E HËEMd Y_^[̋UMU A#Q]̋UMU A#I]̋UMuU A#e ] ̋UMA#]̋UEjZHD3@@]̋UVW}u G#p|2֋Mt3ɍGA3 Qu , _^] ̃9̋UUM VWdFxfxEx\xg_^]̋UUM VWdFxfxEx\xlh_^]̋UUM VWdFxfxEx\xh_^]̋UUM VWdFxfxEx\xti_^]̋UVN#Et jV:YY^]̋UQMj2hHf@nE̋UE@(g]̋UVu3W(g;uBuA#3_^]̋UjhdPQQSVW3PEde} euWjuG Nj XDȋ u3FWuDM3Mf E츰LËEMd Y_^[̋UjhdPQQSVW3PEdeuej XNDȋ MjXVjDЍF _DNj ;t; E 3MEUMËEMd Y_^[̋UjhڿdPQQSVW3PEdeuej XNDȋ jXN jDȍFZD‹;E 3MEMËEMd Y_^[̋UjhdP(SVW3PEdeu3ۋ} j XN]Dȉ jFYDjYF D;t[ qff;u+Q2M@kEM]up3MJENËEMd Y_^[QQM[%PM=hEPQ̋UMA#]̋UMA#]̋UVW}u G#p|2֋Mt L3 Qu n_^] ̋SWOXu3@tVPq|2^_[̋SW-؅u@GtVPq|2^_[̋VqWxJ;t$Ѕy҃B quR_^ÍB̋Uy uQQM#PMA#hhEPnP̋SVWڋp|2_3^[̋Ujh dP SVW3PEdeكepEP|2֋ Mn3ME2QËEMd Y_^[̋!P̋UVEMUt E 03.\;ug-t E NӸ@^] ̋UVEMt E 03.\ulht E NӸ@^] ̋UVEMt E 03.\uhwt E NӸ@^] ̋UVEMDt E 03.\*utit E NӸ@^] ̋UVuW~ tJ;tЅuE 3_^] Nuu Q0|2փ̋UVuWFyutNjV2YY_^]̋UE3ɃAA]̋UVu e3ɋ;uAuE3ɋUAB3^] u܋.uыt UM͋E @̋UU3VҍrDȋE 33@D3^]̋UEVjZHDʋPq|2^]̋UEj ZHD3@@]̋UU 3Ve;u$AuM3ҋEBj ^AD3#Ej^uHDR Q0|2^] ̋UASY+9E VBE ЉMW}E4Uu;tae Qff;Eu+Q3M_dE;tu3ωEii7uMzi;uEMUQ_^[ ̋VWyxr‹;tЅy3ɍU Aq_^̋UQQSVWڍMQp|2֋Et2P>MЉu EPuRJ E# 3_^[̋UVWMt$p |2֋M 3AG3:jheu@J7 uN|2Vu u|2_^]̋UVuWQt$p |2֋M 33Seы;u Bup?e;u"AuM и3ɅEcst!p |2֋M 37tK |2S U u V|2[_^]̋U EVE0uy3ɍu AuSWjY$3ۋCt;M q |2M֋˺ uG8,H,Gw _3}u3TƋʋu;ut.ux O 1ލu M4u G G_[^̋!P7̋Ujh}dPVW3PEde G$'G'G&G &G&tQp|2,ǃgG'G&G +G&Md Y_^̋Ujh}dPVW3PEde G\(GL(G4(G (G'tQp|2<+ǃgGL(G4(G +G'Md Y_^̋Ujh}dPVW3PEde G&G&Gl&G H&G&tQp|2\*ǃgG&Gl&G 8*G&Md Y_^̋Ujh}dPVW3PEde G'G'G'G x'GH'tQp|2t)ǃgG'G'G P)GH'Md Y_^̋UVEt j$Vi*YY^]̋Vv1f^g̋UVEt j V*YY^]̋UVN ӷEt j(V)YY^]̋UVEt j,V)YY^]̋VN$lN d^#̋UVEt jVY)YY^]̋VN 9tnN^̋UjhCdPQQSVW3PEdeMeAPD3ME츖]ËEMd Y_^[ ̋UVuWN4utN!NjV`(YY_^]̋UMI]̋UMheQuu 4] ̋UVEt jV'YY^]̋ ̃l$ ̃l$̃l$Ƽ̃l$&̃l$&̃l$ֹ̃l$ ̃l$̃l$ƹ̃l$ṽl$ƹ̃l$ ̃l$̃l$閹̃l$Ṽl$閿̃l$̃l$̃l$6̃l$F̃l$ &̃l$̃l$f̃l$ָ̃l$ 6̃l$閸̃l$閾̃l$鶾̃l$ ̃l$̃l$鶼̃l$Ƽ̃l$F̃l$馼̃l$閷̃l$ ̃l$馷̃l$ṽl$̃l$̃l$̃l$̃l$閽̃l$鶽̃l$̃l$ƻ̃l$&̃l$̃l$6̃l$馶̃l$ƶ̃l$6̃l$ƹ̃l$̃l$&̃l$F̃l$f̃l$̃l$̃l$ Ṽl$F̃l$鶼̋UVu3WM;uBuE MI3_^] uދ? uӋ t U M̋E @3@@9V̋US]VW}Wu S=u6PhfP=E3_^f C[]̋U SVWM_+;rdG4 VωEtUEt}uMQEwOSv7VP\E΍EnWPBE_^[in̋US]VuWVu S=U< t 3fE3_^f C[]̋U SVWM_+;rdG4 VωEsUEs}MQuEwOSv7VPZE΍E:mWP@E_^[m̋UQыMWBz+;w0zSVZv2<~t 3f3f^^[QQEuQ_̋UEQ;wyv V3f4A^ +QPp]̋UjhfdP83ʼnESVWPEdŰى]ċE }5}EPW2t|2։j/uKhjheQ5heP /u EP|2uȋEW0/u!3eEPj43}ثẼeetH@tA3PQMoj.[}U؋EGU؅/H;BȍJ ;f9u+QPMuE]+Ãr-}}؍CG}jEhf_PE: 3fD_jQEMuj[}EhGEjP4EQMPj.[2h fW-؅tEeEPE̋0|2ӅuEuuP|2Ӆt}tM_W-]ă#}tM_uj3]ĉ3MBq}tM_ËMd Y_^[M3ŰUM tE3ɋUAB 3EVuHu Q0|2^] ̋UE3Ƀ AA]̋VN9t^N9^^̋UVuWN PutjVYY_^]̋UEHt&Vu up uuuu Q|2^]̋UEHt&Vu upuuuu Q|2^]̋UEHt&Vu upuuuu Q|2^]̋UEHtVuupu Q|2^ E ]̋UEHtVu pQ|2^]̋UEHtVu p Q|2^]̋USVWE3P]S]n0EMt"0Qh8fP]|2EMuC ju[!t}tM[\ttMG\t}tM4\}tM&\_^[̋USVWX,{'K0uC 97t"?t[7tVp|2_^[]̋VWjYt W33҉ɸ_E^̋V3W8fы;uBu_^̋V3WXgы;uBu_^̋UVu 3QPF̻FN ^]̋V3Whgы;uBu_^̋U SVW3} ىMSCuVV+SQVhP.Eu7-LuvSujh&.eM7,R_^[̋UjhdP@SVW3PEdeu=u|2׉|uMSNnËEnË}3ۉ]ĉ]ȉ]̋p|2֍UEMUĉ]RE̻ QPME]0 uMMM Mu"Hgt MQp@UR q|2֋x. ̋US]VW}s ' J;tu3_^[] KWu Q0|2֋KQr|2֋̋Ujh}dPVW3PEde G,tQp|2֋EGG ?,GMd Y_^̋USVW}w J;t;uZu1tjp|2֋t Rq|2_^[]̋VjYJ t V^3^̋VW J;t ;u_^ÍB̋UMI]̋US]VW3t;t61V>31_^[]̋SWڃ?tTt VSp|2փ?^tT_[̋UQuE $eMV0QhhgP|2EM^̋UQQW;uLtF:tASVEPϋ0EP90Ã}tMS}tMS^[2_̋UUVJffu+ыRuP^]̋UVu3QPF̻FN ^]̋̋UE Vu!!uQfOUK M2?9ut M OMty9@E93t 3"E3SW|2UE8MQhjPu|2MMVQp|2֍MNMƉEtxEPQ|2׋Eut7P!UMP-AM;t80FMFuM FuVuME}tu!}tM N_^[ ̋VN 9tM>t 6X!&^̋UUW'G̻BGJ O tVQp|2^_]̋U=hVWtuu5hww7|2֋E=uL$8hXP&W=uEL$ PhD$ =uEL$ PGhD$ =@uEL$ POh4D$ =WuEL$ PWh`D$ j= uEL$ P\hD$ D=@uEL$ PahD$ =uEL$ PfhD$ =TuEL$ PkhD$ = uEL$ Pph<D$ =uEL$ PuhhD$ = uEL$ PzhD$ `=uEL$ PhD$ :=uEL$ PhD$  EQPL$hD$ ̋Qjh0Pd0̅tQjh0Pl0̋U tÍMhXP_$̋UM]̋U<3ʼnEESV3EċىUWF31Xu0ajZWXXB‹;uk0Ƹ0}̉FFP~0t@WfEȋE̋MȉF,^3N(jEPj j0uuЍ4VEPN+jX;Gu ૫PQSW# M_^3[b̋Uu]̋USVځtntft^tVt uH=t09u y(;t$t u UQt^[]U $~̋UTSVW3ۄtST0jPESPd uE}SSPL0_^[̋USVuمuuM Ftu3;kt(rVut t UV^[]3ҋ9jt $r̋SWhj0t VhjP0t WS|2^_[̋UMQPuUI̋Ujh3dP3PEdEpPp(pQjYMd Y̋UQ=-SuweEPtf}t[t?Iu6(0uC8-uPjh-j#t2x-=-tMhhk [̋Ujh3dP3PEdu ujjuHE Md Y̋U S3Et,EPEPEPShkQ0uU}MÉ [̋UQSE3PhSh8kh]0uuM|u0[̠\StF ]3Ct1jjh\j#t2yÊˢ\ ] ]\tt3ۋ[̋U 3ʼnEIBbEYVYYXMB YUXZXAEEA M(EXbE( uY BYARYXB YAXXJXR(_](((]_((;uM3`hp ^*̋UV3F1FMhhljZ~^]̋UV1N}Mhhlj&ZK^]̋UE 3At +t+t+uEuu 3u-Q'=-u}u"-3uH-juȋ] ̋UQEVu +ЋʃWf}M tJt<Enap}fuȅuh ;Euw t1t*fnfafpfufȅu6;u;tfDf98t;u_^] w_^] _^] ̋UQEVu +ЋʃW}M t;t-Enp}vȅug ;Euw t1t*fnfpffvfȅu5;u;tfD98t;u_^] w_^] _^] HHHH3̸̸HHHH3; u ̋UuHY]j h E] Ë}NjuueO}t+uM|2UEEMd Y_^[}] uEu uWSVjh 3u}u;ut>+} }M|2UFEEEEE8csmt'EEËeEMd Y_^[ MEp 0l ̋UEVH<AQAk(;tM ;J r BB ;r (;u3^]Ë̋V t dP;t3u2^ð^ tq P Yt2/ jYQu2yQupQ`Q[Q̋U u} uuMPu|2Uuu YY]t h YFL jPYP̋U}uPu2]Pu jPY]̋U=t]Vutub6t&u"h Yuh Yt+20      ^]jjheMZf9u]<PEuL f9u>E+PQgYYt'x$|!EE3Ɂ8ËeE2Md Y_^[̋U't}u 3]̋U=t} uu/Ou'OYY]̋U=uuu hYY3ɅDM]̋UuYH]̋UEVtVoY^](jYthY3j=̋VWhhD1h ?0uhj0tFhd?V0h?V0tt=_^3PPjP1ujh$1tP\0̋UVV<1 EA Vd, ( 01^]]̋UVWW<1u>u &p>td, ( W01_^]̋V5th|2^5L15P1^̋V5tjhh|2^þV01jjd51V<1^jh(3ۉ]]];]tM|2MUE EC]EEMd Y_^[]EuuSu űU%$ j 0e3SVW3ɍ}S[wO3ɉW E܋}EGenuE5ineIEE5ntelE3@S[]܉E E ljsKS uCE%?=t#=`t=pt=Pt=`t=pu===MjXM9E|03S[]܉sKMS ]t=]tytq3ЉEUEMj^#;uW t; #;uEM#;u @5_^[3̋Uj<0u80h 0P0]̋U$j0tjY) 5=f f fff%f-E EEX  jXkǀjXk LjX @Lhh`d5D$l$l$+SVW1E3PeuEEEEdËMd Y__^[]Q̋UVu6uuu Vh@h^]3@39P̋U$Vj0tM)j$jP4 |xffftfpflfhEEDž@jPEjPE E@EE(0EEjE<0EP80u tj Y^̃%$%<2%82%42%02%,2%(2%$2%1%1%1%1%1%1%1%1%1%1%1%1%1%1% 2%2%2%2% 2%\2̋Uuuuu upQH]̋Uujuu u]̋Uuuuu uSp0tH]̋UEPuuu u]%l0%0%d0%0%h0%0%1%0̋UE t3t tt3@0uuY}PY] jhHIjHY E]e=NtMzh,4h4-YYu)t h4h3YY2ۈ]E=uCi>tVoYtu ju6|2,3@]uY3Md Y_^[jjhh<,3gH,3FueEu=ui%e7juwYY3ɄDuE"ƋMd Y_^[ËuuYËujNj h} u9=,3et t]1]SWuuSWuuSWuduu"uSPudSVuRSVuptuHSWu5ut5SWuJ$MQ0hPuu uAËe3uEƋMd Y_^[̋UV5lAu3@uu u|2^] ̋U} upuu u ] ̋UEWPfE\1E3EE01E01EEP0EM3E3E3̋ VWN@;tu&;uO@u G ȉ _ @^h0t0h0|YPH$HNHH̸p.̋SVuu;sW>t |2׃;r_^[̋SVuu;sW>t |2׃;r_^[%T2%P2̋UQ=M|\tuL]E?tBuét-uéué Dȋø%0%0% 0%0%1%x0%0%0%0̋D$L$ ȋL$ u D$S؋D$d$؋D$[̀@s sË333̀@s sË3Ҁ33f~r=s,=s=r, mf~r3=s,3=s%y3Ë3=r, mf~=Os,3=_sf~=s,=s3+ux, m3Ë̃$$T$r-As,ÁAs't, mÁ?s,3, m3HË̃$$T$rJAs,3Ë3}S3t,m[à sÁ?s ,33, m3HÃ$T$As,3ÁCsQ̃$$T$ɁAs<,Ë3}S3t,m[ÁCst؃wt, m3ËW*XͨmtW*X ըmY mXÍ$W*W*Y mXͨmX̋Md Y__^[]Q̋M3?Pd5D$ +d$ SVW(3PuEEdPd5D$ +d$ SVW(3PEuEEdPd5D$ +d$ SVW(3PeuEEd3|̋Md Y__^][QQL$ \$ \$ PD$#`C$CPCPCl$l$D$ #+VW3PAM]CEudEEdQL$ \$ \$ PD$#`C$CPCKl$ l$ D$S+VW3PCEudEEdQL$+#ȋ%;r Y$-%@2%D2%H2%1̐T$B 3J3(̐T$B J3(`̐T$B J3(=̐T$B J3L̐T$B J3cx̐T$B J3@̐T$B J3(̐T$B J3(̐T$B J3(k̐T$B J3LH̐T$B J3%̋]K)̐T$B J3^̍ ̐T$B H3(J3̍M#̐T$B J3D̐T$B J3L_̐T$B J3(<̐T$B J3(̐T$B J3bp̐T$B J3?L̍M'.M.̐T$B J3J3̍M4̐T$B J3J3W̋Mk̐T$B J3'̍M{-Ms-Mk-̐T$B J3SJ3I<̍M1-̐T$B J3J3x̍M,M,̐T$B J3J3a̍Mz3Mr3̐T$B J3J3̍Ms,Mk,̐T$B x3PJ3F ̍M.,M&,M,̐T$B J3J3@̍MZM̐T$B J3|`̍M+M+M+̐T$B J3J3̍Mj+Mb+MZ+MR+̐T$B x37J3-̐T$B J3 (̐T$B J3{̍MVU̐T$B J3Kj@uYYÍMU̐T$B J3zp̍dG[̐T$B `3D̐T$B J3!L̍M0̐T$B J3J3H{̋M lMGmM$%ZM,%ZMU̐T$B J3t̐T$B J3bJ3X̍M0̐T$B J3(J3̍M?̐T$B J3J3x̍M(M(M/̐T$B J3J3D.̍Mb?Mz(MeMj(̐T$B p3OJ3E̍M j̐T$B J3̍M'Mi̐T$B J3J3g̐T$B J3LD̋Mx>̐T$B J3$̐T$B J3]P̋Mpq̐T$B J3-̐T$B 3̋MsQM [RMM鞙M aM}-̐T$B J3J3*3ۋEjY SuYYÍM̐T$B J3I(3ۋEjY Su3YYÍM餘3ۋEjY SuYYÍM3ۋEjY SuYYÍMZ3ۋEjY SuYYÍM5̐T$B J3!̍M֗̐T$B J3]J3S3ۋEjY Su=YYÍM鮗̐T$B t3J3$̍MB̐T$B J3J3XS̐T$B J30̐T$B J3y ̐T$B J3V4̐T$B J33̍M$M$̐T$B J3J3̋M̃fM̃[M̃PM}*̐T$B J3J3*3ۋEjY SuYY3ۋEjY SucYYÍM *̐T$B J3,J3"\̍M)̐T$B J3J3|̍M)M)MM})Mu)̐T$B J3J3"̍Ms"Mk"Mc"̐T$B J3KJ3A̍ML̐T$B J3L̐T$B J3̐T$B J3_j,uYY̐T$B J30*̋M 魶M_M$M0駵M(̐T$B J3:J30\ju*YYÍM'̐T$B J3J3}̍M ̐T$B J3J3C̍ h@j jP̐T$B T3cJ3Y̋MJM܃TM܃ uMȃ)Mȃ$Mȃ0tMȃ F N V ^ f@4"8"dо""A" @G"@Pd@L"@BM"@M"HXl@N"@Q"@]"Tdx am rm m m gnӆ(L;NÍUH2QDtP zz( z yh z8zD zzP@`<ttphtt|ttttttttHttxtttttttt<ttttt ypy ,hDp Lx;c Hl0 ,0-`*@*0 $4Hewuceffects.dllCompileEffectDescriptionCreateAcrylicBrushCreateCrossfadeEffectFactoryCreateCustomBrushCreateEffectDescriptionCreateMicaBrushCrossFadeToNewBrushDeserializeEffectDescriptionSerializeEffectDescriptionH(,`hx !#$@%%D  $(,048<@DHLPTX\`dhlptx.?AVbad_alloc@std@@.?AUhresult_error@winrt@@.?AVResultException@wil@@.?AVlogic_error@std@@.?AVout_of_range@std@@.?AVinvalid_argument@std@@.?AVexception@std@@.?AVbad_array_new_length@std@@.?AVOriginatedException@Composition@UI@Windows@@.?AV@@.?AV@@.?AV@@.?AV@@.?AV@@.?AV@@.?AV@@.P6GXPBXPAX@Z.?AV@@.?AV@@.?AV@@.?AV@@.?AV@@.?AV@@.?AUhresult_access_denied@winrt@@.?AUhresult_wrong_thread@winrt@@.?AUhresult_not_implemented@winrt@@.?AUhresult_invalid_argument@winrt@@.?AUhresult_out_of_bounds@winrt@@.?AUhresult_no_interface@winrt@@.?AUhresult_class_not_available@winrt@@.?AUhresult_class_not_registered@winrt@@.?AUhresult_changed_state@winrt@@.?AUhresult_illegal_method_call@winrt@@.?AUhresult_illegal_state_change@winrt@@.?AUhresult_illegal_delegate_assignment@winrt@@.?AUhresult_canceled@winrt@@.?AVtype_info@@N@D@E\?f>t><;PAlA?<n@H@`==*>;;=l?F<>><<>@@4A@@@@,@EP>6==$A<N==<=v<6<<=;;>@; AA="E=n==T<>"?E??6??>>?8889 9,9H9l999999:4:R:`:p::F:::::::;,;88r8T8:8(88XFnFxFEEF;777D h77d2T77P26P;1`7r;\25A0 6A1h5Ad085A40h6 Bd15FB05pB0(5B$0`5B\06B0|6Bx15&C06PC15xC06C15C05C0X5DT0P5.DL05XD05|D05D0x7Dt2`6RE\1x5vEt05"F060F1@E\?f>t><;PAlA?<n@H@`==*>;;=l?F<>><<>@@4A@@@@,@EP>6==$A<N==<=v<6<<=;;>@; AA="E=n==T<>"?E??6??>>?8889 9,9H9l999999:4:R:`:p::F:::::::;,;88r8T8:8(88XFnFxFEEF;777D?_Xlength_error@std@@YAXPBD@Z?_Xbad_function_call@std@@YAXXZ?_Xout_of_range@std@@YAXPBD@Zmsvcp_win.dllapi-ms-win-crt-runtime-l1-1-0.dll__CxxFrameHandler3&__std_terminate_o___std_exception_copy_o___std_exception_destroy_o___std_type_info_destroy_list_o___stdio_common_vsprintf_s_o___stdio_common_vswprintf_o__cexit_o__configure_narrow_argv_o__create_locale_o__crt_atexit_o__errno_o__execute_onexit_tablec_o__initialize_narrow_environmentd_o__initialize_onexit_tablef_o__invalid_parameter_noinfog_o__invalid_parameter_noinfo_noreturn_o__itoa_s_o__libm_sse2_cos_precise_o__libm_sse2_pow_precise_o__libm_sse2_sin_precise_o__libm_sse2_sqrt_precise_o__ltoa_ss_o__purecall_o__register_onexit_function_o__seh_filter_dll_o__wcsicmp_o__wcsicmp_lp_o_abort_o_ceil_o_iswspaceR_o_terminate__current_exception__current_exception_context2_except_handler4_commonmemsetapi-ms-win-crt-private-l1-1-0.dllapi-ms-win-crt-string-l1-1-0.dllGetModuleFileNameA CreateSemaphoreExWHeapFree SetLastErrorEnterCriticalSection&ReleaseSemaphoreGetModuleHandleExWLeaveCriticalSectionInitializeCriticalSectionEx"WaitForThreadpoolTimerCallbacks6WaitForSingleObjectGetCurrentThreadId#ReleaseMutex FormatMessageWGetLastError$ReleaseSRWLockExclusiveOutputDebugStringWCloseThreadpoolTimerAcquireSRWLockExclusive7WaitForSingleObjectEx!OpenSemaphoreWCloseHandleSetThreadpoolTimer%ReleaseSRWLockShared CreateThreadpoolTimerHeapAllocGetProcAddress CreateMutexExWAcquireSRWLockSharedDeleteCriticalSection GetCurrentProcessIdGetProcessHeapGetModuleHandleWWideCharToMultiByteDebugBreakIsDebuggerPresent RoOriginateErrorWInitializeCriticalSectionLoadLibraryW FreeLibraryWindowsDeleteString WindowsDuplicateString WindowsGetStringRawBuffer RoOriginateErrorWindowsSubstringWithSpecifiedLengthCCoTaskMemFreeLoadResourceLockResource!SizeofResourceWindowsCreateStringRaiseExceptionWindowsCreateStringReferenceRoGetActivationFactoryBCoTaskMemAllocQueryPerformanceCounterRtlCaptureStackBackTraceTerminateProcessOnMemoryExhaustionRaiseFailFastException%RegQueryValueExWRegOpenKeyExWRegCloseKeyUTerminateProcess GetCurrentProcessInitializeCriticalSectionAndSpinCount)SetEvent'ResetEventCreateEventW2IsProcessorFeaturePresentUnhandledExceptionFilterSetUnhandledExceptionFilterapi-ms-win-core-libraryloader-l1-2-0.dllapi-ms-win-core-synch-l1-1-0.dllapi-ms-win-core-heap-l1-1-0.dllapi-ms-win-core-errorhandling-l1-1-0.dllapi-ms-win-core-threadpool-l1-2-0.dllapi-ms-win-core-processthreads-l1-1-0.dllapi-ms-win-core-localization-l1-2-0.dllapi-ms-win-core-debug-l1-1-0.dllapi-ms-win-core-handle-l1-1-0.dllapi-ms-win-core-string-l1-1-0.dllapi-ms-win-core-winrt-error-l1-1-0.dllapi-ms-win-core-libraryloader-l1-2-1.dllapi-ms-win-core-winrt-string-l1-1-0.dllapi-ms-win-core-com-l1-1-0.dllapi-ms-win-core-winrt-l1-1-0.dllapi-ms-win-core-profile-l1-1-0.dllapi-ms-win-core-rtlsupport-l1-1-0.dllapi-ms-win-core-errorhandling-l1-1-3.dllapi-ms-win-core-errorhandling-l1-1-2.dllapi-ms-win-core-registry-l1-1-0.dllapi-ms-win-core-processthreads-l1-1-1.dllFindResourceAapi-ms-win-core-kernel32-legacy-l1-1-0.dllNtQuerySystemInformationntdll.dll8_initterm9_initterm_eGetSystemTimeAsFileTimeInitializeSListHeadapi-ms-win-core-sysinfo-l1-1-0.dllapi-ms-win-core-interlocked-l1-1-0.dll RoOriginateLanguageException InterlockedPushEntrySListMultiByteToWideCharCoCreateFreeThreadedMarshalerLoadLibraryExWOLEAUT32.dllapi-ms-win-core-winrt-error-l1-1-1.dll_CxxThrowExceptionmemcmpmemcpymemmove  *N p8Ph6       0 @ P ` p   PTX7ؐХHo`I@K COMMON.HLSL D2DBLEND.HLSLD2DBORDER.HLSLD2DCOLORMATRIX.HLSLD2DCOMPOSITE.HLSLD2DCONTRAST.HLSLD2DDISPLACEMENTMAP.HLSLD2DLIGHTING.HLSLD2DLUMINANCETOALPHA.HLSLD2DSATURATION.HLSL D2DSEPIA.HLSL NOISE.HLSL// Copyright (C) Microsoft. All rights reserved. // HLSL implementation of D2D blend functions. // See: http://msdn.microsoft.com/en-us/library/windows/desktop/hh706313.aspx #if !defined(COMMON_HLSL) #define COMMON_HLSL // Macro for minimum-precision types (min10float, min16float) #if defined(MINP_PREFIX) # define minp(type) MINP_PREFIX##type #else # define minp(type) type #endif #define minfloat minp(float) #define minfloat2 minp(float2) #define minfloat3 minp(float3) #define minfloat4 minp(float4) #define minfloat2x2 minp(float2x2) #define minfloat3x2 minp(float3x2) #define minfloat3x3 minp(float3x3) #define minfloat4x4 minp(float4x4) // Alpha premultiplication and un-premultiplication minfloat4 Premultiply(minfloat4 color) { color.rgb *= color.a; return color; } minfloat4 UnPremultiply(minfloat4 color) { // We follow D2D's way of handling alpha = 0 color.rgb = (color.a == 0) ? float3(0, 0, 0) : (color.rgb / color.a); return color; } // Must match dwmcore-side CommonFragments_PSLib version float2 GetInvTextureSizeFromSamplerDataExt(float4 samplerDataExt) { return samplerDataExt.zw; } #endif// Copyright (C) Microsoft. All rights reserved. // HLSL implementation of D2D blend functions. // See: http://msdn.microsoft.com/en-us/library/windows/desktop/hh706313.aspx #include "Common.hlsl" // // Helper constants: // static const minfloat3 g_luminosityWeights = minfloat3(0.30, 0.59, 0.11); // Helpers inline minfloat D2DBlendGetLuminosity(minfloat3 color) { return dot(g_luminosityWeights, color); } inline minfloat D2DBlendSafeDivision(minfloat f, minfloat b) { if (f == 0) { return b == 0 ? 0 : 1; } else { return b / f; } } inline minfloat D2DBlendAlpha(minfloat f, minfloat b) { // O_A = F_A * (1 - B_A) + B_A return f + b - f * b; } // Blend premultiplied f and b together with the color from the color function inline minfloat3 D2DBlendBasicRgb(minfloat4 f, minfloat4 b, minfloat3 func) { // O_PRGB = f(F_RGB, B_RGB) * F_A * B_A + F_RGB * (1 - B_A) + B_RGB * (1 - F_A) return saturate(func * f.a * b.a + f.rgb * (1 - b.a) + b.rgb * (1 - f.a)); } // Restricts the gamut of colorRgb with the given luminance to a 0-1 range. inline minfloat3 RestrictGamut(minfloat3 colorRgb, minfloat luminance) { const float Epsilon = 1e-10; // out-of-gamut processing minfloat3 colorNeutralRGB = luminance.xxx; minfloat3 negativeFactor = -colorRgb / (colorNeutralRGB - colorRgb); minfloat3 positiveFactor = (1.0 - colorRgb) / (colorNeutralRGB - colorRgb); // Extract the highest values for rgb's that are < 0 or > 1 minfloat3 t3 = max( (1.0 - step(0, colorRgb)) * negativeFactor, step(1.0 + Epsilon, colorRgb) * positiveFactor); minfloat t = max(max(t3.x, t3.y), t3.z); return lerp(colorRgb, colorNeutralRGB, max(0, t)); } // Converts an RGB color to an HSL color. The output vector has .xyz = HSL inline minfloat3 RgbToHsl(minfloat3 colorRgb) { minfloat3 colorHsl; minfloat flMax = max(colorRgb.r, max(colorRgb.g, colorRgb.b)); minfloat flMin = min(colorRgb.r, min(colorRgb.g, colorRgb.b)); // L colorHsl.z = dot(colorRgb, g_luminosityWeights); // S colorHsl.y = flMax - flMin; // H colorHsl.x = (colorHsl.y == 0.0) ? 0.0 : (flMax == colorRgb.r) ? ((colorRgb.g - colorRgb.b) / colorHsl.y) : (flMax == colorRgb.g) ? (2.0 + (colorRgb.b - colorRgb.r) / colorHsl.y) : (4.0 + (colorRgb.r - colorRgb.g) / colorHsl.y); return colorHsl; } // This function applies the provided luminosity value to the dest, replacing dest's luminosity. // We pass in destSat as an optimization, so we don't need to recalculate it: inline minfloat3 D2DBlendApplySourceLumToDest(minfloat3 dest, minfloat destSat, minfloat sourceLum) { minfloat destLum = D2DBlendGetLuminosity(dest); minfloat lumDifference = sourceLum - destLum; minfloat3 color = dest + lumDifference.xxx; minfloat factor1 = destSat - destLum; minfloat factor2 = 1 - sourceLum; return lerp(sourceLum + (((color - sourceLum.xxx) * sourceLum) / destLum), lerp(sourceLum + (((color - sourceLum.xxx) * factor2) / factor1), color, step(factor1, factor2)), step(0, lumDifference)); } // This function generates a new RGB output, taking its hue, saturation, and luminosity from the three RGB inputs. inline minfloat3 D2DBlendApplyHueSatLum(minfloat3 hueSource, minfloat3 satSource, minfloat3 lumSource, minfloat3 lumFallback) { // // We need to calculate the min and max of the hueSource and satSource. To save instructions, pack // these two values into vectors, allowing for the comparisons for both to be done in parallel. // minfloat2 red = minfloat2(hueSource.r, satSource.r); minfloat2 green = minfloat2(hueSource.g, satSource.g); minfloat2 blue = minfloat2(hueSource.b, satSource.b); minfloat2 minSD = min(red, min(green, blue)); minfloat2 maxSD = max(red, max(green, blue)); minfloat destSat = maxSD.y - minSD.y; minfloat sourceMax = maxSD.x; minfloat sourceMin = minSD.x; // We need to figure out which componenet contributed to the max value. We do this by // calculating floor(1 - (max - source)), which will result in a unit vector with a value // of one for the source's max component. const minfloat3 vectorOneMin = minfloat3(1, 1, 1); minfloat3 sourceMaxVector = floor(vectorOneMin - (sourceMax.xxx - hueSource)); // Similar calculation for min: minfloat3 sourceMinVector = floor(vectorOneMin - (hueSource - sourceMin.xxx)); // If we had a tie for max or min, we want to disambiguate. It doesn't matter which value we // pick as the tie breaker, so we use saturate(sourceMaxVector.rgb - sourceMaxVector.gbr), // which guarauntees only one component has a 1: sourceMaxVector = saturate(sourceMaxVector - sourceMaxVector.gbr); sourceMinVector = saturate(sourceMinVector - sourceMinVector.gbr); // We can calculate the mid-value vector and value once the min and max vector are known: minfloat3 sourceMidVector = vectorOneMin - sourceMaxVector - sourceMinVector; minfloat sourceMid = dot(sourceMidVector, hueSource); // color is our output value: minfloat3 color = minfloat3(0, 0, 0); // This is just trying to do (sourceMax - sourceMin) > 0 && destSat > 0, but that takes too many // instructions, so we do the following instead: if ((sourceMax - sourceMin) * destSat > 0) { color += sourceMidVector * ((sourceMid - sourceMin) / (sourceMax - sourceMin)); color += sourceMaxVector; color *= destSat; color = D2DBlendApplySourceLumToDest(color, destSat, D2DBlendGetLuminosity(lumSource)); } else { color = D2DBlendGetLuminosity(lumFallback).xxx; } return color; } //----------------------------------------------- // Blend functions, in order of reference webpage inline minfloat3 D2DBlendDarkenRgb(minfloat4 f, minfloat4 b) { // Does not need alpha unpremultiplication return min((1 - f.a) * b.rgb + f.rgb, (1 - b.a) * f.rgb + b.rgb); } inline minfloat3 D2DBlendMultiplyRgb(minfloat4 f, minfloat4 b) { return D2DBlendBasicRgb(f, b, UnPremultiply(f).rgb * UnPremultiply(b).rgb); } inline minfloat3 D2DBlendColorBurnRgb(minfloat4 f, minfloat4 b) { // This accomplishes the following without branching (14 instructions vs. 20): // // if (source == 1) return 1; // if (source + dest <= 1) return 0; // else return 1 - ((1 - dest) / source) minfloat3 uf = UnPremultiply(f).rgb; minfloat3 ub = UnPremultiply(b).rgb; minfloat3 color = uf + ub - 1; // note: it is ok if some colorU channels are zero because those failed quotients will not be chosen below minfloat3 color2 = color / uf; [unroll] for (int i = 0; i < 3; i++) { color[i] = (b[i] >= 1.0) ? 1.0 : (color[i] > 0.0) ? color2[i] : 0.0; } return D2DBlendBasicRgb(f, b, saturate(color)); } inline minfloat3 D2DBlendLinearBurnRgb(minfloat4 f, minfloat4 b) { return D2DBlendBasicRgb(f, b, saturate(UnPremultiply(f).rgb + UnPremultiply(b).rgb - 1)); } inline minfloat3 D2DBlendDarkerColorRgb(minfloat4 f, minfloat4 b) { minfloat3 uf = UnPremultiply(f).rgb; minfloat3 ub = UnPremultiply(b).rgb; minfloat3 color = D2DBlendGetLuminosity(uf) < D2DBlendGetLuminosity(ub) ? uf : ub; return D2DBlendBasicRgb(f, b, color); } inline minfloat3 D2DBlendLightenRgb(minfloat4 f, minfloat4 b) { // Does not need alpha unpremultiplication minfloat3 color = max((1 - f.a) * b.rgb + f.rgb, (1 - b.a) * f.rgb + b.rgb); return D2DBlendBasicRgb(f, b, color); } inline minfloat3 D2DBlendScreenRgb(minfloat4 f, minfloat4 b) { // Does not need alpha unpremultiplication return f.rgb * (1 - b.rgb) + b.rgb; } inline minfloat D2DBlendColorDodgeComponent(minfloat f, minfloat b) { return (f < 1.0) ? (b / (1.0 - f)) : ceil(b); } inline minfloat3 D2DBlendColorDodgeRgb(minfloat4 f, minfloat4 b) { minfloat3 uf = UnPremultiply(f).rgb; minfloat3 ub = UnPremultiply(b).rgb; minfloat3 color = minfloat3( D2DBlendColorDodgeComponent(uf.r, ub.r), D2DBlendColorDodgeComponent(uf.g, ub.g), D2DBlendColorDodgeComponent(uf.b, ub.b)); return D2DBlendBasicRgb(f, b, saturate(color)); } inline minfloat3 D2DBlendLinearDodgeRgb(minfloat4 f, minfloat4 b) { return D2DBlendBasicRgb(f, b, saturate(UnPremultiply(f).rgb + UnPremultiply(b).rgb)); } inline minfloat3 D2DBlendLighterColorRgb(minfloat4 f, minfloat4 b) { minfloat3 uf = UnPremultiply(f).rgb; minfloat3 ub = UnPremultiply(b).rgb; minfloat3 color = D2DBlendGetLuminosity(uf) > D2DBlendGetLuminosity(ub) ? uf : ub; return D2DBlendBasicRgb(f, b, color); } inline minfloat3 D2DBlendOverlayRgb(minfloat4 f, minfloat4 b) { // This accomplishes the following without branching: // // if (dest < 0.5) return 2 * source * dest; // else return 1 - 2 * (1 - source) * (1 - dest); minfloat3 uf = UnPremultiply(f).rgb; minfloat3 ub = UnPremultiply(b).rgb; minfloat3 color = lerp(2 * uf * ub, 2 * lerp(uf, 1, ub) - 1, round(ub)); return D2DBlendBasicRgb(f, b, color); } inline minfloat3 D2DBlendSoftLightRgb(minfloat4 f, minfloat4 b) { // This accomplishes the following without branching: // // if (source < 0.5) return dest * (1 + (1 - dest) * (2 * source - 1)) // if (dest <= 9/64) return ((9 * g_vectorOneMin16 - 18 * source) * dest + 5.76 * source - 1.88 * g_vectorOneMin16) * dest; // else return dest + (sqrt(dest) - dest) * (2 * source - g_vectorOneMin16); // // lerp is used to simulate if/else conditions. minfloat3 uf = UnPremultiply(f).rgb; minfloat3 ub = UnPremultiply(b).rgb; minfloat3 color = lerp(ub * (1 + (1 - ub) * (2 * uf - 1)), lerp(((9 - 18 * uf) * ub + 5.76 * uf - 1.88) * ub, ub + (sqrt(ub) - ub) * (2 * uf - 1), round(ub + (0.359375 - 0.001))), round(uf)); return D2DBlendBasicRgb(f, b, color); } inline minfloat3 D2DBlendHardLightRgb(minfloat4 f, minfloat4 b) { minfloat3 uf = UnPremultiply(f).rgb; minfloat3 ub = UnPremultiply(b).rgb; minfloat3 color = lerp(2 * ub * uf, 2 * lerp(ub, 1, uf) - 1, round(uf)); return D2DBlendBasicRgb(f, b, color); } inline minfloat D2DBlendVividLightComponent(minfloat f, minfloat b) { minfloat c = f + 0.5 * (b - 1); return (f < 0.5) ? ((f > 0) ? (c / f) : 0) : ((f < 1) ? (0.5 * b / (1 - f)) : 1); } inline minfloat3 D2DBlendVividLightRgb(minfloat4 f, minfloat4 b) { minfloat3 uf = UnPremultiply(f).rgb; minfloat3 ub = UnPremultiply(b).rgb; minfloat3 color = minfloat3( D2DBlendVividLightComponent(uf.r, ub.r), D2DBlendVividLightComponent(uf.g, ub.g), D2DBlendVividLightComponent(uf.b, ub.b)); return D2DBlendBasicRgb(f, b, saturate(color)); } inline minfloat3 D2DBlendLinearLightRgb(minfloat4 f, minfloat4 b) { minfloat3 color = saturate(UnPremultiply(b).rgb + 2 * UnPremultiply(f).rgb - 1); return D2DBlendBasicRgb(f, b, color); } inline minfloat3 D2DBlendPinLightRgb(minfloat4 f, minfloat4 b) { minfloat3 uf = UnPremultiply(f).rgb; minfloat3 ub = UnPremultiply(b).rgb; minfloat3 color = lerp(min(ub, 2 * uf), max(ub, 2 * uf - 1), round(uf)); return D2DBlendBasicRgb(f, b, color); } inline minfloat D2DBlendHardMixComponent(minfloat f, minfloat b) { float sum = f + b; return sum < 0.999 ? 0 : sum > 1.001 ? 1 : b >= f ? 1 : 0; } inline minfloat3 D2DBlendHardMixRgb(minfloat4 f, minfloat4 b) { minfloat3 uf = UnPremultiply(f).rgb; minfloat3 ub = UnPremultiply(b).rgb; minfloat3 color = minfloat3( D2DBlendHardMixComponent(uf.r, ub.r), D2DBlendHardMixComponent(uf.g, ub.g), D2DBlendHardMixComponent(uf.b, ub.b)); return D2DBlendBasicRgb(f, b, color); } inline minfloat3 D2DBlendDifferenceRgb(minfloat4 f, minfloat4 b) { return D2DBlendBasicRgb(f, b, abs(UnPremultiply(f).rgb - UnPremultiply(b).rgb)); } inline minfloat3 D2DBlendExclusionRgb(minfloat4 f, minfloat4 b) { // Does not need alpha unpremultiplication return f.rgb + b.rgb - 2 * f.rgb * b.rgb; } inline minfloat3 D2DBlendHueRgb(minfloat4 f, minfloat4 b) { minfloat3 ub = UnPremultiply(b).rgb; minfloat3 color = D2DBlendApplyHueSatLum(f.rgb, ub.rgb, ub.rgb, ub.rgb); return D2DBlendBasicRgb(f, b, color); } inline minfloat3 D2DBlendSaturationRgb(minfloat4 f, minfloat4 b) { minfloat3 uf = UnPremultiply(f).rgb; minfloat3 ub = UnPremultiply(b).rgb; minfloat3 color = D2DBlendApplyHueSatLum(ub.rgb, uf.rgb, ub.rgb, ub.rgb); return D2DBlendBasicRgb(f, b, color); } inline minfloat3 D2DBlendLuminosityRgb(minfloat4 f, minfloat4 b) { minfloat3 color; minfloat3 source = UnPremultiply(f).rgb; minfloat3 dest = UnPremultiply(b).rgb; minfloat destLum = D2DBlendGetLuminosity(dest); minfloat sourceLum = D2DBlendGetLuminosity(source); minfloat lumDifference = sourceLum - destLum; color = dest + lumDifference.xxx; color = RestrictGamut(color, sourceLum); return D2DBlendBasicRgb(f, b, color); } inline minfloat3 D2DBlendColorRgb(minfloat4 f, minfloat4 b) { return D2DBlendLuminosityRgb(b, f); } // TODO: Dissolve inline minfloat3 D2DBlendSubtractRgb(minfloat4 f, minfloat4 b) { return D2DBlendBasicRgb(f, b, saturate(UnPremultiply(b).rgb - UnPremultiply(f).rgb)); } inline minfloat3 D2DBlendDivisionRgb(minfloat4 f, minfloat4 b) { minfloat3 uf = UnPremultiply(f).rgb; minfloat3 ub = UnPremultiply(b).rgb; minfloat3 color = minfloat3( D2DBlendSafeDivision(uf.r, ub.r), D2DBlendSafeDivision(uf.g, ub.g), D2DBlendSafeDivision(uf.b, ub.b)); return D2DBlendBasicRgb(f, b, color); }// Copyright (C) Microsoft. All rights reserved. #undef OPTIONAL_EXPORT #ifdef SUPPRESS_EXPORTS #define OPTIONAL_EXPORT #else #define OPTIONAL_EXPORT export #endif float4 GetUVBoundsFromSamplerData(float4 samplerData) { return samplerData; } float2 GetTextureSizeFromSamplerDataExt(float4 samplerDataExt) { return samplerDataExt.xy; } float2 GetInvTextureSizeFromSamplerDataExt(float4 samplerDataExt) { return samplerDataExt.zw; } float4 WrapUV4(float4 uv, float4 samplerData) { float4 uvBounds = GetUVBoundsFromSamplerData(samplerData); float2 size = uvBounds.zw - uvBounds.xy; float2 min = uvBounds.xy; // If the signedMod is negative, we must fix it up to wrap it into // positive space. float4 signedMod = fmod(uv - min.xyxy, size.xyxy); float4 wrapped = lerp(signedMod + size.xyxy, signedMod, step(0, signedMod)); return wrapped + min.xyxy; } float2 WrapUV2(float2 uv, float4 samplerData) { return WrapUV4(uv.xyxy, samplerData).xy; } OPTIONAL_EXPORT float2 BorderEffectClamp(float2 uv, float4 samplerData) { float4 uvBounds = GetUVBoundsFromSamplerData(samplerData); return clamp(uv, uvBounds.xy, uvBounds.zw); } OPTIONAL_EXPORT float2 BorderEffectWrap(float2 uv, float4 samplerData) { return WrapUV2(uv, samplerData); } OPTIONAL_EXPORT float2 BorderEffectWrapBilinear(float2 uv, float4 samplerData) { // delay the wrapping until the sampling stage return uv; } OPTIONAL_EXPORT float2 BorderEffectMirror(float2 uv, float4 samplerData) { float4 uvBounds = GetUVBoundsFromSamplerData(samplerData); float2 size = uvBounds.zw - uvBounds.xy; // We can just take the abs of the signedMod, as this mirrors around 0. float2 signedMod = fmod(uv - uvBounds.xy, size * 2); float2 wrapped = abs(signedMod); return uvBounds.zw - abs(wrapped - size); } // If clamping is not the same in both directions OPTIONAL_EXPORT float2 BorderEffectCombine(float2 uvHorizontal, float2 uvVertical) { return float2(uvHorizontal.x, uvVertical.y); } // Internal wrappers (no export) float2 ApplyBorderCC(float2 uv, float4 samplerData) { return BorderEffectClamp(uv, samplerData); } float2 ApplyBorderCM(float2 uv, float4 samplerData) { return BorderEffectCombine(BorderEffectClamp(uv, samplerData), BorderEffectMirror(uv, samplerData)); } float2 ApplyBorderMC(float2 uv, float4 samplerData) { return BorderEffectCombine(BorderEffectMirror(uv, samplerData), BorderEffectClamp(uv, samplerData)); } float2 ApplyBorderMM(float2 uv, float4 samplerData) { return BorderEffectMirror(uv, samplerData); } // returns 2 u coordinates, in x and z // and 2 v coordinates, in z and w. // These coordinates can be used to sample the texture. The texture samples // should then be weighted by the output weights. float4 CalcWrappedUV( float2 uv, float4 samplerData, float4 samplerDataExt, out float2 weights ) { float2 textureSize = GetTextureSizeFromSamplerDataExt(samplerDataExt); float2 invTextureSize = GetInvTextureSizeFromSamplerDataExt(samplerDataExt); float2 uvTexture = uv * textureSize; float2 uvClosePixel = floor(uvTexture) + 0.5; float2 signedWeights = uvTexture - uvClosePixel; float2 uvFarPixel = uvClosePixel + sign(signedWeights); // The weights will be always be between 0 and 0.5. If they are 0, we should // use the close pixel, so we put the close pixel in xy. weights = abs(signedWeights); float4 uvs = float4(uvClosePixel, uvFarPixel) * invTextureSize.xyxy; return WrapUV4(uvs, samplerData); } float4 SampleWrappedTexture( Texture2D tex, SamplerState textureSampler, float2 uvs, float4 samplerData, float4 samplerDataExt ) { float2 weights; float4 uvsWrapped = CalcWrappedUV(uvs, samplerData, samplerDataExt, /*out*/ weights); float4 color0 = tex.Sample(textureSampler, uvsWrapped.xy); float4 color1 = tex.Sample(textureSampler, uvsWrapped.zy); float4 color2 = tex.Sample(textureSampler, uvsWrapped.xw); float4 color3 = tex.Sample(textureSampler, uvsWrapped.zw); return lerp( lerp(color0, color1, weights.x), lerp(color2, color3, weights.x), weights.y ); } float4 SampleWrappedTextureUOnly( Texture2D tex, SamplerState textureSampler, float2 uvs, float4 samplerData, float4 samplerDataExt ) { float2 weights; float4 uvsWrapped = CalcWrappedUV(uvs, samplerData, samplerDataExt, /*out*/ weights); float4 color0 = tex.Sample(textureSampler, float2(uvsWrapped.x, uvs.y)); float4 color1 = tex.Sample(textureSampler, float2(uvsWrapped.z, uvs.y)); return lerp(color0, color1, weights.x); } float4 SampleWrappedTextureVOnly( Texture2D tex, SamplerState textureSampler, float2 uvs, float4 samplerData, float4 samplerDataExt ) { float2 weights; float4 uvsWrapped = CalcWrappedUV(uvs, samplerData, samplerDataExt, /*out*/ weights); float4 color0 = tex.Sample(textureSampler, float2(uvs.x, uvsWrapped.y)); float4 color1 = tex.Sample(textureSampler, float2(uvs.x, uvsWrapped.w)); return lerp(color0, color1, weights.y); } // Copyright (C) Microsoft. All rights reserved. #include "Common.hlsl" minfloat4 D2DColorMatrixStraight(minfloat4 color, minfloat4x4 colorMatrix4x4, minfloat4 colorOffset) { return mul(color, colorMatrix4x4) + colorOffset; } minfloat4 D2DColorMatrixPremultiplied(minfloat4 color, minfloat4x4 colorMatrix4x4, minfloat4 colorOffset) { return Premultiply(D2DColorMatrixStraight(UnPremultiply(color), colorMatrix4x4, colorOffset)); } // Copyright (C) Microsoft. All rights reserved. // HLSL implementation of D2D composite effect modes. // See: http://msdn.microsoft.com/en-us/library/windows/desktop/hh706320.aspx #include "Common.hlsl" inline minfloat4 D2DCompositeSourceOver(minfloat4 src, minfloat4 dest) { return src + (1 - src.a) * dest; } inline minfloat4 D2DCompositeDestinationOver(minfloat4 src, minfloat4 dest) { return (1 - dest.a) * src + dest; } inline minfloat4 D2DCompositeSourceIn(minfloat4 src, minfloat4 dest) { return dest.a * src; } inline minfloat4 D2DCompositeDestinationIn(minfloat4 src, minfloat4 dest) { return src.a * dest; } inline minfloat4 D2DCompositeSourceOut(minfloat4 src, minfloat4 dest) { return (1 - dest.a) * src; } inline minfloat4 D2DCompositeDestinationOut(minfloat4 src, minfloat4 dest) { return (1 - src.a) * dest; } inline minfloat4 D2DCompositeSourceAtop(minfloat4 src, minfloat4 dest) { return dest.a * src + (1 - src.a) * dest; } inline minfloat4 D2DCompositeDestinationAtop(minfloat4 src, minfloat4 dest) { return (1 - dest.a) * src + src.a * dest; } inline minfloat4 D2DCompositeXor(minfloat4 src, minfloat4 dest) { return (1 - dest.a) * src + (1 - src.a) * dest; } inline minfloat4 D2DCompositePlus(minfloat4 src, minfloat4 dest) { return src + dest; } inline minfloat4 D2DCompositeSourceCopy(minfloat4 src, minfloat4 dest) { return src; } // D2DCompositeBoundedSourceCopy not supported because we // don't have a notion of input bounds. inline minfloat4 D2DCompositeMaskInvert(minfloat4 src, minfloat4 dest) { return (1 - dest.a) * src + (1 - src.a) * dest; }// Copyright (C) Microsoft. All rights reserved. #include "Common.hlsl" minfloat4 D2DContrast(minfloat4 color, minfloat contrast) { color = UnPremultiply(color); // (Math from D2D) // This builds two contiguous polynomials forming an 'S' shape // in the box from (0, 0) to (1, 1), and passing by (0.5, 0.5) // TODO: Do this up-front on the CPU (MSFT:3579391) float s = 1 - (3.0f / 4.0f) * contrast; float c2 = s - 1; float b2 = 4 - 3 * s; float a2 = 2 * c2; float b1 = s; float a1 = -a2; minfloat3 lowResult = color.rgb * (color.rgb * a1 + b1); minfloat3 highResult = color.rgb * (color.rgb * a2 + b2) + c2; // Use a single componentwise comparison to select per-channel results. color.rgb = (color.rgb < 0.5f) ? lowResult : highResult; return Premultiply(color); }// Copyright (C) Microsoft. All rights reserved. #include "Common.hlsl" float2 DisplacementMap(float2 uvToDisplace, minfloat4 displacement, float4 samplerDataExt, minfloat scale, uint selectX, uint selectY) { float2 dispSelected = saturate(float2(displacement[selectX], displacement[selectY])); return uvToDisplace + (dispSelected - 0.5) * scale * GetInvTextureSizeFromSamplerDataExt(samplerDataExt); } // Copyright (C) Microsoft. All rights reserved. #if !defined(D2DLIGHTING_HLSL) #define D2DLIGHTING_HLSL #include "Common.hlsl" // The default normal is <0,0,1>. static const float3 c_defaultSurfaceNormal = float3(0.0f, 0.0f, 1.0f); // This is the default normal encoded in premultiplied RGBA8888 for use in SceneLighting. static const minfloat4 c_defaultNormalHeight = minfloat4(0.5f, 0.5f, 1.0f, 1.0f); inline float3 GetSurfaceNormal(float4 normalHeight) { normalHeight = UnPremultiply(normalHeight); float3 normal = normalize(normalHeight.xyz * 2 - 1); // Flip the Y axis, because the standard normal map tools assuming the Y // in texture coordinate is pointing up, but our Y are pointing down. normal.y = -normal.y; return normal; } // Not being used until we add functionality for image lighting with normals. inline float GetSurfaceHeight(float4 normalHeight, float heightMapScale) { return normalHeight.w * heightMapScale; } inline void PreparePointVectors(float3 pixelXY, float3 lightPosition, out float3 pixelPosition, out float3 lightVector) { pixelPosition = float3(pixelXY.xy, 0.0f); lightVector = normalize(lightPosition - pixelPosition); } inline void PrepareSpotVectors(float3 pixelXY, float3 lightPosition, float3 lightTargetVector, float focus, float2 cosConeAngle, float3 lightColor, out float3 pixelPosition, out float3 lightVector, out float3 spotLightColor) { pixelPosition = float3(pixelXY.xy, 0.0f); lightVector = normalize(lightPosition - pixelPosition); spotLightColor = lightColor; float cosDirection = saturate(dot(-lightVector, lightTargetVector)); // Compute attenuated light color from the position and exponent spotLightColor *= pow(cosDirection, focus); // Then cut off the light based on the spotlight cone: // - if the lightVector is in the inner cone, we'll get full power (1) // - if the lightVector is in the outer cone, power will fade to 0 // - outside of the outer cone, power will be 0 spotLightColor *= smoothstep(cosConeAngle.y, cosConeAngle.x, cosDirection); } inline float CalculateLitPixelDiffuse(minfloat3 surfaceNormal, minfloat3 lightVector) { return max(dot(surfaceNormal, lightVector), 0); } inline float3 CalculateBlinnPhongLitPixelSpecularUnpremultiplied(minfloat3 surfaceNormal, minfloat3 lightVector, minfloat exponent, minfloat3 eyeVector) { float3 output; if (dot(surfaceNormal, lightVector) > 0) { float3 halfVector = lightVector + eyeVector; halfVector = normalize(halfVector); float nDotH = max(dot(surfaceNormal, halfVector), 0); output = pow(nDotH, exponent); } else { output = 0; } return output; } inline float4 CalculateLitPixelSpecular(minfloat3 surfaceNormal, minfloat3 lightVector, minfloat exponent, minfloat amount, minfloat3 lightColor, minfloat3 eyeVector) { float4 output; output.rgb = CalculateBlinnPhongLitPixelSpecularUnpremultiplied(surfaceNormal, lightVector, exponent, eyeVector) * amount * lightColor; // This computes a specular component, meant to be blended atop a diffuse layer, // so the alpha channel is not opaque output.a = max(output.r, max(output.g, output.b)); // Premultiply the RGB channels output.rgb *= output.a; return output; } inline minfloat4 D2DDistantDiffuse(float3 surfaceNormal, minfloat3 lightVector, minfloat diffuseAmount, minfloat3 lightColor) { return float4(CalculateLitPixelDiffuse(surfaceNormal, lightVector) * diffuseAmount * lightColor, 1); } inline minfloat4 D2DDistantSpecular(float3 surfaceNormal, minfloat3 lightVector, minfloat specularShine, minfloat specularAmount, minfloat3 lightColor) { // use 0,0,1 for the eye vector since this function is used for Image Lighting return CalculateLitPixelSpecular(surfaceNormal, lightVector, specularShine, specularAmount, lightColor, minfloat3(0,0,1)); } inline minfloat4 D2DPointDiffuse(float3 surfaceNormal, minfloat3 pixelXY, minfloat3 lightPosition, minfloat diffuseAmount, minfloat3 lightColor) { float3 pixelPosition; float3 lightVector; PreparePointVectors(pixelXY, lightPosition, pixelPosition, lightVector); return float4(CalculateLitPixelDiffuse(surfaceNormal, lightVector) * diffuseAmount * lightColor, 1); } inline minfloat4 D2DPointSpecular(float3 surfaceNormal, minfloat3 pixelXY, minfloat3 lightPosition, minfloat specularShine, minfloat specularAmount, minfloat3 lightColor) { float3 pixelPosition; float3 lightVector; PreparePointVectors(pixelXY, lightPosition, pixelPosition, lightVector); // use 0,0,1 for the eye vector since this function is used for Image Lighting return CalculateLitPixelSpecular(surfaceNormal, lightVector, specularShine, specularAmount, lightColor, minfloat3(0,0,1)); } inline minfloat4 D2DSpotDiffuse(float3 surfaceNormal, minfloat3 pixelXY, minfloat3 lightPosition, minfloat3 lightTargetVector, minfloat focus, minfloat2 cosConeAngle, minfloat diffuseAmount, minfloat3 lightColor) { float3 pixelPosition; float3 lightVector; float3 spotLightColor; PrepareSpotVectors(pixelXY, lightPosition, lightTargetVector, focus, cosConeAngle, lightColor, pixelPosition, lightVector, spotLightColor); return float4(CalculateLitPixelDiffuse(surfaceNormal, lightVector) * diffuseAmount * spotLightColor, 1); } inline minfloat4 D2DSpotSpecular(float3 surfaceNormal, minfloat3 pixelXY, minfloat3 lightPosition, minfloat3 lightTargetVector, minfloat focus, minfloat2 cosConeAngle, minfloat specularShine, minfloat specularAmount, minfloat3 lightColor) { float3 pixelPosition; float3 lightVector; float3 spotLightColor; PrepareSpotVectors(pixelXY, lightPosition, lightTargetVector, focus, cosConeAngle, lightColor, pixelPosition, lightVector, spotLightColor); // use 0,0,1 for the eye vector since this function is used for Image Lighting return CalculateLitPixelSpecular(surfaceNormal, lightVector, specularShine, specularAmount, spotLightColor, minfloat3(0,0,1)); } inline float EncodeReflectanceModelAndTransparentNormal(int reflectanceModel, minfloat4 normalHeight) { // Bit 0: a bool to store if this pixel is a fully transparent // Bit 1: Reflectance model. Blinn Phong (the default value) = 0, Physically Based Blinn Phong = 1 return reflectanceModel * 2 + (any(normalHeight) ? 1 : 0); } float4 SceneLightingParameters(minfloat4 normalHeight, minfloat ambientAmount, minfloat diffuseAmount, minfloat specularShine, minfloat specularAmount, int reflectanceModel, out float4 outputNormalTangentSpace) { outputNormalTangentSpace = float4(GetSurfaceNormal(normalHeight), EncodeReflectanceModelAndTransparentNormal(reflectanceModel, normalHeight)); return float4(ambientAmount, diffuseAmount, specularShine, specularAmount); } #endif // Copyright (C) Microsoft. All rights reserved. #include "Common.hlsl" minfloat4 D2DLuminanceToAlpha(minfloat4 color) { color = UnPremultiply(color); // RGB to luminance factors from D2D float luminance = dot(color.rgb, minfloat3(0.2125f, 0.7154f, 0.0721f)); return minfloat4(0, 0, 0, luminance); } // Copyright (C) Microsoft. All rights reserved. // HLSL implementation of the D2D saturation effect. #include "Common.hlsl" static const minfloat3 grayFactor = minfloat3(0.2126, 0.7152, 0.0722); inline minfloat4 D2DSaturation(minfloat4 color, minfloat amount) { // Math from https://www.w3.org/TR/filter-effects/#saturateEquivalent // and https://www.w3.org/TR/SVG/filters.html#feColorMatrixValuesAttribute // In D2D, if amount is // 0 -> Fully desaturated // 1 -> Original color // 2 -> Maximum possible value, not necessarily fully saturated minfloat gray = dot(color.rgb, grayFactor); return minfloat4(lerp(gray.rrr, color.rgb, amount), color.a); } inline minfloat4 D2DGrayscale(minfloat4 color) { // Math from https://www.w3.org/TR/filter-effects/#grayscaleEquivalent minfloat gray = dot(color.rgb, grayFactor); return minfloat4(gray, gray, gray, color.a); }// Copyright (C) Microsoft. All rights reserved. #include "Common.hlsl" // Straight-alpha version inline minfloat4 D2DSepiaStraight(minfloat4 color, minfloat intensity) { // Math from https://www.w3.org/TR/filter-effects/#sepiaEquivalent minfloat4 result; result.r = minfloat( (1 - 0.607 * intensity) * color.r + (0.769 * intensity) * color.g + (0.189 * intensity) * color.b); result.g = minfloat( (0.349 * intensity) * color.r + (1 - 0.314 * intensity) * color.g + (0.168 * intensity) * color.b); result.b = minfloat( (0.272 * intensity) * color.r + (0.534 * intensity) * color.g + (1 - 0.869 * intensity) * color.b); result.a = color.a; return result; } // Premultiplied-alpha version inline minfloat4 D2DSepiaPremultiplied(minfloat4 color, minfloat intensity) { return Premultiply(D2DSepiaStraight(UnPremultiply(color), intensity)); }// Copyright (C) Microsoft. All rights reserved. float Hash(float2 p) { // Magic numbers for hashing the coordinates // This line of code is from https://www.shadertoy.com/view/4dS3Wd. It uses a very high frequency sin // to produce a periodic change between pixels. And then take the fractal part as a random number. // The theroy is from a paper On generating random numbers, with help of y= [(a+x)sin(bx)] mod 1", // W.J.J. Rey, 22nd European Meeting of Statisticians and the 7th Vilnius Conference on // Probability Theory and Mathematical Statistics, August 1998. return frac(1e4f * sin(17.0f * p.x + p.y * 0.1f) * (0.1f + abs(sin(p.y * 13.0f + p.x)))); } float4 WhiteNoise(minfloat2 inputCoord, minfloat2 freq, minfloat2 offset) { // Use this magic number to adjust the frequency of the white noise. When moving slowly, the artifact // is reduced much. const float COORD_SCALING = 0.81f; float2 coord = inputCoord * COORD_SCALING * freq + offset; float2 pixel00Coord = floor(coord - 0.5f) + 0.5f; float2 pixel11Coord = pixel00Coord + 1; float2 pixel10Coord = float2(pixel11Coord.x, pixel00Coord.y); float2 pixel01Coord = float2(pixel00Coord.x, pixel11Coord.y); float2 factor = coord - pixel00Coord; float sample00 = Hash(pixel00Coord); float sample10 = Hash(pixel10Coord); float sample01 = Hash(pixel01Coord); float sample11 = Hash(pixel11Coord); float result = lerp(lerp(sample00, sample10, factor.x), lerp(sample01, sample11, factor.x), factor.y); return float4(result.xxx, 1); } 4VS_VERSION_INFO e e?StringFileInfo040904B0LCompanyNameMicrosoft CorporationdFileDescriptionMicrosoft Composition Effectsn'FileVersion10.0.26100.8328 (WinBuild.160101.0800)6 InternalNamewuceffects.LegalCopyright Microsoft Corporation. All rights reserved.> OriginalFilenamewuceffectsj%ProductNameMicrosoft Windows Operating SystemDProductVersion10.0.26100.8328DVarFileInfo$Translation 000 00000 0$0(0,0004080<0@0D0H0L0P0T0X0\0`0d0h0l0p0t0x0|000000000000000000000000000000000111 11111 1$1(1,1014181<1@1D1H1L1P1T1X1p1111111111111111222 22222 2$2(2,2024282<2@2D2H2L2P2T2X2\2`2d2h2l2p2t2x2|222222222222222222222222222222222333 33333 3$3(3,3034383<3@3D3H3L3P3T3X3\3`3t3x33333333333333333333333444 44444 4$4(4,4044484<4@4D4H4L4P4T4X4l4444444444444444444444444444445(5<5@5T5X5p55555555555555555555666 66666 6$6(6@6X6l6p6666666777 77777 7$7(7,7074787<7@7D7H7L7P7T7X7\7`7d7h7l7p7t7x7|777777777777777777777777777777777888 88888 8$888T8X8\8`8d8h8l8p8t8x8|888888888888888888888888888888888999 99999 9$9(9,9094989<9@9D9H9L9P9T9X9\9`9d9h9l9p9t9x9|999999999999999999999999999999999::: ::::: :$:(:,:0:8:L:P:h:::::::::::::::::::::::::::;;; ;;;;; ;$;(;,;0;4;8;<;@;D;H;L;P;T;X;\;`;d;h;l;p;t;x;|;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<< <<<<< <$<(<,<0<4<8<<<@>> >>>>> >$>(>,>0>4>8><>@>D>H>`>t>x>>>>>>>? ????? ?$?(?,?0?4?8?(>@>p>t>x>|>>>>>>>>>>>>? ?8?P?h???????0t0(0@0X000001101H1`1x111112 2P2h222223333333333333333333444 444 4$4(4p55555555566 66666$6(6.626A6a666666666666666677 77771777<7Y7a7o7u7y77789:=:r:x:::2;D;;;;;;;;;;;<4>$>0>8>>>G>N>V>^>d>s>>>(?/?c?l?|???????090x000011'1-12191P1i1w111333<4L4f45$505607j7}77828?8f8p88888849l9999::/:;:::::);Q;y;;;;<<<=="=*=?=G=T=\=o==========>->9>B>N>>>>>}???? 0,0l0x0000001@1L1R1W1_1l1{11111111122'202=2L2x22222222+3M3V3c3y33334?444495y555555"6,6;6q666666*777888899V:::;;|;;;< <<#<<=>>7??hT0]0j0y0334K59:::;5=J=O=Y=c=m=x==========> >>>&>0>9>C>U>??;?F?]?n?????00,0_0m00011111222 3[3i3334*464H4n44445&5`55555-656=6L666666 7+767C7Y7a77768L8r8888888899#9+919X9991:A:k::;;;=V=\======>'>h>t>>>c?p?0!0=0D0a0p00000-1<1^1u1{11q22222373=3k33444444444455 5555)5/5=5D5J5 6K667p7777+868=8\;;<$w>>a0q00&1+1^1c1112L2R2222333 4$4(4,4044484<4@4D4H4d445555"5&5*5.52565R5555666 666660777C9g999C:a:q::::-;2;e;j;;;;; <%>>>>-?M??/040g0l0011111 232}2222222233M3R3333333s44444585V555556 6c6666663797e7k7777777788G8L8888888K999:J:s::::::$;D;I;;;;; <<,<1,><>>>>? ???3?i??????&0+0w0|00031Q1a1s11111'2022222333 3/363;3H3O3T3m3s3~333334!414c444444 55 5556L6f6666J7777777A8d8i8|88888)9\9a99999:::C:|:::;I;;;<6<<<<=Z====:>c>l00000)151>1F1L1^111122{3446A6l6q66667z88888/9999:H::8;;<;<+>9?\?\01h11112C2O2Y2o222223303<3e3}3333334;4H4o44478E8o88889>? T55669::;2;;;;<)<<>\??@d 00111&2H304u5556C6d7v777778=8O8o888888#909O9===>>'>B>~>>>>g???Pl0000001.131f1k11111,2F2a2|22:3c3333&4?4J5566?7a7777F8889.9S9l9::;=)>??`H00y12Y3c333455l5555667828D8d8z88889X99=>p(00E1W11u2222[34i586a6u68x55 6S6q6666666a778!818F888F9K999994:9:s:::::N;S;~;;;;;<<_>>N?k?00!0y0000001142h2222223B3p3333334?4P4444c55 636B6d666677?7N7m7|77-8=8e888 9`9k9r99999 :K:p::::;.;7;e;;;;/<^<<=c======== >&>>>]>>>>?u?????? 0070F0000000101R1a11111122^222 3G333 424444444K555L6j6x6677888889+9m9s999:;;>b>g>>>-?? 0[0`000000111112 2O2T22223 333333,4145j5r5z55555 686?6F6M6T6[6n68889Q9r9w9999999V:[:::;;r;;;;;;;;2>>>>??? 03080s0x000000151m1r111111S2q222223@3E3\3a3q3v3333374D4L4X4j4w44444444 535g5566-6C6\6666C777 8B8I8g88888 969z99999999:s:::::;>;D;;;;;;;;>a>>>*?c??????107000000011I1112?2x22213J3a3z333333 44$4F4a4q44444445575R5556%686V6666666677#7+7>7F7N7\7d7777777788(8A8I8]8e8r88888888#9A9Q9c99999::L:Q:::::::(;-;q;;;<<#6C66666666,7W7c7y777777778l8u8;9:::6;l;u;;KS>>>>[??? 0(0s000M1w111,224H4444+5n555O666~777 8)8\888>9999%:h:u:::;;;;(<:<<=8=J=}===(>S>>>>7?{????00*0s0+1H1e11122222B3r3{33334K4445a5555.66666"7+7`7778\888999)::::y;;9<<<<<==W=`====K>>>?A?o?v?}?????@0.060=0D0K0o0000011111g11111111-2L22222%3/3Y3i3333333'474U4e4s444445#535A5S55555566!6N6d6666H7Y777778/9999999 ::.:?:m:::::::;;';;;;(<9<<<:>>>o??P000001-1k111111!2;2L2|22233p445,66666$7C7_7777S8_8m8s899.9;9B9I9P9W9i9q9~9999999999:::":/:6:=:D:j:x:::::::::::::;);A;N;U;\;c;j;|;;;;;;`\63e5t555556T6667W7s7=8 9\999=:}:::S;;;b>~>> ??s?p00(0X000001"141K111122233)4c4p444445(5F5S5q5~55555556*6H6U6s666666 77>7O7_7g8888899::.:E:T:h:w:::::::: ; ;/;F;U;l;{;;;;;;;<<#<3A>G>N>>> ?I?i?s?}?????;0q0{00000000<1C1{111111111112;3n33333 4l45L556B6m66677889N9t9999999999999 ::::::.;b;;;;;;;;;;;;;;;<<<'<9<@>>>>??$?-?\?e?n?|????????0000 0&0,030:0A0H0O0V0]0e0m0u0000000000011}11112222222 33"3.3:3F3R3^3j3v333333333333 44"4444 55"5.5:55556 6&6+686z6666667o77;8888899-9g9p9}9999999: : :9:E:W:::::; ;;$;0;<\<<=&=~==,>b>>>>>>$?]??,00111'1R1u11112$2G2j2222#3S3v33334D4~44425t555E6u66777Z7777 8Z888#9]999,:n::::;:;;;<P>>?Y??000S0v001X111122&334?444C5f55556k66617k777C889799:Z::::<;;;\<<<<7=o==>>>2?b?????040W000000111T1t11111111142H2P2X2`2h2x222222222223 3@3L3l3x333333334 444$4,4<4D4L4T4\4d4l4t4|4444444444 5585D5d5l5t555555566646<6H6h6p6x66666666 777$70787l7t7|77777777788888@8\8l8x8888888889949D9P9p9|99999999: :@:L:l:t:|:::::::::; ;,;L;X;`;;;;;;;< <<<$<0<80><>D>x>>>>>>> ?? ?@?H?P?X?d??????????00 0080@0H0T0t0|00000001,181X1d1111111111220282H2l2t2|22222222222223 333$3,343<3H3h3t333333333334 444$4,444<4D4L4T4\4d4x4444444455 5D5L5T5\5d5l5t5|55555556 6(646T6\6d6l6x66666667(7H7T7t7|7777777778 888$8,848@8`8h8p8x88888888888899$9D9L9X9x99999999::$:,:4:<:D:L:T:\:d:l:t:::::::::::;(;4;T;\;d;l;t;;;;;;<<<$>><>H>h>t>>>>>>??$?,?`?p?|??????D0 0,040h0x00000001(181@1t1|11111111111122 2@2`222222222222 33(303D3L3T3\3d3l33333333333334 4440484@4H4\4d4l4t4444444444444 555$585@5H5P5d5l5t5|555555555555666$6,60646<6@6H6L6T6X6\6d6h6l6t6x66666666666666666666666777000 00000 0$0(0,0004080<0@0D0H0L0P0T0X0\0`0d0h0l0p0t0x0|000000000000000000000000000000011 1D1h111112L2222,3d3333$4\4445<5h55556H6x6667<7t770 |2