From 7a3cbceb6b239cd403c2c9f7feeb6fba31c2cd59 Mon Sep 17 00:00:00 2001 From: Ivan Utkin Date: Thu, 6 Jul 2023 03:19:24 +0200 Subject: [PATCH] Merge variational BCs (#14) * Add new scripts * modify * Add data preparation script * WIP * WIP * WIP * Remove tmp script * Remove deps * WIP * Remove commented code * Remove unused file * Remove old files * Add files * fix function name * Bugfix! * Fix style * Limit to only a single "phase" * Fix residual Stokes * Fix plot axes * Fix volume fraction symmetry * Work with new TinyKernels and union for levelset. * Add nonlinear viscosity (needs cutoff) * Remove comments * WIP support for field extension * Add new dependencies * Implement new `TK` API * Add fields API * Add logging API * Change scripts * Remove unneeded argument * Mixup duplicate * Add 2D TM draft * Fix code structure and figure resolution * Add thermodynamics * WIP * Add 3D TM * Fix typo * Fix typos * WIP 3D TM * WIP 3D TM * Ignore pictures and add script * 3D TM WIP * Update test cases * Add "dream script" --------- Co-authored-by: Ludovic Raess --- .gitignore | 10 + Project.toml | 14 +- region.png | Bin 0 -> 784456 bytes scripts2D_variational/app_inclusion2D.jl | 164 +++++++ scripts2D_variational/bc_kernels.jl | 43 ++ scripts2D_variational/bcs.jl | 33 ++ scripts2D_variational/geometry.jl | 24 + scripts2D_variational/helpers_tmp.jl | 67 +++ scripts2D_variational/level_set_kernels.jl | 23 + scripts2D_variational/level_sets.jl | 18 + .../signed_distances.jl | 8 +- scripts2D_variational/stokes.jl | 43 ++ scripts2D_variational/stokes_kernels.jl | 138 ++++++ .../test_volume_fractions2D.jl | 222 +++++++++ .../volume_fraction_kernels.jl | 31 ++ scripts2D_variational/volume_fractions.jl | 55 +++ scripts2D_variational_TM/bc_kernels.jl | 43 ++ scripts2D_variational_TM/bcs.jl | 33 ++ scripts2D_variational_TM/data_io.jl | 105 +++++ scripts2D_variational_TM/geometry.jl | 22 + scripts2D_variational_TM/level_set_kernels.jl | 21 + scripts2D_variational_TM/level_sets.jl | 18 + scripts2D_variational_TM/runme.sh | 8 + scripts2D_variational_TM/signed_distances.jl | 65 +++ scripts2D_variational_TM/stokes.jl | 33 ++ scripts2D_variational_TM/stokes_kernels.jl | 136 ++++++ .../test_volume_fractions2D.jl | 409 +++++++++++++++++ scripts2D_variational_TM/thermo.jl | 24 + scripts2D_variational_TM/thermo_kernels.jl | 56 +++ scripts2D_variational_TM/visme.jl | 104 +++++ scripts2D_variational_TM/visme_2.jl | 41 ++ .../volume_fraction_kernels.jl | 31 ++ scripts2D_variational_TM/volume_fractions.jl | 55 +++ scripts3D_variational/bc_kernels.jl | 65 +++ scripts3D_variational/bcs.jl | 48 ++ scripts3D_variational/data_io.jl | 105 +++++ scripts3D_variational/dual_contouring.jl | 139 ++++++ scripts3D_variational/hide_communication.jl | 33 ++ scripts3D_variational/level_set_kernels.jl | 62 +++ scripts3D_variational/level_sets.jl | 15 + scripts3D_variational/load_dem.jl | 15 + scripts3D_variational/prepare_dem.jl | 20 + scripts3D_variational/signed_distances.jl | 65 +++ scripts3D_variational/stokes.jl | 24 + scripts3D_variational/stokes_kernels.jl | 131 ++++++ .../test_volume_fractions.jl | 251 ++++++++++ .../volume_fraction_kernels.jl | 58 +++ scripts3D_variational/volume_fractions.jl | 128 ++++++ scripts3D_variational_TM/bc_kernels.jl | 65 +++ scripts3D_variational_TM/bcs.jl | 48 ++ scripts3D_variational_TM/data_io.jl | 105 +++++ scripts3D_variational_TM/dual_contouring.jl | 139 ++++++ .../hide_communication.jl | 33 ++ scripts3D_variational_TM/level_set_kernels.jl | 62 +++ scripts3D_variational_TM/level_sets.jl | 15 + scripts3D_variational_TM/load_dem.jl | 15 + scripts3D_variational_TM/prepare_dem.jl | 20 + scripts3D_variational_TM/signed_distances.jl | 65 +++ scripts3D_variational_TM/stokes.jl | 44 ++ scripts3D_variational_TM/stokes_kernels.jl | 236 ++++++++++ .../test_volume_fractions.jl | 429 ++++++++++++++++++ scripts3D_variational_TM/thermo.jl | 25 + scripts3D_variational_TM/thermo_kernels.jl | 88 ++++ .../volume_fraction_kernels.jl | 58 +++ scripts3D_variational_TM/volume_fractions.jl | 128 ++++++ scripts_future_API/tm_stokes.jl | 180 ++++++++ src/FastIce.jl | 55 ++- src/fields.jl | 50 ++ src/level_sets/amdgpu_backend.jl | 57 --- src/level_sets/cuda_backend.jl | 60 --- src/level_sets/kernels.jl | 39 -- src/level_sets/level_sets.jl | 8 - src/level_sets/ps_backend.jl | 53 --- src/level_sets/ps_kernels.jl | 37 -- src/logging.jl | 24 + startup_ault.sh | 11 - 76 files changed, 5130 insertions(+), 275 deletions(-) create mode 100644 region.png create mode 100644 scripts2D_variational/app_inclusion2D.jl create mode 100644 scripts2D_variational/bc_kernels.jl create mode 100644 scripts2D_variational/bcs.jl create mode 100644 scripts2D_variational/geometry.jl create mode 100644 scripts2D_variational/helpers_tmp.jl create mode 100644 scripts2D_variational/level_set_kernels.jl create mode 100644 scripts2D_variational/level_sets.jl rename {src/level_sets => scripts2D_variational}/signed_distances.jl (90%) create mode 100644 scripts2D_variational/stokes.jl create mode 100644 scripts2D_variational/stokes_kernels.jl create mode 100644 scripts2D_variational/test_volume_fractions2D.jl create mode 100644 scripts2D_variational/volume_fraction_kernels.jl create mode 100644 scripts2D_variational/volume_fractions.jl create mode 100644 scripts2D_variational_TM/bc_kernels.jl create mode 100644 scripts2D_variational_TM/bcs.jl create mode 100644 scripts2D_variational_TM/data_io.jl create mode 100644 scripts2D_variational_TM/geometry.jl create mode 100644 scripts2D_variational_TM/level_set_kernels.jl create mode 100644 scripts2D_variational_TM/level_sets.jl create mode 100755 scripts2D_variational_TM/runme.sh create mode 100644 scripts2D_variational_TM/signed_distances.jl create mode 100644 scripts2D_variational_TM/stokes.jl create mode 100644 scripts2D_variational_TM/stokes_kernels.jl create mode 100644 scripts2D_variational_TM/test_volume_fractions2D.jl create mode 100644 scripts2D_variational_TM/thermo.jl create mode 100644 scripts2D_variational_TM/thermo_kernels.jl create mode 100644 scripts2D_variational_TM/visme.jl create mode 100644 scripts2D_variational_TM/visme_2.jl create mode 100644 scripts2D_variational_TM/volume_fraction_kernels.jl create mode 100644 scripts2D_variational_TM/volume_fractions.jl create mode 100644 scripts3D_variational/bc_kernels.jl create mode 100644 scripts3D_variational/bcs.jl create mode 100644 scripts3D_variational/data_io.jl create mode 100644 scripts3D_variational/dual_contouring.jl create mode 100644 scripts3D_variational/hide_communication.jl create mode 100644 scripts3D_variational/level_set_kernels.jl create mode 100644 scripts3D_variational/level_sets.jl create mode 100644 scripts3D_variational/load_dem.jl create mode 100644 scripts3D_variational/prepare_dem.jl create mode 100644 scripts3D_variational/signed_distances.jl create mode 100644 scripts3D_variational/stokes.jl create mode 100644 scripts3D_variational/stokes_kernels.jl create mode 100644 scripts3D_variational/test_volume_fractions.jl create mode 100644 scripts3D_variational/volume_fraction_kernels.jl create mode 100644 scripts3D_variational/volume_fractions.jl create mode 100644 scripts3D_variational_TM/bc_kernels.jl create mode 100644 scripts3D_variational_TM/bcs.jl create mode 100644 scripts3D_variational_TM/data_io.jl create mode 100644 scripts3D_variational_TM/dual_contouring.jl create mode 100644 scripts3D_variational_TM/hide_communication.jl create mode 100644 scripts3D_variational_TM/level_set_kernels.jl create mode 100644 scripts3D_variational_TM/level_sets.jl create mode 100644 scripts3D_variational_TM/load_dem.jl create mode 100644 scripts3D_variational_TM/prepare_dem.jl create mode 100644 scripts3D_variational_TM/signed_distances.jl create mode 100644 scripts3D_variational_TM/stokes.jl create mode 100644 scripts3D_variational_TM/stokes_kernels.jl create mode 100644 scripts3D_variational_TM/test_volume_fractions.jl create mode 100644 scripts3D_variational_TM/thermo.jl create mode 100644 scripts3D_variational_TM/thermo_kernels.jl create mode 100644 scripts3D_variational_TM/volume_fraction_kernels.jl create mode 100644 scripts3D_variational_TM/volume_fractions.jl create mode 100644 scripts_future_API/tm_stokes.jl create mode 100644 src/fields.jl delete mode 100644 src/level_sets/amdgpu_backend.jl delete mode 100644 src/level_sets/cuda_backend.jl delete mode 100644 src/level_sets/kernels.jl delete mode 100644 src/level_sets/level_sets.jl delete mode 100644 src/level_sets/ps_backend.jl delete mode 100644 src/level_sets/ps_kernels.jl create mode 100644 src/logging.jl delete mode 100755 startup_ault.sh diff --git a/.gitignore b/.gitignore index 06175108..66c68edb 100644 --- a/.gitignore +++ b/.gitignore @@ -27,8 +27,18 @@ docs/site/ Manifest.toml LocalPreferences.toml GeoData/Manifest.toml + +# OSX-specific files .DS_Store + +# VSCode-specific files .vscode + +# Project-specific files out_visu/ gitignore/ data/ +*.h5 +*.xdmf3 +*.png +*.mp4 diff --git a/Project.toml b/Project.toml index 557aea98..df111601 100644 --- a/Project.toml +++ b/Project.toml @@ -4,23 +4,29 @@ authors = ["Ludovic Raess , Ivan Utkin and contributors" version = "0.1.0" [deps] -AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" -CellArrays = "d35fcfd7-7af4-4c67-b1aa-d78070614af4" +CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" ElasticArrays = "fdbdab4c-e67f-52f5-8c3f-e7b388dad3d4" +FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" +ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" +GLMakie = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a" GPUCompiler = "61eb1bfa-7361-4325-ad38-22787b887f55" GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" HDF5 = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" ImplicitGlobalGrid = "4d7a3746-15be-11ea-1130-334b0c4f5fa0" Interpolations = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" +JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" LightXML = "9c8b4983-aa76-5018-a973-4c85ecc9e179" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" MPIPreferences = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" +Metal = "dde4c033-4e86-420c-a63e-0dd931031962" NetCDF = "30363a11-5582-574a-97bb-aa9a979735b9" -ParallelStencil = "94395366-693c-11ea-3b26-d9b7aac5d958" -Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +Preferences = "21216c6a-2e73-6563-6e65-726566657250" Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" +TinyKernels = "f7cbc414-f748-44bf-86e6-e44e9a55e39d" +UnicodePlots = "b8865327-cd53-5732-bb35-84acbb429228" diff --git a/region.png b/region.png new file mode 100644 index 0000000000000000000000000000000000000000..585c034abef9c0f64dc2288efa3c799a3656cf4f GIT binary patch literal 784456 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
    E|2nCq(S{ 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 z zA2j1~RMd38F{O99@S&D^GL-ecX#bJa$cWs-mkN-#*Kd$fTJl#;gyW;OAJXL>@i1>2 zzkl0~Xa~@*C0xRZdufWmYitH@@@}uF+U|}%nCb_C?k*<5xYt!TVGw@#?5aZoP+pX+I(Z*xdx0@wajsi)Ia}7%ag0e?ay#} zKa$veh`av9?bD?y89JD2k*kCxZw|9Fm2@U2gs6HU`H^^pSzWCEcD0Xw_d_cE0&L^l z1{tNr%-BUV`+=MLa!2!#_Hlo!V5)@J)A=~T){z3x3*s*mPJSoCrZVYCzgmQk0a0sbss+!mnIg!xr|@15MVh*eCyE z?#zXz1N-f2bj~r>{4SMdHSfD|ESpNFhK06gUs~#E1FsqTRX@AAf7{>p2%bw)@@Z4tt8de98Ufv> zq{G%OPecc=`bd$F@dXS=;?wi|jDF6W-Z*=rq{k|ai;Z=-<;oRRF17FGYzY2rF%QX< zto!`sy7m7V(<3x0a-uW_&5_BBsGJz_gbxt(J5s_?eE5x(aXg+pZWuB&$9v$TkKK|J z;m8+uPH{ukgIfh!-avI!=rvhC@=5i*LiSs&x=$KMlby1gil$4j^>q~aob93sB|i;DQ8P2*i#P9 zuBpjgI0iv%%XbR&2|ak$zPIo#vut8r6MM$)4@Dj>mrYlm8No?4M>|lvp7;PUMzy2O z3(g0z(B zfnFNMq;isYuXn-jHg9HAy2%ZORbI9d$0KN1Zy48v898_OW+vH1GgoQ_A6}b8-IWoB03QM*(~JQto8Njsp#F#0f zS6vfswvz`E9Fba_pRLzF_UBD&zTFv6F9Qv||6=SLY8ZYvce(vVUfDfK&)F7BS3BAM z!bAkFyIK(E7m9g=y==$Ste|UG{IJ&o5$k=u@r5PJ%hjpV<3^dEnW;_hPZ}e328J7` z4pxT0n5jAbEgNT9y`m!L$gMLUSO>?2@p(GaLoFB9w zzm*vg$ZlCk-FcF(ir=UGfSfMn2}OX(W6XT_oq01l;L|36F!H2OrKJ`toqDWI+kbTR zIa`4#9Cwm5vnOQIp+JhiDk?_cQLMD=$g1O&$+}>K28YmT^#da{bXp=e8?M*9VlZZ@fU&B)7ObGcH~~WWMNP>Se?Jd z_fG-ZV3=Bc55|__0?HgMZtstp>*w#^dsJq+#87@kc%)4nv2zT%g);yF65>U+mM z;TmLh3N?&Y?fZp|n4r2{w!OLzs&X{A6U%JB!3IS*xYmALN1D-CZiVzNg7;yT5u$7! zOclnqt0WoXj(Jjxp)N)=--!`SXR4$?Y1#zNcLxp-j?KY1KFW6U9u%9}*w0+RzKy+q zB!zjbtMd~U&1rkfCGEm=#R#BUr8sZiI5pNWlxsDOobP0+Jg=4=Ew&Ou*NUp#bgYD5 z92bUOOo`Sk`)CyE7mDZ=G{*V*1e!S9+}Gce2SAa*GqVDg>wESIE!+8VCMvYY?`2Q9 zLC;GhH)r&)g=o7?SD;E%;I@62Zrj3UQEIiI%vp&o*6UCfhCS3TTAlc^uwHpkEntt>EtZB& zY%vB_XjG2M&E$|ROzFZ#8y{d4G1W%VA?;i0P)9DsZod@;;?ov?VKHHf4j z2l3fHpqto_q5G#g5U836cz#wP0B~p27xIL#Me{-AtmNgF>2v@>cUjAM6aTq)2ehxw z5!*|(yMy%37$;CIO#i8rrb#=ynB_Y|gliy-fZ4omivH}ER-JZ7pUlKd#BMFJi= z3PQA?gF#l9B=c3Tgh?cE(fmH;#F=M<*H_HhWspU!(!vyI^v1LpIa;A7c!(tImN#Aa z*cp0Xw?6pti$2N2D9@?rJIbHoGs2zMC7l2o*l++iq>W|6+bO$XvxPGaNepfE?{W5E z;Xg3>J2q!B?->L*y90^!?b_+)V)u;im;7n%N?}M&;&4Soc?MQP4QI#3biMuPTSffX zsCwOf-rrqF|&xSXyVB=M0 zIabn>+j7|a^&YJFiqY*BulWiO0G9D~`s@q;&iAM?MI!$BTR(MDF$=jzafQo3H(ELLC~db&))MC378`zT9aihCUhULSiT$63 z11uzV8#F3NM!fTP)?2_halu>^aj_y0KYJKOk%u?t8OJ)9n8*7PxZLn?;}Oalhv;d0WX+;60L zicG<4^UANppvaWg^Fq?Yu!=SOPuB6&Hugy=oYi2SE zRx&;Uc=lj~%Gmx(^}J)3rbUvs&(IPKBD2cRJI|A7NfaFdM;*gt;zWpz3Z8>!paxK< z>%WdaFC9^QMR41Udz9!eRc&v$;tuG*x~QLofOJY4S3AXOk2J-kUSIgJ6#j&6EmV(B zdEeN}!g#jGbItq}#WNg=qIXeT?@Um1<@i7Wuc1!g9z>1%4T`%Yk$K#x21O%LP*4A; z9o(`RUzYAe(U^LA?@QDrbp_G#!TH8^Iz|2R-m#~T{zt^NWKsynr#~h8q@Y+nhuR!4 z24!I!bcRy?ESA$kIZ@A882O!Ji9$(IW`x7s(q7|p4i30kUlj>`l3$tiF~d{7HD^ky z=_?>zGJ^B4?`JI+B4wL9@|}6@rO4K}e^K((Rv9U8_tM|}aSsPEZ*8V-d`5y`f#Y%9 zBBb*NB4AseyY%TbekPrmOX+d@(;;T zXML3MU5Z5gcFUcAd2$p=$qf-B-BG~#>-?Dv$&ji zBf@pPve#jr#50$|3m=h3hc%gbPuSO)^*1>DB7<`$Fuy@e0=S#nh=LQ-lUFDAPh`Hw ziBY_e!gH3>m1)bZ-a!plFG9H7`Yc1RZm$!YFh#diJn1;gJU3W0r{L}*i>|OxCAY2m ziB2kb+^X=GyKK(uTxyx0X5kBO!)sZ*8T>sN?gmSa{YQVE_L0YpQ18!pau} zpVqS<Gh|0Q}e1nRE!`Q2FpXTlt!E5+)nXs?!MfAi2Wpb5 z(Eh#p81ywxq%fdng~K~|U+!Ya+0zs1GrE}F@x&<|iQ@>WH1Hs|;ro$mxvBWO#cG5MDBS;qNqGH~j^JHGGrPxqIhlbz>u2Q|@G z`kDIlnkqSC zZ4Cz$*5;14o|;`<*2vPCNuFAWcTyMwscIn^hjfa(NwUQk4|dDw*@ zbh?s`nol^W@Nx5AgvKl~64rkjZ#PEkRNHE_gmi()LTa>S4M!f^{q2(|2-ujy?5e^4 z;-4Ko9z&6M5LJMxeh@WrdkqBf2e|!wiWhmq5(5;82%WD+RROx5aR2FFNuBN}_tX)* zmY>{uKVsq7IOHNpnAk#Pjz&$vT}3t%m{oEXo^}@;(ab%MbOEvV$?>(S=FxQMIcb-{ z@w_G4Dn!((Ch5K@DM}*<23eA``>~PkPfr)}qhD)qz#fz2^`dikTDhn2C)zB$c_sB7 zD8LV;9u3cB@!&fr8N-)f6A!?TRt9s^oDV4hp__Ltzg#`#Q{#zI#m1T;u?^DCspZXk z+1zTq?iphqzSt}rhwH1eUMgm7R>KEgKhd2u7KZ+_5dLW_TU_wgZ1Sy66$*%Z>C#kL zW@v|2=KALrm5)M=W8==eZ&0tzaSEvL0v-?q&|p5kMwQnzF{4X)zzBj*#2I6$MX}km zGT7?Zhy!1&&oUe>{ zh)7gy9jQ3Bq)x;{v+|(rrsmagSQ=2Y@Di3QT7`PCwalSj%|udewHGty`P@b>Ymd#A z2>u94u@>t%6f!dsCV6tT*z{w+_2TKw{tq;KP@CuPTC**$s#(4XOcFBa`qMABwPS?o zYgpS{HP#(R56-=~zCNO%EG`(+s7AJAiz0i|l9UUCGg6Ia(J@25@NR8!T{S^cwSiG& z3X(UdId+4a(;$=@`==NTu5LyNK-F<)i5xez;srmT4AfkjQGuSuFbeOYIf)>GqmFbo zvLW(Vs|UEu=|{B7&(Bt~a$3YXbPR`3&WWp1aW;gZnJa0Bmye>Bl-t8{--Z|Fdj0oh zUePJ1)zEk;JF7P@6j^7QQ#F0b%gJz}r zIk*7-KCY5y1YO}Ig_O1TzU3nw z|DBZ0rq#jzsF*bVW7S3X1R<%$+Yx#_6*Gk$pJ)F#*n{0~0E5w;^7e<6I&|poca$-@9r+(93M)IMi4W zMHhGx)5RjbNJfaiy7_(?%;GM$q4EZegH^^z*l*n@Ok~R~z}027{T^f z%|om|Fy%O5P=sjvz;e`DB>J~D>_~2A#)YuLpbIY>5AaEv9{&-Nh^ilXtUAs3d}bz& zp{uv^djCNcDV&;%^#-55Q2m!;!Z*F&I&fKt-ZFC=KeAnCU1eJd5((#><9@aCvL2nA zJ$(!iY7`!Ggl0xtWj*ED8qM|XQmpZl?Hy}F{|!8LY#>Eqp_{^MM$FRBV==Iy&|34hBMDuPftswAk#S>cn$Z8Qa;1~4iO$0nzGG<$(8_NtNAzG&eOmLPwf1GkKpEd) zl2oUP9{qFG>WeYP(o5m3quNV^)#iPa`=XaeYmDcUgRowtlsUgT_uK*76qVrd|@T3B(d@(qP@O z_^W%xrkYloY}Ts$j&1d_Hze{KlK_?-0yk1>R3uSMk&@KFB{kkVFIwH}qy-S1i_{_= ztZ16p=l0=c`yNH07)Hz3Lykp)$@hX36zxdh{a5{5%C;fL*b8}M466BzIre3pkKLJLeTfH#E$MkP_sxle~6JN0^m;-c+b$WD^ z8_z!1v=54oAAaB64e3D9?9@IS$KInPxoVKq$9c!fRuP1%IL6<_oa46o`9-o#=aiG1 zi8&py(J<~F=q5B6Ov~i2YOhdRBWwqVyy`)&kENnKyUIaQJle2LDph#0X|i5%&?l=~ z(lyRor;k$ea2ca7wDl@N{f6ILr1atP%J!D10&j70yg}ip>9sn(0Rup=3AY5PDD@bY zbUqgEsJBkbqLP&M_f?DkC&%V*;$LA7&082PG!_q2{A3+>jp>*w=flc}-4VBX^p(s6 zy|^(KS~k>Q+eTop_IoV;L}X%7UY!KVAJc_E0C)5q*N z`7f-a#y?lg8nYtnY$L#eq;y=IntP2GxnmUac^B6*WGnrai~W|@1wBSbdDP9@7g|jP zhFxH9%nNp#z0#hA9MtP#0pt^|u9k|pBuiGu=?G5Nzbiz>jNy?_yA8mS34If(Gz@ZQ zp{=8i?NalhtxmjpBzGrrO+BBpy|Tf7?}ZCX+u@b{)u8#ZZ-YL`B=MMqc(?%1+C5f* z@FvWppRkEIWs$zUp96ldvyu{cIEvkei9Vc-f5kT|?c7s=dr*IFWN0h07>s~$VLt_2- zV_2wMgFuySM^n%PvGKm zd+yBf_t9Se0vS?3o~8Q_qv@!0O4d^FXP~>^vtfmN;q>s@bT-o+OUTKWjq7(yle3Xb z0v>Y*9rrVYwy|HjdD42NPGd2W^{W^$Fo=dIURuAhEj{=Feon0*C2>3<=>8*Iqby-N zr9V~;vPOO5)shcLSYu!xR~#sf$9}~*bNPF|(H_2-i4b2msEE~>bQ9#)s}22Bg4xnk zzCD5Sdo3Oc{#@9-Wyz~w#=hm<|LF#`ctnBGo_(6k2WVKgIz4x>Q3vdY1srtCz!mC@Cdk60dAkXr3dYD z)DN=W64%&j2jtRlQR9FUn-!A|(;k0ocDo8;vKzyjzvsfIkmZX_RR*{5vlF)%yq@P< zj=jGo?=0|=FLcPv3Z(kdgvRs2cN6j8X+!`uZbqYuwYEf63~&5$SEwPI8eTbWTZJyV zuZlSAi+WLBpFSB_0*6{aHI#!j`!QQTX~eJnaze>Rd6KXvl?;4trYVqm2N&hH9@*zb zJ5#wtoB%RP7vrU4An>`SeGBf{XrTZKVc~MlTjK!Gvx(joGA+D*G<=I z2kv$HN>ZA(p`?uWEDq74fJ5o~GCFdH?@EXr(to6D3g2`$=^gnym2!HNpB8GB`kT}H zhDno&IO269_2vNZ!C)0QDJv7|z-cdO<2CBzX#wk~m}eEID6xfuAW?$`Q+lTxV&o`O zNZnxLbp0x~qtR}g1s+V1=Dih88P~_7hUpW@u^$eMJ13AwyY%m z$>~hlLk)XlV&!EJ+MbY>bfMhSnaj2Pv5mG1ltPP&x8B(I$Hde7$A2TT?H{zPcofY+ z)LR%7L}}Fj)+*ZA+HrPWEv5he`^0tIzKN-3#dkNZra%~(n|8G&__?FA zGh`{peChD-jXCV9yw1Iz`*Flce%7;!?e*nqcW>q&m;1RvGAiNM=eKDN$1^&HYoLjH z%Gl7EgT`!jHp;52&A><@%dAb8;8@N$kqeEC;DU(txIDe$uds#Dgvgzc#SqJ-rh;i0 zL4o@;^R5zjV2wTlaP+(>%JvP)7EmRK&KiEdoK0o&Ow-N$U?cpGK`elp`^N!si*QX9 z=1WNV`sy)0(dsak$>=Ti^=`HYJM&^IiMm@2VOo;hHN zf{yoBa9;}rB9H%&1sAW0B8AIf97m%JBxk&?yfsRsYiJ^I{y$8ebyU;uALvITJrF@a z8cFHy7!r~af^?0L?vSn#(n_aD3q8*&An^);gCl$Arp-ruz+8v zpPTA@v&g+9dqr8x=bNK&kdUZgk_wsfYM9efMLJVl-Br8ssPxDuDTeiyE|){;gw-P( zfk4>*b`FqV)E=Njp}=hr{uac594{ToHCOhPgbk$H+8E{lgWNg&QE{odC1IPsKY-g_ z<#8p9WJS|ep3*N$``poRK0c~=O^wCxlsdsbJn*x)I%}EAi(?7=T1nA1$1^yR7aYU= zKFoo}EE}=OV{zHruP#Z1Wwy<)&BUxW#S2C&UoeRSyHJeA9ZJ2`l)1jl zf-MVODY%{)dC3&Nl)0aFZ&zWxa;Mrz%@6z*^%#EqaB^!x%{dbOc#{7#&KmqU>D_=O zV0n9@RH|Ht!=j=E>LIbq!4Zp>{a#d=!M-M*ktH9MWoM2BAToFrnVXs2PXx(DeX1e= zEEV7#b5 zd2o2@e`T0Y|F;Yit*X&oz(J%)W{Hay)A6=0!^ITtz8* z_gQiVi!HgfSL3j=;a96~l2SE0Gv~o^pk{W4W^V~f4Sf2HkPo;S<(bi1O&j8F1){eS zog3F13#eWl`fKQ(7E)KJlf4KukPMBg$olfnX~cx~68dwl$S$3_gJ7H_b0Bp{D_({5 z^B?4_iIn>5kE(ugc+y9PE?f@033)saW2j=UJF5n$j9NeBr6u|IV-fPEj1Y(=hj>|L zXe?nM_x2PZgc5BGITfQdtczHdM=#~NY3aMzKjuMK+|!kSeFDCjqHVxH53$+EG^b*| zkXI`#(i^U_F~gwjFs;*BERX8#5~Hv72ueRw(yL?q=rJ?nRKZhG6gam{RU0Z9-4d~f z7bQTc!IG;i{^#Oh?5c{FZ2p`3TOg_1q^_1CrBtqDsJ?){4M;(d@hHINvQqr$it2kr z!D?tIDngcWgR z7wTV9LrTk5mzdxE-Q6rO$G&mT7f~!M`|zM)GTKs|N@6R@`jG*xC^oDkCkBw$ zY^*u*(}BXurT# zQ~XuJy$>HxkweZ+AMWsv zoo*rE(eY1*y`%Mu6%+g3EI7&BvDcm_-jJIKR4-gC_RfYRlSFHL>o2{^m)^g;6Flb# zix^r@ow@>FQanAPWa5fa>vO-|pHZk}VGBh{?l=n&63eUpHp*B#e%r zt=v>U-cIH}G%4!?&79(&bHoaH$m%iW%|aR)<=u*?Yp_C$Wc1qOUL{{qt>V6?%rK-1 zD`!|uMXBLKpqYP98{f(kq5Au@Q&Xa(=v0h2y#x-}-k+8ncGQGmr~NgevFjxX8%hyv zsfQP1hp26}7l6E{(=1%up^Vg?*gNjvUZt_8>Z0ebgNOdVS`QPk!gBpc41>26NNk9H^591*kjBpVZR^Vzb@N!K#`DDrw1 zEqPUx5e;q{fHfwM2GC5TG;F7stDStS{$n$@NIvNIq~Esa5fn(*82uY9RXU#bMC^42 z0$3wfq~kGF`6fuaFr@I2yj&2aeEy!&O$;||9WUw4ANI5h7j^v#NnT(3`t%-y z((N*w4$wG^91`MvzZIBgkXKy6(|!+Mde*L(q`ct#!=8Z8GgnaE=W|QDk7lB2*MZ;O zQEMd+V_1cHo7&(ho}hd%T^UZuc(}tE)2vMR<;%lFU&@Kp_OM&0=v!DD))a>`UGI+d zYaSO&#LV{7i#-w72ThB{hJb66qr1lC84;0(aUiim-tbz`vaw0>z;ZoKyNPJr&mjD? zdT6!BqnTL?eNQw4Wk;Q|tT7)`2fK%C4nq}$wtq*x76>#B!gH!8xcFQn{`0TX(PjDk zcHvOm_q|;urHY})J*T@?nYOD#x}4A3`8htEkACyqY?42>Mlp4&6<9AWTs?y?MY>OB z0-rtvKEbNsbCRLibnZr>4Nf||9ExnZ9m}HVLuOrrn&yv^Nx%+NOR!Hg1E|yR&Lz)9 z=B^jH)(Ev_z|^g|n6J-^^v-@fe0mhol#vdqja4dDSB%FjpJ^L{PW!l{YOAe|u5+L2 zeazZ?Z^wPMhrZuw=A(7+Ja)I={mYjoShaIZCw|VPM<^0U$w|rwCaKYiV&8tcfR-;T zN=Gy`Igd2G(G^Cc)U{!BXCUp+9zo+vy%=5N`~?xaJXKk~0=H^7kE3Znl~|3Jf-aAT8srU0KP+SXR-m4O3j#g60PV04@R_ zlz+CWiV_b`6ECZdLO=+(E=w~OJ2mL}`}0T#05b!`QUTV1J-mLEl%Rx5ipG{?&C=s0 zZ1X*|vcmDMk3oF%mAovGC(YmhHq1DUF)%WBPkY$m8xEfi21d9+s!xnC1hfI=4=kh% zIK7qALxQ|UMx#4p?#US$g6wk>UiD)m$>Uj7Li~}h|1D&Ed8wEAQjyCR;2JV3naDaZ zAx#juC+#m%o`rj>m@U9(g!@O0@%^y77Xgxx662U2H39{|E=2zs!ep>xucf6pRWu;; z(S@OTK~+6%*dO*2lHU&_8Hlvw$6*)MtsIm_xymUYt07p(1 zRn1#QG>lm&hpfU>HlHP?0ZF-`qBV3RK?58x)6A}B{|h4uj&T%GfE;k0!Q+i{5@5{! zCpXVePBF)stkJ$t-O;Dim%KQZQURh$YIk3htA@L7i*k7? za-7=YnLt%w@S*UOwHHDmBNAumMEt6f)$XJf%kW4&oY2_S+`}l*2&}^7Q*X?vAq6Z=~_GW_%S$V5AaxCqqt;$*u4(YGo#;;AMmzJE*fDE+hZ=hxTe zo4at;Lx1bJJ0C(DJwf5`VHmgD2YMS{2}^Z6_QfUJZ^N4i(|{dvY2Gckv9U@ z1gE6dL?1(=lEw2is(uhch6W8eBdC)*3H0V22-8B1a3z#kW1CA^sjOh8limSke*9GI znaRqT;FTT+B|Z1r!1qBu^#Oxeg=usxMZf(Y?|oX%gG)~i$0RSt|n8f*+~iIRPO&1&qox81y$8+>XV{B<((1{F`IFIulnl_WA^h?`bDq-2}*tl zJH#u-4mr+gkpN3u9Sx%zwWSPP8SN%B58O9gvjN7h_p;eZERgXYT7%OKO~)W4G>cBs zDCqh-Y?SI@clgL;L}+a&txZpll`uFCy6NU+@mqOg!4EU!h_9Gzi~z#MU$2xlKgX7^ zBSb}6RAwJB=OGJ(V6(UrZEz!F*S^mp&(nHu#i%gD z#6Q1Oe<|ten87-dVRH{;@Xg?Gkidb+?qbFLb@%Z!>}K}?=jq<;A+fss`W_V~dHT_0 z8`8f%o{{S@aDznPru3_>Fx&TrS}Nidcvl=gvmtot6+mR_1C{5vbm=7e$ zOo*thA_V4~%SXi+8CwzciWx6inDH(x2O0DxC5}&a?UCTpjw& z{~se(!h-inxQSyd2~bz9r-J~fz+7kPw#!Bvipe-Zv+D^I$e5XZb?8;oiZBpybVxxy zXSox2m04pcFCdH$G19YrCWo7VB?77{co5#U)@O({RH%)nEkm!f^Y}B5gTC+ ztfg$8Nb;@DAuPB|{qz=~r%jS|5Y(cO1Tro0{3FQ(C5cWEy8!>(OJlWx`G`rZNIz>l z*0mb3Md*`$w*sdVI6!hbj%HhRXbI@)xihvwb6hB}oDw3P(U@DfUB81ezSHG`QN_#8JlK@Q(7#WIwwbj$&6~WhkyNG?6qYpV1JjC5IMOaqT~SjX zYco7u{=ZaVR^j&s!FAykd<@yyVUp zzU8b7_6+;mViFU3cg(`1g33@OhII@Ye>DSE1!4)`j(7wyo9LUyx*cX_u@NR!;r-y3 zp%1{N=x16D7&zlb;+iqQuYKb!=dSZad{+t`uZWWTz}kU`cv(NzWr-!m`Ar|!nIAU@O?EBol>eN?Yfxc^qTdD55! zts~X7e>xQRb*+hYN?MamFqNNa?oMk3;z=&C8gyOa=@55!>L>L(;tp{1Ot-I)~ulzKjb-y4}5e+N`J#6?wwg zz&d%1sz`_bb2|C_l0#ZhCY(~N-taCnrai*Qu4YW{&42O?$ zSCm_3zLy$+cSQkj_fhGObihgcyh+g6XHLUWx;JfS(c1yY-m`~Nnf7?{fV^sln%DB6 zx4g>X#;qv7#KVOmYmuKas&|kt<$HZ}QE}rw=PUxa*;pc75mw|mqtrriugrT5=&1RO zbJ9FmV;=<-{smF6PvcK64?D75Rr5^Kaapl&&d9TdJ^LebJ>;vxMEmVop=XZlT=52y zrwGN+xPvZM-qpBHY=LR@ONTAV6*iFehf|p@;Qw`mKYQ?`{TI<2p%QEV^i(%-VKtTH z7=||=;$YE|a?euiL!U z@UUc0mJt%wJc0%wa~-Pxikr0J=671Z$J3&addVGj0H6m{?y0?yUV#|^Z6i+UJ>%Qt z9ZAAvmp5~CQ)2C?rVzTHy?Kiq?Mc`z&vgRfX>V4xey2KS>GgnOW#bdNB*@rj+m||Y zD_sQQkq7jKQfG4VV16vtviI-hnfnZj6>$Sqn+_DKW7UQwFP*%zYOFDMff*ulxJG)I z2Bhk#JVJMkRf!pN{nwNAQebC25va5+1QKHeKt28e=!7V_*Jbc9TX&fIYsM?BSG$Ld zpp6XF^mawpRLX8DCvbF|%l7=;h>VcjCG>r6qPZsoHT+FE?u{=iMfvPNV((Mw%Zl5< zWhgdK$cQgd`V@kFVxua;$cn%(ie*c8-ux-PB1z@_6BXsBqq=KkYiDWS7~gGufs7U~ zuEjRJt^CtcCbv-T47!yMJE^FVw+4U^VCUxf7nkX130m;Uc_DEC!ACSzv;_gXuQfIx zVKUeO64*18V^*SjgP{7C+UBCS4N|K`p;a<76+u3y=V8OBI~a+YJ*dpUP|^2M`&!At zq-gRR-Mmta_-1R*L{Fqb0G--|2GVz`S=nR=La`%1QhEC6B4NL@y(T}h!KRa&uyF*= z_#J&mx3s{&f(V(`PaF5V%b`t~(I~46>}YY!s}1@>=__19Srt1e08NP5^Rz9!a-yKd zbPDFDVgGPBBzUeTFw|YZ7?KgaMBbb9^#kcc|lldR0?G{~r24P_@-#G=Zfg z|Ib0k*Y`9eXS_X74TbzDId^Qp*M&m??J96#CYIzF^M|?|&-yamSB%(}C|FFWQm3UW zmaRzWwqTGx%K1qTPyxy5%7$27CbXAeNwSxyX>zwj4q1fB5qu#aDyy4JC2>*7CYnfy z`DIj(x8Occ9BKT^?oZ*ns(?FtzW~d!z0l^N+ApFpyrLOLV}3U?GsiK}FOKE%R(L_~ zQwR@OSeHb53MA(TH{fh-eu_lMikO-=g!A{Xs?}yO*n})MIs`x=W=78qVJu41P{p2w zdP6n3PWt{x?N_vfN?tAgtuT#c>v$l^aXXNL6Rs)1sF8%1&#=H|=#&L)9R;Ot1=|~O zo!$|B#|Ys-88Osw;lA$SOoOdS>46r2#-G~@-mJ6Z6lR|zKRtZHQ!Q_6LPM_ZK-{rs zjs(Meg7NN%&Hu3rR?|DmQYT>zp#Lo`Ag2sdd5hy1MktlSyZ8o6g;!NUt80Yr=rKS*H;$`8iq$nh}wgqzk*E7rEP=Ww(4 zRhRDky4p-TD*cHn%A;%KvnW#PTyb00VKMl?2wP*GF<`NMopLm0ifol%I<)nf9hhTvww ziVtBCU%*#%EhIXC8D@6z@O|@lW^}K%qpjz}{1_N0A?+ef9o2at*IQ!=+L?F6R&HEo zKF0f68OTY&b9I-^Fn#}%IKk|3xMcC7TKb7=J021Uucj&qnOvBw)+g7KXVDR6rhmNSj_&sC}qM-$vJuey+CMt{G=%qQV ziDHm8y;voQaa}I)&QAK3i9`O?u?9QgIOaB}dyU)c$$y>5wLK1g{ihHr#sZKnBKaPx zJfbTgK=y&AYw!W*Do+v>;b%fVqYa7?c8~e^Q8qucEjl&qa{~GF6vzfqvO-e~St|cQ zF=Cb9PmqlRsRX@ly;q_drVCj6>~_zeEAP#`l|e0BqXNbL;fkzmMOVuJ2n}Z}d3q0( zXwu|rZuC(61()D|{d6i_k2c^O%0&444wl_?5;x=xC(VbwLzh+9sPvXU2lfxmbj2&0 z1d@KulkEAahQgSVeCkNE4v->fCCC-!2IFZ^F?Kx&XU?&~KhKALN>NAVICy#>33E4! z#q4RB3HQjc04II2Y|NyvOettV zzn9z9c1_*_t}3sr(&(!~Nyh*SM81jdx6(ve@H=}Ka+SK-E&QbRnvC3>&;dX#8vxVq zoMDE$93>fKTD&qeQkRvazJNT!L_1?H^ewIguEge|SKxT|Fa&cY!*F<-F?{ZQvECwt zMnDGQ7Ipn`gVEMj(huKN)=|$$uYXwrHpAXDweCMwgDN7YEJ;PP!9=j97%s6jB+{fch;X=vYfnBa+k@MBN`hb>j_t?AHTLa1Frdh zOgp|gW&DwUa7D1vX0*+alOc8@0f_iO4s@P*7#looJS{f$Yt3&pNT+=D(lQ)G6i$JN=!n-a`0iTON1T>bv^d_0DhJo)M{fu<27 zDq!7{7nQ)|^P|8q$;gMTb-MiJ;AZ1?r(`Wfmi^uEImefp$D@g(`)%Zd*cl21VErF* zm)XWbwjW%U5HAjF-ssIQo}cMSif>+I^9(mGI+}hy8yVK zhj+H6x>D&E>ZhRab#4mO5o?SK#${ml3UHz5Hqb+{O4FcGVtocPH0$48f_;zwrGnd( z6_yXL@*1`U&ks%CAI*FFc(fXt5iv86@`cIaVgf4G@m%e;zKDcGDL*2poSI)|D`vd0 zth8e;=0vCZjX%^f1NDll3*#JCAN@T6!}{LF-D%ewCH}2&1|3EIqW@i_^;8TU`J>cUkpK7I#auLcG5Ytl zEYIV-@l4_VSmobCHWpg!KbbmfZT&gy+hbQF4h>yed8a4yaRt^~D}H^;?<|%GhS!{x zx|6;QjnyN)=jmP@(n=1%ULGIsBNeQ$K`iJRvQn34vtDTeKNvh0*M_ql8axn-wsdJQ z-LF$#0sc^i0%%_u$X;6WtV#Q;EnSMToy=yMa3USNqqT4L6&;3be9d3yb?0a^Gt(OX z8-8ySnCWqQOSAu_d^Ih-`xp5f)LE~c zCThBpdh6siIIKd(O~ABNMMaN2S)h!l8b=|m1dSFz;=LUDfJ5SJy55_A=sgq{_v8V8 z_&&#lKP7RWUV;2hoS2}opHI9vdUbb)f|H0g$;2hg4+m!Rm^wb)kDC5hmObd?VigL< z(WDq{3;6tbT6y|A3>Awlx6K00^vI(#V%9e+0{6aB?neP@Ts)-kVK$%$lJdopUTr-j z4M))B;=2C}e+uLqQD5%w(chN{wK-E>d+9HChKn!go&_9>2exBvp9ld40yc-P3T}2U zbfeB=O3?_wPyJvIZ~xowfd0|vyh-P$C?zpPwpVcA96a83X3HShBz;w;vGLtvdtW2Q z!tok+n}6d7fV44<02mztL3F}(tn^eg5Cn+%eJ_ncU5}B6pmd!VgBonFEy>-!l41!B zjhJWy2a8Go^oF3{WY#1x7(fX%;on@jh|^DYca51_jJ;OSSDbmq?{oK#inddu;GANO z)Eok&$@@kTvPiBeLe{Ws=G-|`QkDD(;LUh*y0$2iD%MGQZ#E z0<*>^ubVICKee^$rExwJ8Fau-=zTX`h(qonVaUt2cl&n3sA!Mo#y?^O>ZmSD|99Wo z18cA{<^aB8Z6rX(C!|+r(>-#e0>=Brj1F)Qblr-zQ>?WO%0^9if>k{KJn+n8qGtRG z$Oj0tLdDI|nO5{WRm4|1n)$58ZCR1my_}B`L}MUaVR=3leh&f3uxFFjRemHy_PDtnAVIEjo*&2ECjCz zB{>NP%c{)!gI^%9_2~b`R>qLfGt%A{_qv0esw2nF2zxCRCXBqr~WAw1B*rzS7bzXVc@X$@8!AO|k6AS<2+AdNBATEjOk zm(Dng1;fc?WzPrqH1zP&x0k}_KEI@>$iRL$;Hi!>P0+~RRPl0ew|LDHUjBDb_yPAvN5Xme;Tg+i&uS-#Q`>C6oW1EWm2&Dxp!NLp#5FC6PdrQaiimKhnNLn7{m z!EjSzlTXv|O~*YJ))?|H>%0kv?BEc=rNDK!kojV2{H35cxp?KCH)JG$Kf?|HSxoMO zaBI+aRw%~#QnQP}UhbwupU{_m?5{PY^dRv-UZ$`@3W3?G0CFZO;FHVex1Y>@@LW&_ z3m&bZmTr#urgVGjFq1PYn%zR3i9#WnO(+uaps!XYe>us$83xEYC|JOH^;VzG!wFx|6q%w z6{yK;ftg*|($y`Lm>6`9y4EGI>Mx1^y-BxKt0)*K2#8M{#-Mj}=lj9W%ASu}4XZVG zAo3Ogk)8G7{al(iF!?yv1k_!~Grnd4eAb=0lFtA}Vl+3S8wYS0)hE4M=W0&Z#I1v} z20SVfGBUk}kte&TVTa@drYB?)0xXw9L$P3(kk+}kUK+(%UztLp28=X(7#v*%3PKQ_ zMM5sUM}8FLz{s{4k}(2BW51TajwMBS%{kvI!Wski&>9vYvPcMt`OWF(vG?#(Zc#yV z@n2&T!XcJTgxGh7fS@XboSr#(2z`w$tCOggcKP3qy2^OwM znaaZ)b^-u98k%>=Ken6;S0DB4g#|$G)zv3+bJUvCB?+#*GE2|_vZ!L!%*@+jzRL>o zO#+C?J>V2*hru7dRhLmdCyo+D9?O`v+#kFqTwjzGRF%9iX=_7q8r)MB)m6hK@27t| z`_|)vldylLNX4KmCL$2LBw%@l2^L5IzV~8GCgk#EZDL`t>y0^=cYOtmhEqF(0N9Yy!a4KEGf6HjSr9Yd~O@VL)YjZ*+Jald)-BITkJrYMCU z$oawL(xrXjM{$Yw)9%{F65@hb@nCIe@wAu-l>vJc3^!AZKlEK@*TM%m_|5d7-*B`e z*Uz>NRvqgh;ITsifajg$^E*bmZ}RpHU-^x-cYEr>>hDh0aN#fX?;=_f7p0H4zfAgG ze|q}noj*VJJBW?bji;vErAXjzFeramBjfu@wB8$)%vTI@BFncWeI|R47k#f*f+&3c zeeLd0Bmcf$Jy6ImK>Ou}1Sr-sb(K3XR+oM8wH)1&_WkmaNrzOa#R1Uk#8@3kGPXON zrKqP1@}faW4CEu0ZZ>rfjOH-8{GYkbzZHMel`P+(<)-IR$rdjv(UirkL=*gls2iQH z_YVc-CcEV@!+TrQzGLg&4$;RX3G^}uRZo^(R3o$drJF1!-%DoA3%eZAn+A@3?tpE( zbTSQl$#2+@rQCF!m)PVrIl3@a;Xyp?Sg-@4(UAC1ICmi*O;&>}%>|l}9hZsL1zz-l zALvdl4i{L`)HrlG0?|5bSO6V1))~*9MVT6?h4CkzvGHp0xnxl%)}!%-y?jqEKlm}a z!+c}b&Enrv`$4NpqN8C7Ex23E=Y%0j1Pr#Z(f88xYRF;+)ym>Vyhte^PoHR?d>YfB zuOlCC1>$<83fb6fo|jMtHg=1FOCobUy3Ib2l@;^P4O>&9AN%=U`##*ZdQ0C$HS=;1 z2}7h&2J#2OQO%TGHA43ZOr6Ce5k z95l*q2)J6uz1WEJn4O7M?~U!UpS%T5IJGkv))^0wH1(=(=0q?FgzRo8@>{+TGvPz; z@EVyxCM?_x18Z0$D;Vtw2#X-hZ-E%2tMcK?}6-^=2_ zQ%iDc(wfELwAA`QyT4=J4CIe-8P z#N4K7(63U#ry1C>*d#_vIYN*O+swC3?NouTYaV0#2lsL_Ry>aei5CV>lz%{q{PZNG zeUxyG_pe_AKE!G}X7Bo{oqb+dGz&bd+mQUyEt$~2sNue*tQ(=-I}u9BSCFlM4p90? zbfEPClY8)#rWgIK00X*Iyz60)b77l)kLBxiiz00EwhUQj&NjZK-TV+`)+r5vUU_c7 zFV!)(AOZ})i`ig{M(U98c7jNBdVubotQ1=BFLYBtZx}X*RqF(H2Lk1@zJ^cFZ2kEV zoW7LZd-Zc(3jBJiz6W>$xsI#4qsPn?ROctOAEBcD=(3(#Rk!yRr4D1n$k4?y*K#6J zVkE{1!#k_<%2^rZm)J``bF60+hraCrV$}}jEWjkPZ$JzmzP&Xj*wjN?=_8`LB=H^# zwh`RkN{PbO6DZ;jI3s{edha8yQgbI}SA#&jOnL@vhh8oQ?S5xZwhd33+}mr7e65@| z>_5z>@7~g%8iw(`o4lSUSl_XV0=FmL1zLQ63S4?l1kZ09KH4gQH?iZ%G0LVcm0P=?Ce8)&xLAPBS=XbPL6e2HnTJDAKLE%W|UlgT(!y#@8P zixCA2BrF%7r`^~(-FZtlH?;)x1)U6D4pZE1)4Ale7)#yRJ&bFPE~s7XWp_&s`cns@ z@e|%$F7gukiEhAHd7PJ9w`98+yefw0QZG;_K8n%ixb27AN_%l)Ek#RSKE1PUr`4Aa ztK89)fD|Rh556W9scKb-tE*q9SBv%qrq9T2qdDYFBAD<89%)_822I}+8(Ln@+y4QN z$~WS!k|jL6zGbv?+j(%l>JHYum~9S@zQApinYIeN<2O>nAn9b1F=2`XF$nwR^{vaj z|HDoQH&Km&l&ogx=nsC>%p`w-{>B%^bn`lauObWTvrvLvB^jw|i6zS&p$hwx9y-y; zqk)gxfo9cRvtB~zJVVRqCJWwxILm7L9T~8RnKWf4`r+tld!6`bGdZ*96I^h9IY~uGq;PY%a^o%FoMkyny8;0*Eb~EB?>Yj5_ z3b@MD`H}Mao^3v!`Xzc5TK3*9-J6QB0~7isX-Vl@9xaKn)%zdBP1_D~v5p1e|7CQB zFbTaG{qCwo)Kgi7f|=+HsB{|9^MN*$SH1(~bx5?q1bU%6^A3CnIe<^wh>H3!0f-B` z=ueEa?NQ8Iq=pyk8d(B?EQA8AnMvJ4Y$>_t+5W(?@aR!MAgR05fokLxgg_ffW8Ov} zm@U7qI^(ZsY=o)1tQb$@mHJ!Q!aw9mY`3_Y3RWR>-aeR7;s15U{0s;o;Eni)0nR?-q9OID=g)REQ*s_!BEMHD{s0XBy+!ClUm0peo+$wu5m!T9G_{W zb)UazAv_$?6kg=$iPE2cEm#ZBCAt#GaN?N{B6|Q#{Y2FfW)@>d@-MbE;m)s;l6q0N z?dgmxh((w^LgqGAW|i_;xzW$|>&;-zV^&rsy(P?4v-=mkDYMj#Dhj?|;YT?k8M9GB=(MbBs@}OB$D9_Jgx^C+ zy_JGM`;kv!BL|jcn>1EJ#MmcWqoKFiM*QOK1rC+>N$_Ewdd!6DR`7oM7QmfDt>BV^ z78jmV&LE3|_gptz`Cj%;bS8E=w~ydwPL<*(;Leo#Q$C*wuxA;8&wPQmxz>4%tt(2FdbWWLo~tDkd4>?U0`Ou7zKOSg-JBVRjn|Fxy7T3jkcl_0uBv*jGi zT&`7cTlWgYo0p~tII{CdV21CQ!Ag376QW5or1n>_xJtz}#Gr{?rTpQbBhPP(%k-J) zDit{f8uJIS+7G;D4xhz{W!A*BC$&Z_DC1uuwl4g85oZV9hZ?OGNF2PXeo4|d!4E|3 z=ugk|{$^On0uIFOss3bw1TmT3gIS~A#fMNvg_g!_H;K{C!{M%ykF9oh3J;ws?RGr6 zXe*};?XP&aOJD*oqjnFtuB0+l=0|L8NA4bpmcf+$M_aEOe)3~j!sj>J=o<3npHMKQ z4X@wf)i%#%W65Gw^eI&OqY6nyOXT#kGbzo2Ycx|4skKsOZ96jA+ufCTt|OmEau8MS zM={cne+`r896z+lyV`KmOSj!9I|vjJhir$;Iurn7_f=I~-GXObw07u%E6;e*epq|+ zqzq#tgIniOxL4DSIKQQs`xYnopxWVFG$#cFqvN*a;e^#zQ^vUU+V^a2{Y$+k?-#V> zlQqLq%M3wv--RDML4Nyxr-vxE5BKaGx~0{_Nusyus%N&<8}JxXc)YBv@iJf~+LrH> z2O{1-+l~vBU@S6JvW8l<23gec;NVnx8*m#LmiPxlnt1NHeu}sT66f3xYS5ZhNZg;| zHZW#PXk3tmWSR%esp$9X>Cazd5UB?`F1F9#b{?^z!j@&TNJ@oxW$Pj_7T`06sMn^F z!Qj>lL!TGEspra=w1n|%@Wv+lIb0>UpNFje<*73Ja zFVTNyd)WLh;=bIHK?{zz$RX%tcelb`UQ@XF+vpD$eE>v|bOB1MBVNY+7(Q{hpARj>ED~<1>4W-Z~ByQc`E9PVB>U}VDoFdD9(M-aJ#tY2Mj2*Tb8FZhP z9P&lz|CU@dUsQTtP{i3c zD;7Wit;-kDqf9oUAbkX`O32~kPm}dcsyt(({qps73}JZ&7^A2DLv}odNiAx5cFtTF zoqp}iOV_OrXcyW5+R&tT}G=(c>U}#1f%hE#M`R)}y=X4|mIX zPubO5enAg1;YS^e%J>#I6XBKgxzD624z=G2ruG>$azNJ-Vvi1`M@t7Jrm%4x@}N2{ z@|#VcR9BYbR@K(UPHKD`&wyQMTwR|-evMi@l?28~)`O}^Ml+0hUi?#xN8=lX2`qd7 z0mldNf#cd2azdHvU}<+{AxmWn?bWV+88;lawo6O$J!0vyB~sv;=|=pV-XON?pd(

    bxXqSL1jG-V5Xoo+6=0oyPHd0H{7OX~Eg3?udZkzyql{F7RZ4FTZ z@*>7an=GetlN0XzW?2*8x_O7|;)b9Sk#T3na{@-fQ<&asOZ@U>BP>a7;V}MB8 z^}o{m$D7jN%k(G9+2bwy7Qef##$~h)U&*aBNZD>P%7Wsu)RNcFXKmA`Olc%9tFnit z{#e~j!|;BxCU|pOu7shXV(b$2_72omM)sfccD4>Y4Nf(Il2R(exL=acZ$ZQD$22)W zT-ky6So4qmS7d2DF^Tv-d0NAR(YEP_l7qiA?Nicamda+2!2AM4wSR>d_o5eL0`X1u z=qfY*_mrqawIE5=4ZVPJIXNg9X9A>qdIn^s)!`mN%J^q}Ds;!ftM-4ng#mGZ8 zeqOI(*Watg(|$P8@i=~#i@sZGpQ!sIc8CcLNy$`&P1k_@h*&$3A?1%_mu{{S5^3~W0a8Ss~lqOOfnR#dJ~HY zgExdANyCoCpf^$%?T9>CW~fNweD@KGeqn&7$!r)-1Pcu*qmH@8&o3vsE@uAkEI>URE>PqvikNpg3Lr#7M6qh#?(ZMJ@JQ^p zlB7j5Z)r>-5$yYSssr(nedcRG_A@4kX1!k>CjR}x&m$ORk3|ZdkiS*Jdv-d~}9 zzrs3CxjVGH@B|{N{p97!$L#=}c-(9wwRgY#6 zLvc@dP_p0a>um}*vK~bH)IJQ{`h_Q`Mdj5iglwJS0?E%&D#rWM8K3I*S=8FZ%+<^Z z&lB>g8Q%1g=?Ul zyzd(n`E2dQZsWUsm@m_*Fh$hk=}R5*U@jaolSa_j*0zR_;!N}HW@x)uGC=_v&>!R<#FQAJ0C-t*~JZ1taQf-0u_@m zVg4%N(*dE&3#8`wh|H}2qc^P0fK+5#WazX|ta~*O)blG=IvZZlGIAV6zsJ(TUV6j$ zrn)mwW(5?tOFvOW{6?OG=s6?BPtJ6}4>IbjE>|Aut$272F%$=xJMe*>4>g1@nmXgA z2J+!`tZ=#e)}#QcvDYVl?PYt0Q^zG5w;lQgMl%Qm;0nP_M1So{G8Bb{miukNnblz% z#Ur*p&{(FKgrWS;l7K$Qmge@mSM6WSykEm{op`wQY-s!c`DXMJfJ+eLsI+J+S*v&9 zHwJK$xysf6aP`C9fJ-7Ut1C2Pyyj7QOcz9G4sPI}E`hLFrtX^7+3umkg3TRXtqhR_ zmF~UZOz`z)hzAFt{xgUU1O*3O@9gan?nySq6NTES`IT)4ur{(KGzYEs)sniAfN-pN z{jWvBkPP(*&^PbpH;b)5IIH-V_A*0XA}eVz+4|DJ=5p&Ve9`gE(Ga;#3#6?WR_ksX zZpChRI`5_!mtwAsT*(j;Jqfrk=G&-@1wQ1#@v-Ev3Q^L?-=%Jw z{X$YMBlAJ8n2j2U_F*Mv(G^+0;U9(ptD&Mc&A$dKe;xkL974axZxbxnkG8V7Nu{E% z5_Y5NZMfYk3cMNA?;?2S@)3Y?Bm-poD%k=I$|CrDiHl*+(;AJ=AAWhI7Cr&l+nHf^9bA`D=GX;M7tA|(gF9P;7uScea^O+-uGqY6cDyVo z@Xm?05&JOS^qtA3t9P>_FW)wU>;j8Cv|(=|en(q@R@+dp=`l^d1~#T^^#mZ9K@ zjBe1C3yemwi(SB^$XDo8;JBzh>3nX)E3vxwQYHMwowX!uzvO{|AL1? zx0Fc|X@tl3d(Qqq#Z!AoKFmMVieVP{_tvk-7*-`AnK$&ztoC>Gq|JH;WK9Z@qX1mD zNL+xkQ0j1wr%ag!G~RdQo@42gX*iZFR-D-|e2B!q=bN3@q6%!rPhpDeCOhzje0y_% zh!l=0){kDyVIhR3#r42MIF&jEa!@<-M#i@UOlY#~S zvHkFsq=KQ1`8YryO*0Dz_7>q=zBwZ!%x?kLRe%SXN>PHQV-<2mz;oX)U;JT0xk*wf zLW_5iWZiV54(ozcH4$S0iq z!2T0r`r{n#_bARH8bq)j?fZG|puHsL4Q5#pBD(gccs8HeA0hR*Ij)c>8-^(4HKf98 zJN@jwhut2~PSqd$WtMa>=-z(*_OU(Td~IF*Xr};APvqd;;$8OcReQ_B1CNW#@^Jp+ zZt&T8cjAO#;3M7R)?RkC>F0ZNpyd$l_&L12^(C?Q#jO|QJnrdo4wg8L%8N+`2}<}% zRn!R`x^l`Rl_~a2zP6eWKb=5QC2HXFo2L31~@_tR5SGj{D z>U#nIctYlM9vtnxA}xn(a4~Le`HUF*hWNS`>b>Z+IkejHeQ1CVTpmdQ2rgRITVSW2SfuAbcO(vPr1BwvbVo)G22f_#z9mr z4Wlr+v~XTrsQkj6{8kr#H!8Z7XR8jg%59dG&`Cyu1Ma3L()74&2}5aY&0dgksK)!f zV4Nzmd*`_qF3T{Q1$Gi=125pxu+uBo6Ea|^A#dDtb9JeEq6QAFFBxGt0nM;jH1>1k zWsl!7VC>DRHsp%YZknvd5Hem@HF!Y%IlVaC^BGkrPQkNlKwnY=y%Z(27y6r6UykI4 zPdm9%vj03p6#ADJS;ijX0DpuSu@r=?z{a2iu)OULvGIv7f3QVyu!X(UdQA)LeWm?cAo}9_ zUh!TW3vmmT?yzIM!wR>Q9nRmWekEB9`_6_?845Z&0Lrh(vYMxBo1dUNE0y&MbP1yN z$qrjv?utKS_L*5F#e z5L^ocD^{SPxVyVM6u08R9f}usEAGYJ-A;bzy#JZ^%$do@OlC6AJoml#wbx$DB9z!J ztov`ppCP6Cv#TmolFCiYfFLo7EVNE6-46(C85p!6Y{9Z%MQ)7~{4UlUG%M>araj^L zH#SJEDcf7s@Cnltb*ZX+G0Cx-VUr5bk;6MzK4v%-XDn9(@bk7+W2)CN30Vtw2Q{~o zu6iK66YtZL`!>Fj29;R1tt{)EoLHTduY?-U-ZwV<6ep}QUCewKLDcqlIqW0+(R{Sn zvB@$c1xD9KLx?w`>KmY6Ci=#d*LdnD#)cJ4l0#BVltRbGj?ts@I|s1~O3BwRchO-f zenNDPn8LUr*+bvZ2IXUQd;+BFw0Ix^!~JcPVXy!&E&VIJSa4IArJJ}6$-6cCCAH+qYk zKOTjDeo*!~v^pY*BSSw;z!OvSJO(->G`8OOtI;1HhyMTo91ORkZf#(Ez}E1xq3Riz zMpM+A5*~#+ci(+;Ipz0x*T{;bj&do=3XwV0=tzKcDzE0$@g|(YHfJy+`2kTg2uOua$VcyD>dy6d*J*>2@AbsT@p!2Ro92%MU29I~ zKdtMAp0)?rgVmwOH`?j=tIL7k`YlV?f@~i%xpB70qWci#cp73Clb9H}VB#O@g+5|O ze(!$O)5&vbgwHhf>e+3a59uSK z6Q+51D)dEOTy(|P$UdF2Bn8f~Up$S}wpxsIym=f-gV`#;!^oXD!0a2*-nJ8$SQr-x zC*{3QN0*0PTx?!;^YXCd8rm;1fdaMXGkcw2e5_c-8Ls+%SE9?7=U4kcDW&AYaPyH@ zzfL=%+6k*%pG&&dT`@#V7mHjnE>3YRZ!U#qj1HbNWY9xPAN*_8^ zI3lmmJ#no%>WI+6UJeD?{EHe3^5GIO{v7*y{pm#B4wxs**rc^YU(xC?XEVuxjKnO- zhEu9afz!W5`cJf5?J<@F9r~f&y?gvi9pc$daH-db;R@`B{AUp78kbHs^ftKv<$VWv zn1n!fisr;mc0Y81P+L)`PiZFJR;5N}IJMGfYE6Mm(h*gYh5XG=zMS!|d>aqjUsTz+ z1eV5bW{nj2v77ep$2kj9cbdMIMF*S166Ntz8t*$v@?;E$s=oE{K!*v@V7QDf0MT04 zVMK?1ZddRY@L{ha z^87p(z8GP23`mb#?X`yeHRVMQ&ju;`2xPzd5mX5r7JbDkJ_n5M5Z^Y!=`*q?2a!Vb zOL!|^PeWLcc}Ind65ps=imIQ)^D?kt<_Dx2q78TCej80--)19wHT*D&jBs9xw}(8^ z^|BzaR}`E=*VV&P)JVZwf|U+-{Ce%V!-gnkC5!DW2A(321$l~q`|n$Dr-o`taYma8 z=6%cRHHyM+@H}O#JByjhtNISJ%hjBvbnw*7GO`HysL+Q6IIx_$>Lkp6cyMjCT*%}b z@0s%QTp=6q5*e$oLyV%VB?R~6N-mo#ix^s$;V?nK=HPih0A#D+FxmqCV}TO5vMtCi zlBY%3(~Qnf!Hw>Mf8q|9pI0x#;*b=o_5YV0~OsG0E9f(D!a5 z-A3?zbhEpv_^*e9gAv!MYYSNL1K-%cwjDF4r4eV1DYF`KoQDzDG!w2GSA32|i!{WS zDvTCwfAs4X%7+`Z)c|ez21)M?vN0lS56`vjDM}YyDc=+%atWpkx0cpcc zSzarfgH-x9zf?7ADwoX{PrMy<-hWDeu9S2UUC^~x&vp^??f)e5zL;69@t^X_9Z|_v zD%=c;O9YpTNLGNo{<}4V4l#zH&xn(+H!ntXomCZK0L)W`riY$ePz+#GY`DP=OZn?D z1z*VIcSO5{^JS*GU12zzChtz5zl9q&(v1%QA+jvFW~S{B_V!EdFe8O7ru4Si|*+}v8Dc1ZP{)m(zu8TsgjOO>RC_}Uj^6rGA`yT4l+ZQ*jjW5+W-yLfbTM=N)df1+ zGhJ`j(~{G-I?H6v&_zl~>Pb=uzj?cpa;}_!PwdYP00@dc z@Rzso8F~FFW61^he9B{1#1gx7%%3gmPc8ZkQDO&Z);8@>9+npz%=(k)wC#>%IR!u5 zU3kB^Q@LH;oiOXyE;F#_n)d+^aoyJ@i_2E0_N0^Sn{;Lk&Jq+z-eN~ZS2JEe~M^j&!8i5kpbwMVIB2*S(A zKJse)VEMC|h3uoIl`3wEIxa*Qqh;W(0w);JzVj)Fn1AJ3e6a!E^vygqmmv~@5rE?> zQ6I4(fgwR^@9-q=HXmQ2uEcbWT8n!vdbMjx3;$N$lJ*Bh6!pDHfO6z(A5n?VNzA{A zagqJPewS4ysXMFy@FJ6SN(jNO>SpVe=$O7@bZhPy-BsB~!^tDvj43jvn>i9xzk=x0 zY=4OVRWHQhvD7E{TyHweS3=NwQ5vTpQHFG^zRE62nf6!VRlxJJ53xe0DAbc2*=kgH z?AN@S1wV`@n60el6<3z1Ca5R{xTGJcB%up!nog2Hx_;JEzj7 zbi{38uX9b{9OAC!GaZ%H;%oj*?9neaD!~3G;4FC=vt6#Ul+lQ0Iuiq!LGYJVzrDgw zM_pX*;3L>%m>h(Rm)%#x8XK%9{K{9NS_}4mKi!+v{r#V8H~@H-dhC3m3INE9Vk97p z81RXGO96mdE;EI99cU8rDC9Oo^j_?*re>3YGAnO|8 zI94)+l8*}Bz70yMPq5)t=4@zmDEeAe&M<9w`M=^qj0Le3;p}x+)VCjsE=5t%rRYUA zeIC~2C_1oARR%dQ5#w3FNYr`z5DAc`M&^~VqnO1GK>#@rO!xMY9AJC}Xf%JFDjKiC zkGj-Uy|C=J>Wzpv;yvCrO(@v9D9i`}*HOk8H#d_Wmj@N>;DuoD>_m>)CEM0nUVc=F zU(t(Q_sOWddn48?jIh)f3h4T5`yc zZl(z-;vn7M@6H7W%?O$uBd`g7I|EBPmpW(Y*Hzd9o+u?OSg#E0P%5$&p9c~ z_7p@~e&YM!-0VsQg+Qoi0giD2V=4y-2G-Gdd9^kSKw<4dhqNX%6krx4ULAa9t?Qgk zr|%xbp*IdfD#7>R@5Th675p$R5N)KmIkDwZDrg;=?0jpbrgBC>W5t zAD^yI&{U$w{!Wc&SXtjA+9lq@{%=h}^gF=~bZxxmna{Zv$t2m-=a<>@jA>Q#Ru3n> zG%+}NLnR_WfExBjh^L5-UcIyPx6C0uF}3gG>Zdn-ZtZOv|GaI@DeY|ZC*Mw@B7017 zDy3LMGD}?(!Dsy3>G3Uh=cn5xPxn$K{$}hCN1S)Z{P1V5%;v83h~2Df&x*_Mvbknb zwPi?!LrklDo6AXXp>~&&qk^pkwii=Al)hOp5^88 z{JyKv_3a<(3k`bD_(?sgd%S*yG0;G$K3w{5W0uKx`!QJCCN2UB+wds$IXve@#{PCp zM&E0QC2oJbB4Y7wIaa6SrkWRHjHB4DY_b?*UaT1^-xF`ZB$KXwAAf9Jc%?<~)k^z1 zB(SE?^2d+&TdOZui%va6O76~W*s=9QM<-K{2d1e@GSi5|H5UF61rXC?jV||Q3Mrd~ z__;SZ`bdYQ?dH{jfNI$WkMyOzQ{)>+XWkV{cnl32i0^f!2q)3spD&M zaHf!Js(oB~tUon- zPuXSA_4A5rCOx$gH~9N@`f{R*c+9oRaxof^ZWbFL`sxSTdmmi9>+x1JVKH8$$QmWo z@eMPKh|kEHD3%n~?;CeqJ&_t4dTvqIglaSJ$2FOA0r|mB9T?;I+Yo|)kKOM?ku51Q zKI{3{XRikc`T{T(0Nrs?5b|svNeoZ~CE06HYtC^6N)M3lzPtlV+%V0w2BnMD+$_D2 zka?!D=e-@*`>E>#r@6v$n^a@_m6nHX8)vRt1oCAD%ABh^=8w1M_KOWtZ12E{!F!%Ud3V*f3#2-Xi>e!E9c{8~Niq zFYDVbS-q4>eJxEt)YIlFjG8g4JjV=wV%X1Ycx9rW8Ry2quzGC13vRn6m=2rbQ$;Y9 zq=rjRwmkgP5QvSyP#Btu2_>1Jqd*$ofG&QUb*7xWZ($4Udh)R6DjoY}LSx@i@cN+U z2U^_a{*|rs$EqHL@@u`C6SUJTXxT{}US?7FKwMRelX|2rz{*F6=8jHG4Y( z<`^SGJNeNAcYqGX<;GPiVCz;Lca*Guc(SyLDL8jMM)2S&SQ`fO=6tpL_44NbtD>u8 zDovZiO~zvB6^ue`GYirS#KstDd*R|&n<};YVaFPz6#OR{NI*Z+&MlB=UTq(}90A<*>J+xBqiL+UVjX0m%2v-%u~- z@otKurl$-3qjCTgBkT!Yy{W43<&UpG0xT5?O&_`icL-W7&tmKhD<=1s50%=@*~5aj zb^GTi@qaaCtx)h47x`*gxYUFa$KZV)AxNuEg(Da)@|sWDh5Gc0r>Alqp6Og6$ewE~ zufT}vlIu^ibyV;}EngM_S}~{2u~GzxlJyJS=dy92cJEOBn7x7^Jk6$gqu>IuUA3sg z-z!dgtLKO(+1KeR-M5W)P@m+A1>9?yt(*=81>w8}}AMre$-D>o04B)b$K%aL-`?EEwhU1!bMg!z($Caf$>IY1Lr3X6fsc(GbYp0Pb4mlMUzIdcw zf6EX7vZ5J*Bd&-y20NC|pdl=HnNe#|*oFddJM^+A#m0`$$)qoM0zEojz8yJnA{yhr zNyDbRUfg~(z1h$gP2DV6U3uAF)qT31??KP9V$r|UsEC@1>7%qJC54tTL-D?N2vCp$ zK8BI-Z&XHLOw=fq^=2_6429NPpWXMT+gvQ%4u7Tt`sLv8nY8aU?$Z_9cU{C4?d?l` z-n(x9saO67QG>o<#ESDCpQM$yHp_y44fzg4B!f)PRQQDOwNglazF-f2w{9)F?0})+ zO!?CniHliXVdQ(>kO(rBz6FTU=`pUY&@3}tr_Ehcavw&SQu4QEh&j-b{PP*!l=1ia z4fe^T`<+G!Kw3)sG9s)^&_kNQkISbJ7e}zz!=z4?C`BZlr;^3+YP!06UOEcweaAsNji}h-M_|FG|r6^bXiF!{>%T(9lRgY)1 zSi{A8^!@GBXKkvT^!VabQm}0G#?w++uJM-iGDD+Q-h=6F;bw&gX-$YQiN+MgaIKlC zvL|n6*6}OalXt5xi2!+diHwxP57;0iWeOcOdV6knInFc%=+6TgWuY(J?j##wbjTt3 z#+UIs`Y%q;%g3i!fA|1?rK0@f7od68bU+I{7^SRo!_VX(}w6h;QMmbeBF%>HdL^v?JnEx>D~vVF=+&om8* zHvp~!Py@tdSSiBEd8$$=c-f;d>!Nfjc_&<*5Q~ELDun=?r-kcmFZ(Yb=6iJ=geHUz z4A)G(qLjYdl&0gW7)`~am$cHL97C-}2N)jmARd2Yb6A~_HOu0NYkd6u6kk+FK-GG< ziKk-lk!$k;x8;XNdiBM*E1(4lFJq&dR(-lL;I@F-{NNlsRD>%(LWygi*s=HCZ)oE6 z+uBw^OlGP2;O1l?I;VsRLG?6E(5*Py(m~jEbnDs8t=Rt&As&Ob=jwAztyWqP*i(Lk zf*wT35rF#4Z0tk_F8EIM^&`L8>NYz)vYNOU7wyVVJc>`T{stJ?24=*v3r+A?qq@W_ z)xokAU0dk6#0NaDN^~d3x&U8>ZGBD+<-09ZV_Kwh!cd_l>zp0lu~zwDbKZSJ*9`?F zQPE#jPOrWA>*9^Y+T}{U4pt6mILHxjS+PvX!};yxogI@XcN+7@AJvFv}9N*Kqm zP+}0dlgHaXmKeEO?9DP)@!TG`ti_#@KHjw5Uw{`u;$QoSvB3l*FzH$+py-R)Pn_fD zlr65|JWA<^s1~`YY>X|PYmpj;SohMGr9jx3OGMwsk&+jFbf2JzZ_6D&LgNSI9%eCY zA(&@>CrW?_WL|0E3kvbBIS(CGo* zA6ANvpFdcKU}%-p_wn`1F&AG4hb?Sv%tH9Vs5Y->Oo!vt%<5BKC2L#UJ({l8E;+Oa zn-{Q&bB$v9)+ZfRtNgSmQSi85-#>RfSycy#1A-|Qm|Gr=Ih4*fCA^<&-IFe+aMcY? z9Tly2)c)m~Mg6r)*K0f3xsO=&jF1aDtIZ;7;2dIUd(GUT2BQyU0^Z%}>JeJWHI z{vW1+?|HhXG|3qm-1U6SJW{jW@`D>Rp%!afh41esgr7?MR*WA2AjYe5PK9lkA7j>G zm)}r<(c#IIl3+<2O}(WYR9wrurs`{8{Z9SHT%-4yy9gP5cd&6GqM999%3^D7 zPt#(*;9ihgJ!XB6eV(^LSxDtNlg>#y=6Y2$OVFYFcduxL2ia$=L+LFyDhP6UOXq{x z%j8)fwyk4n7RJ5iX+$!y>C^lc=1G}icjm`(WBZTk+mHT;v8>vzZ>!eal-y*nb5<<} zbUB5K^ldFf77NvyD1#&u*pI3%$TLL@#fmj09?30^L0%ju79*!H==r0evRgZ@&tzHB zccn-(9X)|JbW_9jBtp9|m5k7W{k~v;P;9a;t20CqlB!k#d3IfW2`X=Yk7IyUjb!=x zUB5ug`*Td=BTzO2`49i4Or&E;NTE+N!TP7lw%cJ=035%@{c0Q^0PQ0N7=-ke4l{g> z$5HkTjyqu}L27K)MIZOK9$tOjXbw5E4NjDzK~l*^NnSx-GH=8oCQ^0xv3qCfD0BA`B@6EVAfe`NccG~*0+wb39jcDUX*J162NL;suP@C1&dc@Y_+VpR z^=aOI^{+@7)H%x6-=vP}{cy>?3fJ}dZ4;ZCpkU-4jP zq!1B_Cm%yHmx9&TUA?-rv1dESyB*yd#3z?nB*&#OYfrGTU^C+Gdjt>>E!lz2rWa&` z_bO4bL4JYQR-%?t`=dg3)%u2Tr1*7D8w-lvWVlJId7F54!A2rPBOz6L%5Li15Mo;3 zV{_Lc;y%f)D(i-rIv()jqoe$(89LrW-`k4jIgz(Qn5Lwtoj_pGu|;}pjf^n|L5^>{ zI$N+s1;tCu9G+LUFMu)?9rt$MTu+0uWPN8b`;rRLl9lGJ*aMr6*9Ypo%`XCiT;JVxFfd`)Ip3UoEBB%X6^HQnUDZEhk*4~n31RM^`(PLz zoE1t3bl0x*TIn_(ty6uNW-A?6#(>Co=hxA6D^IK-DXG^t14~0lf8k6hyyDv9l}-K5 zo0kr~FuYdT%F?o2|E>P3q-!gabwl*!55YN@K^-^5srs|11a--UKBmwNV5y?li~>>E z49)#H2@L4|BMbd{ALFN)83iJ-myP3~2qFgh%xxk6kR?-ql9N*ry~J5tQb`hWNg7hn z07Pl5cQe>)+B4Em6(dS4i4Qs+al?NSk_#TJoFtXO6Cik6!lr_p&+i6O;~ zxpMd1VOY|*WwNsT^y%COGo>1_lMzyc- zX|Df89~%U3!hx;yyhrSB=FTf_@|%cRylM_g6E2-jjUvMCv+3utj@n>bZXvl>I8^U+ zc7)3*BesSpDbVe9NDLQBy1jm&385;6=S5TF)z`r&R>6SNtbv3Y?d;H>0Tc#0UUDE4r$Ux)?-LRIp3wR zZA8e!*q?mfU+TN1D^2+8QPoTkM7-296T&r03mvUA3ZnUS4zGr42_xF)IN^IMiWfwIx4i%goBT6!Y!Ao9{P{ zpSBvItoULnPhfx{hO`()?1fq~J>;$JDZmOs=__V{7xJgFw3O#W94p-B%8;*Aj0dG+ z+EXO`TOj|V&`u0aDp@Khxa%6KqiPcv*L8eFdXKX-{@_|Df`5@QZ(XG9zVZ5gRH7RZ z#uM>M>O-UTkMtkxg}goV&oYqR-!(%eSS3rfSrMi2icl=yW<7?lswGAkH5+?JR-Z30)Co0tIM|2veC(4+ z656tjmQhBERvrR$s&x`Wu=aVl@JN#XMwBhbm3BUPp(w1+Y3F?F=^y7Xsc}ijZng}s z3*g{XQlkyy-)%7#Hi8AdFYsYg>ik)1%DBNSpore^1%w%EWWsnz^)4fy23u6&j}c4N zPMia&oad+^%pfN;{L^P=syaqPJ2HJjE8*2EF$4UN(>PFwp#8JgYIEU1-hF&yifn)r zmv6wI+uK7R5}{_mE9q}yYJdG^-I-n4rby=k>B-vSLDf)Dqg96VvAfaF^s`%D4V33L z{&V5XtecygmpN3MunJ<^npcZuhc~V_>qEtOdtprhHW?R6p;oeIV|N{otIzlICL*qL zOOZsjF7G!E(ldts)fOtyqumxANM2Q3KNxeTw91-tc5S=6+){F{o_u)k_w~=OW2qkp z+Z4;k)Px{NHvHMBg>jPP>L7I!pZ&N)-s^7*Ca=icU->2v zgxsSBM;UF7zhYw|Ik+f)lNcp+vgdf&S&?Pky;4xCF#=mDU!$Sfz!tPZt>AWVG3p^e z3!xk1{gX7Q_@LsYCFg4t_W;WGlw6Oty(S5)sJN~39Djb*OYiu?zk$-2_3w>7U&!9| z$U!qt#m%B+YQffB&-Qcqzr*2SD8>W_RNy_(K8HA_I4+i(M=9G%{p#&MapPz0ZXbH~ z*lYiTriT+;Bn&d+rsMm-?$3q^c&=4ZIYv^8%@QH88JjCCe|$IJr@AQsF_2J@lBXH( z`c3?8v3EmcCtIc#`<^&|*0Lbnuyqn8o( zq4YhE+lyux>Bov3aq1>#>zG-(Pn*<}`5c2IzfAvD`$%f$At{=oEqzaI$RG(Q5#$SJi{{ z4RR1#b$PNgydl3uUdG2hwve&~WBq#M`HD6TF^_l$3D2)$R6ko>6=9L#xglWlyq|d5 zSgz#{*EnIC-N{HP(hk{tHXVK=;2M8nG-z$##`2wA4rXodMMv$va>z(x@Vs`{7xA@V zcW9|BdKUb8n{B)@?1|!L_F=?RR#iszZZo&}iJM7%VruuO>+(#0Id$HUaP{F>J6vXs z2J{-BC$ZYHvZ{YVPLL!Dqwx)bD%X8;t>bT>vu=oXZfNdfyT%s?^-RwgHwF!_Wr%@q zUARGf&wA6=Dg6Q_Ud1E_B`e>}Ol~2B-J^23uu}OY-jJE1U1MlAT3w5TVhE$Q4mS~X zak0!ai;9S9?gF`mymPKuez5E3*{AX<;MV9B|{*K7v(yHkIz6&hIJ!}`RagmNKo<0Je*Zg)G=`D@VlVVp9!0ihZpAz;- zCUhX1f~J~|z0`14gNG(5#3Cq*DbhL*)Bj)~`?)!;PS~~vR5oQ~lM$L)&A*2F7Dv~T z8~OC7&n%{t3n+(}$UBii0QoOLis`2g#s?g*-vYbc2Qj+uQ`z=~9&dfptRjZq-9MEk zkJR3jYRBE@@V0h@qcWw&D?G#%s8n~BVs+jDtKtVm8~pk6e>0Hh=%dW~dtKG^9f`y9 zfd;Tlj)0D;8V2|VDf^})5FQti3a<`>qrzr4v{?1S1aUj58TGav8Fm!rBN*tykws1H z5{i3sSL3x<4cI@ygh|pzuHguKRF&%aA04;vkDsY6+efB~z@|-0DS^w(2#wIg@%m>K zFw}lKtlbh~u%fT`$D*8R8*LE}j}6|}+pCYgcOQgxPoUOvcUFhb|6W|~ln)Q#FVF2B_@QKLiZGI3YM-=A z=d7hfi)9M7>NM)o(dM|LKJVx4>nkhAmFVWje*y>JNbV^amsTP|NhqCQGuZh2#r9P4 z!#0+ehCipnL`hU-qrMZZl_wvttmI8IHGeSuWK8C#!9lHkmoGfo z@+Ttg;pXIdroGX`y18&{7PQgi1g66*~vFATV334Pbp1t z!WlrJ7*!=){GaiET*xmtfej^l{DF9ETKsF}(9lkJ@wdQ8Y?zsudYFTS8I@Y%da<3R zPPx$aplISM4C^{$74kaxUI6H1s57m(?i@RtCd>`1@)d(p{b=ht2{D|VAh+& zUtO%CWn_PELr^xA93lGbFn)LTC6DJ0@Iknol?x@C(ncG(R2p&J9fa(U(0MsK$3=sG zvmWA{ms15&DyH|cV@QF)vM{7K9anWG8&`Zqz+-%pCiv@-JSWv5tQ{$rV=rc;jtraX zrYz>P{jj^JAM709Os47uxl0HQJ6y5aJW2`ksNP^>G-JSg%su^e5xuzi-r;0vkF|UV)-Hu=J zixS8VUM3G$hc_VreVLi59t?RRUwZiZ+Da#*&kLl+BtE6~{-nS*sX4InvLxJUXtC`ka_;_$lvdd_b{nA49vW13XKof3MgB$VFM(rHYq948 z5A$(FpN5F{l5jzqMzgKP?>6p>kXNj4|OK;-26wEeFpf;sP`GblUeise><+vdc;-hOCa|ZHu>Pi!~vFbK& zr;+J@XTIu=``^cENjPH4wQ)33ySkI$(d8^uyI{GsAGA+uSmgStxCtlYlVmDVj(?6B ziL|{uHBDBC;h48B()Sp=x#8s7N|0NF#wR7aw$Q)ZC7rj+^PgUraQa;`M&K0HxsxbB zuAWd*Cbn{=wU?5~aaNx>d15J&>Q%NcN@>acv;qoDC{YkyRXdHH43`Dbzo4enu+<8o z*(eD0EXf!=)`e>5xCiNx=BpZ^N-foBJU%FqTT~r=`|;Hpmj9~IEM@2l*IHB?U4CeZO28XEuGbl z6raPr*Avg@c8#r1edPhFk9Hs@0p|S4px@?NPnTWgFJ7zOf(jLO$06z+5)rE>4?C2M zL|>31kt-D3a;Ps3(r;iuO;*|(Dd-CpIymVJBHVQw!M)1m7l9jxpQvK;Z^W#48gRqU zd}zrJQY_|&IfhkgvAvA&_67%gKRxd^cyByDZ}dGhJd6o@%?ZnQG4$$8&a^aU@mOIZUNv6uysjxO$?+3TL4#+oHUnggqBKbI3D zFc%zdHrD9X!*QBL;8E~*P!`ZrcO4u1e%g3#(DqcyD=eXjxRmhxUsXxrg5mAnglX)sMQ#kOt@O* zi%%cF7_K;Jivd+kX?guGG8dbm(E$YtW_=Kj%u_eFBKNTw!5Ea0~UZ~MMD?L&dJDNdt+Z>#12gRg>_Qcpa= ztHkonss7QdP*JH(lLmwLBh2D1pxjT^OC@3E+sO)?_%VZP8&*=YLEljNTN!*fKIQ1nnRGXxK7-foHZ zJ2tAClv7j+hO@NQF!#vE_Eu}66NR1CoR9RH_)lsYV6frE`|ok|rKkB#$s+=1;rKqz zM9I@!XwFR+VIG~2WyI~XHx;V;$ytP{;HRDC%O zg|tI3;ajHUkEMQ0d|IUBD$Xcm-7rbkyyC_HL&d=*gCfirXu$G(1z1h%y2JOEB3(Y^ zl>?oTvU!?O%d%1@?3Wwz%u`@0MfJ|^6_;RQFoSIQn|Dy9&d?OY%_kTKV^Y5}bGU5EJId^Ths^TDK=u~oHlCNsKjym~`O2f|HGFHCHPNE)YnFEi zJfutt-VlW#5U8rON7L}{Q$;xuq)?t#`px= zmA`{OYy1cI2%YL99(r0`;$%997R^2@JWc@=A7|CnYwGJsTt7;z*!E>dKs|he(-L|j zcNQ9)62%rRiX>bV<=UB?GN#vvwN-;>wR)I5z(inRkRxas^6UF5HhbxxyQ$6*N)Ju} z$e24wpvkrMqUXK4tzr1vX+u*6e3u+o-PHfl07tJ4Q4@p1RQQiPx|CH=D!yiVl9x&~T+g(aG-~7iq+oJmE z6&{2DZztl&MWs~1G=7Ai)Fb)dNcI%b*K)qR2M`)iu!Fhnzp5$Sm@kZp;nO(?pZ(pg z#^I^D50f`W1O37r`@=9n63ML6wI4zZchVZF-1)*>>oLcXv_LDFar`T#j5nT_6qYBk z2>j-BN`v-^B&E)l)$D0Y6dGXC=Ir{sMi|sY+$`c*TC(y-(G=|K@!p+E5{-e z&KgTz>B7Zhp(a6Z24k)zMqE}7fa^uhZ7`*Jk&x-X>ecU14(#qcG+3OdRGT`Xy%Za> z)B8r;OE!Bo?2fp*W?hX6N&2r~K*l^Ec^+G79GK1W2`>sB`lEsrqNCBLu;>1Zoba*& z@BJ6Fh_P=0-!ckMx{qdPnOumkH8j|xbiyKxmX1U>>1#`PClApJ%pgrC1M&rXADWmI z&u%2TI0gA6sHv8ZEwiV!M&ei z-KTl@R7Z)xwoliD&mXT(1}-xym#=Sbo}PqKzA@XU%DokQeP#BUa2O8()uoM4tlOtI z&^@z;XNHA9Kz!E)A|@KKaHx*{$_7Y4_ARq5t8Sg`1NS+H0jNKp*Gu*imTVY z=Onu#1yvhEl@B8CYRP#KVf6OtfE(5Hf1iRsGIf)6_sOsO?G7Izt*6TMcr!4R21z>d zOvlM_tIaiN=DY6R|C_YE=2WCET;9%1X@*`VIh^^v2RA2mowZZqlB1O!K{-<-HKBe+;AFYSMqF zqA+Xu!qX0~eH5{1f6X;jW0Ok?j{t3XAa>+EVN-Xz8Sqi(<@vzrb-v(Rb1`d2irIrS z_+2uCg5)Be`IEiCTyhv5SY)ZK#j}ih(a>`SJG{qj89PaRkTdFA15);#JWQN=54{xP=NHp;l_v=T4SxbT9`rxFkIS!W z*2Qve9zmb;e7z1z|NQk7BdNs6(e5bC+f-DGZ0)us$VuDnhyGwp!6&Ij>Yd6(=xOVl z%z}B%D+(@TVhRP=GJy4i8*XNnC(y>a_U8H~_yqfu%z+y6?>ITN!d^njm)fN!dga_)?U9qm2+NEL#%@FCf zV`!Kxw+nqm_*G3MK&H9EYh$@mr-;Y@;=VEfvl(qC_UHG9<1s_tTlLOnSzM=a9u4U~ zogF-J`&VlAd419I*s*Y23G83S6I&Z?MitX$R7x$dyK(YmxPGjy+22J-#>l6ACv)bR5NqT?z132Ir;+%Pj8VZ7M< z%5E@_7;FKXYAaf}i}$LE%JOjFvAXD)T0ft+@tQ6yPADCwiX{)-CGvGY!wyIscJv|- zw{74D$1!Z`nK)>VZHWFdr6Na#ghaOOksep-^Am|sAN_aYdO3cBYh$wYweetU!~5{r zlG1^nw2O#~V299Eolj&ezT!piNJp;yL}h-nNXmDCyECb6Fa#NMk;l;(3Wn_}>7lv) zZi0yxjJ%msc8a0?v(tWwW!$kOn@qm&!y~b9V|Abv%^=5+Z%D1e0=HstQ={R=NF&=G zuydyXF!1I#|MDyQ0WKs8wU+}$Rxv8HPcXIE%X!*?@6=|$k15>iRo(=pPk(24dPmz% zpj@p$2cw%8OiB*?v2DcMRB(phc(B#A+R`6ipf*|5tl-u{(q}nHfNO@YSrgg3bo8fZ zD(B$4;|h~{)d95w!td1+KRW=6W6e3}8|NZo^{|}-D=Yu9VdM6UQ+MZ4Mm9R1H|ZZ+ z1pPzH$DB|(xf_a(uqGoMDf$6~&dMFM5pPhuin1V_P(7VxQSpp|D^mNce{zccjqE#F z-9f>XwuCfS#DF3JxVriGY z?lV1*Cm(AVpjUwKRl6~I>>@IMa=FMAaeqpC*(b@uH5t~R6fC0Q;6N-1xw8qwnM3N~ zsJB1J^miUF*4M|>U)I-;z4bixBIe&Q1>4CGDj*XK_ehZe2!LO-%X-7Zmum>sUv_YV z)>kt!Jn=RX``bS>kE~jT>>`k-|I2X~qG#%vqQtR_ztB}gaDJxmYDXcXkWqq_W>UfKFEbQ+CIHCSQVe$JK|{(RNT>9J^9^rVMBL_p0(t0;K^It^LVix>q!XGHRRx27C3HEjtwWLib-YWr%(HC2rEn5KE&TB(MG}@n!{E}AypXg4dlb)d3)!9QS|0S*1~f4Wg@~vHNb)YsB}^| zGV*ukbY~r0da9ohaGnl5m_V}xq|lS3(MK3qP^aN`Rd)>fni~bhO_yRS{`_TMu;R1J zZ@Hh{MDN33zTwjxeH(|nI66Fe*Ye1O%s{G7YF}Sm6-+n$hCiXjvvEE#oeG61b&B)Y zDc_hTKu_#YtWPh@!PESqO9c05IqDE!G_fF$PU~h7MHIV>ft7;;Np)xZ6l8X|qKfda zl8`RDOx8K6mW8@>68r%1hVXj1eOjjKQ{yi?;y-|ob%;j z*+}f0TrNnoHfEtHoy4S{5-fn<(O*X%wFNsVYp9cmN_2@0iP^J(6$jXEMAcIE;5uO= zqOM)5*unAecB$6I*%pqS!Gx^Udgol>6$#c*gKcr}-&1FP{8;ZD5*WowRt^p-;w~BG z*4NBXJIF}|k^=m3=r9@RQ2Dc|l#!Iy=;u8xNRNe+pZW7~{}%ugLF~R_ye-Aw-x$JU z&Mxk`Tm@ffW{ADSUantm(^xKx4a-oHB5=t%?aOYH{DaZ;(hcGA*)S~Qavg893~m-g z6p0?pJl(XW;9pPC&4mD%Etnk$4n#fCidh1QaGLb-etP?I`*=4x+b&cE zna1M&y$$9jQ=4{W_n7)c;J}sRR?JM9X}`@9!jt#j&nZ3L-Ikm~jE{G>+lPB(ou|B6 zI5@8DOR}!bsxD>Ltc0r_H94)%g>`AxOt0(RC1cv+Kko2UAj24J$GJ0AUDwrlw><0o zV6?#mrC3ht3SF*Q50H`(z~-YAvnfS8a`$&~{-Ez&EoH|nNofW^_)DMWZ(7(dpS6FZ z>z7lU;uQa%M@A|aHVOHKfYNFrC&@4AN*5j1N76RQLcotT>6s(f-Zbke)D zV`R5hYMos{kYI4p(hor0BwN#Dyo%ri?KwZ@kyfVIi_?s3jpbR49p_0Ua5u>E zEV|5QzmV8V9Hbw@u#6@cO+9;o6BHUBW%QiQjEDl!!2Di}09MR5rA%hrbfxEu1^_1D zykvGGoQ3CjL_(CzT&8A5?g;3KcB*$&ZqNS`lx_3Gilg>q2Dmo>{hR%1oQPDUao|pWMIsRIXkuVkgtST)kLaJR69> z+_6yXBn0kyfe*b@yJ--^aS4O@glcIODB3FUZEEfm&CAM5T75Tf^z2%Ql4@wEJ%}71 z7on@?i;Jhjz3Nugm!6tMku&B;)$5!~dvYA1=d);gX=rh> zAR4NWq7pH>Aq=Z1)hktoRfyfJ*zRO@ngv@NtD4b8PsTm5CUPhoaQ2O(LW&tqEZK5W zr?fi`=p=VLWV&!A82~Og;{p_Rp7IT;~;HZ=3r&fK&?+x?W-zIMA>N z%d^-GAw+RQc4xR-8};=!jM*i9Y6~Rx;@nqN9k+Sf7jiB8z;3~WqvXTCB9Ra7xnu5( z$jw*7e=eCqv=I4O2utR>Qhq*7jwF)C_YKc2~6~4&&5ysLn+7 zU!Ybw1Ma2F40r!PH;*$qyon8AKVax>-PK37CX>@N@CCt{+Jo|UfGgl$zx;I%DyS86 zw}8?g)ZWX&HQZfQCL2=IaG%TuqS5R+=T|us&@%_3O({%tDMBI=xL?TnvQJZ)_GQ1# zC99Y2C0og5zfJpXzI(fO+V%RfkDa7Rb1LILFBam&E9af1#t@ma$x3mv`iUYy%zCdX zflA0?>IM;^{WfpzC*p1z#|Xqumg~4Yi?I`G7D?QA*%o=+=bY8On*GzMY9TTa?KUaI zxVpGV&~v8+`V~y{pxc!BdsgCE^gx1zN%7}wQ>i@$ozE;O#H55%>0HQ zHtFhRM>vuNA|@d>YCf2%`AaO<@$70?u45b|MAlLf@-&udELYDLz6RNytNBnm_%jgE z+#%4Td01=d`<%N|lhLQ@o%KzI+)p%_Q=H-y|3qTmj%-dRfRb}5rGZ+e#fTwHr5v~^ zIa?{FY7))VVlU(}iNakkp<@X=-?Q3tyPAQ`=s6JqF1lD@A2njBV^YA3h*zDG!!eSf z%Cf^8h?n`+*vJM|hWx+Rzm%E>Sn`gD8sK8|eoY#EzK**3xiM4h zM1z-IE{H*}s$e;+A`^wk%ky~tWLU0a*9!%jRNefhD#`%G%%?v`RhJEMXwu9=6J&oP zqGqGnUbQFMl3PeIVBieO1PnwA=FnvNa-%!+M9hpcFB5o`PZB6|8B4UUDk6d zg^4r-7f9SaeR@zqEXCzz!hRoCE7|WkCFjwLD{p>b81NKdU&uHPH#gne4<`IB!u=>a z?BCCn^ZFyk{Z{pL&OaW<-+zC(drX`ADNQ<=J(RK_T8O+CAsZG#-Q`ec>*|Dn#!;Yv2n<>ST_g}9&X2JESJw;?6=!AmfP3+ zX`kP|+`jjn^#{Lxc6K!o(+o!Ys&wat1Be04iL?m0)kL*iZo3oJY@KG)RGKmFqiosC zGT`>AfylkexJ}zEo(y~ue>_dMr97&}HZF82@+5>m+H4F6K(d3As^{mPsF$YyX$^Lt zJ8F8gkj$l<1 zN)>6D8L2hj&8f_Ulr*a9AsdDnKr9Y#qEgPa=GXQ1IisBh*Nt%jJ7Wjj8KfdrK*ayj z>D#WW4xmnqHh^kAurKsm>pk!I*4^&Vs5Ot(`~*ig@J2zMZ<_>gXmC3Kf-B^(gxbjn zEP=Wq49g&aot|Tcevku|sIpwCy@{B?LIOEq2Zrrq(qf@w5n8T0W<0vp6A&6y+E;8H zaK#%p%rr0~O-2N*93nTQGKtm;eLKeFR_}l`;8lpaW~u6>LNfc)-EJk~!XpM)UZX4l zf(D?6Y{3aULPqeu{*!CVfT0~URLs3>p&hiVfIBCY1_tmf~5}Ec<>)I%lqj9o|0xmGaY;*a5aYewbV9Qq`8JX#3G@!l6v8EBRfL zJLwnGs)k>i5~u?iiUEo;RKT4llnG@>wD)&pQXND_v)fYM=B#F3CXK2~<~`B52!L)8 zVwd_wSe|wLG7O90_FvOj#%)STA8*H-SG&8n`>W@R*h`2!?Q$AIKbW*k(RnMCv1L}; zL?oMW8_aYF{;`w`k($2(3+B!3l#}M9@bb7!UC+z&4rU>8zX)#M3a8`wGFL;wVinit zUD_8G;y@v=J5Rtsw7mX&hr08S1X*8R`DMJnxlYsQ!}0<;SS9-oTagP>Bd)t_UGIJj zszCLfZhtaY`)!EF_u97VXHWz4ERNL%B#3FT?z%xj$04xQIsv{NF%yVPEv4cLGY#qR zJ+-0jLf+8QchmHPr2gF1oOi5mw4Mxr_QCvRAN(skkW-xE6#v|#!PwT2lX{;bc3>9C zYx%>Xy@{yX5rv?^AS0;20;O}FCIU=EL*V9+WTuV|( zqx?4@MY=%$8q<~b_W<7Jd|%3&oG+dYtMhJk-u*NsA-W9VMF?jizuEVXFLyur%jX&RJ4|?9spd^}b&+ zub3UMx%TX7*V0P0kxtM+7GGO$C8y4eSFhpD*^??Dht+lYZeg4IrY={_Y;w zIMkn$UcL7|fLA|%_4I?~xXVPrMOj_C7QQ*L502LYyjEz{lDhKs+`TLkO|>Lz#2|nG z|J3^0PegLCYL+n&b2%+oy zlJkD^Xl5m6Kv{U^M^}LYCTa?j-5^~bV#i(Y(%~E;OB0h3IpFLdzuRHHBUR!_W7JUN zSj@tRj+;+o(W>I&mPF8^4!e7TTU=w28$LxyPDp9m=ncO*x=aAnzz(8XDNuz}a(e~I zJb|8-A8Y5iCFS$e9oI)QDV3UrL+w`ky;|E_G}kIkUc#FTM@QFwBrvth4uEj+bO5S0 zbk~bt>XLL=2G8l8fva_L79fPVRxvwtUaVyaY9$+>X52Z|I$*d>x z9)4+HpUY&|{D=rZPKpZns+M+HBA<8iUI=?t&UvE>*Xafp%mHv5Fqn-E?R_l8DLlw4 zXb0JYM^LV4I~7m{XV3#k516|(d6}x`9#Q(rbLWIIpbVAkT^0xn)ggs5%GpWou1D$G zGE|DBbWocC99}n7zqn{1`vGmA{dR0-s^fs3*U5`o-_}Q}qM3cQkN)428PtE``LXYG zX}6 z-M)DpLSzZkI65I*wS?F`-adM55F|USHc9uc7j9^Kqq9`Z#%81m^|m!LY0OX&t$Bk~Q$YN-XVp5jB`*NL3<%X0 z?-zH*$1`C7P}GbllQzn~7H++wD zjH z?Tq(@FF1jTy3K}Ds>v<0hM-atGiK(wemKR~6g*AC-QDWdD^7{BC}g5M*}2G)`BLP2eLuY!Z$96C^k1%F_-=poVi9jjxykv#>unQP;5L_Uo1cNdH296lO^rN4MGTs~jKP7Hag`dG?s&aQ9S zF?U2O<`BYNDIb2gzQ5l4Tu3*Bei6J?cK&o=q5t&1{47mHLN}~}`$i0?MXZ(1-_h23TS?uRiFL- z?S8k-X)NufN#qCz@+8?M8kms2B<4{23iSyO|3JhHB|`$7iW0e10u^=gEIcP|#ShJl zR3=jfl#YlkHG|hS!sa(-HFF~=ZwYu8!J4_NwHiya9ZNtm!Przun&+wK_kJabz|1b% zPK4OYTo1U|Tq#Pe&0({gg_G-RY2YP_7PyilpZ%T2=Jg*r%3+ajedb`bL zFH`z>nqDWx^c2%GfY4ooGQtM3LwN8chCmD~oBxxUWlXd3U9xK*#4{IHNf*$eV(#e@ zW$+&@U0Uf?dz2yNbCiJ!Ip7|~(V6cDEWQEp^?Mh2cf$MpNo<1bm{IpSOVFt6?Z?)P zQ6e(txuE)Do;0KRX691$mGAA|umi7GYmBO+~ne(JtNr`lzZvX11J@ z*;UT($M|{9zqeStALEMU`h^V3NQ6?fq`Hnmyqq!K7ZVKES?`kUs1`5-e>a^s1TRRWvp@+_Le z2kk>~n5HiVG*3Ce3|{jSz{0K!v)|?2W6DWO*8A&m_n5x*y|d>Zu6a?_s7lh?H~Y6Q zx6izCD6RkiAOJ~3K~%oAJiF*Go)0CfF){nn7UJreA%RELa>S7_J2q}TVDA3251?eL zjfQV(*jFh_PC5H2PH~D~VYqElRUtH&?UO*&SILtHcfe+Z$i&q=sb2(7*ZtlRnu`f= zm`PPN6quUCnr%>ZkO2&?R0BW)notCYzyu?>I)XJHBePlN5oT2lS&K0fxGB!efW8yP zvl){yl{#!$ja6qhf;L7AfL5X$dhdp&>)1L2L`PaTK#1J+LPT@&3BW1pX)LO)+RS{M zZ>ymV!p^o#s+Fcws&1s_semd_4nrxbN?cr`?I2!Liq1zqR~ba8`AL=3=h#aK)#<7m zLe<{!u~a4#1|esSETOqj($Njtuc-^QNB3eOVrDjb7J@_V3jDB?$?V7D_@n*)&vl2g zz;vaYitNlRHy&{Sc4k84auyraCG&y^KFrD-h*r$m?C$bsZ`S`I?cOgx{~z)2TTlT{ zAO#hWLN^&*!@f^u3+5&9&BJv2X8+!I z&SEbm>xIN04#Ur;>19ffH@}PAI}Zr}r_^mWf8UXqh~w|2>omsc>3kxw$o_I>}}33b1r^7&D8f%^=Swlr62sOXD;!SvrhX`7j@Ct z%YXkr{pNm?x102Ez5mNUe!D&oXIK5(m)m|3)|Y)h1T8l1avDh@cfHJG+2n)Ytz%|t zSu0J)A&Unq420HHblMP^3DH1gK(aa?&rTg9QeaYb-q?!}-V1Ts=e*ZXKYe((9)Ih< ze)iV^uTrY!Sj@k-SnNLAb?>i#JdS_9+r^YhBe3t={Bdfq`xlbc*`}hx>qq}Z+cET) zPHz8y7pK(y>x~oOeu`6kY=aO@&lat2GW@@tmCNL{A zI#<19O-VUv>^Pov-5?ITb6`i?J-KuU>{vqv2R6&hZSi9<5E$h1ot5t0xb0drO}g9W z{bQQO;^NCJ#8ky<<`b_pc|Byh_2^-x94Ij}_k?(6viRdk$yBVAYN`aXN~JG0i>NSL zy+c z`v@HP?EYJ7F!%g0Zx|HPG{Hw}iQqf%_Aw2sAW>#YtT`aab(~FtS7}7WEFw>Zh0WA; z^I?@Un}}3(bG|DD=@R)2P>_KVWCz(o_5*Vy3M~_I zzJM$8SxZ*T+0#}0PBU*u8BvC6peiFuU-5U@)n96lv_%=L3`GZ&-b9@I&ZQir-g5?# zl~Vu7A$8RQfc}dp!S(mEIcody@O7Lp9X-RGPE|5SCGs=Kt$zO=DAYen4!$cJb@d#1 z0*~McIzUI1Y2xis&<)ZJLQFAoO4{{Ol9}qX&yRQ0 zG?soDE}tzz|N)qZU&wrKkvN zFe2&~%bcd|!$VG!siw4BtfHz>K_MeHGty$jL4+#_uq`z6#-1T`+z)bS3L1=@;%D=+ z^V;48;vH(=Z}WbWKv=9IvHIVpu>jCwyT^3>`F7mpMM{mRz*o4{!HGc62>>CqiRe0@}d+@LFP)>1*Q~a|I zXI~$q?IA|b%zbzE`+}pl!z#wEjgtxkD8&GiKy|wHKz}@7Gpa_}T-e2TcVSOr>%c1t zn8_6HNS|4Q(a{*)l`LL?Z+hn(>U<}F*2pygMPbrX9tO8@E&z%qGgn^@XvvQQ=pF~7 zAR;2F^6utE3S}`)N*TmNxsHF8V%l^XEVO*pCrW3Jr83K}qm2ky$yTc3JWNrb&NrW# z>{d{j|1=jh_2A8{PNWiAHCB^x7V;eaFwSf5X6{zuKW4HvbLM&G?6%@pgo(JpkNUCfS%RnM45Rbh@T8S{3)nFxSlcC&by);~sG zV|oezlxr?Z1`SA;!`)qfe;;-`V>TiZaZ4m?8LWypE!tVqrR!z`B>LrV#HaX0A=4E0 z`~Lo3MPLDW<=pn$QrrjiI_GTmsJdpp$$7P0CbKJ%+t<7OCa=!B_rAOCdRadi{&c(j z=`>xJGMXW;!!)_@rjw2SpAJHmo$;NL%f3TKnEY@Uz7^wbDHpw5JRQ!i`oGxiUg!L` z<5O z7Z$pDvFLg!MJa)ZNT|5RX`s+m?J1)we+ode!q6>*2dVXGfpY`NwRVZjjEO=cqX;13JH|K{<9%z+ zwKr@Qizcx5H!|7GHNUD^HEYhQdd4%J@eIU0FlIpvqAWcbkik9?lQD_3i4u zv+GmlMs-NE?HuoQW$n(l?dKPZYcbk+C#n%KsM_$@u;RVBOa`-N>xN78v*P&--;bdC zw=|9j_oFz9TZ*iiv}-ZP2!>FJ`d(E4h#`cwRU=1P5{&FkGx7z>7$sMb_v8x0_W}xK z?W)>WLvIYYb4$DS)!C}Kfh(E4K#$!`ErW@HHVmoRIg(k0B}NIYgqGWR>{n`Bg%-hwuHp)D$g<2&AN`<2QXQ>W?J$!lfHNHLh$Rf7qn622@b8G4lNa zqKc55C|NsZ8!&|kxCOX{C#jJvsW6Se{Z(Z< z#;O-Xur9wwq#x;S9eD*xpjptVs0Y_%!o31FUlQ(akvwO(2C11gL28U@g!__wMR0EhqTu~O+E?!v7W}q5FNUa-e4WkOI zO%P!n1OWiE%tAy7;vAah9TA)$T{5dbD7(za%2$B- z?8`ryXqw?cK#C&j9RYyz2v#Qs1X5H0MB&w$qf1Ua3rl)*(KGgmQwFd( z@aaE!Sp^$~s(=UrfCQ8VH34KpMM&Ala-|-qFZ)xIKV;fG_IG>)L=2tv@2cID0U$=P zVM{TidKa;*mz4mUk}7F*YPOD4RY?n+Or*|12=-N(w>zpL^Af}!-DhtpFh=S+*S5ZGu`4yK3lFEv zyUdqD*kisJ!i;(3oOy_E00F_p^M{unKU9Ums3=d?mqWNRolcl9hOnEIPiqu{>pBX- zlA!0>hy2sB?-ZFKti$ZyR(l*tWLQy(j z5F&J}z92-jj&N5HdNi8b(h$=gS;fnG$E^WZGDo@Q+_2NDSLUjE=H7Jx;2<2uA#{=3 z1vm3plr)=kPd>a~*8age29LGvw)ZDydj7w5U;JYy_v4}waR6qoYL&;NZCB+L*T>#c z#yA23pyx!T&*Ky62)ci3Bqa108UdCX?d%}~84Ab1UBg`y+lIR) za<5XcS)*z1%rzy0(Iw%w!gXq<+HX8Gn3em8V0vv^SXePBQp>6^P!NP*&O8yB zix9wZ?*{`{l+?8hCQUN;c~BKFH;=;6hI0lZtRs)|+|&`#PK-}?-4k6G!wBLS)PeQ$ zQ2^>3Nr_k!c|=t$5JyBcrQc9cEwbo;%{dQ1hzHE9$^Zponl}Zypxr14Qh`+9=PPRW z26&JNce8qzTK#~zRvM5I?lCF=#YoP%)k#qHE##d6Rq6+>uAGhOk2&#DTg9k$BF*Hx z_TH$^5?1=9+z2UBvxte@MQwO2)roUA!W{!(=={{F+QZt4iJ1V*QgDxX zT)JxD%gWV5KNuIzQ8N#Ht~)#IRCPEm7PAloJ5PgAF&G!VpwM#Y7%LCC_+j}huY4NG z+6`md$+RTaFNvrC6Xv;djq1s*Dh4hpH#_Vm`)yhIdf;6_M$ea}v#$33^j82gtg<>3 zIW$EKM>Q6^UBtHrWrK>`^S_0W?i%Hhw~^~U-Pru*&Ag<03|XsxhG(HtdoLWFjC-#Aub9-aaDT4X4-pN|UKkKbFpK`i?% z^!W_h0gkZvQ5?lle0N0V+eIXoq2&f}X{e7JlB4WB2v(Z41tcq@!H8f&gBU7kKJDo) ziQpU>X}+>`y9i`5p}@asg{`9wk_HAW{<9_072Deu6B#aL7GLJPr~li z`QdJ3Kw3nPof*~x?>r%aFI>ue0n8FMw0!;Y+*(~Fs%0oeN$rBGp+|&v5s8pDtI>Li zl&2ZxL|n5`yP#7PchdVg@n@=)LC{RTuz?oRYA~RuRZKh{@}) ztlj!{Q6}6I=(1acK;|ZM7iI#W02u_UXxDJp z@M0dCS?pRi3fMqu`iNPqC-b^ASkJ zjMP1lj|ub&cl+R|Xp^G=z>Jsy0MNWCRgjz#Ax8y(q9h~fj8bZCu^0$b%B;0$cyD{%X;=K}SruDPP-Gh{X$x#qcayjLz^be+t zg<0bmfD&1+4*U$ngA|~}+%2Murs=R6Mo>Lu-g0gxvLEAI_X$VPoFt{hT6p(0G;AUXPJhA@bAHOej-J@Ul+_g(jPY-yq*Qx?JJaf<5c(dXt_DVaCBI-P@ZPmBm zm&{~9R|ZqtEVvaM@B4nB{1Zx-YU`l?x_6xKbVbL;T$2Fku>Ly(xN;J!zZBJ1Fj*gLtF>0fJZRDXL#*e zwZBhYmrDm~%)1l?h>%F)Y7rGt$}*Ovc<;>8y)32cCOy77GQa5y#FUkpu9EW^r!#f9%{z@Bim`JU{4mCe!Ibx4*M^{7ZWm z9z77&;aUl*p_8(9+yMSnriYB!>Q}$|)i zcMq zlti9v{JPQQHVM-sHX;k>>arY_9uPvqDZfH9w~@7>530^sZ)S(MALF$cpX|Dw5TLmY zx~=?cW}ps`!L=n~foP2Iy=B?!;;o~$0~kBkiS$Z#&Mmi5l>mlBnhoEl%rOt5sYQZn zr`nNB=nBLk@DThE;t)_))b4Ro3i}Cxasi876>}kTPJydC> zf7Z+{ArtOP+8r?w?)K=vU?orokO@>!z+7L*QgO&9eA*dA6jiPOBX9r=Nxx44C;*Q- zJS0>SY0b=?2mlV4hcOO`E`$I8z9^K%Av)C!PtH?W`Lg!o4W|mtJc#JpVI@(_ezd9` zdFq-dT`_VrCaQ_b>>vag$O-`WdTMhR2OvZNn2NA!g*c4SVEzH~*}C35QHO@f69Cjh zZ}UadFCVSrB$dIkK@&_5T9fch_S$A1tHIXk7u`{m<$N+>=Ax{KNQ6aXF`eY|8W56( z4mgS8tHG#i8^|d+W(|yUF2Y3K8ck3Z^tQ4dGQZ@c~A`nCO?t0FvF-z>_qT};Lswyo0ZN{A zbmL&~^cfBG8i#H)wI;24e+M%8xo|?#hRIE3pYitc7KH?W0vU3vSSwp{M@%UIDWM7P zF&WTdx<_Y1KZE!F6;ZG*0nxrFozd*_Fp&9ArqM^s#?zI~vaFub^xY!#EsTH!soVi+ z@6usXHKCH}59~Nph#s+2HJZ}g_DmpbxK{x>Q;?_vKuNR?Fd|}r<02!X%OOme9pXYH z#1TjZJOm!X;&z}0x?|8Df9lw0%vEO7>_>=1H3B%qZSSwtSE1_?9>xGrL$`&q(-d~d zKyNyZYQWW8egu(J)j2`rsuG*7>3xzCi-7kD0LMrnERirk615N|!OBrQXHbmQ;b9yO z!*IB${s*9Z+5a180fa4e3z3D$9`p4W&odL^Deqr49B!W;#wZ>!s9uY)71{FsWKrzY zmv|K7U|@4lmxCR?cA!W(n~@0Dbr=rCy-48yyf**B^z_F*yI5>FXPot=5Q3@^+13JU zwkl;WZwEkt`>X0;XVJ{#^-HtaVfW=v?mYSM9+IzWbUvEIWHCc>xV~N4sb-mw4T466 z7^GRmb`k4Q0RVlAjGcD_5@k)nEP9 z=H}+Na1THF(T~3V^{>Br_39mW+;Q){_g=bm=_4Qc$cI1t;V*pQ3pcrAy?jDdgUJmt zNi57=v)~v-#AY!i`Hb4QdoVJZV^D%DXns4nyoX2H_y4njr)c6G`K;or<$Q29k3Nk`eFu z^NOm1X@Zul93-i!s!4VbY{a6dFqkk_M46R2sn-!T_k^xoyECwaB-c+M^Vv*Q;?c7Y zjP1W^(5aWDC!Kpjm8Prhw}t@Oz#Ws4Jv}f%_Wt!1scNDNQ3b57kkEqn?@j;!AOJ~3 zK~w`KLLNfPDV-5tRLUv#+2;-~$aDSvv&+EJUuw_?5POylr=41RjEvfC3;u0WboE0>S3$ z42fP;Rft%w$Z|o|0|25U(rnt^=DV@aMkOVp^#I!M4gosV+9W)xtttYvIB)$7cnGd1 z+y}q|pa@)N@|}SP;s?S5iY13&NriY1eg>eR1mHkw00Jcxv57-z?5YTbV48OTSXH<~ zKULM9TTVixM9`bnm@yD!BM@^2GOUHYf7FdXL6gRd1FiuXFhU#xMxY4D_PoQXBWhKh zs#o=h6Okcv9b<(^02SiMxhm(AR$nSAXYy+2asOH~-YCagRarYL)YZenDmMUH5&4vK zf&<`uUi6kS>7SVNT&CM95lytUP>rew%ujXQ+2e!BUh6y|LQ!SKjhPoIa8zOIC0C;= zVkcI*o9wrf{Wi3G=Zo&%K6QFAoiwvqQIvzxXnp(GWPh)j&s3CL&ru|hE1+Ey>(SV* zp+)74)>q5)5$uZVYhP9#m%Y^5Uj}oR3;+O&HuLB`Igbj^&f~%LX1d=gl;e%f(|6s& z9Glr}w6+cahkLuuJ0g1g%U_)C?>q0xs_vTRw)=+Tjmp@8y`4onkE#$l-aa)PZIo+U z^?0Moed~6`wA$jT4-xc-eW?IZRrB+K#DYA(fvSEZ;+JpeP<-%%AAHMO-tyE_Pd(%H zvuDr#*`NK{YhLr3ue#P}Kl|A?yx|RB`qGzHU;NGA{LMGL=}mw9$A3H=4!>1v-P(qZ z;=3@8(EBaKcP)AcK<6Aer>e}RmC1^0RdVL*hgC_4=8mEO;0i*>gFsgsI<4dnXv!E9 zc5qNE6%ljeoQfn2nJ~I0%XK8QE2OAdy`{9m+*C~Mp}L}BS5u|~B4D0Im>_#n&;t@A zQMuR%AsgA6g**8woAfuL-Y4Xfv?nQ%Nm}*9)T<&ALz=WCtQ>?{%shu!$&qs?s7?t` z5zUM;zpo}A8_NPTZ^AyB1Yy_9A8aRP|ui>TFV~}n7`7tL!w6HrGvrN$-z~Wy%4X(xX*kggjTgR z5pi)Su1XgN=iuwP%DA?*lm|t8+xo?#;{nX>ZFYA*Uw-LDRW%n;fIa36u))lW21J!L zE`vFj!iZ?w`)1bcUY=jSJa6am@h|V)cJKX@z1^-o?3y?|Xpi4^`|g#?;|=b6zO$+X zO~o^xhUtEbh*j;1%GuS!<nqKoi?fnFumUF zJU!dnSzLZ%(#+$=u{&Z2)BU~4zMT8a&haxt>x;ePfqMJYFa~L6fn0It*^RYhwb{&` zZh3alscO53bl>{@Z~ci7qwc zNn)Y^q^51jIgH896-1F#nSlrpfTIXYZ}Lb<;I5EidfH}w8^{IMUgxgaiBhw;-qI4x zjMu7~Me}`C#ok*JRkk9fNgr)FH+9LkFRKoDZ&34nI`tN4F6jes79Zs_13N)tj#3Rg zIFn6*^W?l?ku<_lSUCcAymxiJzFiN-1purQNyf?x0Q2CnGk+%1h@9|#v|b)uZDWy(e69l5FL#z;oM4fXcd*47j6bX4or~fEV#j$?ZtjEuAPl}ECIF)2KB?W(bkERMOhxUEg-nU zpStVr#dO*=i)J==9$Z0I+3QPas#*<)!?pGOYgdcXIfuf+5y{!-$kndZj(AbUWV4^n zb4-&ZIEt{gF2X?PXNFpk390)*S_|5fA@EP=XZYR8Ebw1^Pm5TpZJOC zbP51PQQUp^-IK}W%9Ses@PQ9};K?VS{HK5VC-Ep&FTH|BQn~Vi@anou(zs+0ANHE{33Llz%?vxhw0hs;9zv^ z8re)#D=L^iJ)_oM;VuAD6jBssFGDffGO2PRg3f7-05)Ap#W^#(G>gSB9J&x}E%v^e zOpe@UzG_sHNf-{pU{DVRT%MMVGk_6L!A~23smP;UHy06rxrkYVeqT|YYi3tM*o~1@ zcVaY4cj&eutfMxliXwWGt}=+Rs@Qu?-8XY6uR$C?Jc9vt1)}{vZR9`%5P%biWqug! zM}TAAmxz&IKJ5;!HO)MpzU!WGg)yNj93qP7orx=iu57bK^Y;7dsbbMM?WRPrc;j_xgf3$leZg4R0J99GGD(fSYuoV^tW8i*s%J zxy9o1i^Wr2w^9uR?JI2=!}o2elK-UrlIaUb7mDX?e0!k#3pS1j_wPj9T4wmQf|+0W z%2$5!lb^JIj>k-WRa9GDv~I9MDef&E+}+*X3GVLh?(XgshhPPYYjKxS+=^42;(pWr z+%v|>9wRT=$xHTHbI#A!t}kS=*cpmlsyBoWLJfelQtuBVLhp|=TOMon)&EmWj9<2i z-?o?Z4{+`-H3RlFS6g03ApKL}V|L*mL;8uoBLSx)4lX0&rMTbLDDq9!K^6)6_+rco zwRDvvmO2&}W8N-s*l^jZ|SCVLc>=v)FqC*_a`ZV^Q=~y5w#|*Bf-!n;;M{ zNVCL2;U^H$B5QOqqCGwskzs_oXy4;U(*Vl6QQ4k4%Gd5AK5LT{XK|mObmkfpy+%0% zJ7K>te<||Gpva)Jqehs>W*i|DnJ0|XFJ@aWAdJ7Uz0RFWJb9RY?;7+`p~&S2S2o5l zGB^mcttG6M3=RIehxUfuzEQ$_%Th{=F%glIMN)mt)mHhLz|j;GWq$UQF9$1NVU*0j ziy4T|n;ITUFBlon6aO>Qh$VC|EcWpt+|}&XH7cx8HE>M0n7G)ikj;liu9;h?L z#>L_@7O$kZ2y(vsUCt~b$&Eux1`n|iTi$6i{>bs40N*w)@4cqN0;1E_*!JroC;M73 zynWMh`=y%|m4+n7qLtcG2o~t9i*8(p8)$L_#2lt>u=STQ-)~Vwo>=u(+KWpOw$=5H z=-;sD4^PO|Mj~9xt_M%?hlIFpJKaBdnO^Ud7`6vI{@h%M-JSYb1CtXDK60wXQi-7^ z=yYiCEnDYh!He_fpq_r4Z76n=*zc-n^jI`jR-Ybs=L8HO728R&)JClvmx;K86iin= zRQv-fnmq8^AHy9j8c_X@#3HJqj%pqKPu8~H?&hpu0iB(l7ysJ2=gs?=QNFFm>B6U~ z!l!>#D1gBtVB^HV(rP>2(Qnsx^SU6FN(s7eMDVVGtLG{nm&xGe5`qax1>Q(Oeot4k z)&0}|8ER^WAVUpT-!LT9E~hn%<%juMEURs|>$V2eX%9^C9%eC}jix$^x=}@K^EbEb_ zo}L~omQx;H|1fN3FD;1jAw9Fq2zHyI?IQbrb9Bg?B9Z_Nt%Gtn3z-x&G2R}M7YzgZ zF}NWz4v>V5{}IYg51ixNg?>)JF=Hb;DzJfomIbB#tPc$kmWcEKfU*W1TFrW{CzVMM zK2fKn3&(j|F7k_hd~#Mux??CK3gZ;`^p{^(1fZPQCgCvQ3!N3q4m@~O#hA*P>h2bg zi^88qj(U5xx(N;avG5N=#z37$ec%169r~F6`(U;p=$zYa#K@Vi?Zf!SK(lM)+WWcl zMb>?>55@4uYdvx&DAj@K_w)ON#5w~8OSWFEDAz8a{skN`E7CsaqL?NBC{LUI?mJ2L zMKPEc7aqnHNeTcF5?KRCkUpFZ4{x8fR=Z-AIOdpeiUql_(p1d5@OFFZ4S$kBz)xwTj|DKoIV?zI9$7%ZuC;K+v_Xrf7Rx!dDXxw|l?$MM6|N zl;QCFCJ`QX3>|~X5ba++O0=ufrk8lUJuSb%9=Da;t}{0GRXGDP0~NkWw7*T;{$vbKA|az5zQ*F_u4A_1b6V^|0P1CVAr#T#k& zrvV|3;!tk_cv~n(Z=xtqPq73;T)5TQ+iRP5Edv7s*M~DgZx6eWnihDSyCp9UxSaOv zxyCGf7*y!le%^Wy7&!R{AWK0&wlTB6?KA%8tIf8BZ#NalZs+IcZ#ztHJIAy$((eTU zPk*F{y!Za@PY}NzNg=Q3KHbM5Z>;KUrJyB44ib0`yuuBc7iO) z$yz?8Y4Z^e@ozjpM1dlt9JfVr;iw~4u!a%(zQnC4iQUw9NB&=r+Lla^(U2KfmTjxiv%uh*7S<3Nsj4-0ga zgHoHsd^ZMsm(0l^QyzXkvtd!F&GY zT<3r~qm(Ccx@e=5d)(v;q-*NbJiKDgb9r-9so~=y|NB|E$%d?P!jC2_NC&x#B7U*V zYt)Y;Y=!~HP>-H5!ifgfN(q`)85U6(S=q9MDoT~~3k;umU6c(FzyA;Vn56USH$s5z zHwH8TlW?uo6mhCw_TfWs3+4y`b9g8G1KbjglX7`Bbc?1Lnk*#E#EH$8Bqf+z4{V8r+V z7V^oDd1b?pCq#A4qSas*+!z7syCUwO9kdtHhmVkp=7FaTPWjU>%3k-l=zRE5pwCfY zbP&z+uNN|z_pR2?tLwCkKkc-9m&3G(piw7dh4w_shdq@fEP#=d&yWi<`6C2R52cl2 zfl7_?V5k;eb22Q00ic*b(~V=QDFipK|EU>h9BZ}4VFdub1Mh?Z&ypYR;$hH$hv;n? zu{r*ar_7~nt){uH!zv8#5b3MePRrau^pEH@$>${x(IuqeA*Xms-%dVUCi(mO!&DiL z%jw&u$)M21fjKYJCZdF-Z`m`adgvNJH@GURqrHgZrN2io02_~7kiv9RKQG^@M?t}v ze!ddw>Ld9i)y5A8GCey2zB;gd)6uF2Gvjd)aSirAO>}xQn=6rvRsE@69-*FNmKwwS zw6YG} z4VioeZj@E90GIHAm+;q*FS&aEGoIQ1?|8;%R=2`94m2tLT%wmx1vt`COm`cV+ylIt zZ&{VR`K!lm!U2?_*mOQZ7DpOHi?D8fC^8{XruK4_I5>ZXY-EtqNL3 z54B2st^#kOfDN+@Omj~m8J{1P(3v1Mp+B(!%t19+68EL}Zl^6@*m9E{zA%bR7N3WY zVb9&Vzg~X7h{cVmZ8rCj6eVgJYX}wTgAgmhTc45Bz12BaFQA0#YY(DBGX9m#QH#-E zlGC^4W;_V&HezSj2?$D?&Aag(IeGPWl@(7mSYX_Yy+4Rr)@{g@70|$5a<8$iqjil& z2f8bE<33lo?g(U-37CMKK~ssuh56hK+#WS6%fG=f5U7t<14Mvi0&?GV?rib+bhvuW zr?-TC?ah;qbImh(5whaX><>8b{P8mF;Nw`qOJV|GBUyEsh9bD$&85PaXmUxC72Cc-VEqwx8>zhK%(1y&VD%`+o`M5JJXN z@xeR~c}5NN+H;i|4B-!#tG#avIw~Bt*M+TD_Ce=Nd)&bF-ZN+0?Cqr(w0=mR=mEIg ze4prjnW#3n1-~gV`L0Y5`5YDPjwHhLNeTW*!;6vorQ|%V7 z@7-zr+i`us#=fI5>igN&8#2HEG6VKp_+NCszdbMg_j2rgy=(10vu|2CrMy?uGQovh zN8Dj}&?9JKQKZXp%7)4Uml7g9(h~ZI4b=Hp7j?p!;w&=y4m%Edq!%udPNAY^-Xr5# zKXIq^sO6bW+z)0OUfIIJ9#*8c6>*xF1*~wJAfbkkrwVN0IRqQXhN7rY(%{J_a*n}v0Lub@ zdQ0T9+>_wd#qiW^jX&0by5^`|4?^t0w#sMAdo|z>LCv^+kvyttbzeagk0WwjRU6hp z8N?^I?>w@QyfbUuhU~~$)~1~C;Q+kFbt3{>q^{nk4V=b7qKH5^J|SaQRe(vRQJzcP!CKi;1x zpNq7k4v8GBRQx{peUNQ)5!7L4Nvvi`y*ID&N3u@Sm+t|;?h|Jx2wOrL)+=dvfU-qE zpaZ*qW7tU{yTW_)r{FdFgaJZBAJ$|?Rz&E@lnIV{%1q7cYVLN*m zw3;8XVc7 zaWPDlmFrHmc(s`l5`dMQkD7_C{({OfwG90jd@8|>E=@9?-`0rEo1d3(2&!*uQ>o6| zuJ4{_3fj&RECdhnVq)^B@J%wO1rue0#1H@tC9k%h8eBre3{xgF|9nTiM%2;Ham@xegkVpcca zEY6B#9qETcuz?2S#wIpWh-yJLY}m7nQ)F!8!PQt<>lT@c@>-*M#w_3i^RTN zNyH{@(`+-+jFaA&8@rS}E{jJ&FU2;hd#oeM|_3AkE#Jl&Z1cCKt1*g1}X8<7UTck5xv zXa{1^iLhieWpfb!dWPrjCd`?i&5QU3g$K@iQx|Vd--ndHimv;pTH0!zFW68Pz}W($ zXA9TRke^GIhk8pzw3-X2gVEe5%x!5{5)O(h%gUekEc1{hApfCvu zwm%$go8a)!0<#9c5k1A5E*xBma9jea;ITCEkVZxS8uWumc{Pk{KfL{3-T9lEYKv>B zS(qdE6utqeHUd}s-ExUsMb(lgWlWV{o{Ag!KmQCm>F0^0@t16Sy15xwoBz@Pv;kEB z?H%5c!TC`KH6B%#hCD4?eGk}MS*0msWK;z+eXnbP4a48g;%$MxyBTZ)_1OQwz`MIU zz;E1uZQKI;Td$XgtEJwz+dIF7`AfbG%Yf7?+ul3d`oPzdt=l?Jfv2MquBI1;)9s;H zT+&>Zo&%2h$Ijm8&in2Q{|cqTfO`lNl`8a@sxZGk=^;TrjAr^9&ou6C3ojJB+)VV* z|4&ScpNND^Rx{i1l39wtW0USs*19Ygbze%gj6$MZ+m<2R7)4KH$C4lA|7rm+Bpw#P;=~=7=iE2(K1YSnPnOqVN^3{L-+Ym(YhB~46d&^(vRk=^Yc&I z{;BS~bcOonkIb)%clGksH9hIrFzk*JnPY^^pO)9YvD)_Et0nXwGRG;3QIfZTm}u533$>8lWcN%x8IaTmqTNaK?)|eq3i~%o0}lbLP@V6!3q`P(G9f)@>>QA}Q^CjC=Y53+3 z%Vfq4hjcTo3w)5q0^T*uf!M*vYtcccZ(3l~Sq^6pJV?(oMV}&tO%YP;qWZJoZ!?}Q zdM5Vy9mpiZZWM8W==l&(Y-5^+6ia*^ApGn4mP>gUK|dAa_R*MY<)VXgpf#A!^4na zrSh1lEqm0TnHDW|Xc5_@H9b|%m8~aVVPUr3aY;gkHsE`J-}6m2t`NBA!g0M!(Xd$9{S1>$ZcI9bQPyabkuiHXs*E5;8dd3h9 zjlHa25oM_@Xf_{(=`(w9$s=eU%>b7ANW?-odNX$ z;B{0K`Go8Ee@el7#Evgq_tq#d3Y=x%p?_zJ7M=2>5Fe75b7~12*MtKqHH)%`0X(-V z0^G5iEe1Tp&91HD3-(4^9GSI9z2~^47PD7l2Y(P!RIdMQE9%9`4x6~Rub*hn4*+lPB@ZK`-AI`(ci^(CZ4R~ zt%AL9UwdVrwRNo|&I%Glgx_pV`fO>jR#V}N~bPwt~m2tpQjs8|5bK%B^P9YRNp^uRFrp}>fttGvThPuuxZlp-P zjOe81=qhbwdmmV5#hCtrN>{|$=Ps(uyZZ73+zVV?-Pp4;3s<&flG%;~cZN;1xH^0N zxN~hbssw0xi%s?+6BR-N^~gvEPKa#!;d7fru$4iA?(~L!25QEFTd%D+zX|NJCB)fh zssL$oMOv#ApWa|@-`Z8<0_OEA#G5dwaH#0C-Z9kq0MNhEOTYJ%!SrRg+Cp3jp6UBA zpyvJVDTT8kkc5Ln56*6h{d1pO;>Po2KHc{IoD0I zAdfw^k;nlm4brhZ^Tk@=#D@c5UDVYb?5q3PeRyrnd}bM|2nStosw1P1th)IF)~vW0 z>kJEo?#jA99irCp^XN~0C5m4idTH@pf;e0>LMgf(`ZL)_gM_gU=4Tm!Jf&YPWBRq+ z=VNGsWD?kYg*KP_Ul!6%!A}b~UT-D$jvQ`*!6V6$&#hbztZeLIK5s9N7tcKxzUN%0 z#;D0^})Wunsre`JEuU8+D3B1EH*hYT1)7^e6nK(hht> zZp@tj%KWO^U#8efnU%Rvh5{6s!wC;kn{4ji-4)A-GInrzy_=krpZyTB>`y-CSwDh&;i~PwQQc|nlHsrRg-@m28a+fN$Re?_CQ~10Z)y)gAZmL{<^|t#rg#_ z2#cdSQUA?;eECziX1W>goY+2r00VGj#$iGkRf-fRJCy(Aq^T{awX|ipRAZxG*RkU> zmpaS1+fLL-QVd92i6;j`3kP$P`+T?e%vPXBr7MnziHb%7e5NT(QZ5h0Jgbd~g5B&u zu?3oA%hxIws2MskK=b#f>bos)Fm=tYCGz>62t&j!v zyELl(F!#kwyo%@GY5x&oyxw-ehhvUOd-{!#sE|?DmXrXQ&?kP{?wi zm+9}#bZCGJj@bdyE^NVnk7@DX@>s3hmdXV{VX}O+Dh|%7oO^(Q9yWX!@p>#uL1W2D zK>jWn|6_33u=EzQH>yzBm4*>V0+i2tC~)C!xTxbg&GIyo<=XvBP`UF93K4ufnFl`g zylB4bIBh=oFD)QWq?y(lNmGX$N?Mry?&&U;8}uBXX9I+0c0G@~x9sXw2NhHr-wA_c zsS%vSsUly+3VD}1yL6cPebB+~1W(J~du;ST*Irj^gmU7i%xiU2*R&FUG+2;S7wYms zlFdvB5dnk}%-JnxZa$Ai?^**I1#i^ELNSyW$w|CG3NF$zG}wq)IO zY_$wg9UDVRB{#3r)F$FDRiy8$4+jKU&d;MyOw1UOYC1dKS!thI?lFn2gVJUQ*+&s8 zq-@H+b%B~qkHnp?U5$#yGiy=Xdfw63Ewjn1U#{_8(J^+^Lp2>1t?QLmSMqI)w((hn zxo1t^I_)>K=f7Jvz1t~c^8bU$z}8>eVt+OSfxlI3)gEDlE@2Fv)Bo)VrWWXrqf&yb zJ>LH@NDhgP&CdAULSi%&rAPn!BbkH*?8q+$7=Q=+ z%`riK$Rzy*_x_Wsk51jdwMM3-U63B&nfvb_@xg-O@g?rj2XrdRpxEL{ zH&D^lGQ`#}A$uyKjpQv!q3||8efTg*VwNPp`?%j*nP)5#rmXHkUO+!(b)l$%&T>{oU&mL;zLDX2HdQu+A8CD6<$f*qqW;pOYS*0(6)2e<-Ls4ZtjQM=s z;_7;ksZ?>;_3pM6s7iFvDir=LbSReQ$NJMYLS`UdEUxii=05Hhr6VR%MH*+DFDSuk ztbusW38rS~m8!CN7()oc6L5K8n+pmi(&RtQwyE6$Sq}p_5zcl7BcR;VZs*)m6|(oI@` zN+vyoChfmOXV~8pJMMJUx1zgTIG^iQPWe__3@bX^3k}>7Q3gg9PX_Q%VNCtGb~s-! z0F^2vT%D23Z(DRyq?PYT6uB!=+SB?u(958@S_20iB0p)d}9@P)U?|X-Q@z?Y~c+JI$UD6MKGK`(sPxB6& za8E26I}O4E2s_%nKn-EW#v6^ahduJ&F5Gh@ z&zbxBnmeX?i?!RiW=1#bduR_PJ>I}WyJtH!j%gmSPDKbFM$qo7APNoA&-z`+3edI8 z*}u9ZeuuE9?RSAazJit+Bumn7^`S6oScGNYaYU@6d_wyWHHd}TBbLn>`TeJOh@Vb} zE({%y-Ux_WKi)f@wl$Al%1G)j{Tpqr1{>DXe-7^Uhkv@;v5sZyy}RnU?}o(05O(v)JxMPEaF^x;5jm&UT$?*IS9hc~ctevE%+R=h8 z%aJ(5lFxHT9A=SQ^}EyGHX|__D z(h$QCcru%*m~Kj&Xq)2eP51>^g4jWq96;P?POQZ3G7zKBS$47Vko^z}FLELrnRq7E znvT{2T7K&+YWPD6@|+KrS2`%mN;FM&U`GF);2oc7a5Fz&D0!^rJYUJQW72NL8o zVMdq<`DVVTNcC(?cwCd$iBgKvY;Pe#p8If?9C3@a>n96(G4h|n(52xw(hPc`zxp`l z!nOPsN^DTsC9WAQ=1j+FSQNC`BbIpTZ0dBErs)Q%Jo-azm{`p@PqP|>)gnSw{nqRY zQ^CtsjDL`?iyOMa&-&7`S<{m^b|+G|e_w&{FxbMOzNUp}h~-S%YN7{Ari*>dg$l|B zuTFWMTuoye9YGR{%hgN-SJ!k42*LxTY07`qCtwe{&ky6xY%QR(Jwx3OH|i-p%Br3d=B)sne@cl;No%VT#3 z@bp?^NJo#&v=~C_A9k(}CcnGZZLHc`@VRgJ9MW5j&i`^xg+f=n4&=g-Ji_#v=ARh0 z8uCs36u4miAC^@@{7M}Jsi@vc-zSA$=Y>{clVM*bEd@=P3Zn2fR#!V9Env?Lq=1~e z7Gk2i9`%GbJJ^f0j)Kc7OKm%(nn0z3K(k3}}Z866-GR9gfd@^Fa| zt^kFLpK?^3W)NhnNZ>%sbXg?jBqY9&;~Mk)7*G|a+`bk0a5Nf7h!y5hAz(?fd{N5_ zp=Q46mq*J&L=cw!aDpAv$dC@5rKXOqQqp}&Dnb73n4yy7bAYFLBtnqJB$-gpM?Z1# z6oJTWtynt*azri@An1p*H>N4QGMVu3u$;^fvL`0XzaQq1(3N3pVVf#;)lSQI(oRQ6 zLGTm^jo0Ip*#(^$ne|iI(9@#=_fF94RbXBV3vd*MQC2*Z()Zo<3|CZSv5F3y&*B<= zz_N5{SV`PZkms7wD{$ypYU2yJldS{{fMDB)+SFf@F+^`8Qau?#?n|fDF(d`Ae-TMT zDO(N*f^!AiZg?xte~-mI-ZjN_9R`S}VPI=ztPISkX&*yO4)Gq!+wXyCM4v=JgmW6{8s|l6L}JS#P4GPkpqOOUj%@Y_ z9_UNtK>E9*{ZnP~y-M+i2n5rD%7kp0d*c)jpt=BN{uM`{)c}4P9$vPdCxZ zv+nY%ses}j5e=4+7BgYRWs+}`2j09CJHhk=%^Gq5q+i&PZZa~lQyt~h8@v&M+70B` z;`IPFK=Vk)5UNhi8k={%Vxfe1=?aaiy*HXH8BRMMv#?L4>fh6MpgLNT^2?u}#-SBKw6$W5_t>>VBlEC0(8+q#%U zm9mnpJt<}nVY|bR)0|bv^d`lk0nxk@Nj4roF}_Ki1Fnd-H?=zSqkraVm6Svsv@aLN zd5?t$4V@1Hi}ca_WCPFqXAnbQ8ThH+#~$e!LJ$tNp|K32fh3x7ler)FknK*&UxC|QkSKQBg!^24ll@yJe zYT#8ivf;AP<>MyWZ%PW+piS~T4d&&d&%2H}WNUE%%wn4B{z5a>{8L&cjxMq>hd^-T z-&@Hu?)28fUQQlQI4ttdA@L$|Z_K?U=x8dCv#?b^o&WyQlotF;hB`?Sr1q67t8s=X z3}l9a_2n${PjI0~Y;kO?ylh*mY?f-Lc^!@F z_tFJ*N?2K5k0TaRcpFw^sm4sBgXG00jRjr3r^!;^;;nJ_2nZXy9Pm`nPXG@w6C5em z;qvMnUH&Z!BH|c)O7bb>mEdE)iiSoEkYy@{<}byTyzAc3z)e-2mW)6Tk7&$U0-n$y%Rzl3W0}BKl`;cWd{wDNDJEcwD+5Sp zJ2ctnuS$GL4cQRkeq-fe8QKe zF)B8_WXaFq%+lg<5~aOZDPmn>GJyDDcOd_8IK(Ji#V8^F#|1hJ=%HdX-F32FGPPTY zvaKZiQ8g5r8W6@UmPa~G${|x6Qat8k9TP>H8!0cCC@wkZD#+KLcl<^4HzTJ))=cdh z7|z!t4_}sf!)#b)@V+}D$$t$*L&1gQfalN^nq@j4wn8soQF{DDB;2erodS*#A4L?N z;9vli1%3MQmq>PyC5Ixx-Dyg_6Z~o0!eP%b{|C!c&mkTSMFNYAy}ca%0j!@_gI3IB zc5ki{q|Ij$?6N7 zy#E3#=B3frJJYo{64+mlg0y_BW@nh8d#mAO#f;0M)Bphqo_yhtMmO(gY7qpWkIO7m z!c&nP*eOA*kY2;R;3R_b`goEeXA-QpI8gE@!@v`j7E3nHAwRALpv=L@Rf40SQtK+o zc6)e{6Ca>`N-gnciB@LDAcqsv(RJ5~vYq>jiS(M~+E`b}&YshfbgTM9VK4EU3Y z1Po-@UA(&l)%z^C@%le(MHP4ehr#3#f1rus)&N4<2vSu6c2MH-Y>jWSzkP*7WJLG_m{a^vM7 z7Ms}1nUBq8M&RUeqm|d5e#8;=`{hy?@_Vw~QQ8G-5DYFYg)5~E7Ed3OSC1oPV;Vgz zHXz}1<&0#xBq`ROtMzsrj?guv91FQG=K2{|k&0KSNfeout(=Np#80mv?)qgDjhWT3 zJR8n9)Q1q8CET%0RGk)^gHIXnE*^1TuN)i{lAV$!pjK&v^ca+HDJ-lWlP1R^?ojs0 zLvLxC^&OB$hMo`NH$4|u6i-l9HB#nyzL+3g&IL%8T&7D$G4y{Pv@iWQ+7XJ9z)T}~ ztajkKsjFFey~!jod0U1q1IS7>7vppc1G-B&``(9BT!66g#1ka$)Q)?QL^Q-1=JK+G zVCA!gHr%Q6tERo{hs@R&-6Y&*tD%|Ko){*+q{|1T_4n~r+X$5zsQpH%ga0V3j9QiS z#R{(KYaQBo-9z{9r%>M=kzoq97!+vyD?M#-Qc-bQj?&=o<@QVmoC-UP87<#QV){Dp zf)LTvmw=~Utkt505&7&q1UORNGOb7^qNTbcCARr7)1F^8Ddp7Tu16@>3St`R=+-Bs zddTJI>2HMDjyBVq7mOcP(MgIs52-9Kvg$OAow*z)*74# z*?&t1W&uf#tBXq<`_ZT@C`C(tyUaX=Co2jFsiAv6Ij4>tPl<4UyzN#8UPR+ z)%Dtk6_#o-mCDAYA_dDz*E$vWZl`nc@qA|v&-2Qtt5eMjOS2#3?(M@F&x8cmz2C1h zrKH3oos)K7>l`-hDl90gKbuhA4c7FSq+M=I-yOB~SAsWjmIbey;g+Ucq$?h193gR3j$=;fwaDHG% zN}#bjWA$@3Pre5&#)Ok)8Om28vQI*iOcLEGYm>59@js|784yj>r zwXaQ6w0848OKY=>6(7f7n97stRTxz41Zb1<xhr!R4yFQgzqQD8kE+O0;(VB`(h%28&zlrVEP2;U6ZuFYov%{)YZkc{K6z|S zVZd?H_n^FrUDo^{EsT1>Jx{UWn(62~=u?BW-@J012CO}j6{A&~0f}f3Ypg3}j)%Vz zm>+3sY;5m$-_|T)ur!#q#Xf5)EvjOkIXlnyQUow=XTb6eV+OBDbc@HFlZ9KhelEav z!ef~JfYe0q-MaW7n~j=c%f07hotgYLstN8sQw&eMC4cSg8JA-!HfI>9sOfd~X;X+f zoBQ`QB##MYaqKRFca&xRZS;4ue4NH;pU=xL5ec zMDs)fZLW61;#u#xUt5hP%bLa|E2WYbsI(WHvr_yq7y}cAM7myTspA%ScT#CXWaz%o zHb%e2J#D#Lqhe5=!s3T==1NjSIqQ9MJ#sSiH3obDc24!4f~5`60L#XWb;X31k{8J> zYV%6)c#hb0=xcH?N%+jUdMaLc&ne>VdG*GMl@Uyi+d?7I^8dK~nNGab(k zLE8KITJV~Si2F3ZISxr_nnTczDGvB0@OoaMcCyKrA9VDFype7BqfMbLkZlB0B0|ZU zA7W1le7PDK2@sk8bMw!UvU!!@8TX0b-uZz0?XmFvk)z&Q0YL<`^)Sqpa4~|nbs53s z_Zx=zA-DH2H}G{Su(r3Q{1C!o=<4eJlgvZBlb*e2_Kv>!9uQVnuv??(zY|AY?2^q7mNkQPRY6|huYf#?~t_|rqTyy##)abY+s(jXsFc?xD zoi&R#j2)PP<7PdVCb%$89h%dw8yb`BTUFJok1_f~n@wlELl8&Za3~mGljB?*u1`hw znZ+R1S-Cd4hUZv$QjC`^6$%GPqsW{mu`HUi*YkBfwD^{Tqvcf<)cv)tHNUeOJnh58 zvM7#OOfg5&PXV4o)~>^mMc3|k2WKUKyN^j+@>JJnOVvI)pGD^A&Jz`j+|Hp*>Roi* zQ#M*rt_?~&r0$3f#!yrLs|D~EcURVr%{mZhBVtKgPAC#=I-_*a zgs+Opo{T8Xm-M?O#{*gxORg;35?gf10Lg2rg4tHPwZ`PI-R@|p{c~smX18X{z!M9?^sc^Zw23W2{5oyLuY6m9iAo{I-D9bt2KXf(g7WI z8xr5fmIPbpHkm#{PmI+(HjCyU2hDZesM2>3DZBG zRCXQx{L_pR;s@lay~bu?amD*!RE8*Lv0_$%&y&RZ8Anp=nj)?ERH(;+(iIpZ^8A{9 z{pwcTxE9t}RLd(xTiUP;XJx+0>b~nYm7!UQ@A;>|Teia>Y~gBF{&htzb^prAMY`xB zvIoY>`IlyVr!d>$X!#13c?W39^9z?{EE+-McrrEH#rK8_GF2)*EZ**41>GfkijV|Z zcw)cH!@##guC1qkj`@Fvu1Byf5g}psF5$&P{?;Sm+B!suTL*D}5fcd!5|$MXzM8UT zuYbGz{}V!i_AaMSZ@bvb_-<~@CdYL-r9GAJjvdK12{=k5k4fF`kC53=)CzV{(p~O) zoPe7YIas>^87tER5Yj7*bZc;d_yB$YZ^3pCK&<^8;D^QP|zSGNDtA9 zi^%6RUd1X0zi~4#OB8LhR`)n70%~nE$abbM;B5@Gg0Pb&TtUrFenH_zB;19`9x7F- z`$K1Qc3%tS=4lRBKzU_t2ft_Rwv0HRPN`A)1!EPF8e@)i+#T^SE+2b@WXHnJAm`QB zi2E$`kkECuEdoUrpsa{PbwzE2zoPUZqusFoX&8%hT&}N1z(;q)Vo(8t1AKj*M<^zV z!_+ThxwA|6e_E4rGbjY>#Y*8<{6rxbIuMj=i7es~Jiu#0+x&IYQc4?SEZBNi%NSM* z8OaP!j@Nl?N514n)T*RMUHIZcj~pH6sJf8085@!DX0yqw?pxZONZ@=%MRblhN2xTt z+W**8rpuoUm`LLVspK<%x;(Rgj``!pG|Yqq^DCIT#s2S`1@?K+3GbHs>)!z3IlYyF z^DX@u!&!C}cc$SHQLPxS;`GriLgGT6U5^rvYU<)m*WLusu4o~6l|wCXX=p6C6qdX1 zMM41G{Ki43`=;8e{L}W z@r{)4hFxdRGu#@y=F%%|3#L#uNcrEIsVIozUC=)~uK`CqCL2HKZRHBvUytLHtvG9O zn!GgeGZt*@RzV^de<$$M4cqs>=CT#=v--*IUS57%8x`uk3}^CNnJ{Q+@0-W5OxVS) z_ZmukJ4*boisWwIP=a2^3SVRZEW`gaQN%C5;UTBqLtG!dl3j1jr`z@KPxXN>yTpN8 z5Zl%^YT!e9z280rC)#>{-9jC>gjAL1e@b-6hX{xwO6U=yygi%pGYLO!(>f$Bd!aexl;Rf_6l2LFiAfDd9~$h9jsXnO zqXx~$l1-dN33f5ZwOYfd&4DwK8Iy1+Ad0n~%s*>4f|6;Lrn2GPDE_QwtQqC2rn3oL zAJ}TRh`kAWWu;opX>HVYhlSg9ZCi3-cG(wl297(!_2bUuXZrAx3dyLwPk>kZjY zv4h|Ce>sIB%-8xrEPwHy*sYisw2gutE!foH)rH#XR&XV6C8LBO4-!08bvGVy;+3Ih zbtqnP&s3S27OS?3&o%g2JR3L z2#a{(`JIC37JmFi1VG8$a+igsO=BozCDzpt2V6QG&F_3GoUWF;cgSz&MxQH+HBO>K zEksjWSfq|uWzaO9ers56LJimF&Z z-c?<`k!Mb$XsjZ?4I`=SN|guemQBU{!kDux&5bP` zQ*#_;P#XJgrya5sl@hTO=Sl5AoV)2Sg6BIBFlJK9tU^rEduNa)e7Iwo1Eo#$T; zT)Qs~UtcfcUO#`&Y`DG%HW)Xq;1T4^5yT(LvX+tMJw6)IqNm96M`kPgMMSh18?I6@ zUNikUvLH|qo~5WZPq5*d_{$w^dn<6ii422l-fdXVGi=lCq0iOnvk(rjP_%Y& z`W+!s3$GYAUbDD!`}skh{5qJlIL*pk1()eV+1ca5MUJAO@4;l9E0ax*l;}g}?rvh8 z2KJox#o^@p+M=`qpHQ8($f z&+KO`KS94KY1Z!pro@DRz4J5NeA`Gy1AjB`uB~v=$MJ<)wp2Gmma4^ho1Wd^onD=; zJaKl4*B7cg{~=2zg($Vw8+c8eQ-qjQG0g=%h+L}PbD9IRaDa%R*%gvPi$%J$FZ~lQ zC5GtYKDH#_{$WZZYzh9!K`05A6E43M%-k#zsVRvj1DG54Yo-5r$gpijs@mmk^TUxamsE{N* zhy}3#cZzL$0?@3 zM~DIpA7Z=wXB}}|^E=GH@H-5A>?Qs}I36d*ar7aC@*A1v)#wXGKI?%--?Drc=|mjU z$WlrF#@*+jW9f$j47scjNf27--dm+F;=6slr0 z`Y%C`<)0@BO+Um+=G7;`9ns2!yWUpQE|Y%xA(JhW!ip(*`=sSPuI(V2)>*ZTGaM&2 z_ZP3bZuhQKTq^`n0Up2b6@-S-h zr$Aj{S8U(E`lz{uANe|r=iZj$uXyM5R2IGkK(aA6Zevo(<}2lKR0hx%-2?^vDfuTY zwjByBxJYYjIRYB>H`IEl@BgFeEQ8u?qpgiYaf-W?V#PgparfX9cPkd$+Tt$7-3d-` zFRr0@af*eaFJ7R)7tZ+(%Qef(8e^>aVwWv#Z&^Ou1U99NQJKC3x@HL2m6}K% zlMDB8Ur9K?fp^Q{KoqAmRcqW;%l+P?az^h)YC$5aOm)RxpO+tH=wsk81xD+D2c~C#sw3RK!q+abycWF*37lC!q~6IA+Dh_?c`jDnIi1 z@@P*u!hEPrZUl0A%8f$&CaCQbhi3@JgsYLGz0Z`7X77cLHtf&e)yF1}1H`52)Z43X?`Kh~SYGJr}F!f)yf?-2UsL5T0~*k|KD5Yy3n=OcK8 zr;qj2#l*;wTQmgMmIb`^XtvS#{B9+BY(+l4m-9Bx7NiyDSQzsUH}z`o158X*VQ5vWddW^kG|6$l?@_;-CHjQ`{M zz-P20tbD4x=c{u(8#a;;%Xz(xbBJTBAfV0J4EoeFG3;fF^@<0hPT^5F0@C<&>)6rU z!mn?f8Tc`lQme6?r%{YRAqOMsc_%cSGYeeX-))>_8rIH3@<8m4|9(-sr$PFYz`n7a0Z z^p;ut#e0_kec*;6(0B@qK&v)Oa`~>h^MTf<0`8Jhc%%*mr6A7@Ry%=+zVg=|>$zkkrERBvIcE;fS_i1LG4QVp6a>G1 z`JyWex_;1Cli?>>S(Rqa;;`%>3T)3BNnfXUefBNX)y{KJ^*U0*J zVXe?`cqAHuU)HYY1-FiN^PFpguV9MJ%oE5L^#IIu)rZvji`3sTa>$7QV}X;Kh+_?6 z1$*&?`R5r;220c8v7(`_ndhbJe}CR{7roM`|3G-O&{(!#PJD57Tv;GOD%AbI^@0_&f$BdE=gV{C*sf2 z{`)~2X!_s7a(krg^(&C6r9SAi)+Jk+@>n&TRM+n5Zc2Nkl%b@A+#_Id>cms%UYyuzQ8|>7b?yh3 zrOo!SrL^dCcsDV%>5~utrQEWG@%`YX>bxkW`hY%!L>zXYDlhTd@ST;Y+4?)7AwUP- zQ3NV}w7p)*qe+wF#5?1vd_OB#d=A7-@8h;?ZcAH)oFzVzW*7dD;GYk-9keBH>49E0 z7|g7u@fSvM1*ear(!z>==tg?T&=*tFRL8{FvISbmp!Cor+bF(orU->75=eKI3836H zkSnx%cij-y>&ctNw`IJ{cR&qWg6DsbmZZ_|@2IMgi_m(7;w>lCEJCs;dfR%m^GFCf zNgR6_z)@7&(M(ge?2!F+J>00IDRIrk+-Vg&^#xg{)7_CM}Vr)5O&kJ)&yE3%9o6cgBBS8M1}bH{SwU zTgW{b^CQSAo{8bySdF8@oOEi4MUJy_z>KX*(6SW=q$xLv%+-N+!IQ}lT3^ce|lGr@&u-H6p zt-PS5yy5YY@uqYl!&D;j{u_yR+_xX)67&pmHO4u~x&owqYcA{c#aE|!cN?Nv(?Ed{ zO#!t&quLA=P>1U1T$!O!MhM^Scban_;Iy$Fg_%3wjVNrjS4D=D88Yz?lpS5qycy8i zi$(W$RVjt4qgq6z#KoZV_=d{^31)}`ESN)-fCr54p158vxn4HUpYnrV;8=>MS6Icg zTQDT~yHH$hEk}U6m)EtdnQ$;aXW;+$wWw8*{x;r0ejYS zj%AjS($szTDBtG5=wuzt)M#B|UC6=);NlZlIcxZlI}5(B2NIVT4DJymAz)Vh5YMj8 zW?C(vw6^URUTiU|KklqcSHTyEjHDW957<3@!nQeE=l)x_n1zCw`aeHOB{x(YhOJwLAjqd(FZ844g*cwLd)2KUrusHiKMVuMFn#YqOf zlO^iJ9N&CY-kNPC?JlU62cj>?VkN_eq^(EE+{cr?b3?91IO)E?a?`%=fXtisYI-PO zW^c@SYnd5-p%ObE?y~ipsMGp!Wqi)LE>Ar8KZ;Z&>~%P<4mg~ z&i6*qC*n;t#y)3IhmCgBKTECx==CHPojT}?lRRg`_MA1N3`;ASg8#wDekE9?YLLm8 z2I*PdxlwtAxF)Q9dtBz1#t7O9xqmbZj+ZDK`!9WT^3!e8s|WEZ|NNc?q3_1H&nD>! zZp?Bc^EQQ3SI&hNTz#MJLSF8+F4Nn@7QgxzUrb{=L8Jkqt;T|0*N%1>N_I50$X6-b z#Z_T!^2YE~a)B`!EvLB5w5cv$EPzDgRIHNPX#l?YXrm&jWuyHaxvy1BIQ|EBiX zEN6=j&2)9cbp?d6?@AMVT37GhJN@dVC#TE+$ziSq^sJyu;KuGRhzx1lvNm z(I`P<;2d0gur!hdO!i00^m}5>FebHD7}B1Ip3b~A=BKcoQ{RWO@Q{j&#w;h>60Jcg zsJwOPrv}kPZ?u(+KKr#QcEbt%am39WeQaSalr$7o@rzzdrpq#9HohPGq0>|z5uAoU zYSeS%Hm}El@t(wkgkrU_36_DrWVqU$Z@&CA8C^SuTQE5ww&N$H+H?L!LE*1i73vAEDzOFPS-}?rRM_aoTSqP3gCqNN4TdIbH)HjCQ=qqt70{ps?=*{WyCkK zNTt`(%yZ)*IIl*_(UuBDwmG0^qvt1k;%}x+zXHn>y`BwGu#pfas+Lx<^`Ee`X0zd7 zYENLKVM)Z|^Y_&9JkYMf& zPx%xwepIdg4#&s!;Zq2#{HnIoCCe212k?3OV)Sv*5w`Aps2!udSk}_wqWUBBs@c07 zZYopl_B8xuP-~efd_3tml98VKA8}$v{B&i4OB=+B*iGt6?Q@|o?zV0~<@)u2P{+1o z%R><@yix-WF-GCeQ-_=2+g=8^{tej6T}x1@`2R_PkkfF7*E!M?AgY zPh2~EiU=1Pg^=~=@TBrsQ-9?aEw5278la}+$SKevCrM%Bw`of!Ks7H_(Wp`h{U}Wi za#UZ7E&DN@DffLOU!%b`-B~e~C4jWF)O%O;`R&)L^D4*Ol{_UP)|(nxqW6C^3nwss zQAOLw3?wj?4?0m3O?@UN+@D(x6vnJfDJj31Vnj_=B-&5bn29-}qL2dIMUdK7fWc{B znnd^Obm`w%djwBtei$V!4h5)_1r->>tk>0YK9zT^|3? ziATM7|0L}gtx$E8C%95Z03xu%u)~KbPO~~?1fdWceaw5BT)j&2G?-9CYDQeGJocwA6H>ic;5Cb~s@I8`ee9ZWE$ z$D=9HAT3HjRN(P{Ra5r3KM)--L$GnT5vdTu`9D|do-(vV8SflWS>>vN$4dc#D$-a` zNP!AQDu<0AWv9e^gw4A&a)&R%W@8V^7#T9c%kU5Xmvb-zRM-dls1LQ}%2B_w$`$q5 ze7xF}A(xeJ-#rjtf9y5l3|j7>*|<#5c<6EBK@x`b2&io&UUc8tW{%Eto${Ec#WzFKs>5Z8zYzgbXiQ9LPiy78MCv=B;peO)_;WwsT`K{XC)@81 zFOS~E7L7VTVvCYK1jC&9*8bS7!Tkjd2^_N*^4KfiM&w&dA0Kj#KZY`1%G2OGaA?n zxC6GMr-}OWO2@%KSkKGzeIPVY0T^UFkFxl2C=`qEhCzYVG@%iKD;XY%AF6zpsm72G zZ>2!|$cQ+~@b!rNye-Svw&WZy6HkX1LVD#`z~=^7ehYkWM*yr&N$1`8D90!zw}9|H zN(AN^gi*tFtfZyAf=cL&P5OUc09)NA)*<5qlw4i(LKK?qrNVCu(nh6db6?(;$~)5G zFoYT{8V4QX@ON$uh@?vxU|0$CS>-mcQnPVIMOhI!rrB;II>aUYRe}Z$A9q- zZ1Li#RSROG?%1TG4=tE{VFvJgw3E~vqX0o+_5D38{v zM3;?a50N#QcHEA58ziRC3a8nSZ}GI*tUe}@kZ(}`)H7<=pY~Eu42H>EkdmX4 zQoz|$>&?8HrHnlN9onWb>%+}t+zIc4^`=n}pacOzH6`vVdT=tU+7T77<+#gW5jU-N zkzkmHbHsk_j3D)Dp;p?q61C1UIgadomG@^V-Xt59116S7@J*6ig#_P;>ePSV zDZSNiy=)brT0rv-)`Co>tQv)0NaK^lxP3Z^t;Z!+>vjCNc=0-RC>A;!_-Z44lO; z$9~@$(@5Nz(QZCmLzgm`rl1`Whjn0orL|UBy{twOE%OmEtKP=|PVv8P0h6itkqfH- z#x3lgusyIW!@#$uO=yZwA~E)SH;_{iW~^vIgt}Th8nfloZ!CFKCv6b088d_S z4`E3YX>X1)i?5$Gz{msyPX)&%oh9iVge$R)Y!?Tg;+z&g?s1oCfHo|Ymqvf}-&Z_3p@F9l>m9`Y>qo|e|48NX#7h318h8G*c`hy{*8TbS zfaJeHNwHbpyRDEH89Z^6?W4u&|9^y0%Ew*2qL;T`p6>`}U&o}x;Oi22@;(Ql`y$@0 zyGrKCaW{u*$u?Z%7bfvW6?kBqn)r^acwhzzVT7~l9knyI8-YQwZWjZV*r}X0UlKVE zdF|IE0f}ko$r$Lrp)6896ZLOt3sdA)f>MkTBkoKb7zT_vSp*QwD4^_7xj-;xhr?SU zx(TLSwgFBb^f-$oMg}DnWR|d|OdcqjR+a|RF9P{_N=@uH=5HrJ{JUYytlzq9PaStY9v<$jWGbbJHui4uta0hfR&9b$yP@+$Vz$F}Euu)qCjlE>3_(wYgIf_I_v zEX%Gz^X??R*V{0llE_s+-nxfhrfXZuho4J`j|+>ZzA=c_m6hh_F(WN*WcQhd;@P@88H^3G0%w-9>85gqFUEunB+YLg2@m!Mm?qgy;UtUFGwC;Dgw! zr_`-;VC!jPYX$U*)C=I4>Fg2eq;&hdKD~MIl-*O1!YFT_6I+0_aVoL5zPSz*mheotK-j^IkKggwq?#KZE;#iqQgTm47mZF0SVoX%VP{Y)Kg+bHk{ zkS5WiGZ8|`tbvu(H(i0`L;LL2T5Ug4Ajn#?-8wv*=8YX8oGjA9XZSrgZ90>X%`!(n z6r|EO`LFKXF`4n?4~)OJ4$Dnh4DSWBS#yKFkSJ7Z>C6H=!g@3+K>MH`x)RRWz^;6k zZ)we@vb32PJG!W7^~g*I;}Y%Og03gz$m=qv>-I6dBPg-*)0MKx3Yf7)&UuPdsg+Vh z(QI_^F7^y7BJ)WAjlSr_y^*pRZG=-vT4Y(x;oZ-TulxZ@& zq&QO)5wDn|o^FV)txr~`W|pwyq9YSV{j5!iHbERydH^1EIm43p_mB|VFT79?Y^~&> zoi+&`b48OIytwo^-Cfh`6)YQU<&2PNM_w#U?jP29M@>Siq$$msb`lT54nGMUD5o5E7g}q1lqum8~uf&A~J61^5xj_W10fY-%DdG$+IJz>AHUZLGaKUuNZPyvfS2c{!siS zMhADnU@swpGb@~xpm8^u!%|k4Cl~`=o4`Z z`4lqvnPWs?7wuivMjTJTVwoZrFUGqwI#=S^+jRs?Ps}ou&N{EK68z@7Z$D2CdpnXUf7CZE_TdFv zRl9P18wP;Re+Xj?INz-ps%c=(_5sX0@>mm6D0CF6^%QR6ifZj6RsQ`Dre%`;4WW0d zoMSO21eo$n%>G;g-YU_S3bbec{S*+o{9gOdW%*C%*{jry zC>zT}+OkbHXGd2&r-!a>E)LnOgxu;8;6vE$p#L)Y#% zyRNsvFq?CEvbI*v<|(gLdq#|A?d$u$r4VVSpw2Ni23QvBN zRCm#7y`FBQ>`;dZ5I<4uV}4U3s0{Dnh|1QXUXFss|`BFbIyJ|~9(xH6Q zFZi(WG}qcsjOx_K>Uc-(ZEHWLb zp2^jX*OBXriWFKs2y7tv;y$ao%#W-9z_a`1aO;BkGnQS}dQY%c)L3k8Z6+e&!+%i& z8INwJyF-y#7i2~PYx@T}EqqEr z8o9&^{T{*l5Rex(p!Zoq{nm5a0*n9QF#Ezj${{4{%H%Hg+@P)+sav1-m_^R9* zbU>5pvoHX>$j4q3*j_v&Ms>8a94+De8?{RDY&`O)*mO|pFvhB+o>Eduj~A36LlZ%T zuJl#y`^3)*i!qsu2#Mj$N5QP77@P57jm36m1fosIZ{=b(!>MOQ;*{`AtX*T2;XEMX z6?;6L2R(jjy!gnNfBxQrexCUr>(Ap6#xm;*D`KNg>iQJe2wZ`8f3F%0# zV9dumwi>#e30~DYde*P3x?B#4^I^|m52l*l?bijApL31+WgS8JBZf<2(t1QQLZ3Dum$eMxV_}nOVbnS7c#P zwe_ght{>OTzIFFulyH6MLTZUk&RLJW6a?n+YGjH3#DEVCG-gg~a@YAe(OauIs<0nF zKON&uw}LeRq9W-@{1Z*}e#X0fC~tmhG9@fdl55h0I<&7%!rhxRoAw&GkD6WnJFvBzv*GdCY06WNWXtQK?5TtK_;`PjoGIIBXNk4d zY*%Ogc|*P&QJ5cN`*-bsL~dO6qI`f+;Hec}>A-QbPe`|*xPTTvL3C~5W8-Haf}BrbM%_V>lJno~sCM{S~(doO*)(zq>! z{)cXtaz}~(jQUdihPG$U{QUhRuh{-`C%c!!day z@stR`@Gx4CNM7&d^j~;~i!&Cy-c{k#^{3ae%I9m17ovWvL~&ccVJE+()1KK4U!CEN zlPBEi&C%P3%#2kV&i9j%vBfItme*+>+4|ER7(q4j2bc9M$~$0aMrnWHXFjT?dtDVD z4xCoTKDVo%`*qVnIXg*fa&a<(%>NO+2LW#V4k5qyiW{mE**uo0hCkuNSf|z-F)lB~ zaH5gk_p><`gl953#TBFSN4k^-G0X=eCKY1`ovo#%DhkF=G$o~GYR9u#=RH?vBj6(N z&NCSp7O|B?Fs9;BISS6cA^r9E<*SfR$nWR-63Onne&aTn@gi$5`rp^{8vc(9tiC1I zC!}Q~g@1#F51Jb?j-m^ug2XRU9k@BA;rFk<{yRBUck!{flkO%>q^zFByMgqWSMqY+ z9KMYJ`JA{C9d1oo3lo*cd>ZF{sG{Q ze)=T*OkYDIosB#ISXNMQB^z)AQq$_k%Gn!lc^A2uZq0vK`Vaz%bj(%X^}_7)r~6ir zIrDPme5(oM@C>Fe3vpS4S((Hb#E2#Z2a&}o4)uR0OJ-&QUrnH{a|}4{cO}TOU`2@6 z&9Q?9liELqdso@Gh= zlM&77Qmdrq>jZW`OkI3;qoOr&0}8AmIK3@F-iagMw5B-=^4`xk zq-mR%HNVPR{BOV?^wAA<>wL^NNaybSs(teF3v|RqKLQS1EqM6{bGf$*KCoMQh<+ta z)}Z;q!=Uh5%Mg%{&)o^+q1Wt@0^YDhYqa(9n#qCR(%3^21L5^H@K?^LPjm<7`BBaw z{Wr`Ne8C4tyNZ~#iNY<-ujMVVeSc$LVXyhVJJDtjWoBS@Q(qkSHRHcVU!zQU00KfZ zCC&}Zr0rnSN-CbvVh{67QJ%Qpmf6@9XyDNI)2*4QnYfQXZGi%f<~*k!v-}u*S)4JL zxmMNWF*QY2I93y)B*;aUz)}N`plVKgs!ZaNaX!MZm8i^OOi+06%t;_dM8j7_1>e*t z4=CGiKU@FQiDUA~ApdO-IQymSLI&rfkZlrUIObx4SDHV6{V+E0KgF5G5bZPuqLL(b zKv<^iul6JOv!yC#XH~J;1*0+J39WxQ4qh&Qs-7I5$_p{~>;~xUEpL}<;+U#jDkkAEm3>|0x7PCTXHe|_X+*%Q}Tg||%rEt(4uI*I?{yP!; z4nHYX{h-LP8;9X!gD=ljR{>D4_b-HtR7j_jVs|>%t^E2QcQeBqGTBb8#4eo;jVc{# zXGiZ}a`|)`$&{4}EqD}!cMnVhTD!Zs_m-7*QvzCYx_m;ixW7E=2(x%0jR=|x=1oV1 zB5_Fb#9B1-xP}k}`Lp{KZrd=#3#}U@Pa3WPc^>YF#OVDSF!(6iABYf}t1m0Nr{L`? zN~X(bDDqyqKUlf;$Q{}`T|0J@=AYa`;s+2xq_{s{Du@Pu^e+5$6_y15W0=QqE>Sf1 zX#9|93ZI*|f7{|zZ81O-GCu!W&fO>7r#hC5R@IL1B+-AjT;dImBykT^>2k8ok~fs>sMnVv+=Ipy!`XqVk?F6 z;uf&ujaVImX$SA_kk6kvTux3N@PGM99owep#K>%^R*=#J9vkwmQqL*DkJaKtdg0qQV|X;OtfNtq5yA84D4Otx z7maEen_S2B&8|X-uN^NIo5&g%#HlLS>ST3XFM#rkAVbGe>%j;MCr(m-#Ut*n%*aIh`rg1NEjQgBdMLw@no^&%uZ~ z4>ku!sEF4}K34d5`f|_qPfSeVj!Q(Tp8Q^Lk|6?vQEsuW3l`*_7D={}0&kHDsC?_% z%dD)Nf=Yg5&$yqdO=ZaICZO`W9_2Rwqp;6bjia*Y??d@EF`E3BRV}_7yuKh<1Ck6( zO*rJG#!Y9VT@&D0*K|VN|4y>A4ZkX?0qzKH4|1QYQcpu*rx$vECvzd!O!8Mm4*OlA zwX(HGVEP82I3g=r-9yk&66g}eIoe(@_swsxqyF}(g-k=%C>a(J)gIm+-5h3tZr)C! znfvK4kt#lA_)mf_q?H%BzPUk+Ni6qTsc{)kY~B>2GQYS-%l zoxkmnC*END6cF4I;NIC`T+rpFr|~rYF=Y3WmpN-{z!}2(XbBtFKM~hB_$Vs`q5zc^ zH_lw0KERJaXXoXVo3Z1UE|cKeb3Bg(@CYKmSPw1wk4cPr00~*CYc3;Q!MMP3tkb1l zQ8VSrmbIPpwEM>qy>;r`-oCS{$2-4u)b&1y``Y*4uiD)6UEfxELBLrDyy>|=J!FSD zc;}UVAn|;WXx1Be{~EnH{|7zqex2Lk7;;Xt-hZ#|>sNWA4~~37_}fVP*!bEAW7KyE z7xj#~;k>_l_@fzgbuj%J?y)<^qYpgNDR_7d6phk`{A+<7*V|y3d9omu7}6qK{rYxg zA^@d&!FI8m=VtXkla*!te$ngQgi+ET!!~hfbK;>q=TkNI?m*g<)fb=gi_qL)ku0NO zxlh24TBP z-s22A5WOyfhq5dq!%40;lQvb9!Qz+%fZ5`p5u)b!mcLlJu0A>F|GWT0*r@R?$i%D# zvza7LNfUmaSL|LMyHMShwH{$ZDxAg{K+M$%auvyb!KvpoMlk_Ec!mx0=YeYpm`M!1 z7|hdyi;(F8j6eq4t51N_3rRdUKYFq{>n@C_$@(U-OcpujT{U8|;NDuSiHcGfh_O|amv~CLOz7m9 z{Q&BO<0BQtcD0AvzuwtOg_bVbflJ5o@r{_2n6R|?&qE6N5OVV;W35#;fH8~uu-*EY zr;jG(8W6iVBpKVzz8S0Fw#a=>)C>lke z*1m`dmjb5)<3;#0ih8>u4-{CUrS9;3H@UeP%-CJiaxnQaVrn%t100tRTlT?7`<~{z zu5#mLPgP+*lt)_+X1l+23O;o*gM>2|1YWMyb(?U`Jl{ua1n$5wnKOJdVpp$Y+-sWd z4DL7D-Q6uIc^7bfF-rRqZuU1kqj&88jxE2}W9#-=lsRB|7NahcF-xUFDNK}s7p<+f zKTH|@d!f`;d5c_X-t=;hp47f713P#Gd0Gjxl7r1~g^*ysG{PcN?mK;S7Nwsk09s;2D zSSnI!Nch4c+C)Cj`1a__4IzQ(gp#UdqnM5g&~g|TfqFwzcad`_CHz~VW$m?Qyi$`i zum=Wq&pSH%3bEbtsU|~zL)@1Hq2J!T8b*gfiN%#*W9{s+*VfBC+!n#U6j6UX;rS=eDxk$K`S?`s{e$@?N0jOc!t?W(KHI``Hm36ZDG!dz}cim>u z>xvGNu+&_h6MD5|<|NE@WJ(s~;&hgundhvESfb$;ND-RH0qs0)>@vhQP;Ennv#9Yg z7DC@p=Dy1IFt7J+aEwsUg4fM9)?crwMop!yT#t%G>rjn&t;?~j(-a2QE!2|Y^iW$be6ZMH29XV8tk`!8DB zYsmBjg|FkO(z`($2E8Pac^zt4U$p(TPAzS~GJpX7`f|$e03g+-{aUJ`Y>_4G>qiPu zHY&a&b65&nfaN)tM0=xW@Z~i(m6OELrRQKn0feVB=H=SJ_Mjzv(O~T;Gy2G2;v&-( zGdW>L3tVCN?_sNDduk=J7mw_$-t*`=h~{;J z#W7r_zmpYc?sp}hcku^SM7J75=68&z!y@qE^|gsTDT()(yItB#*+U&yCjZW|qPD+! zCa^~f{pNc&StIvGl^{i)`pUTcb8{gqh2GF|s&O(M&gd_7dc*~)Tzl#f3#3P~&R_=# zeguJrnCJ6UhC8hu|cOvOmUgoQ$ zRO}$va*I|aNc@Bd3&PO|c}^x0Uxw1B3H&eCUn*H5IDM+^kHlp%n006!+tN?k5@(#k zvL`l@a(h0Vb~>?csQzJuP4cX68-GX%<9`sATinf6vxnP-_(-cHstReCFddWvg^?86 zfx8X6frDZ;`8+};O)-rDjtqDUQ%>;?@Am43R~pe!a4cx`k(UN;Y^V{x#T6iICw8 z+X0`Cq4&CFw^xO!2-lJ=TEGncUQQE6$^7s9-juzE;`M94h# z0d5SROSFFTWm~+rkvF9~yg%dB!2R#Fy!n;F1AxKu1E6Ppa0d{fhM0T0;XjH3?*KP1 zp-nM&p@0yrb@G+2ys72rti~jcd5DFwu^<~-ydaGfxt$jper%n^fd{p~P8d??o2G!7 zpbS-ge2}{jBe*=J21$vnSZ+eL2=nXncXJg>*Ia0RP#F3rh%FsE0mmT%A3grKZtnA#ULe#f35gpW!U*{u4EjALs2QWm# z&6jFDcAnLks*}0Pf?(Sg-pXu9GQzTs$P@tik#%^1P9y1?&e z&3Z@Sf1T>+nt#txv)d$BWM2^basK-N-_~ilZKg5B#mh#&?TMRn_8s3q%qrG370ovk0&;0DI zU<20^LJ2t?=UvS$LVxrwC|^3=rpJnAPA1%J{yYFfCaP$PmuAzkF17W$NtLhX`}27kF|nU zb~?v8yi=LqjNdr#`A~a$kkcnXGP~mF;D?1Ze^{5!|L&J|Ik%tl;+M6_gR6h7tv$Yu zCh!q|=QRh~RVVuR)0)>0F6O~UkBb}pW0B1Ukt>{p^9d3#*mIAnah5-Zs68e$^NSrQ zd=Z-9;=iB{J5g-<6VDQmE;b;KnHtW@S&l@6*^N_;oggBV2eBEg^)C#u{nmzu2eL5kTAi@M?$DX5s6#Xs9S z-G_!;zEm9}^m=T1CZZ6&%pwgbrHDOD{qjkP=oY3Zr-Tc+C*!#*(c|bsS&`El2lDF6 zmg_V3_ZHmy*EY~m28T4Y#FD~$pPTwu#M%_#Qgg+#OtBbH!8x!BLJo*?wRB z2E;7t;8*nEw8|@4a&BN2uaSyZtBQuMnDx@5#{F#7i4p(KD!2b_7D0D52AnJ~I)XG_hH2Yo|6roXXy5Xf&H1GY<}YAQ8XcmgbPjNW6PovGoofkk@trrlp0lKwrMVQZsHO#Zmmw!s6hWCK2ZDDXW>N7>ElB81QZ|8FZRU`pYGS{ zEM>RX5IERu@ zn7Fe4=}!@`)8bH0v{k{CQm{7;<5$!Q)m@Ckwt(ppo$<>U?4C-r6R^ptOVeFCm66&Y zsGb;9Nv&}=K`Td+QezTsC1oW(t2^%H{30Dug*u*iSf#17dcR4^z1eFxUptY(@TQL3 zj6|TTKw(HquM>2(kMsC{RGn2+TWz$pgG; zgq&|Ba|gUag30ju7X;4L&HH0<(Ioe6-zj&3beN^1ogt0owY)IFb&&>3<0y)EL#ZY|GF@kJnU$CE3VBpJAT54+--;18bP0Z9_PW)UG_$wA0 zV?5aCQ*Oz!dioAo!EjF(D{;Gz4P#QamX;MoOwvOWnE&@9ELM6AM-sS$^lFZ(_>#uh zmI#rO;SE&2G{dAA)#qy@5Q6(IHPbj|mPY=aynd0pv-O|5Gxw=4yl$?>rw;INJ8dU@ z-ZstbkzRfr8luHXk@YqLHnEjbI9cA?kd&zuFWH8y8_=0jnS`0^&v za>NgR1ZO}#)bVIKt<%l_`8fl5D$dNd;JiBnP+Sbuv>ARE$#>wy$WKUU4b~7Feapl# zEV@+LVlABQLqVMh@7Zw{TY<@&C5w#`GBg6&*WClxJM6W^;J%FRUp3!ZL`K6(5)<0R ziH_5ML@X$sdB5{i)1|PDo7-Z}Mw;cy-E`Y2IQ>C&$-i->iogywomXFS;+Cp${&TA7 zP_{+f?Fg`$=D#Sik<#4H2mjgir@YhsFYdUp^XWK2?0WtWj$enl=guK9g3Sy%Q`GU> zY#hh&b=-@}Ao}+ueF&}Li=2g^ns`&4Ui3|N62U?^su1yW<^GWTq(x#TD0+d3^B^lr zIc`f6g>0p554+|}h8>jT`P!NVJc`Wz;ycA*J2Kv(1c-e+39;OjFtb2A81jJF-efSp ztoUpTF>Yq@h+HTQFMQq8npc&3pOil0l>&G}V6~fHVr-Nyj%o!2BZ*?N0WFmA%UDoS z(+=OZYI}W((L6MXb-)LWOpggv-03)RsP)j6D0`3fP^@tOEK(P#ajmYkPmeZ19MiLO5#kdVIaRo?!iO^5Wu0EH%e{2&+y&5!yXhul4BNYpXslavn2K~$E@ z+#1cVQj{H!i|JRW+8bA9tyvZIO(;R|O1RsiYgtE( zkdU$Kr=A71Hd405Nj1A&D`cJepc|zL+4{Rh-9OEi5%!xlOoyO--z8c-F!U=_5v^Qq zxY=-uE8T9GQciBU>~p^FfgmO^X}!4jpE7I>Pgv`yLBmT>>(>FYyUkdU|o#je%)E+{uS}RRLzHY+yFjE`MoTd>jq&5@SpRN zz`B0pjjZ=(E46ps&D?93#iN`ihW?}!8Le;XX9hpSn9-EivH@h+HH8J|HnQZA@LWzP zzB1!N2P3IE*ee`txuv$70k}ZdmKhB}r6CJu&8jG~>J_Kp`K6vg1!a|$q-#jVH_~QI z_NeH6-{4O9)2ShD3%4q}_2zkI!)j01CQXZrza6 zM^#Dz6VLW|{{}_BXQP$1?vS}o#4;ltYqT!7M>-Uxjwy4^_)BO$R=yl~iLHOa^1N+}BaVo$^ zV=>cXcu%R2-L^c=u?&Q7E;A~{F&Y8brDO|Amd=Ipo3**)#_7<)AMCW@k}bAcL4-CIvG%(+(?lzn9UN8&1SL5SG#L?D8N%*r^gqkO&2`63S@oLRnx3{a#`X2iO{71$s{V zgXIVAxz4(~>G%9pt9tS3Gla82QCM|q{w`@jBQj4~@L>-2w;f)Ngx zFxz%S8K#XGUSEQ5kVed64SNC}UK6%4(~D zq&f!;LxQ1RRWKIoF3wl0L_!Av>$^k-2gOSmu<-Y2lod)J$fIMs@tPk&wpf{{2>hOP zo~oLxQ=`rfGV7?HBQWm(6QhpEF2zC&^7&dp+51r_5_E2P;LsucY)fErA3W5GIF75L ztY-dh_-?v!2m{@h*fTz0eY^?gm7LMJ+l_1L1{TR|*|m7ANKVdTtpbq<+2%8GUyryc z+FT>(ZmK;gtHcXUt37WzYH~pM#|TrM_p+8QO$`=Bz)T@hsHi&Eg&jWQA<=+16{lq` zms&q(%)?hEn zVa5bif|0xI`kSBlYtKP3ABpHe+`)cQ%w<*=vXP^{`TK>yp0}e9f5N(-aA;+tmex_J zyTm5_F)NDMV0iN$&cCz2AYjXz=Uf8+-`#Q7_usAON}P$SR`I&K=eLz#_6JTOxq#11 zcsYY^qXRWDqD!Fd15NGI_C-{CCBYwxX z%OuQj#3;!!%qmmnle@sCZ*2DVUEGz4`A_*fV%uM96=x1Rnx{<1-kT3}CpM?Hn{mrh z;9^P1-^v=r1p4XP`RX?59L-xAJzrUEk6Rt5ae>@6$}>&8m|Xs@!I?xq&1cE`BFJ;- zy%?H})}aOZjM8XA))Zf?OXhdU7@0LxJU5lJ^k)RSKRu*sBA3CsF!&vym~Fd6$F#jp#UZs-QM-p531gW?o$upfe61)3E@)oA@%)g|R!@ z-Jbu*ld*~vF74{?9`xTU8s7f?iv4XptuzchR8v1c#1;9qdKmBEn}-mjkk2e>`aP7< zp6WkV`3TA0`hNHX4;Zl$xJwHpa*}H<)#g4)?SC?0UEOhwk&R;=tIh0xDhMu?a3bn*Gz&g zTVEd-bv9=(y?Ooj@I|2^5U2IUNA2H7;f%*y|G?FU7`plVV=2_4mOpYF#tz4vhbLFY zx_Q~t%*-A(z{iv@y`YfDgU%PzHI2E`oROEvs;YNf&n~((&mRy5x|>fgbw&}1p?zJ; z%~%lWO9}8@7k-=P;ct|SoQq^SbwA4X-Hyqk?705vaucQfXb5g%)>OjdWoS&%-<=fe z)>t=!-R9_|LP52Fr9R1g*Dr|j=kA>jm*Tm);+@vQ53wUutfybZJ1!#Q`tp)kMT5J0 z-5HovSgE=(3pX8EkkzBq&|Dc?ke8p+yf2+OaE~pSHyKp~ap&SzD%KlJPI_|vnR4s; zHt?JmuO|Ac$daKqyQC6yZE|i=2B`ggji zwoI`rD}?Z*a)n~DlCDS(S+F$g=k74D5rB7Dn2UzU1iX|xWG}Tr7lT3wB)1UzhrQGQ zE4Cl{*CL`y=1)hEQ44N9FZ-kkisOdv6HUFBO+zi5O8`dqKz+n&V}36(liaHMWD ztspNUF2e6D{5YSU5-1s`M+3jX&aQfA;?|Zw@p~Uq?s4wgE?pxQ(!4lT(202zjZ$Ig zCBppC#FOk3Kzd0R7)n4(i-!A;`C@zyj(b;c5j!#eZYN_Q@AY4u!Wc#lrcKMA`{B1; zZ6)oUP{QD|SHeBB?B#I%Rxk34l*|md(DFhsyDJQ0LrDAuQWICNxFH$uAs? zLuT74Z~Vr0#z8a*XW;|MudW7&;i!`!#(Fqe8gPUqq;q#U|8w?*W*C(1ffnA*)~~C+ zGg=?MT8&p7it371-Hr9ld4l9lr;zKzuzZJoh=pq_XwhxC%?}&auZ<8Clwl6 zup#nlr_mX*GR$B_-4#H@B>G{eysNhUf*AXYvTJ(ru9~d>j|H&1FU78Wds2FE%q}L&S7?xH_evM`@H$ARg5;r{4Ai8e(m$ zCY`@7zX*68*pM(?#OjLI{bcZlu z)}oB4K3&40^%9z{&b{3i?Hb(Hnc2j-3$Pmh4+Qb_6)l#$=SPedKcf+Ifw*hg(R3_g z@u59#@N?&=#+Fyi;1zbZ@utk%oBKx#1|Jg|u11d zET-9_yi`rHspZ107IclY_ZkbJA?=I>grQeD^qo$R52|$DKtu(BR+%6%osSp~ei;yr zDW#G%3X6I%Pe>^mxl8C|$*T65pw6m_S)6fyi9sP?U8@1oy`~|mQBEeZT?{-hVzLRI z7XonM!Ij}|dj$?+fL&QX3BFHnG=tbE>^%Z4g-kfKpzvr&2*}7H zCBw9KBo?`-sWJbLC0M;VF6T4%D^luor<^SLo-zC$jZqBN1?>$@29!f_4~>553}glg z$C%h`@ubgI-`vs7^uJee#!`9mAT6quo2z!kHoqy)z>Ue{tf7jy))FQZ8bTZJAWa&q&i?;PNEz8g4S9*{Bhr{+r)h=lI*02ZX8w zs&=8j*F!~Xp z&8c0cP#yE4-PNBLk0RL0s@T-%<|Lf*EF&k}V?LmVSF@sZkumj0 zpF}jr_fUlI1W~75{Yzf$*0kU?GpwJZS$lKhJL%=<*} z1VEa`AWSmY2|Wm7si>Y%zT#%lG41K|^X0j)k(HJ8Nv9I= z!lRXfZfR0hB##PlL+9D08!`WQPSsd6Vmi@4-IjL;PT4=0p5z61=E%BX*FLD{angMRnI9 zmz#9$qj$;npZA@W5Z-R(L>VxL;kZG)Zf_bG71duEK57ZHjg^ppZn0t(O4D@0<=IF; z3+XL=A{|wAVR<~e{%yiE5W9t;^%Va1!_^QhB%76MMBEVH*wf}SI|?d5)}w1B8~p3f z3|p7KIyr$B5?xfxx0|hR>*QH|0Z!8 z&U{KlB>WtZfOLVW7ab)>RfptY{2AmXKVuNRE6O6WN-!1+1)tZg@5{?vc%xQwqw6B} zY!REamH~1NZOyVJTcjjR#96`veK;C(I+|9qr*QilKJKmpG+)2J!B)WmkXL-k{XOSE zk67v5x_HbGXdF`_A6qBZux~jYfDlqH3L@>Z&l!9*YnZza4AOCK0;mAD= zd=5RdAEf(Ap1x>7g*B1rHq_FpG)4QTs6T_j8a+aSr%CkWO#i{X)f^8xe;q(x%8N_e zBrdewWuK|dSBeS{vKz$)*e5mM2V#!q)M95&e~v&6yd#&*0kKJJ6q`ZF!+9RdCs zf$3LQgmY_^iVEN#`@S4%&Qe*v%>pedwn~PZhjBgkQbZYyi9aqQ9h&b}^AQz~7i9w$ zzPRC4S-4YqcOGG*!$3yIs8A%VcgjmRrZH8lYGx~o4GOb=T{XNa?$5vb13;VP#LXnj z1hnyT6U9h_f9#MxR$X(O;gdUl^`X>V-6mHAiUdI0keF$mF_K&$Vqg^{GOfGzHAeuz1Fs}f#+aPmX% z0e#dn<^D7)y9P81_nSdWOh@ZAEX-j;T86R&Z~h5gsQ4zXuy3%XGMbxby5)~Qr13MP zm?9t9nv(-WTF1t!)!vXD=!^;l&j-vV3k|-ad^;c<8%^xnIp=FCkZudvr((@ zK6X=)lrXvz0Fx8tv*IU(w&t`;-#%;&ta1y5q$y<+^8BPgz)?2USws@fj$8K zj&yGPsp)@u>B%$gq5=$?*4OA(GQ;Dm22uy;M3A;MNY8oyvIU+FZQL|JU7U6{t?tZ! zCAE{=r9$K|wT(8*_&a#?Kk^_Bxi`%s5k|hE>1=Il&8=QLQgIAQTa?+mH_QBBa^ybQ zfDZ~+%9T|p3hr(iJ7yaVw-OUJ=a>S}W<4zgzN~79>dOECXlMk%<-!>&P@k%Uc3!mF zVKF%X=`JCUi?1)u$=BRtfj0MF1~ZG@($9NsiP|e#PaYGEZ%-iK9~sAVXf$t3KZycP z5VvWb2$Yleh)fs*#CGdrT~DvA-AbSaPgn0{E25mpAFPkLOHgaLe>EC|$YNLu0(Hri z=Kq$i8}_9O%0vS2jQk?CAivRfcT+&)-2Jqx5H+NKK-Vj!>y7${kpc;z%+RW%jFd)c zRpVsk+O!;ttfaWNPEyc`b|z+C^7Z=&ytfM~4~}@^;KwC=Q<#_>00Jwk5Q}=tg?JH4 z(ONhfoXp`8-mfzKzOttxfbMM5lRU=LE{1IKZQ3sh1cp1Bj2r}%2Ve2rX zD^B+k<4=eIIPHY_!wI12M*0+3K#4}2RV>%PnGN{Iz-;l8R`4T!)`;BHC7bP7yKEg= z;@E&M6BjJrrjgh`5B#UXkAv(xL4@TF{SGso2Z+i7;cL{UO1Z)$v;A48~->Ot{#ADoH(9wg}2daw|>Qu@K9Oby~&vZVZ6ad4V*HT1 ztY&Ff%L^SgsZjtDRxtLBJ?<0oV2p8eJJihO?BQDW-CSmqNY=j6z2nZoppVNMJUi8j zLhr7KT}^`<7OqVu1u0^XX2D)GfJO0NRDMqH7a}c@fuH4U$*pFzB-)6Z-zel+G-Zv6 z2%td(*vL=FyF#SAn4rjlDdA(_)X? zcgEU`|5~ovI4_IB?Ta8Z_Y)EG4cb=v{%#cjwISx?d4-Ge@2qHmF6>aC<|}7!$+7g( z&1#GCv3#$PN>VS5ly;+bbZ=++-_frk$gcTU3QHd55HVQ#hfxqT7B1d_B5sI%5Ly4C z`TDSMVf)(BY|nK6{jjr)T>o^Z3kqN`IE<1YQMn2S`hZ{XaiG-=g5n}R7pQcu^&ko< z$5(ie7VVXOlpO(_&i zb*sfk>^)1{CpND?;~zFA^p#>kpjgU(^druQP&XAmEL4Hq@+ow)otD&yGQgIOnCGKg zd~@>g93)dq4ggrsEH{Zl1*L_ZM9sn#t`xUq6!C5>pH3QKAG1m*64f+Y1{cB!zN^L? zjA(bKm<(e7#NqREt$d{RA_bsY)~dZ_247O*{jy%Zoh~)V={L#MpSV6(&`L?{#;&B< zA<~(#2jp{a3N zvrXC0g%iq)3vg9@ZP~iu-yOcUPi?|@@SZHvQDtE>$ z$5wvZ6a*F;se*Ce>+drSLFMaRa~BQ+ca`x%TiVR{BLAg%5|dXbUrR^Ff-_2c9;eqK zRt+yg{n7`|hjAEPPju895DYm713aV^ft1j9B}9Ku-{yG=H&D0>!^DrMAZ%)1ixRy{;T8aO$?;>1r`e2K~GZ3$#l7w7%s02&b+2=+DadW!9nfo?fV+o~Q*q(|RgJHX3 z{`juwA~$eUH`W{8)%)Yqaxj*r7ktJ3AEgwz9FL`q+9LdYSeXz6+8Yblv$}h0&TwA! ze!X>CCv4rK8J!b$qSsp~6cZi2V~<=r?%D|59V4MTw;;Cs^P`|}DKr>5kkHbwNx<6B zCTx#n_Ebgz&t%g^b^z3_S=V@V(K7O(MZ%-|c?-V0(wapGvCsKNp6@1zv6ihTW|l6B zVFw43(DCap8JY2|);^)1>CZPsO-x*ZL{*%X@d3zRM@&k$Vsqb>UYEt&7?P6cdQS7v zazwYk6U8&{JLbBG-c!J2*NA}vD8O70F7Gt+w<9MY*_nv4a(6B&jnMhmS5Vvuu8R;B z?LY#`<={|Mi%}lOh{eOH9j2FnH8d_@Zg?&20l|nFgy()Q!b-`~i=PC;fz)!!y)!mo zz_x+~$;-e_K{Np;OXUJ}P0|u$L^$~4(SsJ^;jqsk!{Ll=IHRUXu5DX>Q+1Ftm~)UK z;zoD{n**Yc)2iCU!K5DvJ@Zvcu!?K!iKXTR1&sLAM{in=U35Q3e!0R5+ASLG$Sg5S zJ)>ml@xUJGn>O*~zcZN<#r?~GD%(a(*Gu1TKYrm&(%Q<4=S$9@(ue(9-_pgPRYfQR ztE(bA;MTiFIKABCt8tSJ*3aNJmh0NdP%m0z><4Wm#P>HHX2z$WSAfvooeq)*}CY9ujYPB(jUGqkjO+nm;l5O)e zBwE$wUq|s?a5A8V2XPH|-NxaTh0KqFgdmS8_RUT2v}0gXcSMG7y=iBhRN74t_PT{x zok0Dcb8-N=K4VALigAKH!I%u<>MOwX!c@=c9RA_Yn!-r&ofsPq3%sN#rh%VDx|S*q z)?T*O)*}#gUbNT6x2f@KMzdd1Blwj<$udihP8R{zkKzq`ZeXzl9W56Ukt75F#eImg zCj!N??;ZthDDV*$aP1WLrpqyA3bC8Hs^y&dMFh}YkTA8*zZXYoJ(?z9I6sVI{y~|6 zBG0eTeEgYDrYk#n3ro>?+CoeMjaZ3orHR90j}?W0904zpEezXcd`sw^`J(ec3jA^ zrG04&xSjZHIrh*7UL#u;;ee))Cy_O5H89MQHmu1!4luiM=Kus7Oxp~Lp#s*~rdV$D z+9(P`Qb|!!sJk(LRS~r5&<2uhREC^#B>WYxu(mufyyf8{Z4-AidlDG$h}cP@^RIIv z1-;v$K4S<2#f9=406*tJebdZ#!Cpy#eUokccxY z9z|ZLbv}wF+_oBf)BhySfLF_S39Loz^OhE6>*iD8jG5h})P6rXh}OjJ`TEe&+H8Mv z5_tFKMS#-#w4>Gc+)7X!y(8pU_hVSzv+7bVS5Q!EK&Snv^uM2dfD@3jOrWsJS`Y-M z^&_f&{=xZ7g=uwBu+50q(z5c3d1yueku(-=8>P zyqwL{s;oV(7I}9xsFt1$Y~IFoyiA$Dl(w#f51O9bWX-@%_tj3WF~@Zs=3ZPqV#7>K zo-Q{>4ig$p@A|o3?-ZN4-nlm}72D_KtOlO>AJ!|(VF32h-28a%;`)H^QEclpJd1?E zPT(rX&s-0J-whK_mCZeupG_ZDD!w(q7T|JfB^h5%DpJPQv+Rj&^Oze9dvn<6(R<6K z{)OF+G>BPWf4=y5?DYYH2Nhogdg7+GcnC%Xo|5ZaEq^>B>H1Ll(X`q}ekCa94AAtk zSK9xi42ac7WT!fXzlBkG-ZwGjJxMF76Q1e}+WU!Wz`HC7>7I=m!huWt zOmFVhqryf7lv)4*!uKYZ1eH2(;(d7{rK%=^}{rukAm{8TxfPBc=*^R*f5vs?{u z5PE~C!@c!US|S-@#F;IvQW16~EcVJ(k_*Fx?M(elI-#J3SJPNxoSz z1IW++QVwGy$}C*(6pdCP9_a)mdV>Yz>!9`jx=qsR`^tvP^Bv1CtAA>ou(lXyIuT@;RNHkzp zM7c60_S7YfjYR0e3)4;E@_oOzrE(FD_tf#sAkq?tM+^aqShTt32!KP}Cj|mJ0;^@X z$W()H%&fhbH;%Cxq-F>wpxR(NUTO)$@#^_9;jx@dUtRzE{%(_d5t{pO+d?*25>)Zk zVhDe8>XO(-bOyi+7OKy^^d_P!c)W%l1Dj4QR5=;WF;cV;^Ub7qD}@fQHJ0BfkdLc} zD%}O>&qs<40B9jGfoWhq8Ixxkmy37T7G^gh#(ju!3RpgW5}(+mo!McS=QXgqa$dHt z`z3vm;M~Q-l6nKtEj0?^1fx`7vVbq&0!|*Psr5eKK|~s?rX7+b!Isj&)k-Lo zl-9DgHAsK;w^jot^s4dq*bu1D4d(RK}2YL?Xq)@ST4B{zr(3rv80wF)#=TV@aRsgSqSv{CFz4)mO$V z3)?<`fu45E)*o7(NWbQ*N9{x;uEguHTMZNC=JfO~cnGQM+4_0{0{Jw3!(^p1EQF1pDV$b2x*V?(IUcr?ALSn7UA_ z^>WiVXi?GuKM*9t*x$>K9gWMBZvG^jjjhh=?SpsLqouH*=I2kzX!008gFR5QT#!!P z{W^pU>b(>0E8YRp-JgLdC*_Be4%Q$}(Jvkj=NrD6s_D4vJ@$(gCsOm})I9hprfBa9b27p2yV8&L*_0yB?Hx4Ww1E+#GmHlpv_jKQPRJVtB;Ypm64IAboh`zClZ^p-yu2sdp)PrqYKC|| zPoG`y%Cj#|9N-GZ;%S2P1q?DEAP(+#h4W$nfnhFs6jI*%-xb;I7&^a-A3;2RITtrA zUgXeU`&Q*cjTI!jq9-nBgt_k!&_WVMZv(AlEq4KYAYD%AAExBJe7(_7hH`w5t&LKt@cB8R0hT#$Py{iu6)s zAh9$R(;i8|@xt1tfJv`E^HeffmybDp=fwfJul3F_8S8RSoJzEnf8Mz|?|YFEjyRm7 z>GZ&kL{GP(8$-wLfJ7#mj)MSb?XgrV=HkTngPCtNGSxB-h_d9x^(IlnlV8rWE1*mj zbRijT!vRx;ekx?tQ2S-^>@Y>iRTD)58h}@)b`TTt8HbP+sM5|IVC z!2VMm>S4iS`Gk<*pxJQ2Gk<&ga+zH_Go#o<=HRyTbrIb8R~>RWX`KCJi6?uIR^8^s ziQqrn;8%a(h1sKuWg-;hy=W7<7SpYd6NeN)?fR@3I{xVz3)RJIfB#vm#95~-Z9-b0 zO`VJPN0F&74d2MFx&>>Wp%{!}NI|I|OD6ag(64^aVP z|7?Z+Ag!<{ff~+K4Tj4v^(9xY86_+&Dg4Y4+fShJG^T+|)GZs~IMGDp0Hu~7jj>KN zByzZVKLnuYT$+l)xEqjlIA=7X8@3@KXZk(k)++9_i%v=CT>T;P*vr#>u}0^I(~6r# z=Zdq7i}H5Ink}sb8#mr-3Y%HCuk-F!Fov6q<9O4%*|VL`vAE&#lvov+kMAY4P>Xi@ ztyIWX`c(T!4*TDD0bGYxME7@W7M&(*mHtyD1{3{duKJ{3*`K=>pbgD>nRx|Kk1SuW zB@tcGkp@8{eV`wt2;5>vii^y@hb(WF{U^1zaGOrW?4(;s^J4ZoqlU<@AA==465qZL zq*8742!Gq?%neEVT)CtScn9pvlV=@2GVj{f^~G)w4U5moI~XFwyO^ z*JYM((vc2n4R?gOfeFI9+4lUF&OzPA=aO;&g0EeRuM3vy} zCZ@YbsNlTsS$A)QKXp!5zm)#|a0hv{jCWEBdqT!ADfjx?ZQ$g%)GY@1&hc+8}QLX^#4+Uq6Z`5{5j+4--DK#AEQa&WNGm2b3#u@jAU=ae5ryNsKg zI4v(o9f`;8;;n?g&;cgSA-eXnh)N2TscExzXt^VG+_*{CMh|gfU2VG_CRALUf&hyP zPziMg8Rc`+29EQ7tWDqn6!VRvev6UCO)w*5Nh^_>mw0dpxDP$OdirRbeGfP}^og9Cr2(dnrZ;}?ruF2YECXG#S3sy!ejm7-r}75bXv-gQms89TPxxXYO*HSS z5qvOpRH@oeN68W2AIoEJyV_f5g|R1O{Yh&rF^unFVa?dTFBbD%{-EPlT~meEb|O%2 zj2iDj-BUkU1w}b&_OVF^JVv&?$S$oiE|fXHV>z|89-4eIqM>)}{67}p8jMD0?1#+- zyawTJL{9al{5xTy`n2Qn>)4M=9P4lLx7^Y#3vRs%7n%|`d)Bhc8nlT+l$YSQPI-m_ zrVbGg{|PIx|0}GdMOnlPql8iCF&PliWa(@66XPE$v-GD{g`B$BLv=mKu+mu>e;gQp z2@5NOWd@m3_4@syI^+4U#skiRMoFtzZOo&CwiF)e+P@=DA_B>=?O|jV@85fZB1cEM zlwZ9(nenFC2)9Y!+2oU3fO@l&f;hp1gr0curq9#e0oRI59IX6pdVM9Yept^{9+8+g z$Lj*$ELczla>sXk4;ch-kXcyRPx21)S|uVkja3owFra`)Lja=rFk0&0#T|3C9wOsV zBg@D(j9?_wU4KS*`Xsn;p<@XYYvPJ#<-xkNg?K?X{A_<+DYM>`yb%2?eSyy^KD~32 zSC!wMAR#?K@q~Lf=%?O$=x92RL}-%+F6^Dnjh3f)>n;r>`pE1_R5+4YxiqxMr~1fd zxa+UE^UZ)>b28HBLM@w)p&^yjbN{X^EB1lT%xHzlyM}0|(~>KN3XlL${AxY)3#4H; z5|2(C*SsauA{NMbwRKQo1_O5ya?}B9pFlELyG2p z?6|^&|4|pCPzU34c?%Vrb}I{s2o{Np;Ei>u<-~2j$ING!$Cy-U$bw(ncmrP*qPwZD z&^sfJ0AtBa8)q7m%k(`~l7mO!opxn*e*8QES*z75iEsIG6~G)9tXE1mI^$W{YKuC3 zh{X!CabCl~uJM$cs_@Y=39`zJ+zKIG!}3-4u4sCI*Y~a2j$hEOz~p7pOu@*#-|8J7 z+yW+%C0a2zIq+MZ8ud74<)F1|&NZf;4&<0B(ugu0A~MP-=K2+##u9_G7rVT*lK%Jo zFXOylPy+JmH*zlQN!wXrz|vP}4j(FbwL1lw!xS1shh`4{p7+fHEP9M-NGhNhF+qHq zS9~+W5=ryCTl4Bm7#}k~K~4#F?zkfZs9%pu2fqBbM(k{Mjk?H0YSF=xkd&Ah&$sGD z2jqi~Tf|Y8sVQh19I*=(!+-|r_K4YL##7)hx4)1v9#x)e*{bG0WJ{;w@ zU;EkzSyX5*kp=w%k`^i-UU&H7U-3W89^d~=)^Nmn4I!Hq*dv4Z`1qn(Sf!60ic)?o z-^c5{3DTD7oQCPCl2G6z!f}umgwE0V4tW$>)|g1G{w?ls>SwwX9ahm)KI(l_A2uqY zG$O<^{R@bE#wm|{h;)$d##`-svBD1qjPhMqvd-KH_a2rX3<-W;W*heE_ErNu)$92bp( zu0-r+O-u(?s#}{2vV*W76Kft}=5{A1nrpjuoH>$h86|U;tr>8GUKJ-1I*AyLZ4}NN zz*pY5-rI^cJ{W%%ZfwHVwc+N18hNj-P>t4oH|JwtU=aIHhR?4yzQF)Gck?kRUE=Y)Ite3Gjtx`Y%9`{7FxumFqz40^w5YVB8 zBX0BP0QKY+6-|xV#x|Ba5=bAKo0taIWO&092?z!*Oy_gzyjMw%7F@3`c}`^9%}&b5 z{pjcI=U3DcbV^Y%qp;*1p=n|Ovc zkusS17D);-2Q~#a1P**_J|CBUve^0D&k8U~Jh@Z1|0gas5E}G1-{K2)?+xg*?-sPb zou!g#wY+OjFx0YE!do8g#-Nayd_Ty;6)sPwX@`j=FgJDo>uJ3*AfxV~71$+=>V1w1 z;ERFYUENM3IGY5u<;b3WkV?ulXp9A>GB>wU6LNtVm_R;lu?Z-#HX<{rd+)>WGk2^< zcYA6zR-lgBjWEnwX-5K-4GtWvYNd(SClUthcug45uIXzpgk+B~u_%4TcV>Hk1gN7I)! zkwm<7y=T$YqvujdBgxy*IRRX)#CJo2f%W#)Qi8&#qXK^hPT!{us4PYD?w>f5d)fQ( za82Ebyy9u{Z$=5-yr{m_)1GXvIQYbm+SaiUblWK4t=ps93Az7^Uma;|K+Q)<9{;_5 zH{1JTwK(Fl(`pXVLwdrYDLXTc+)yO&`|_rA9MUBm$JTL=qvx3wplg1!lR_BRYc4`? za*GhXhe{QSw`c`OYAF107hAhAO?nA!NciYyhH=O8$Cv%%z^u;em8phzN6*|uTBJ*# zdyL2f=eJjk$s6`h97O$E^r-okHS5_Qsw9?>+E~x=ITC1oUL#uN$lHm z*lNpi$#_s8V^J=b(`Yzd&TX=0lNkyQ$1accEcf{=-W68+87=B9 z5-&7*@BXzvpq?~IF^62)CWHm-V}SJMC_e(lEgif5;ep7>8=#HZ82oAwZ{AP5gqA8F zaLR_2L#NwEC-;H_z~ux(rWHX2+TZZGkhTq;>B2^yjvF<7%Emv6EWffFH|n~3xr;2F z3mT`P;>nA2?Qf&~%-m1EgYH(^LTjKy2~l6^-@{WFI?9^53^l(^{x?yvLhf@J=eYC- zhqjqr1$p&lX>;@CY-`K3Mu!>R!AuG=r!+0zI;mf?GvtD>B_XYIJGIc9Y6}QSv`x&c znTQ79SHJ8(A5|_mXN@p9H;#C<`d=N)HE}*hPZ*o-R`V3v8{uD$nF)Vso2Pub8r!eW z-~$21xBWBf@(7U#?-LM=2)|8Z^b_OSJdVs_tBB9p+V82CtGj!Q6;A)4)~ApBS$VOW zhuI0~Yc83#T!B^g&)nk}Yr_t5~IuRK5A|!p8QL%|B zGOYDHc9MTX|8@p+ZG&9h6E9-EEyGDpY?ZM+*4YeBa;^iX+TLu=W$h$*x8^BNRSm)& zKDM2`qZTq<{!fgq`adyRLY9TWgAX8O<`ryhBNvL4o}RI7#m2S(`lZfFNRYj|@jC_p z@S!Ezv^O{JeIpFm%6MtNjMmS@77mi{4SZM0v~=zLK0@%-$XxpA^`-9i*B;ZK4f^r} z0@-AMXtZ~Pbm3$p1&*ccJXx?}D?m~btfe?co?lCX*2*?aaTJz;DIhQh=t;gwRr{!S z^=F>F=e$gxMqqZ*%qA?XNuYH^^NneG)(j-izv3S0{GeD88Br%OOEQpgiU7QubU3{RXyq58PB=D8-j28-Odzk37Rw;PSvGEEw8uo z={{42K<4Q;lJ-71wZhO#Yap`0^gD8NqS%sfqZ#MYgIF6<`6%dHH<>MNZk6yw^J){k zC>e~8>RK6h*N>iKVvlz&RhV|)>`hTI0ZPCOIDC=;F&hj8W|h+I7PFCrk6`DsTJ)wI zb9i}+Db6A?B(5&q1TuZsLXZIYf(NwKU&Py}pU6fPq#0x}W5#QMgo?A-QFX|{Rty{| z=Fn-3*S{DOy)9NHJ-kp*ctILlvQ`|sDW4eoDTo{5A5`%<1rmF9>9*z}%B^fOF-TM*3CKV0 z8QR3dVOXjigYNnNgQ23W7i}PUd*5yJaexeRej#|Dc>5&%FFE8K(X!k4Zl22>&$lzz z*E(R{S4j#D_HY}~xJfS@fc?*Hjh@78k1q zoq%x|a9^&KVP!=%#uEY&S~kIBL;RboZEtl-kI(d5^#oRcM5z|OWA1N|W^lR~?8yTJ zhpN|b0yl3fH=%iq*w^3V*BZti{s;3LR40zi0@tVGH`gR2a3K5q)Ow4~)BL-Kz^G1d z*vdhZ0VgpZICFxZSGTP&V)GXb0H9I2QtE3W1z+s&rhX}dIhL&3wSu>(qJ8MWb7i3{ zomya}3SM#v=I*ZSDqju}9ye^4m50@CSh2`}9gHnWQwm^_nw^3B)k6AN97aO16YT6| zfgVN%tQQOI-cRn+?eKkkZd9Xguk-&-KlX4!Dt{7RB(!2Ps*T?sQaN0+v_yOB0mx|u zJv`<42)P0h$Ess_LWvKic1FH7Gjc*o;Fw%G+#+E91Tff==iNVHxcf0O*{XBF7-NA% zda&#`$t0mX20gOgcS%99HsllDkpA=G>WdSv8Lsu zMaXdN!cKhEl#un_R7J&SF($)`HL1gc=bJ@ijCn+@O&AQlI0DuL^s)J zM`ysb-1SZzm(rA7?D4S^8TzdS$PdCpNi*d>G)2TOm$4S^gL3Aq*Tx&H5e9Gu5YVC+ ziL{A}h91w&=K0T?nmkXQDgm=K$>avvamE}k;&v~SKQ0_|K%N;Gk#5_oUqPASfLc)p zMAOY3nthqQAhe_Y|G4_fxTgQG>k$GXF-lrsNK1Dk3_-dEl2VS4?hqIujBe?WW=Kgl z3P=r*mPWc8CjIPxKcD->^Ss?&e}C7x&Nk!^$`gBNB;VO(CLBK2b4R$LP5erZ)KqI!ol+Fdu_r&TNe%FIXn-N*( zHql));l!o8kWpRfNkm0gzWXpDML$U=rqg0y!r^tfd+Wg8F|zq%uSRE=EVjV#~o(>&UNq z!djtLEAeKna_@b=YC8G_=YDfolcv3Ae1^+D@kKDLMUUa!V;4imm{f(= z6b@JTbe4*OT;5y`XD3A!x#|ppFrnh=C0mA_pUGZs9sAwkvX=8MiFxTFc(3XMVoBhvD%1Y&cheWogmd{j|kdw z-1O;1kTF>USQ;&fr4#$jR`5epeWpOrcEGcK;K%xy+iT! zODLtP>nVyt8?kdI#r-i=z#JDQNk>j`Zu6~>%t!1*lI>FPxcitOSj^`T7n<+ZMTYHKs@d_@j_xXO&e=6Q2R%Fj2v3~=Z zx`|$;AL@xBs&)Nx&WpL2W)K1kUt#{nLW{9~Yrxpp`M!p3?}ID%^e>HySR_o(R7r-P z1IOTQ`m@R6|AAgnq>sPwvKdj6LC>J?N*RO;-{nHQF}sdCK6Bk&KFol@u}$&fI@gsq zY5F?LZUE7RnVTd?A^C)91bN>?OfR1H$%u1A`AI@AVwqB@d4#uDs@*C%lr=-_|j`o^+Y~97qu` z+C79@#e3YSY7b?!bf-N&vZq2(6J&ldU>l(Dk$rvWNRVFi?t zS)tlP&P=*Kcxifz3V!qBb#MC9El3wMfedvGC)9swN|+!w{VPD9|D{?o-{cv4lpG|9 zgUo=ap@RC4nt8Q&S(k+VcG<1}UUB6wwWPAS)@@##RPQyE`;$clhv)kZQ87I)u5Pm@ znpZI1P4bh7&@+cv_o!?%;fsBSJ2Kor7=NzZ^5(tBX+)c=CK%(ztZX7WqJ2}9zz8>_ zpWJOa8wauWhSe4->lYxm6noNxZSBt@6H=-ox1yqF7V|GK`zl?Oz_fVs#|8e-*kFzK zL3C~El5YRUciN$^L*$+00kY;Mvwf!*7(T=nSo3n{IIjRKRJrnIp(I*3%V|qinC+oQ z&oiGTuoPJ(yg2*5c05WBlxy1_UvDSW8PWTj>qP86gX?^(!Jgh$dmc>pldYF*%W6wl zkoF=G%9P?d0QMm*S6VDbTQqngbHmL63>uT?DJF?HQ4tB40IX~Q2En}WRW}wBYO7}j zWKe^EMaW-mjC7<4jD?veLy3k7txw|A?~V)qX<@n5 z|B_k0dt%}guFHq{LMMw7jL(LI49_3p(6PgoAcE|O47Ib!{-=$DYeeM$^G}D%-3tIb2Ds*Y_cuBr*&;!B#*1_ zWu$`|>AZH&Hmlx$-fT?-6s?|<$vhrrR^TOUu^OhP)rJ;O5dE=|5$(qPUM5qq1PZKl zM1%k8hC`LrvuPgi=-bGe!=4Ws48<2EqtyQ#Vvpa5YP&Nul&B~x_O3WCC^0d17sH#P zkDC4(T+er&oF=qB`mJNQpp}?^i+_h+CN%)0^%fsZAUKNdRffk>44jJP`8fZojmY!` zJr#X|@HkTrgF@gX`30HL%(|lzg~~^yGR|g$1zZ&!?WUVvR8*P6ct&seYJG$a8-N!E zJV8*SM>;^hk+A-#?FU&(_D+fFo8$_u(0!f?6?GbOZpnGj)`i$m>2P4J7UVtzAv z=`t%og9en>RVOBKI8*BA0LQ|}Bn#hr2tE5jeD-nn@in&Pnp{S=r_~h#y=SBjd>Bmw zRl6_459nOR#4|=XEFyM5k=$!`c&Y^~;~_hCF&fTFuzse+C^e`Ol6x(gDuB$dfFcp~ zmtKxi5ON5|gJnqTTEL!+*8y|;(vfCG^}0(2A@M=UpX9_^OFQ)lmKfXw{C62fo+seG zVj{+9er_mKYaC{mBE?}TexUeDGxG;Lk_z&wG-Lrmg^Rm30w~draC95}9z{(h_@n^N z2%xg{ojMTZ06R%s`cVUaF-4a_g&Tl_S?|t`)6ohae2O#}L0WFFxxv_m`O=&H!_}6$ z!c;m%k|gov$~gSnyNCb;+tpQU(7SxmR=v02GyDmDH53hIk#Teu%$?}AY^J`{6@SuruE3!=AD@cSE(uAO$rcHb@ zZYJE8P7G6RpaCdJ1Weoxip75K$dI{NprzRVq9npAjfeNUdhNQdZ?DLr#11K%wm!J- za zO?01eH_`j|2!J`WyZl|hDb&*w`K7H&cTE&=WD2g*YaNfd%E=w*^9y~mUji{&Ox9(f zIW0FssOs(0p=y0fT>xyYXnR3WUEsjI4UZf~6zH_{4mO7iuV4Ea65uKs1GLaWi(g}OMhHaJ;O62 z+*ZZv_Qy*7WfrbOEK7nprIdXY$!X7uJ1fqm=M56%N>gwaR`A6K00l|i@E)vnArvpq zhXZWcMGj^Ttd-S@`7l0&0DWuY*y3BANb&+|(2I!`OfvBu(?gH`FJ3bOsO{}!x=}#A z0s;8ZvPFv8fo8-1{w%rkao^(K55C2yqNtIPAWsRue-vn^5i;Iakb z_Xpuj^lWy)PDx_oUuWIwU{|c{N^kLOdTJpC=%0InndJ~~zUfog0b>A!MV}96gJ=Tp za#A$X4ZubgN{s?jR9J5LLT_oXpRyRkJ)ZYiKL=W%y&5Z#u38kZ=OmxRDC8hd%!O{R zg*s-1vZ#37mn&{yKMnB+EtSZD-iWY2ARhQ9o?wjj-)%9X#aIO-nbEud2rjW99NTsc zYj%58)m@Ctp%n(zF@_mv6wa}GvXqP_FGr(%>&MwH4E={#(3Ox-j)68-r`B&td=&rE^1vG&uK}U5B6yx~KrC9X=tidD3J4Ff+v)jo_ z`>Y5Ys6Rw-fj_sS4jek|st^sjAWARe>nkf=Rls zQnfq0`=*cM!SNJ8^B zBf9*0cYjw*!j!8p6Ip#P|85=GFD|oys8E*noykp2le@{wBUG9%ykUPXEdu5n1M*9> zG9YSNk$6;iiFgV{zg=)>M*?Nys-^>T&NWMR-)!h_Xly`6LlKig+3ywLah0+}Uzy#= zrch``y+!E&4qWXrs>Cy|zL~U>_;3^{Q2=luI#43FZu`_i9}xo|F5JrT_M?2b3WM3} zfS~l_xayN?B1f0R@e<}9*3SV|ic*_7oH@A5U;JdPo70?MoCbOv$-&70nB=)X&r{H` zjZ7AJ*m$Cpq5sBtBo59jTAl!SdJfAz;AuF2M^n)}B!%nubVwwe4`5cq?^n@JD3F?=qb)|gTSr16 z=F?TZXsFcN%!_1(mB4${*h21z`6*j9@B4#Ne)s%F8{A$E6 zGJhWnSHgFyMYs00P(T+AY%%DN?FRjy-P%X6g#nex62%K;jUCjJML2IZxEPAwUS$ap zPVg!?h&R$PUsmiWy#fgZ;MJyoL^}MKa25mDOt1%9{|eV&KxOTpezx0m`(H1>=9sA6 zl+>=|d*hWTAH~0ogn6zR*WbhDwt*p^29D8>>cyHUWv)x9s~kvfquY*@-A?msQHpkH z(j7o9=k&sW{ZXtk8(>Z|^@=Px3dAJnDo2Ekmn5vdw&M#|AF}79D}cHN>F_BhXJ%Nt zgF^0u4m#cG@Co;K25+3iJD2$h*Wjcox4aq;-S{Hs`t_+>q5mXbGgEWJIPCc% zJVf+`DCSG$kO&IV@P+xypK?7VvEkzmP5C0PjMWhwuIx#QGZ%a6kLkMLMgP&=zQ_UD z_pUCr@4}`xAKQB$1(=xy1whPBxwq&hh`hK31^nQqfxL{q5 zmX+%=$=l9KoUFGTbeJ)1!C+1hi>y&4V2QHBrm>@N-g7~rNY8b!=LpWpt^>1ANFE{k8Gs}uJ1TR|gKsyXykZCLgCY=&FKs11M)+NlAv0`jD$B4n*`^&z! zs$p!y$q|+;T(PdCG-`#|GLrd?YH{N0bwLf z_JTy4i5aDB0#&PXZCuD^{7(R_-i_bF!LOYvv223{JVfQlv~U++OJOay3vuHziOp@6 zvh|C~17T=C*5jM^3wp#Bmp@ml74B1={NF($g3c0KWr+UGUl8*uzDTw7WdN98gDyn# zk&I(MsI)N9Dc#}4m}NbN2ew7S{U50^nHsSJ#sKA?eJ~CypX}uIHGQ8mf?$|AWkwD3 z7VYd6Ft7&U1*(Z#s%3NLYWfr-05M{0eiFsYII-8UoUyC7np2)2zq(^l1Vh!nkWL(c zk?F+GHE^gs&rUY$ zE##hWp*Xvu&+=?Fn56P=VFJqh3Q>5dwc=lkFhlI8Avl==iydh}nD2Pq@q~o$RFel6 z#2;6NH$QL`Mx}D=J^FOKfr+2XoIf^qJ=zop=;4#zjdh(|7+0IsSCEpaZ@ooQX-AQ= zy|o2Ul;HED&c4ReX>4(LV*-d(4J*9J-Z_daiLLJ-HB@&Y^lXOB;JrWTm<#f&e7_0h z3uV$gG77gV?Bl7GF2`YFY^})?80Yso=&eQZImp|6xva{bdwBCL2iLR!k)+tqBV$@? zEOQtZl=5#2@OsVf-V$;@vAisE9&`O@@`~rf4na7v(AER9`jSD#bk`&5@gdc~%y%=@ zK<{!h?S0_&W|}NIT^_Q6GSZq3LLEOWZOcAhH!b^p6v$}*w-z0=?tB+ZY3B3y)_GsL zeXqlD=eA#XHIRPx6e}VlIOG)OYTU=f4-1a_$!n`TP#C>B19!%IqU%yU$-f(hAx(}2 z`_Y#2d+J7C>XZSG7Z19nd_NF@E69lb(i~lao$nq2`v?t<8djdE4K{bO#j`HL)`{W( zk+@KWNj5T|?8jbv&lPMXu;YSD7m0^SMxwBc5QqYhBDg+f(VK}?kOd0TneLl2Ji1*( zjiflQWX#t2-0sf(h?PLK8bW7>$ZM0H0A`>(NOicoCBcRL?BP?hDz_CC4tskY2jAs} zefbzR=jz$$T;|H>0d1T(TGQX~vl;;1e&ee8`0u_~rOi$4y-lar>(^8xauPm@-alc; z|B68+@h9!a41y9=TAUr3o#w`KR+gfgs7fMA?siTMU@p;tVbeDneKOvy-BjQs`E<0p~33PyT^XlWz3aCvoP(@7Z~i?f`l!}h^KVy z*qj|`u+s{OJUtIjw>%>=iyR;P2{ID+9=BaaG#e77qEC@*nUsn(@3m}QbNCb8w^S{1 znWH@8C5RU@m8|udk42|$)Inb8ogM$NAeY?7M*Yf2iMp^qI@RqM%Yf=&w(iQeR^Ud* zO|PLpk^(Wuk1qaN7)XK~i^MwZ4<3N2*YDCsDkJ_S0CFo35yf-@%m7kp&JP+JD;)7N zW_=Fjd)BdmFAr`B>v76ob7?(h{XUGcI}i|YlSp;s(1hdF@Jmug!ilh%6UXAdY-jn= zpyKuir6SAlU-91fks?^LrT?I-ZNhdR*gqcOMgoA5jQT&mg(;VB`O&C53aD0;Y{N@J zUt@w)_@ORIj9;li>2CRRf%XO&c#1LoVSS!?zi@mRMt|RH)594)*O~kXD8<7Bz!YXX z->pQ={!RF;7j4wUk>#na4L+EET_(zU^-Q+tD;Vv1^O?R`XGCg^c!VIub{W2;SnB9~ z_sU9={0k?@2OK%vnQEpIE2q!3jrCPyp!S>N_WzAP3E5r?Zb9rxazJl&ybi)Hl>M;r@h5(k$hk`8&62!oWQi}~S zuIE~{?_3e$texjSmm_38@yV8z+)n?R%D`yTiZuWZ#kCHv>qcX^v%x~Cmil)-r}Jpc zH*Q2L9i9~kh7L;k`4Iys*&L5pzO;V{(;Xp zHtp2URN}|-dgv|5#y>M|`z;ki;H{a_NX?C*hFG>cOKXYn!7zG#eMp2TPgD z5Lx8;#$UhYh}?l+n+1SA5KW*p4*R<=z~)ML2~xB7-zP{Vgkj?or*H8MegL(|m|TXO z_p^C607XrVDD?@-g7FRg}=_bDp83_|FHYWTpDMbaHMaLd64j$l%QJ5_+> zY`nTs2*)wH-?~$t$>hk;w5 zK2RScHCaN>wdW|d@{e@_s_jKOQZsJs9);=%^Bk9n-H5(;3(Hge?Vre;P z(P{xz&j;qGeznsDbTfh_+NWRfN)WwcazGOwB)7G_n`*pNseDaw&sIzOi4KS)i`?YZ z;7Z7`l8wWb7%CFyuoEyIMPep>L^r_Ri|MSpS3$eQX%B<4*KA!k6 zr+tc%<0N=B`t!X1^14U;==14jv zfs45PE>}62~oZmDw+mx@$lDCmv7=( zW+Mo(EsZ2gB= zKJXf*Xzp6}%vX02WKn7KK83?|2PuMzP35OXB0^@FYB>zeBzvT%q76TH* zIBq0%RU+W*#en7!HBRw1fft}~xvJkFapuIVXC#6VtDxAp)MF%>d5S9vzdi&+P$Ls6 zq3ZvK62^6by@a2-SoRj;Qj?*BRSy(@;+7i-CnxKR!VULd)B8M_+fb41{{#l5v80G| z66J0GhRVtdzf;@G;^gG$$)jJ% z$b5d#XNHNNELGFf#B*b)oCU9 zIms{K-KOg)f_ja|HGS@ZuVKooTLUOF$7_EL3-h7-skG-;?58uNvk}PAQT3wNx$2g~ z<=K+D%U_xyxhLk}g(kK`##3IHSMj#YK?EjE7)!4^9@nb6jTh@#O$x`j(WOq&Q>N)} zmMsR{Juw78=?u}&9fd<=qk+9c6}2^g@zBec5Lik8&Q)OQrirNqX3ix2ASmwukIUdH z2>Yj|vJI+61ym0KhCV(2k}#T&e4RW{pEm-4-O6~Fdiq|=#1I`TD7nVgmm!AN;-~x zxG`D@YH&nl1i8u_BTe4dv$nd(6AcmDThv$gIoUcJJ@=>jt>W6gP#I6cpHYdCUBb#d z|3Gv^8CS^`1qWDI*DOViFMMAbzvvf|3vT)<#l8u}FI9JUHoJ13R?lX+eZUz z=6@&*_;)kg^)UN*^ZxNR=<)cmqYH&vK1HB=8dcHP_5EqXEP!4r*^95l+|Q$LQO8)_ zHnO*Kv+slM-``gR^&w^NDwY?*m(@+Mj%HoyWnFymzxSmUz1#Jy_$!v6ODD?aVVcH8 z=>0iyk7!}T_Y*qlgC@>gp8$Zo9HSS-4gFeSU#}z})DOuZ0f5yMJJhEw=x6DO#~Xf( ztjuLd5*ZS&mxsU-sFS{mZLdbHb+#QZ;39^2k{wu!fr-o)h&c1F)sv1h#m9=+-9>O+ zXab`*OK)>)J7ZE$*2wr_hdt>QE<~Czxuf1&ucfXaib7ZzNWxK4fCOXYxOB84tGnDf z4Y%rWX~Gcv z0=R65MYABIq8@<>2;*R^aur02QX9EpS!)vVK3h|9RK*a{s;ByKi@i}(gtI`rE_x7| z5ijq<`3s#;h8{km3eCDZYxP_mXv}?WA)FIVorocXIXv8Hn%c=7z&3pD)Gz=~*ps{L zUgt5)w6D?jjP<0ROxaMQ6V^5677*Oh$j%_uO{3|Qe)@K!K4p!tPO|a%7y!rpk#-pK zK~-1OsyEy=KI2!55;~pOTtKtRjGpX$t``dzEW=3qd>Fg$FoHfsm zom7dld!OwphBnF;tQkiexV^5o|WGy4WnK^ zfnzz-1L=a|BJ*yaDZvLYeyq0SiP=M4eaG{bR;H3yS6<;JeGBw0pelH)Pjcz^elW>D zHucL3E4N$x0R(5Ow_d~mgzS^t)#+7KUUMaoh#09Dq4L~0REuAbyMu@KW`uJk5E|%H zQJ%@DXlmyz5noPpDHJ9r@`aOu7T9#s+4A9Y>bK&w%K{X`6Ar(J8dI~2ro0Swl+HIe zmLk~wBSxLW7nyE4Z-1NVtJ~_k!aH{K^O-$e@n9s0*pbDChr^j5%&|*BL*9sb7tbI{ z$CZKuWuP_$`tfI})Oa5^S#^hHH5Z8h0smtSq z#qhf+(~*%_A$&S^Dp=_jZJmN_1GihQJ-W`YR`ouWe*XD~dRNS|`-k8!*|FDnO2}oW z^bw-;@zt~X4%F5VfyPngjlM|5-GD=D+L2UO8t0Lu_7m?{vaQnPG#V7l1#k#qsYFp! zyqxU3khkSs^5xCGDavofSzTAUv0k56oZq-mkLtS4`1#MHF#+bA2vNWSt1=TZ`Sbc!f7>(8eWZaKwY%Y~ zfVRzS9yz3n#=!1aoZ`8wxlO7vbupq1qu0r1SqiuxzM!z+7N*CR%fd+Uahs>G50UY2Vvb@-!J9u|Ub+q!Ps@~)9K zUQL%T%r2KjE_l{yT)NN%LaCWP5|5=2UG(6wZUf)mAP2+xmRiwWQZZ)L?&?`#!9c^G~C)Tsz zXV%qaS@V`^p;hn&kT8dk=Lw6su=$=Sc~U3~>Lzx6ROgWk#j`~-Wm+16a(nX^hCL4F2~?!Kh%lZQ|j)(u+yS$5CzoKFt3i9w^tVWNZNdyDfdFmrBaW;@^i!9)pA&mef>by z*}mB9t=F)>7Wy^iFOA1b%Z1)bsDHn3*)=64mlO2#;=xZsGl0#>jh6J1_VueO^$&Ay zvbOo5bAKxbt)Jf~UEs%BAI?vxSs@ez3C(VMUN1hk7+7vv>^#)QCE1s>Gw`kB3^4x0 z_ulj>fXh2~MYi4W_FYlpRs80bhTMA*T%CP9F((Yls9CWPGNQ zS8F*2$lWfBem~rxp*mV_eNw_H(foDZiKvM_7&4Xm0z)m@Sa}XsIs4M@>QaDfkcaoAc&X-MO*m7?IOVvM&wQ^uov?UFTOGzO`AgOfs3giMgdqJ7Yk; z^QPL=94Q^UHz^qwfK+7C#ig$0_E7QDM~Lv>a>^^9Yipj9l=$nPL<9g(0p=_4GW-4J zjdV<^-9$Nswu^|6y3HI0vIc~_@v@(nJtKdV)8N1 zrwgNh@nHKU$-j*E7d?t<5my-)j91bCx@ht`XS9P+*kYI#V1wtOuy65B!itq?8Q-FO zK7*q>77hOB;VWe_Dr~=3s19^oi*^e!<04joTERo+YxZbwJa#w?^AxkB`k{|niayKP zi#~py7u%)j*c7LfXOlUC0#wg+VB{+8BrvNS;s6E2?9{*SSBo4l93vc$1%3hX0CbpV zz$1T1vVgQ8gQ9H4hT@{P_xgi<2V&S*R58XRd5aF&i&g*|yQO*RcYtS%>P;xjO}crJ z>e)9J3ix&HUE|p~t}CUR6M!LW`GEJPW-2koc3KpWx7Jrz3(3jJ_APfzO`EGS-ljXP zzdiM$ba0I-!AF~)nB<9z>R<+=?m)ErIxiI0nW7?-_K@;+L;Mo$uFbUfExR?zu>1z=ZmE06ap zkMpygIDoFZ;jTO0hrX^qJpa?SJr;1}E_*I0o9zB@xbkrL{n~|>==Fwp~85T@* zPz0=7Kz;7caVWTg_xBB+5>vYtBx2N1=6Lz;m*P>8DJ6yfRSzzpMr;?(@9pO1++lW+ zrD#@tR@hb%o$M7bN4Acp-NhuosmxqkG4! z20Av(URH1%2!HC^ympeGXk>9>-WxCrPNX@Jhm7kSEq6!-H4hqQ*}2pR*epe1V*DPj z+}g-}t4&fp!$=}h_fGh0Mk#QRTxG_~G@<*6YUDWnMdi1&jwU02mZ!jxZi|4@>x#_C z)Nff3{^5$@7eF;`R-#A*s}M`B^q-5{3AMuK3vJpxWh<2O?<#P>Y$~5B_QM7;egmR^ao$YATEr$jEbHjI~flSYl`?|TYS=CsT%e;`Wf&t1Zo=&N=p7Sj3&ds z0H5z~#&?*l1a-8iUM|R*&GMpa6$h?g_c>TK(y@I3xNxk+Va_atT+QSk&(SLcg$4Ar zFq4>zfZTmi+Kx~@4uSK~8f|nT2n^<9q*A)a{Y(9eZ=WdZ$XS7V_0-5jD=2>1jLC93 z3;_k~%&TSHWD5uWJIKzmbZGMbv}3C^FQU$JK6H{oc`2QnY&uVTD6x2yd4_buC0{EU7aRo z7Xb!DPC}Pq9g#9%(69UT!tq-txi_7Kh89%R(>PZ4)ePw&?&py;fNzxd*M;iSVfW0^ zK~oxA#Dxc0X)9IvfW&-3KH4R%81MN~$to?+8W44eV~E7Sa| z^Pq>7m9k8}oc@G#tPG5xMdb2}`8~5&`ENVma#z|g}>0u6<495hV z-~(W@R!c9Zm{#yoHL1x!`d2fs?+g}%hMvE?&ID}*Kf=K7$zxID2^OD zqS)j1JjhYv{(9~~Q+Oo%8olc?Z);577X$KjpA__^K$G06rz#NW3$;<=ie0lC=!*Y? z6iX{bNX$(0Tns!eJx|51GPE&q;jf?WH^D_4Fi9fDt;X~1oN{$$CJP?Z>62v7X2Z{{ z+g(#axJc*AfX_ZmZu+K;X6CE04VvGs-@YA$6LsD@vL!uUN7fq^Puo9SE!;cIj6r<` z#(~N&9YpL}2poq49y=Wd;4h1t=l&_gy1M=&OCWw>vKXYb65(++zY$xye})#7@V^dU z+x4=B<>hG9_6b-wmllz0_euIhU2CU-MQPOYMqC9`! zU!TLbkkzRBj{%RW=i=3#bweYSH?&!?D4SP`5_RZ#x|liq22xQebeH<(Zon7Sxs0{N zAsD~F3B^8fP(gLIq#uq8I_TCHh^}WUoI>80F ztpAGruhsQ<Shly?b5N*iB7lbI3mMwDbIj1!#E$!K zEDi7v%*(JoTMVn$x)%4F8&Y6kEBvIFjtv&vZ{!k5I2C7vu=j~2l{3l1(Uc#V<2J{t zuLxDjx9xZ%j`=G0S(O!)l`o4Q2V2GVRc59Y+3a<`A;k6RNHb^z2qne#lp^G&U+Ss5 zpp0G?S#S|GOTt7yS=EC2eKQhmU833Du^1-b_5*)(h?66F_0`N@0K zqt_z=q6z|wZo^VuY{f_WwohiGWeZ}LKet@ilzPFatY{ALe z#!$rGJ%(|TKkJ|?Mkb?42&*^4lh`3Ok@{K!Tx-20UxI|C5xq`>8Ov})eFt87ql-g3 zZadDi-z%`A5)sj^&+l8Qf2s%rn!_~#C*ecS5>=;1zX{g~M6}B;Z)ribXgH-)LlAH{ zqJ-pC2e{o zrCM-f$Cs7jaI7A?)gy91w;BNP#EmV0YpL}WuYYM1@kA~2^KJ_mj{M8G6caNqIt4o8 z{!^i=-Qaj{p6y}<{|<6hhC8HD-X*GgO->cz%MbyeK_ON}^#J2$Wo+)3Hh0lhel3#OOu)MG4YT@`+DUSGHKsT6@_?5j zIFQYh?s62OHybfOD2gS#5Cd!{rXa*o3rZ37p)*^-SXA%#GJb+(3G#|}O^atBFaYG7 zu39coVfOXX@y#4q9)YR2(3>&aFTWS%_R8>OL&>YA>*Ud(NO)6>J8!8oPq8ifzWbLS zX@XXtyo*d9ABoE}P36w((X3jV`t-}fx;1?tQvg1?@YvICsBCj*fe@PO*V_J8Gzs8< z{331q`*akB=&3R0lW91o$HY{F=W6aMpdlOsUtZ(|La=~&E4&O%C?ayzcl-DJSWmWS zDbXy^{s#?V=b7s_^ha95lRn-YWucCO$G{$Keb$P*Y$%<8JgI2Iv*q1^}PgB)<=b+sTiza<-f zDu`lG8BEldr^60el-sVcz_IK9u{PlxCxo^EuA?pm{80(1)^ilwq9Qg*sD>-0`D>@fxwSPghr zV{L9F)88%6nY7Ju$bG~?P>jDoXE=`lMQlu0&~KQIo#i|D-l%Tw*MZK)x0KX96 z4^s|?)!lGBpCQHG4dobG%9N=BZVjfV>NpJvceRVz#imMheAnv zKK`WaWCQ_DYU2Ztsn*LR;EOuh+q&w`8&1Hd^Q;w*?)$a1HR8t;VvN<|G_#xCyocT6 zPpRvxfRmQ70H^5Ct_XvUCc=)}W}L<9b&0@Lt=fqSa^VkURIUk)e0|(jG^?&Ok}(7* z?hq?1Yb;~D7v^l*fdmijI{Y=kiUoacEfa|hN&ZjVJ;{X=G1x(!YjqJRQ?~{d>_k#d zy+UEm!z+L8a+&}%Ohi-5r)i{~-9`O8H5Jk{a&KK;NkR?;pJ}VcFeM$w$?m6rBj@h8 z$VoA4jrGWyXhLr>o4!H5GfrO&qr|7_NfcgUyKs=|>H_o>p2R4F=^~e^hrV7Oex;Ks z%~*JbK~z2unl*g#FC@J0V=L!#ViPLdMYoXdTUc9JOpEw` z^Ey{?l*u%X7>%Wc+KygX#@=&o z)Px7G`c^rbB&s_O-FMpe>HN2XUpumgo1DI9rv@=+)jcP|DLu`68q{Be`3u#;8GevW zE47x6!S4-H%*c5{5MAelu?p=vY)v;&?2JiHflDM;F zL0oMo#yBXr3~?YC-?`Zc4umYN6=)T+Z#2sCL%*hZZl}_6NGw&;bQ`|ROK;Irbr!Me zBngRD)&~nG0`RJZS>b8S@`tcn41`~_5WIc;-yNkDO6yiJ3}GD({q6asPJnhyFE8|n zs?};IUUKh&aiwx{4|d(-N&hCoI1i!$f3dZQkYA2?0G$1WwWLXpW~efe@F|d3rBvO&BecKk z%eE6}{G5LCRF3q=%2my)Mm6F46u((N#m%R)8GHDa< zbJd*s|9QlGoPM8`qrf zGR59QrPCJZdln)9-h7LZ!Bibjw5H<_=FsSK^%a#-&<94cGNY9*NuH9&F3W!W%!1hL z&$v-rXyN<(`DOu?BV)s3BHOAF4gt1+S zIfr0R)-VxD!X(UI2wdc{RU%MT{aK>uO(4_v9Gun|$ryKO8q+tfDKFIFaj;U?k^~?s z{ZSqw>+^BC@)={8a_!on8D<_)j7L4@?~E2zdw*e0i~}`srMP^O0?etx32iFc{*MJ_ z*cfJZ3!*p66tVWbqPGu$qemrMo}H$nt9%-9hpQyxV-@z~ucHe0NC0YZ((xE}aOP2Q zRcak>);jHF?dSX5i^}YkgIk)~*NdNAF#h|f2i+bv-H#6QcHMQ%%we8-n%?H{e){{Y zm>lr$I`8rN_$Dduwk3}l1i3Giy(v8Wi8?``8ozoo{I7j1G>y6Nk>%&&N4R--k#dZP zj%;?+vxT6>&r{y8U5k-Kpun%IBLMrM_2g(y7)dXx-c!|$D&HDA^tB1SGVUBXcn!cu z^+-6^?ldUvmHLkwkk17A`{$iCz+8a!2UH_jiKh3tX*KlaWErB2oxgVF*Ih22Rr^}8 zMBZmAQ>Qj-#iZ#E$G_d%c!r~wNfx{|L4p%aPoCy1bV}<7!olQ;j840^3Oq7&ncS5h z+VXJB{7-rm!jL@g-qNw7NJ+(WymW_jtT!#^5LH{_@!2#~Em9cyteJ=ThoTBTmQ(K8 z7&*(vdD4HHWo|d^qT%PEoDh?!Oryb8vyDx~*{UYyJ^AYk7?-F8Q3kHK+H_)51TnWr&Wni%g3Gju^A;vNj2(;P=zt6Z~;f#@5$L z<4HG=$%2!XwVixhzCH>1AppH|9v&c$7MTSfRAtJlq$ zW8@1HUsD^-hqMt+%X*eq9xs)zbi~ipvWaIVrg}WkEW*j}WPgQ^)5!#)d*}M(XO+F= z?2jYB&l$KhD~6|}Mxl3=NR0|-5YzC{@rD$?w^hFd%m<@dqyFUZy?gvut=hKSbi0SjY)8^!1dPD~o`zPG@s6H1J;T(Z zFQmE`*0}nOt*M<#r~aa*<=}1kVxxtv;=3gk_B|&PpVK$9YNaJEwL9e2#+^h2FF{24 zy{AQ~C(`Qk=DuG$hEtI93epW0pkrPP+EH}`LH+?btttA=RWDl!2K637%Ac$Csr8)i zNpAvXWcK1l-mB6RNXv=w4%GhQyrF;ApbD{e%rwbL)p=zc*Qjw+W8KqVk zOzl$7!DB>ODZxNWCxkR>!egg^)n@qJu-dtsvc|woLW^##Udxe8Us=uj0&5Gue0WZ@ zi~sV9uY-$Ep#PQg`x*0=)C`+8z2C3=1G$lWyFF!}3zqYBdnUhzQ9|Oc-LC9CUFBtW zVJ>jjI_yVWURvN?Hxp?Wb{8hZQ!l&(FUSnN4GzR#)xJE;+D1g$v?I)PBOCTnF=6eL zO)IKHwwR8uw$9?phjXr+zh{gXJ!cSoH;~m~T#h|WPd@6q(OtRzK2V&gCpyd~y0(V_O1jp=M_=oA>~T5l!lk)Nrz8{NkOl4**g+uRM+ETj{Ic<$eq9?P@^A$N=w@V`<{NSvEvBcF*j9O+vtor65IviGM1BHgQV3V#@e~b13P4aSnVM+V&2J&(Te(lYNFF3!0DEU;k~Bgv z`A^CBKgN42ZKrJeTKR|Vg`=_G|C`oROm9>EE9HQbiz$u3YWJsJq%Iz?-AniMW97fK zlZR1V^DP?Q+_B@u=JTygrvT&(uLA-3IQ@_OaQ(mXgY?UhriG6#x;6R`QQa_rZ28u& zcyIf*n(R=o@F>2gPFbaSu2(4SMB*#v<%+t_pCAXPBMg8H0-pnhBH(vdZ?ltV3-shf z6}AQW(F7~WLdSQ+!sb#}-M8m`Tz_H#tOnUSTzVwUy}zy!$` z0BwM=-Uq2JH?KRA(eS5&zzmT^+7+Ndc@4{#@yrWE z7(PUbWd-2&p!N`Z;ZMt?^R`?MlzsQB%26=%!PwpQy zV32ImlDu4h(w|@eWgV69rz|73t2PBFYnP)VtGMocS4{jiR9K)}srvBVU8L2)hQ(kd zz###yTF9)0Jg6s7<6jMCXSm&p)rZel`@&dH?Zw2yDOF5IbsaJU(P;RZ1!V8xnGWKq&I4 z`tb^wcqk~u^k~v(FLJ!r%U)D1yzp@&<)a`)DztrLTWj^d*BQiG~7Ju7$00 zA4>KqtxBGa(+SfexLDV-!mYM*%aA}w<+I_+UB`(-oonpesl0#lThvPq^p|M*?m_ZWCllm<=U}a!HrPddA)c z=)}(?Ln-(wzoPe{=|=j99E|=Wph5ofJ>>FVO^esGW3^B{;S7$;s1c*c%-@K2 z1Wg*`cs|y)jl<mwbxMB<7zLl5*t*O`so*Z_P%J&31U zsPJ(S;`z7yjxPW^Fh4g*dlJ~t=+szJ;+^k&9q9jW=X87c?6TknOCi@c>)iA2719{y zbNi1G$`bQf((pK!nz}HwjJ(8|cf3N2`OCGdf|c^?5QSNZ&&v%vxl;}Wg-&k|d1T(Z zU(R_{kH+!}LA&3vWPAMr-tg33(c5o>jr$9x5>bdk;Q~NQjhIuRw=fp!={+Ih1`;_6`5~T*Xg%N(C!l!cwaQ1 zTl}Q)x8ePxwt)wnP_i}X-qdR^V1KsKu+i}`jkM!5#_8dd?wJ?hhZHrILe88z522)z z1jT{KhPmv2z0`3`C+2ms9>pC{QzSd0JY`I+W%($~pcv($Exxi{B$kqk|5PxpN)2tR zLQ_3U9`oBF`XWQmJhrYg-bdpiFEwjTxlj(l-lk9ZF}`1fe^~|^m7`l3gP*l zUYWBwVp~c+G4nb>CncTPwTerK`ZHCbldJ8Q*C|S0qpf*uS2i2YjlH`I|?E z>O!B{H>;p6hRXlpHHusx&@8}+OQRfW5R@MIg0f{dX>6r$HnrD7{9u+1Uj`=2@{_`! zo5tMJ!RN<*Z5v%aNXU)vV!cU>*Q517pvso4L9f>>8x_O}63u61=%BC!i$Mdj&U=%c z_j>fhr{^*BDN^)%sOo^mL6nhQn|+rIBuiT0e}l}RvHiTR01jP2$V(JJgw`ZSJb64B zP_MZo&_H6~2LWuz>|;IQAWv48b5F=AkJ+f>@0Jw|h7Y6kBR5H};@RhIB|Y7h?}=Qc zbqY9k?N+S#{}>UJmn_{&HvLw@m#Ueq-7#Jp2n&_#|Hs)<6ns=I&{<7S21`xtHC$=; zx^td$aIMg-kf$Gq>P=4OOgaA*NqspL)xPN0P->PfA=svT`!dRQht7P@wGTdZe_9eSnK}b zGveB~aY-d-uCKd{&W5k)>OKsPAHtK5a#3lo>(6PBsNEHix&$jI)m}mej8~MU=KORz zA5^k^rV692I!*s)Eq&$x zB-VXKLM_Q~0_#J3{LMg5)ch?{uPlMu`mJCB9%dr{yA^qS&3?qIAF78w7CfLMv#}Af zfd#gV2skluUTm0rD3}7|S_m}u{`@gDT=C~>4UQEF^^=E^C)kXZW1nXdci=hLxqv$T zqe}0uNM}-Mr9C0Nsr+mxmqn?3=ocISwLCOhvU@52;x0mr^!U-7GwIt#_<-P6$FcW< zs}0I3z(WD-PH^zV?OW4q0FVNqItQnALLl7zH!{(Keb3%IDt(3w=s~y%mRq&Jmf^LD zh5bw0orNqPt*=>yPUlx}LX1lXlTY5%J)A|8mmCONfZ#rJ4>zL-$?dyP$_c2&u@Jc3 z)@e&-=GBZA>%f|OUD+(aIlE2t1lzLqtC}eh(RzOrZ$L9VYgzPn8A%t~Lt}GavxiX#Ibm?+u zR%{z_PHqkVIk4p}u6Qiy%&tWY`Lc-*HM@IL@}H$|)vc!TtNj(siSN{XNq+30VNDcg zA+(=!m6>!yUt~@k0s>Tj_=@%+O}$8gj$LfYXT4D3xRIR7&@Y}SF5Q_ZAA58RTBcRBbY+XCbGY-ft`NAX`A0zRBspOEI|c9cu1fT8$fx2P)7!y4ZLg7%x&9~)`IOuF(ikSA~I zy&KhAFMo9G2=_rXljZ_U2>9<4ki+H8*ENl(?#LKw^}H@ovW(&bEDB_ zkmjeK6*8Eq*J+CTQ+}3XkKR?kL*BD*aCil-I3{`M^+E-k+O!SA^?3kIT)?CAPp?#{ z`_QqYHui2R*fYD#1?b!-;#@{QZBfN83E{WLx8@h~a*P?U=(fg`1e`5Xcd{Xu4q%Cp z8U}OP*Oz?Y$o9I-I)lr6`a%~EzD@`;ly?~5DHFuTLQ*>@%$-JLrdF8$>cAq|g^m=e zpU>b#J>hSP{h*k5Z|?U;<>o-;-M^?K85LpI(Zub$8W<9yNXd557#^Rzbtu#WHxTmeIiy?YWi>{&!U7|pzr1+8z0binlhCYE!o$N1unN_;r~c#B$a#HHuxYwXLFOd-yYBjo#sN zfRR&%r!;br#q<6cHHg7By6~@9z{A7Ly+K?+GXf$f%we_TWQq*q(6Eu82KqO{16piG z4K#*V$v!0>>f%+Ce!X}k0UQS^0LCY+-v(j+0~+qm)l*yi zgkt`>{@qwMvn3!kkBx}#Ut3oHrJUqjeOmJ8F+_)_`=z>as<7nH{F`Lsl^HdRtCPnk z>$W!l3Mnura5w@ZcLZF=>RtJPNUqj$Ya=?9+?Z3b|F1*G^Aw$HDCVc63~3%ku=?3?RVz>T*78=Xyuw)J;NBQEkD z$9-!@Yjxn`e&-oSXHB4c>(X71$;@Mj*4(8lN8p$LJK6hruz3Gh_dn2EVDpB5f(rl3 zAL~oVQr~Ags23jL2d8gS@?(z?N96j_pxEc0`efh(e97*xKZ?XKXy`biqcMU)gT8a! zZjP_p%$abW{jKmt%_n3Xor)#c+-8|^=a==J%?DN|`M-8MRfw$;6E4yXf-yQQzU=0& zdlBJT%wG`kXMD>eGal%p^%JPXqM7o`4v&X@_`X;q>ikKKvSBVHJ2xxRQA#*7QdgAkLQW4E7_=d)k0Llp)Q$QJ`OKe9YQiIADKTQ$e6 zctRpaptUR8UrOQXk&%!$_&!h0jUvZFslC~HCX59@#=$?w9<7%dXgX^8)Tt1XJ%fsE zmt#uNoGLN(;H;}78Lq_S`1rh18U8pq(#5?7!A#mXaK!C%KlP#OaHRDx=$lwVlmZRK36WJXPO+|_%O@uMz3Khw zC^=NOP76voy)0(_VvH$wl+|9R7Ql-aQ}pI}9V2~z9N!yYu~aj5t(S@sR6vL92mAzX zF_t0{fMc!%2s;RxemAonAV$+D2!lsR7C(4E3}W6=u{t=2rQ1d5KZKP=iL{ePtlqre zTz8Mh`G{$Q@(-DoTE;*logA|Dx(!XA%PNbB`>@?j*= zpu~siOb0z|tq#xn8VaB1v&sls3=5)hxJ^zFtR^! zDd>~;huK;RP$l<$(t;pyn4)ZE!uU(D0GOSfi=DYg^M`3ztyM(^AgESOOUJT)=;993 zTWwo5NXyQy?)F2DPU6UzZ#!(%;W}pVWfiM%3qv3F45NsJq9BTK)U--k8rH>*GBK(2p6CYJZ!P0UDsTtJI|Z0@%ccm&uEJ{~)tygK5&X8RW_ z7Yq|-B1O@&_XLKQJdoMjuZxrpGZH7xWBYBuYB#2H-W7pInR1G$8d!8y=}^r1v}M4t z6d-a^awdM!S$ufdS#-;2$KdeFB=Fbp0_Eq#5!(}M5E1+=4F-k$oY-FmjOZZnu<`Lz z@FtQu@e_UW*#R-h9vQJeSr&M#*u3K!&<bX@6$JtpAaG^40>4v|%Y7*Txg=AyR@>>cCZaR3=J zkFh+jXB%{aI@;Vc(WQgfV-P{QuDt0o$~~wETiICtbGL(T;HX<`D!lv|8QYAQ#l$xl@8%+hoO&mOx zU=O$xK`$~Om<4XjarbrV?5OfRMiWpN*RdBWY@-z(HEoJ?l-MPFoP~D?1{Bs5i4fcf5m4H@MU-OOwel(^$-d_5I)_q9JOZFy|>F?n*6RR|fm&5gVTY&KSg zHvXbxWrHeoCsA+^an#n5rtgwbQGpiORCa81dfGcObuS7rG`*5#(IXefYP;VnfTLk? zzCDvG!dej}Oz1qbHTL&Fxki@zz+Dy7yZ<&QdL@@yJ&y;S7(veuxzFd-{)cvPbds0= z=+l2?AL&#*bk1(qxkFkoYq<3^_Wk}}rT@PiPVQ?M+e-{$7vNCY!j%m@^fibd*X1}k zRPjA#taJQVNy0(jd)h8@6N1%m=cAe@50r%Of7v}n;HIeA#}TPB=M);s=RF!QoF}Xu zu^)yZ00J)Igq$W0HF`7=Z=kk(+A4z|mu~alx%dj3Vb`T9cs5ZJMQ9Bim(rsvrB5L0 z`;{QC7si!7*LJG|gVFjE6=Ye!q|$S>KgC}y>6lmVk0ktfALes zNTA1VyTz{m1@MK@4?b%XSM@*Dm zyIME~k7~QkbD_@XZ;?rZUcbE-A{Ix%%v6H?RRJy$c0MR03J~NQUIlq^YBS1TKx$mM zj#C)s_2QH`%n-GDU-PqaGXG({mDvG11>qc4ot4B#uIK!$Ycyy}gyyIaUjDw~R@vQx zu0O%=!SOaUfgmD9H1AkqC6CuKpwbqn@0dXoPC6;~Ce0H+LhHUh5orD$7e#ReFTzK4 zaQk34S3HXfM#R}+CwsUv`_}HQYOR;fR~FhoqXrK>1o7IDumK)%DWtx zV|5kPE!`b9^_RvvY^|^mwrf>tEjMpf&xCY#>@@BR7!KHy&64|5_4$US5fSYhq`kq_ z3&snE8=zB^>`O@needr3rG_P_(%yEP?b=EGo7uT=qn7>6`j)L!pJS>VC*k^=bGd#i znzTV^5K;4qv>?OUvL!6IYS>D1oaK~WoLH=Me) z`pE}Qt6Ls8eN&+yjrgRw*B3lmKiZGS(v!*a9y7@z zC5`&?==t_g=uPZ!ztV1);nd5ipW^(rKD4n;b4y$$CRs}Is@~%xR)M~>&&w94cRX!^ zc#=E!-3N}*D}>v}-=1IDcd(Xbo_!U_3^vFZ`J0sVxjjeRPtjLtX3XtnrW)Li4JXFM z>tUtqHZUdAbJ;Lp+cfuat#RSXF}j+pzfmX?cEhiBE^m;7?bmrsxAhR9OsMU1bAda) zg!Xdv=d9vUvoxaKIikK`fUj{-COtE zvF$P5#X!IR46_e|&o^{|_X{gmrk!Ug)eqft58Y$W4`Y&zf9-|NzgF!BOdB4WW{hp; zdX;N5e2=4j8}#3ZHb`Kx1!QBwMgbr=Uw(Vf$BQEs4GP=4ZCm?Q#FG_SNkV94@iOjL zJ;SOZShzGz-66JNaN!W}`Pqz~o=C02L$;8Jp}#EuY*h`#Y;Ol?N+U&osUsi1WFt6N zz`;l%dH5m*w}p#BmCkEADZOJghYgOi^WcVp!X*D{s2duR7EEIPd2;06s=tX#olW*~ zRuC{)b4G{eH(mNDTNxDB7A6%eBSld6jw^x(f89nL_4A2s3n(80;C`v3$qQzB4Ut79 z#l`4PoCEa+SGSnhfoP+#`e6DDx?ry0Lkm6@hD~)q*UUCbaJofz#tg=6tAo5e4mMPe z+`n<=-;j%7CZyJYlOqK$2>Kh5&)Ra>uwXUh%YdsX2-ZXsq2RC5OTrup$)F_KD$J)q zQO;d;$pij!t_hLM;+Ek5CSiX`=JVX}` zCZ<>UW>EA#kEAF*5=J!dOKVeocI6y8a*)VHO}jF6sbfKES=%>y1MA^0*zRX)?vFq^ zIRrY>XDLWjLTZWC4EVKTyPLpXJ-zhYx1g?IC_Z;uKOStl0`!-Kilbl(*r$pJwR$gs zvT@2%F%mn2nx-|%qg554D)zh=4vMBLZ0Y@zXaQZk2E?104|LHu`kuLe zsXlld%_<{YK248b$hb=5>??N+0c*Hk#SWvo6vJU0wLv%Utj$em$*pK2Z57)$3lSfo z$m+eRE^bK1k&>e5k@VBQl@+9+Hjkc%O|2*g`@w3E;rvv(WJHjvAp&S}Z%nA5R;+bz z#p9`OAwiIRC5+HKaYLgC#yIhPMY-dZJ8h5DF_NwuAtV5;8H?`anWH5_a2i$w#?i@yxV(v!;?9@=cG=RK(;X0Y0TBXJ?xr^&w%WBbG zYvm@94O0>VeOY_eKBs|%ZQgc#g z;XKnNP3m6extbfU<>Ip60>3G`#x&4%&=eS+t}41K)c6zK_>65NcQYG1eqPB>2t>`8 zd4E^d?_3BBIV82@0as<{&rmBvixUK7cXT{c`CP0NS4yU0+PPh)dB7~gjHMC!%6x9f z*M;}aYr?&VI`lJzAJ7p4h_*~Q zGhbMUx~Ia`0`lI8^PKVs z!|j>UE1V3vlz_VIfaE0Fm8ysdL$mB|dV}y$|B_PMFZ}kA?27?E(`iz;Wd1n&)w3=t zUU^{SjKizsbT32rM59#8o>pg1#Qh$T*HoEDFftb zC~Cj#l+*016a&A4B=0d>?GthhPH(z_&Yevou4x{0g*vQ$C+s zzNa3YZ7a1Xen@LylRgtNdkzb2HEA*aYl1IFY9dw{I|{EMn9*7zryx<}1MBDLT9$C0 zjFhRXQ&XJ1^}zuk6Gi9fX!Y^>2ER1eKOk zQ=m=f8Oxu&q{E%>gZQffByUfDq7g;FWTl8mPklqvZODcqr3$zjKJ5fu3+8Y5c!zE% zh(t3UUa87F9Y}P$+l~Vj!nGCN<{sasBV-<3&Q+h>f7J;qzMYxIn8U}5K=hrvOG)*L zcZN|wSje8zmRpPvH(hSi0X@Hphe9>T#?2-jDbrhV;Kd<@FEHKgb@~DJ0Y-J1n{Q$g zC%m#UsS%n3#Gy$?{<092_B1Ng&@ZxuK4b|*zIjrk6>R&f5fZ%eW)x%8JB6X6c`!FW z-MMpYjLP>^I_Iw$8I#&K&C$V_r4j6X!sm(JLw-F*Y!^&x>IhD2ci9Ozl*JLRvXlxH zFZ&%Q0ln->QPprSPzDGvM+wS54sUqF4u|I3%4qTN4}4KW`32A%(Hum}swK!S{WQAw znNmVkp1UIPF&ynkT0$)CgWpY1E}8vrxWW^kC9IFA49kNrIohLxx~!siD4Y3Pg@r83 zA#<6ny3ggb#Yc}aO)9qA*hpIC-li;=;jyExf1~B`XGNtJAr+z5CwlGQ;(bnS@^L4C z=GfT0K?a<%2H`$rGTo^fABMhR&R3BD2(pJ82nOZqUn?V+L0~}(c`%6A4%T;o7{l%= z_QIj+27L{3(Aamaw z=eD&{z^vA)6F1mlhCw)`k!LUIs=(-Z{C2W17^xPxE(@(7?Gk#fc)nrLsIJfm_aTEE z&Mp<33@8YT|Mun}F1|D5J#=Z4w0h-M7xpR>h60#CclH6L2AX-h`!&l7|! zAe=ZLa!#7#Zmh>MOT)O2Gxl&@-L`k^v)hj|a@+NE$JWa2ij&FHaS}w|+>z{|+)#d= z<_T-+M|w<{ms>eId{suE?3t7Q$HB%$(ceMk1*iX@1G9uWy|9!TH1CKS&DU>6l{EdD zop(%o&b;#hZ=Z%R&=)#FhLDsN>1)N(``nBC^leLgI|6}M%c71QRRI<3}w*9{sp#FDNUz5Dw51vU9a&?tSX^v zN#&&$z)wuF6_Oe^`(Z7E*RuVW5w&bL4Ylb_e!Pk@nbv_kNGS>*F;>$z^# zG0;|(sb^aHaPT`(RljGghrS5hjvn;!Ug_VV;gT?PP1R2u-;=+A`vHeSWocy%nSH_9 z+*UMu-W8cmK7adbzhU{{lU zMOnn@wrbJ?mCt9=3sMAsYpzo28)7Q6QGD&TG^jZI>?7~({uQ3T?_tcsy9J+gRyiyQ z@*Q7SI-mVeRWr{acbeVcAFmyJ6X@9Z+`Lcg&Sdn2deInsciL{G4K0Yy4FwXR0W@lj z(Va=YEc`Mg6^?v%Y0u#g{K;vWlk#y7tqF3dvoN$f=e@&&w85RFd6tWCZ<|C1I!Oe6 z4iuGS&#++q{kE_u@`|iB|LeBLv$pg>+BfMmffVu& z^DqrI_mxAB|H=8Nbn?dqWE9_8KOf{iCIy~pT>agli+;Q8)l0tYy`4>0AKR%jcZuYy zBu{m7?G@<69Rb%!8$}!q>=(nT6hHk(g&?6!VdL%o6-)yKsZJa4J0N} zE?Zc?r|5(fje@p65u4ayCp{+Ivk9*T^evhc-D>?*SE^}_XIfXhAV|oNdpY5l8qO7^ zuO11Lox}If4Pz*hmeZc|Y(4a7r@EUpy!xFHm1sHCmsU&6zsxYiyi({Ly5(?zZ&w>Zffej!2myK z(X+vrP_AE&#*ar)d+2?54V^wO3s;JJY32_O?@zV9f38}iff?TQ9Y*9#B=2G9fGWuP zpHj+XcV`uZ{tr)%aK#Bb9&83aB9VM%vMj9m$|=90?DQnQEkvb(5J!Y<9||u+2T(=` z*CqARk5985HOfrdegMJagKNszEqPWN&?mOlJd;)T&-E3*zSM`z+y@_E(9)gTUXRPV4JpOa0$D6%j3Wv*f&!Pl9EfwK)0(3I z*xt-!Q+JYB_Gr&vorIj{sU$Ljv@gi7 zM)uS|wy}|{;RCGR`ydvopmY@DdqVTt!YqMH;%F*nH2NN<+O!lH`i~sdls>#A(+N(r z3%F>(Yl|ua3EoAAwTp`HV*W}YWv`M^_vF@q=t zjJpMEBA&k!0AI>{tZY#jLc!By>7rpq(Bx(d(2g(DM7_nt74WyZK1e5#10OrORT~X1 z%0_bsu6^`lj93{?TsdEg(%w@XA7PXzW)WSf+sZvX%sMU0=}UN6jDMMGN| z(EAd9i3d=w>SE(h=+-k*d|MNBxMwjQ1jK3IMZh!oxnUwRB~a0sm_6k}h&sigQk zqm)4gpf{{jKjYomN~L}*1R+@j|IU2R2INowPz#gTa7G6ph}X?@$=n_+NPt+i6-a_j ze9T+-;a}FNhPcGnY4M^9WB_}4Y{T;;_v2*e4f*r>IWlB0ZebbG_-U&cYh#GXx$i+_J@-n+l>E9xSv!*144e)(AlmT6)$1(H4 zS2!p$iEo1*^nMOLwQ&83S{1h{ZOv^p>*A(UT|9nS27N`-T#9Sjwe;h&Cp%EjFEXkJ3f z2(FU?FuRQ=XO{4ZsL4}L$t~xuf42!}Pd;vHYTp4>4vYr(>UToNZRAo4hZ(zrU0n&+ zQ{+_87Oy(S^^T+t5*!M~*5vr>Z%4rvsR$u{f_I|qC@#pXzfznk?z?}xZ!C@$JlvPd z|JYMn4wcP`!S*lF%&?W!SlJ!7Le%HZEN3Df=SfCQybGEiJmjlH7R=aN%`b@&Sy(xa8p z-!UTBKOz?P1;(R$&~(Mhz^{vk?+o9Whsi09^ED+XD2Ee zEE&&dh473q$M<{s&+QY=o&RGJeV{MUd}$lWrqNWcLocZDgHi~_5HB3WZsX-Xr1XF>N0A--VBQR(vJuDhKNRb4zuBaMf~oW zT;JNtz43DgcBvv__7pK!wfqGJ6 zoXL_;%qt4b;WvdLBH(*93zZB9^i|2nids#Hs$42n`{VAP!UECy7KMv$AMcx4g+{vs zRh;$04K>9>kNQpa8hi)!RDu4}^?az@pLBrDegS_z7ujT$WN`G_-}Xzpu^ywbNr1tZ;P9xyOAD_{Wda z6i8KefBZ0d{IGxw`$Ji!d;A`FQT;U2$u9W?^=a$@F(#l^yKvZXJK_|ugA;fY9=PNC z+;95OFFE%ASA4`nQs>Fc@l*J7`NE+lAL?gpI1W^}C`+4D*?m*vjg^9Lw=`uI-$BB| z(Qp1EZe=0jB_dGj zO2bP_@=IwZY2P0H2?wPtx{9tq{e?z|35hkf@j$nnI2gb=3bEz1kIpJt(ChVQ)lsynqOTazt=il zr1udznGbxyo9^vP^XJo4i_hej`xgpl8eHoH26-0XrZxy_&-g!q9Y_8f@A*nBh%4PR zRKmZ$kfi!IFux*AHr+=lgiF2rvj28s{_x+f4d?HyDaZEZ3Xh+x=_(*#LROe#Dv;ru zk)Wa%@~o2CD8Md3l%WnzWCf9= zZu%#+B4uZ>ZjztwA6qPa6F0qo|RB5_T^ zQfsxw(r?IXA>DW+2v{8!-W`t^zBX+<`@;&XF3tN+6%DIjXfwEke@l|^vrh7{X?#J{ zc~NUEn~HD$$+cDOl9Nkg*p^IY$m0*nX40vaJf@M)3`^v4n1wC-hgn2^g|$n7&XuuH zz2=YBUQ$d&eZgQ#8ZeAhG-_omXn$K-*C~U!=N4(B%{^2-u)HW*)?EA_erO7p;PjwB zm5WYtxw2Yk#tQO|%9ZE+P`dD+Uo_rfc@hJ)+DCI{cbAc4j2Cl5U4nZOOb))F#~hXC z?^i-Eve)>lzrb#`@?qW-@ewev+=a*s=>jpuG&#^m=0F{W0yae<97gM>5B-Z}r%A@} zZ6|L{Fe_Yh77w67cVL8v{z7K+)UGwbr-_jTC(ZG%U8n0kxxZ>8s}?YNEwckI;$-iBP_ z=9gjVpgnNF;ER}V)(hh1f7=*Z$T!O6PW$0^76v^Kq%=?JY}1P*S zcnrxrO%2A#?@KdKb0wifYu1)`a?=l%J1^yT9FTk8D_QyDwx{j^*3+sGh}TPr$D;j`>Ps?H5jyzMA{g|~Ck7;jck-4#cEx9Z zXUVhm`}fOs-_+_(bzwW!$%EmgQ*Nm?^kw%C9@<)ZXa$&|&KT0tvGg=(m(Kgo*a|C; zLvWuW*4XsG0yt(Z;G|aV+;nXFRYD|o_S?|3Koh-Y^6f0pMIB@FaXyLu&=d!xQmWG zmO_$g3pZ0GyTD#q8FHZY7w3n_*8YEJ`pT%b+Gyz@1&Rh*3Z-apDNu^L1TRjoA}vs? z6nAf-5TLk2a1UPG-K`XNcS&&x^5wnvyT7tlR{orvbDlkWX7+5-2}PV*wLNIY))JgL zJ-A}2ZP6|kPD&~QTDR?&XT7v|XPE?FEfyc0&*xcw`$=vprLlRD={qwVdEzAjXA#wZLIFikYkpG5J7T_fRQf`IwbJQ#mjYT^U|LD%b_meH8c!>F zD^fGpA;|prBN~Qj*fXIzI{;7TN!;z!Wnk~+5jibj3cS)d11u&FA$HN>t5-Ni6^p;U zn=`$*&VTKaw78HuhNM(?;)U5oM;AZ)jwO*sazAWdg|oe63>nDSPfZ<)*PsuOT2-u9 zS#)g@MleLxzP5-rj8x*nD##s(zIpuwz!X&p7ssUVBTOX&fLvCm^ql4~2^sXyX+5Lu zl8iFC4UJ7W2sYjWpW0I2TIL%!l{Tv!xHsy*a?%-1e1`qIxNeL2;*$#odc4Y>do$`* z1m(oTKGYVmflwE2M#`Y%n}&j9C(R>AsYS-83;qQ7F^>{gD|z~f9706S*YA6xyGKP@ zis4>GHjr#7^?01O1JAyIJ^(*6O@^`ChEn~*4)Fi;^&U`K8Sn>7lVrqvZUA4d>jP8t zr@%EF7uW1&xO&BkOCb!j0oyz=@BptMjZsMre9ekkcV4s2>8}NN-rMyJ;$M$TJc-Ap zhenjxv}-BCgRI0zQyt8uk7PfT{VrPIaL{ zF)Be@q38{ceBbkjNn$HXDw9Eu4zjpd`wZL|?#@6GGXlFBO)^K&Ezm82)(R>3`X>XiNYXC|9qxm^90y)Qh)p4MlEZhQM0+w75(1>ELfN{jE!;_cs zbs^A(tVE-JC~_vx7T9{O02bGrzHTGx; z84$+ExU(VS(y7vA>(Py9j>uWHy}c+4S#3KzRQue3K}iyvMo|Ch`Xfh5($lZdsSTK} zI;rDW_-5?yX(|A{kfSMUj!Hr&T7XV~BX>AVCQygSx*D3m2*}E}QXG*@?}mNZgN7f? zyguqWey*X}uVAJ1o3Z-CWERLK{x+=!$B|M20@SX4S3C6#I6$X&g-SWbW$&7M{)qt~ z^k>Bq-Et);;KF9jFY`K0qdu?bueKc3lo@_#^(|o7JEHU3i*HVcTU3&gJWN~@Ro8_p z{dqJk?Lr>jCo_YzekBvIZun)DTZRAe-er9vSdLWzEGPj_)%WOYA>Eh#yOj(Fgjp4C z^dOORK8$@8v#zQ~qzX09r-1Vvj4GO!qAEai9@XBLRSgrd;7OzgvaH}T#_gh4w6>f!Aw(*z1*(+SU5fJ@Dy>o-`aQc ziZ|V5w_s9Cwi#Oe#pk}&^*~U2Oz6NZMPH@5#)D*{>9Uxs8D*jiYI~-YqPF8G8k1TN zO3F_r+Y>tXWK~ZLz$a0MgbHGYX%HJJZ5Y~oyemdqLIb3vh2u%!d-4x|D}lBlq`>L& zDHs4Njrv_UiSGBQEHPRPfI3=xF>w^^Yv|6{C`?4E=1~WH&$7Fl|KC+x@dke98B{G# znFW2^;d_rkDU<|p2PLjW5~8wl6#!p0^5k=VIzP!QK9)5-qWG;X@3eDf5mE>0DAhDS z6Skir=MF#b(?8$1t)^u(`$lyJZ4SH4;?}=Mkb(K#sfo)J=mLVRPL_te!KDVPh~E&J zz9a8S4dDJ6YY2aM9cZue~UF9EyWMyy|c&3-2;$D zOTD|1>eDoB$Zy<5Ua8TV#BoV<2;vwRhC|l}tmZ`t4X|wQb7y$~X?LK!kW0WIc#37Q zAdn6nniCMOA^|2+U%+HMyFeGX(_%NWupG0QmH@nj<9C%x(DVQ z@t~)rK`#dfha8gzUHqu zMflrDK}{yilF>OMU6X2`-wi74ww?=Q!C9hK}AU^OlcR8^-Em_7s6fn1Xo%oQ`RtmkQB6P z>jM}-8=J&@o;$f1OMaA;PER=0O4TFIeBh)!bfUdGS(#umE^2Tq@EkhV1^f=1b8-4x`Ryvadb$cngeGYCk2?%6 z9+WlK*y+>s!E%Y7I!~$p(tg~No>Gl)w(;nL+5I+XRMl4!46axpUn5ip@UP=GVA*w! zfB&5mSRC)wSbK>P7ej;9*$%e%_q05>as>~S>eQy*ObrwHZ&%d?0EwM-EKK_}i{ihJ zF{F1m5CtP8t(W~Oze+5G@q&q@D^&wM8Rzc{Mri}*YtfROV|+oX>0hJWa2SXGkXrDu zPb~|li`zzx9W-5rLoP46k9Tai6B4HNzbW&Al>pwvCERqhaA9f9a+}6oNTc# z>^UdH`rKISD;c@l)&$Z=QcArX_Fs z-KyFZi}gxlEZ694U028v;=QXO@@Abm?ep&x1^`Y1Ugy*zS|OQ3B#i#eaXn$QKF@vD z_Njol3p`$8a!jHVqcI$HuxFlFSvYeR_75(cm41JBcxtn$uHt#hDvb#8#3(BqIgynn#|9jljKT9)!W8a z!R$;s(*o6Up+TRSxl1CdCI##@)AO`cOykF8`74Sp=<##GQmGQMuqF? zOMP~ofr+K2i>0CkpmRjBlYX z4c;sE$=9GoMT=H!TGWuzF}9sZ+mxWkbMwr#8x3j$Ztgg8)!W|v$uDEna4ZYHLSN0tz#s=u2Tdp$ zJ>vxs0L$0+BuZO!0~(zzR|KFYkyUheO23|*>XFw**ER8|3n6KtK3A|vSA^Xn)dkhefWC3Niuc?i6{|B8ClTQ8CRenKC6++Hhh=rtZsbGziH z+#>QXXqrz}-Iirp0c*q&M3#e>bRky&%awM02Bcc1s zXq7(n@BeuL7yyb4YS?ua{DjT2XrBV4%+>jD#7hW4WFxvJ=IJ>!&IgbE{`dWEoArK& z^?rzJKLj?4#%h09v~Pc?TYk(pxyv`X`Dt>~EpgwC3jC9}+ctUJUcDb(^I4VZm!9b8XS3yq z_oze0yh(|PX?_rOI%tBBg;UDAzcs2Dwt^KZ|RAXK`rz+SjG)FG9J!yKM+Qln*d{pBd-e#nJLUnj#d|Z4p_( zgLp`OM9(UoTTH3Pl!7QHKJeRfVzXm4`3{E0a9=JRhn;VUQaoRtnI`Z&m>FL@Wy6&q z^~bjHDKx;wod~r`_pKjZiKFMhfmb$Cf@@N4n+Q;*%J$I*P7yUYt`g&BC09WUT@K{^ zVp)X@C6#(fpW5LW_j|Oi->X}&IX39>&fRc$<}*k}!qoMH-z>r%dE6I^)Qg!;DZnpB zN5{p%4h)KM52Qa_-64;Ko?6WX@u9`qNMZ)?e7PsCVl)NlEcf88Q4CQokyHZiXrf*2 z)er70x9ijj*LO5V>i0d0gx&s$e_v>KS>$#nCVlsoLUM~P@!-Q>R`nk)Bl|as$jbeE=+_{@T5ald16`EM0^oZKG{2YvN4}g zjXJY>7aU(%Tz*g0*IWLoV|jU&C#?qBAl`l@hA+SJ8l9#33JKy^F286VDaD?&Aoe{y zUGap`Kt@H6%0ujuMmeRKf!!1$;=fi6HU-Fkbe?*Y=;Gp5omyZaWh2t`6UOV#)h<4r zY;c}z6bd!OPhEq}P53f$!dOUfbyVJ%ehIzo40JK)^$|{bc$MQ<{jlv_U*E!O;{H)? zhd+kU#4|$I_|wR-{K78~d3FzFa-X4o-d;RET~1|FUrHl1lE>F9cMVXRM%g&X7%OAS z%S^&)lN)F86`XO_QM?PA^VFP)Rp(Qqw}<0G%+lQfTPLy49QASZs$4-?=(OXweeO^AVjmf^Vn7p z;PM1_{fuqfSH&?<+cQsLYOM-CdbxVmW+O!mM0rRX`_@16X>r`_7yIBV5UD920i{~M zAD&)&=f8EvG34j*wETgOG3f)rLLk&6LoKjruvh^+o_W+bUa>*gifp!bJ@%7(mQr?P}=6>mcz!ldwl8U z_HtL=(RD^JYQ#Wbg|cv`geAJ{_OsHpP9(~AkgkO`0PlDk|2kesftI~B#Yl++y@;fm zWH1Ud?m;E$>b_;ct~oA_guaMym=W%TQ-sT!O;Dyw+AQP|aK}2b`jC8dw{-S2+#SMNCR?5|-gFW{PG!pDtZnhaXg+iL*jRa-UuY|(^(gEl}eFcKh;U&p(C`k1434Ikg^P&8E z*HOh#N+HJGbY}$?4!CsWz=YHrDmk>THH1MpFTN9H+oS^7X{1XJQRUzkh6N$0f~WR{ zRJJxP*v}xB-S(Ou?owgSoYBp6pW~dD`IBIfX%+=>Z6I1q%XRo>-0-d%l5;wOc^42t zpW7wLtJ!tlf&8Z0S`*F~)9j@))<{$p6xLE`L44B6@BMGP_t5@rMRGM8#>)U>K9z!E z{5AYSE!m#LfsuHfvE}ps01kLt?W z)WwAFaj#TdxcJ*y(zEn)6eZ=R|6Ql>+G2Ry)U~Cx$>%;v_Z)J$@NqazUmNmXD=Z;A zp=8kvFu*#W(|UdPhB5z~nWln^3$}}GKQaoMmfsb-+cP~5_N^L^fuGDa+CA95hP(tM z#u(BnW6neI;lkT`1)^3;JcH)u!10!LQ)58^`k~aZWpAa|fY0ZVH?K(xM{blzf(6<# zD*7xHt(a!+JrG}V?vw|R7qAJY9>B1Z`|coOTo9p&PhT3TIw5iZT>Z6DOZkKwF#8C984+ zTOE2POdK+{FyV5aq@f=a7+5NG)P0 zO~T#OOKMcKX9%ss2a>*I51&DlO1v8-(0j5qZ|*MQdyR#e5Pe$SaXi1VjfK^+a@d4nimR(JlGj7(%o`S?^(stZO;|Sf;TMWr4 zZ0nSdY8Q$b$O}P$pyb>q$$|KGdSNF<0~Tb1#QriejK z`aJ_p%GoE)SLU;SFyi_a#u{0kzrqloiI`!p=lP|ag@ zY|pmsSiH~FEI(Y%eWCa8M({BXyC3lsb)Ng*MrF7NaUh&@O(ffpVGKSyBC>c7Z~Am|o}G9X^I*L<`& zFOA=orP*~F4ZK1k42f135SiOP5M0nu&s|RUE=32%6qpYLxc6CXgFs9oHLx712jhyE zrdj?a!B$a;KnGvxXr=2%EuLmjKg_eyc28}?^@=GQpv?i0P86V6KUMQ#A7d0%HRAB} zuJ8oA<3S#ZO+@`a9;%9mg^Gu2|Euxj+ioI>n&WH4>QkRU+bKIL%tNAF{=tgtLVttM zp&doT-hWSggsX@O?-FV|gZe?Vv}|C8p{~+kV-ajXSk8|tE%2J;Zy+fq31y+!C~txs zwg&ez5A3mQK~P~2(_T&iXP`~+LM}f@RhVZ|Zx!q=FSdl4TtI<}H${{E@?+UPo}CzI zUBd#-nXnr)z$^k2+FDGaefUM?G!{Z$q6ASMVr1TJ&EBHZaTWPWrc8E!b$}~*XfeZ? zRE!8|Gqb?t&7;B7g$W6by>l!bsroT#G#-uQ3nJp``$ZJpUN-v61*gfpSHnZ=Jfy z9Z*tZ6h8KXBsdI41Qxt7vfzS3B+Y7+OK0b|5!X~dm`gNR}>cnZ?Y5j~>(wQh2 zJMC@|ySiU_*OnR;{zF=2Gegf0W?tb+p9C3BVGm&xmLJXR-^w>@6erwFYgAsn!U2HPW0O0kj;t=u7VLlHk+Vl(9)_!YreF~R0Z zq)w5IMK*&e1EETeh6y$+@G>tk_zTnjO@sO`Ub?2jEUukA>?&v7p# zlbaKOKwVp~t&tHgtDIHJAlz!Y<&guigPx!njct-3(&x4!B|AOEmXbv_Wb8@R!0bvw zqj@8u;mK;?=JsSEE{}*o+1SY?(n#z)cx+XWDkWC*$8SO-MX}j3d$LZ81HgyRa>^5z zp7#AS$4=88WiVnD$TMPfAmGkurCh6i6h}SGt|Az?&u$`d6>~7tzW^!IjnWOh2KhCW zva5DE_7wpfyt>Z{SSP-KC0b`c+nlHERgad9!Ad^x1~xirhi!e2s9Hz&q;`GoykVEb zmEk%rzBE(q;9^jr3MbNJg9AR1_*}7}_V|UvL0CP(EF~w}wmY=GSl#H|C`WyOkn$MY86QG)YsGw$& zMgS_oKHkXVk@Xvkjq8}3{XV+waO#qYZESLpHr$f9;`yr2;t1_4s&$1@~?>Wxe6=GSJ1c(6}&Xph?I5 z;vYY5W*ev*h<#TT=3Nbc?DX;5dGJ3%N+6JyLhkVN0Y2x#rdN$D+ty<=1UO#^2P9wD z&_+@X$)x&{b9U}K7XoHSR$pVqWfg~VmYiL;^Psx!r?&YPmM`pQg84+6JaK=coL0Es z15_sSiUhjF1NMl?#;Am5fxZIyT8QkuOHUfmbhRWQm&8JPYoo`?t}z77LUR1t=QIxm zrf*FlweRiud-bQ)FgZ%T#@a}qTO?;CG$05+=1k?3RDOf3lt{^ zzzYWzg{vaGEU67_y`)Vi-ZLIT{_b%IRE9-cW-p{7; zgC;mi0isFbg+i$Ui1*D(59*HHMPOK1{o)wtdsD%{RJ#c#|77ypK7~4x1&eV}Q%}Fl(ImKy6 z(ts?Pa{{aEd{~EMonqnEsq>{a6aez3haDSl7Xv(HMQKd_lTYY;VOge1Jh?Bp$ksWw z9NNOHS*+IzX>65MQTnOhOS4Uty5HuiVud|)A|@9JU;D2&tJ{?}Q+0lS(daWwPPw!? z4*m0ihpZn$p%)gQ5$Oi#IMuzArZUoF(z$B0H*i(j4%O)0M+&-ha0!iNe+E>=6r~bDi1?PpyFW zI)3S>A>z~_e9rsFne)w##=*pIOOcU}%-erDl6BTtaJMjuo2K=v+bAuD6@m)h8Ssf~ zYxA|)$&@Y|n|F`E{mhrqRH+*`k;7~p`N`&QGql{!|mF*FqS;*)pYs*EhtX+0L_7yuA1HE zjiEN+J)1yToQ@1-rrKye9hLngMX@lh)IG#Ql7|6AAGHiK&h6v07_lh%~jtOMu0kS-iPg^CBCLv-6+YxO$& zGa9l^TXfSY;CyZmxnK(7bMWq6lvuEfN=G8A=l!)HPs2{n0sb?tsOsY$yuR42t{rjV z+iR$uncx(Ib7g|wj!hv+3jQA4ji>+mC$=^k0N`;acqGf2{N%g(^a0YEsi|QEzRnvS zSJHpqj;b=OWcj5j^}XL~)`Vrhht6@rXI^{@1(^mmxY$YYLVdXMXU(){4#P7j38_pn zuMcN8sx`5up$)4Ac1ab+F2j>>)ca9;Iu*(b#@j6=lZ86(+LpJzsNzhQ{{>i796Q9L z^e51|o;CJ9PV&D^dcqU^Pr0T6{(t3~usgvKoF#>3w*4pO<*R<&=(|o&W{^S0Er9V& zN;>pc!@I7Ntgt)~Qwf2>54OB6w$cr7GC1BU-gH*u=nF#&$@f&7?^QyC;!1fqfFIZ+ zR7@NikhlK2agtciAlyHq!cOa+f0yd(lI-+5SZy$QugKVKP-)EN_^ z#|?#^qYLC9EcZi&X6NB?)k}C?#rv{2tMBT zL?}&T5M+a%l&YUL@8jt6cZ3WauXS+U+?220h(f!E5yjuO0DLOW&m?6fi8Y>acFCgA zf_3ZZbRwONsdZ8C_`XQkckWK|SoCJ^WevlQX~b<>@y7re>#I<<)9KzPwr=)f;b^#H zwd|)E*j#YZPrj6cnBsY0){m&E5p+;|&ay=bKpa!@=z4K`(7IXghMYgiuHBCU)Vn|* z!4KFB`Qh3YR*afeeYR`s#giXDf3|nC;)@Uii9h_qz??7BDowXutvKO3&$W6i@2feR zn6hrUb?F@{?$*u|(4{1vv|-N4!3C>M<2T?F6M|Ndd3QPS^>DcE@u4MfoQ^Bt&CY8$ z$$RehAUl7ysmBL?YAILC#U|YuFbmUi|}>m6V9aRbtB%DKc(#hm5#m8 z;Vp6-X%2mx1GlB9*t{Rzb1Hc80%rFe!S+dc%z{i)_pUrI1L^zvPIEev$^LI%Q@Usj zPRE|Jo#`k>0LDPdPtuo4u~Si*CIA=e3gf)kFYSt!Q5Mx-ennvajBQ-qJ$9uignYVZ zfTNQ=`>Ec^o1cAE#mEd@!+7Qfm5d~j)_B0*-A7SSnqqe!ME<9TFuFJIiaDpF&Cboj z70}Rnxpl|qCAp`ji=Rv}EVx^{;bR_6*&q#b9UUffcRW#p_c=&~n`5{^D3yzEz z&yV8E+(cXCUv)1PRo+Vh}a-=@IftiXBvp_K$9q_?(2?J;0?%gbEgchcuU3|V=Q;~jZY(3X_;OEf1_081!W#z{1bZ{^#ltvgw= zuh`BGLAV_phEpu^{nv|LuPo%}<*!?xYSesnH4W02C46u0!uzAj#3O2(y;k^87+fYV z#Kf3#)!vturfBiY?42^FZoVk{7p~uAjTXl5W%Q-RgKK`YfQcg~Ec7I&0q$(F((0hV z&1KVxj7;6xS&7!IenwJ@ixjpP?x>ID3(uW%mcp*sb1dPFJG?E1PD0#CHzhcV#I|Vkz+O{Dfm8O!3k@=;z6>29YC4XNSYus-)SN_;0U)bMl8!ky(ISlYX-ldE7Y_&R zIiT}#BsN1w<&w)>!dqPpOfL3jyJXKT> zIwzUc%jUAsmcr~b8X8>{ErD-1RfwwxyV;Rlg*_SWS3a!sw`(oeD@c#W)cybS0ss$h zQL=*5SQ!@=pvopShAwaqW|9G`3I9^RoZNxKvemhy#U%V5Ko*k&ojZ0r&)w{G9A%Vv zSbJE$i!GvP;*kiGw;Y|Y_C@s!o_~%YzimkNQPXDpraDZ1&{`S}d*E~!3up!$CEZW~ z{$7WQlr`OR6Czkb{ARmRfU=;>B%=N;4>!$kx@Tn3h3ZkUy-nh6PoLWLC7$*+FMH27 zy^p`zzm0f*7+5U~j%W!2rhaB#fc-&PIB;dtJ zyU;alTN_P}$@hZX*<9V{jAosS(&DVqoX+Ool9ZPJ+k>$2Y6(TL18=A7_NtA z+lhs>ov002vC0$~1iIV%*sJL@=^3IvHG1hV|9idcOd465bY~m@ct93hvuKfHQ-#WD zeZ9-ThJqP(84`~u+Y8z7?21o`oh8|LhM~B(6QcHZu=~o=?{UTFwGsKHOqrGi&qj&2 z>wCPUkt9~%24BhqHYCHg7KgTkXCua0e;O5Yg_*S=_VHe*f%;yjJ5UtH z#;=W=@B^eh1Wi!$VGsEDe8}ZGKd3j$jh(0k8$wcL85o-H>Jh6(SLW~Eg)H$_Ej+t& z!|Z@P*U)kTb6Q4LO}Uo0_wB#zV(d{aGltEoJrX_6Ubj3o7KB1|NBmI{ozfn_uBR3~ zhY7Ep_WQAeiL~L^hK!&8@pD}|#y z$94w~vhO^^>bTzYt)G%e5i%eIaUElybC_mU+^aY3>F8hN>Kz9Ee4~j}c0iUrwcaUf zLpJ@R^nNE0k6eX~332|!Nk0z*u`x1(3iA%MlVjAw*jP#6YkQ}dYoaIhLPWO05wl!g zWycHVdYG@A8L?@?*mgGFm&lVJu7IMF-F%&6>^9HKq007>ApOsP6 zD845AG&;gf)_Uvffh+jOuSlrc%gB<6*zij$!^r+*T57lIghwHThsDTgHi+p#T|33UrubOAO zje8VSod`-(wJVaJj{TklcbSETPu_YwN=Q8c&WIHt23v5RWw%qmco$s=NGbHdOHeo` zzNb+Wa(uqaxvTc{`zELVelYGfjyb+%ETV1Dv) zx#;i)2s)i0{1}c6X?%(w!$mouI%8sQx8d>jh}UNR+eCCTNq^WdIoB=PXc`L5_;(f?`PY)q|B93q|5K^M@1Qxo!5@2OFJF;TPdcXW9Y7_6>%%=*h2G#8x}E*;uNG&^wJ7DoKIqtDRYe@~5uh z6sDzVuYkTdOe)>^N3(~=)6)ap?=+~Tcg2KuWvu=SN~_n^mCIZQZQdt7S7 zVG6kg-aT*<_!h}G?)vFc`!SA0p;9986Na-a{{1asBHnB~jBlW+99wLG;-0Pq_?@`T zc3%m*HZOg19)rcjk5tlF(oJ^IHQmBVvU^WM;hd3bskfp*MQn_gD6RMQQ=?GVI)HmW zreh#<#v0uD_(F&CccT(gWhhk3#3w78T}Br_l2=OQgF7DO3`mL2&>!rps z2Hx2r4cnI!LJU#U9ER^q5`J4ygMS|gel3MVu|cucQ233)a_#AtJ2 zbC2FJR>2lp^zww*0Yyy3_WL3^F9#JhO@hmd(CG+$=Z%?Vup`F~Hj$(I-TX6lZSX9| zSs^l+bI7w8h&5dL_<3N*?e-@t+-f+>gq4@iscm~Jg(}VH!3>uwd=sex@h+)vErg$r za?H&-4UUvnIVo6uQ;W!({A10E?&)G;WdT_ZhM!is(Kz0M(m0p@Q%sERYo9|LR^o(r z#XzZ8!bzsAHTj*1)bu%F!Fmy_?|>vLh62Wo@hg>M%p}Y!chkxu?f(q}cZnOp>^QaR z6)zk%dxCVn{@PI*88QU?npFnpMQT%_0b~pg!@FAfP@EB5W z8hLEt%$FRC^zq~sF-Xa^RmGt7qCvI)tVF&vY?!j^vBJ{Qoak#lP$7b5vcp5NaW$G+ z3(_!5HaX8k_1@RzS7|=?06+&ACq0veDTi&rz2#%!;d%Bd8JOm)ZvD#NuFLIz`PFwK zp!9>(c|jmHOo5p#w3V)aP6nR)ce_l>RCFeBZw~olS7(e5%*5n;&o18;kHLfXPg`x?vXV~N>0}D|9`QV@D8u7P2l6)Ra!cx*%=2dQ;W5g+8E*&W9$xGQ zAnOATW9-VQ^Uy~E@G;RDfmGg4mrWJ`NZGd;!)f|D@VLaBvFLHz#TDErcsOg-0Kuhv z3a!gokVS1D<`+uG;!J5|A;y}}-*gA@#SqNSfZtBgq626Mx+h^K@lN`RC!-$o}2XsD!!Ar!KOzc?ntBlZH5b~gwjHR!2M@D2n5Z)u+WQ3E8w*@jq>vKe}g zw3G2(ZGrj(_@_U`#*l!p8q{8agY;eEXeDIA6x zRA8@|QUkl&0%7_Aa;HKi=#GfX#=~};Skm3be%oRK3cF5wR=_O?tq+btrd?#CBdE4t zM8aU%`ypZzNpw&E`4e8K1~r5xoIAFUEgp7y;yd>EF;}{52<$gd7Zjj7#PB*485S9` zYSveePA?qP*y+A1(X0R57FObo>a2`@7yTeIM^6gz0umh_)Qt>e+jA)VKIbIfgJi++M_S@zt=ayrHN)9*(R^~3;zlsM=sl#Dh3?Ibnn zmohB~oNBe7i;ldWboOtg)O_!CW;_a8%ct-a#g^DAIY26pE=8)@mnzYcfc~Bs@zqyD>I4UqEPKzSK0C`M&amPj#)dyE zd6Fn1egiPM%A-O?)wwumo#NMWagJtutDR+NX#54$to)2^zA5U(ciDU%r`9bes!v*O z!y6REer^p_jEG4})!rb9{2=x%{%>+pQ)=24&nhYtZrOCi+vvb|dDizKN#otk8WkuX zNC?m0ZA|Aa@~(mH&&2DzVziplBa#y#Q_IX8;;c+R>9BTi0<3HkZ`g;( z%OXb4ZwHHM?iOctkNxaz9Um{2Ik-}n>y{A@f4-)n;q;UL7*|fMa7rs7|KhxS86p2y z-`Fab__VV1txcRu6R)B@TE|Y9{tk2DJ3}loGxaDdZ;yb9buk20ba7%K74BzlQ=n zXd~n_E-2CaJ3{Et6>4j$ztpwa*3aIrTt8OA#-+A;3p0BtcPdn!4N}Z!t_6&)-F+pr*ybH=O)n<9 z)&zAM-pAiYyvVGu>jtF(c>`o&#A5tA*s`C~JgS{ns;c5iz1&jm&0x%p?{T3Y=CvtB z5q2SNh?HkQ6A1|@^sxK0Na-ubBzf`lanM;=)kdxmF8XF z&w0sX_NxsJ0GNSeV(!P>nYr5Azbw>+X%GdTAP*lhyM`+>9+qJDRy3P(TWmqTzoanl zyXZ~K0Art#{XjhEGaR&M0CW%l6Cda-iG^Q!2hODfJgc0#3$0bof2C9wZ@`l9!n()3 zEIo65m(p*+Rbs#CX~|W9&hTfYJC-S-v=#*#`kSnt$IoaaF{xJhm;L%z``lnaxZVra z0L1R?&Rw0z4dQWs{)pkJy=i9%nW#@k2+Abve!5w%K3OyItFw3G#2Qmhp9x+emY)!c zoIvf-)P;XONv>$|-&w*#n1ldM@V6Gjb64t5R;_%!iQ6|4G;GGRdUm}n)@lM#Bh zveq{_MBMu6-BgN%AQrRFwjpSe(4Q$W$@C2Ca417NVo*4})sheGM2lIh_7n%8fb-$U zj~)>3gtUAO6{ApFUd@!*BqR5&MB7CB*#I*!NK+|J$KXxe7ye^+a)3X5KNP$LFO1TD*#T)Q4qG@iNqT|e~P3Fvf&rt zrbNV|F9Pwh%6r+4m0~j*8}{P9X14zG~OE?zYguQs~#bc2}?O%EJ$6Pmet_; zy=G>dl9oguU)xRvRcCebHOwFluU@hk6!}ODBEF;T=G9V+(cf=P1piP?4c<4Slm%8v zf_s99E%#|LE1?G0oh#I6?*H&Q$Q?PYSmnSUD*1S#@VEo&Ia`c=;0$U8Lqkb~eGH9h z{QU@Y9@G9GRaX_%W*2RPltQrtDM4BwxNDK(5Zs|q+`ULka0&zuUfc>4r)crwP$(1# z?oM%s;?B)~XYRwD$x|LO-6Y*%_SiLT{=OB_LQ{vQ}I)Pq>%+l=sNk*>7JyX@pcOb@3gx#$-_m{#u?1 zr{Z^TkbuoXX!}L@q2vqC{pBsC5uIQEjQ5y8wckT!;0X$}M4ckjx=;!p`-BMYixH>8 zs%+}kbzJS7Z6E6OrfCKcIuf<16v0!kF26Pif^BnsvRfU>{nTi$p4=*Ku=VOp%c}5# z*wO~t;%s--ZZe;EcB;Du+jfAUDNM_RSG3&UuZGVaJPfLPF6@hAE-#-$-wiv}!rrE< zyyg6$&BX^`ww)$y^`Gkf<45Ui(r{>AhChkhBFgqUfZH^Stdg+S`tm;U@Ufx8e~jqw zI^ounfBmiE%!AX+QWy~Jp2v`FYn2R$yNbsQaD$^k1HaId@6nS!2SsWE{jxDEPQ9Y_ z!vNR5`+pyk$Gg8(RWgSp<}5p|JVafq9j8k8Z!HpA5^a~;hCPB%imt&Tf!%$b8K1MHw4#Ad2q5;1EWZ5L%mqHxUpUT-Keq1Kvz(x=b5O+^pH)A>nJpV96$Nl22$8Qo@85DFx-iEgQE;2R8C7hX9-}oUj&;_fhV0 z7@Mf$-^c}$tkX|1y9lWy)A^0$@v2L?!v?U_GV9=>0UT2p60bn}j8d^wpBD8nB~eCx z*m*R(5KJ=twk`pt8a_a@JPkK-ONf8|5q{m2o$wSKTR8cY2 zOMm~KGAf_81zS}YjIjJ@2k9s_{x*rITZl$P52@Io!4c8*RQZ&*7n_4%2tr5@nZl-} z#PXZR)xigv&^kjXBacsmbsSl$Yf#*$+8|IuvS@DNyDbT|cdAh_w5%2VcaHP@>(GGD z%OF94TJP7E3VuZjC1k?#b4$+2d96lCe3_&afQiT=OSMNgO?pObf32{A$+4P0s?ikx z^4Sepe?trs``@)(9d`Nl^^g75v*u#}Lb%`jAwq#|AdQuBCpI{3iwEp;ruo(5!fnRovY|D-AO`Ph zgHo0r>GG0r#qOc@`cxii45dxbIuN6jp%pqK_<<$Rxy2jcZ8T;a`mywavDY|S7(@$= zHz|ntL}r=s&K=_HGitTywqb(9M>j7*{Ouf#A0fzQXZ2^*$?r!k{}=%2(yDgEzY88rSCl-L(aC*s&}+lx*2O=!(vubTC86KC zqB(`v@$`eUm|D4$ZpdoA95gM*s_eOJv~&nEVe|GGOv3x9u+f6o)i*IZa^hJs6kAB{ zcfmf#+E=^6Ng2!e`u&X2S4O@k`nhLXxRQ9H1G_=9Msq61&bRIM?l8FRphU=7O1~n7UV^MQ^(-I>@I}5B>S93gzY{9_;=- zh_3Wq3qpOjHlB#lI=Q;C;D%@)zKLHf&``{xyJ{hVP{uM;uY?C@iOhgCEMWYEjq~=S zchx5Et4teq(2=dV2WYMFYy;u+=0hjabNh}!&wf;BJz0Caf-xmie$HW9j}nFrtt zWDU}b7=zqf8_z(=dJA&w-Rd-yp6$B6^->2E8x*@>Q{(?6MW9;&pXJA~2HJf?DcGd@ zS~$riA>IV&%miqV;U)*i*DsWxAH;}Z4s=Y1u`&GrApy3t#4t4Tfj1`~? z{Q{aHio0$Mk#?3rgaTY4ssRmojNy2IXfbTuE z-Vnk;1zO)${h42Xipzs1MK51HCGb5zQ zb`CVN1zypRO_X!2@u4q_ES;8P>eb-IilB81#~@;G76D+Njk?cpnY!Jz!6(mTSNNwa zq@YWGfvwMb!1tpb9`#B+m#yW1)x9%Y)Uzcr{rOYA{bxR-COf(IX6^i-jr!iac8Nyw zG}ZCS7uAMvs*PCS`Ar;53pQ3&%`XjGrSsm5h8{oNG&O`^qwa^vUV(=jvU}3UK}2`$ z|F{4RNT;BsVn6>nvq>J%gaU?lbuzI+V$LZF7dhPDE2CT z8v4OgFuhNa*0W>N&$o)T3+V76m;~OC^TL70ui-QZS3Nf7h`n(jLWvd<0q5q6;{HL8 zOV;i^MPLj7%=E2(v~$^Jy1C~!&E7mqG&1CsV=y{BJ(KwuuV30^Ocgn&$cXGGd)7W4 z9}q!(9J2pJuPM49!J3`4;uti@7!Hr z4@XzS@3*Z@9O&6?FVD?=Z*HVAS>|cv_KgOh5wioc1Mi&k+WW;Pt?n=EOFX|z zmb=b7tXMGQjb4Ki5`Ck+nBHCtx14fmo%vNv-7R#ye(pzuj%1Awj(t4srQ!PgkLN1x zn=d;FXPLU^?+ZFhwJbKEeoxeAdS1avk;b@Buhu)G6F>H-nc4>lsZ`gc>Aid^^<{E((CxNuAI25xZ)|xX^Pnp&*2ts$|b*FvP39ZLf|2 zVAoJ75|TGgtKfN}P{N;5FYNbD7nVudT&^ly>-~LfyaM(BZN8bFP8~LUn(XZuEOs@$ zayRXmNmh6bPfMFuVl&6WM{3${W+_W6g1SOpRohwC)ze}^n$L7R$PUD_yP19oQ;p<8 zh)vh__w5*9t)jGtbQrz{WOkNNdaoQWLF_*yXp(xOahR_FP-&HR9);ZorCsJgphmG3 zT`W%#k4vP{z`(#(`Z(j@SzdOa0(S1)AyE{=?ruriP*oz>Q3ss3(gRIqD{0sZssRRCGAXD}p`yN6^spQMR)IHgSfI4fJidpq`}_^b@f$7XC70HBF-+Z0YV@sP$>sIJ^Dy~WW9p9r@`$Qyu;pi2%o6~ITks5VM+1XlG;_X`2t*u|jakE%0mLBtki)}4Q&22gih3Ke8i`rv; zdTWObXKKf8jrm30;wfr?#Gq<|;ud1l%*~u5(NFAb#6LNI{QBqm6|C=`dP% z%aw7NGfP8dmp5FEnfuQE6dhOF+r@-~^2bA-`{MPt9aLee*ytZOAFlkpF1ricUUZ>2 zn8T+RWZ{{qswU}7)Exec4XL!4@wUScH{r0E@R7&IhB<<%0Ke*%S2gn9g9oyC3f--W z=i8TJ;9=UA->@XnrX?K;T1%u(Y4>EP{+Z(QV3_?dg@boTgp)|;)= zGeiE3s1MNBk*K?gQunOtm~GKoxY~}Yz31Bw`V%mJVCwVqVcS{yBcugve#Nw^CfDad z@&!OcL!gJDzlvO|g!niheW$bSvxwUyI<<$(bw>QFZy1a^o*t&2su%ot@p442`nl;j zWGu>aJ`4e7beHdzPk$HRm5-wTXxekGYM%1`8*T?u`qiY#WqCdJ_aq%QLo4ce1lu+V zJ$Z|Xdj7@!M)1cDm!*!m=I5xMr~Q#3xm6owbAycoAaZ{NsOMn`SF}Rvs@l^=go-ts z?lSSwt1E!$At1&e1O$SI3}UBx2GD?GKiix=p^Ft(M7Q^~0$QwExvB-hxf3iBhp@4g zUxbpGlLWP7)1uECsF-jY6klswUfs#>M-t##=;i4H&CI7tl>{g{k)z8UI7VkPL!)O zqfSY^q1<)=oVi`Q$*b?g3-g?XS)uHWYFz~kP22Yf?%JJPAezsX5es1U_fK2#>bLgNs+DHpRI-$Y*~t0s zyLx((tdF2((hcCD} z-mR*ElROuXjAyPdS07L@+lsX+dgvW*7l|4dW{vdBAiI!<3=}hwMG(4j#nJhA*^rSr z<^5@vU?FqbYQQEEJAzxR9~G;09iVvPy0Ae_$D%sg%nzAtg}XzE@^*ybt?b6sd4eeL zz<(}HrD7P@5=P@F<0k**Dz=yjp$AocM>DOI-d`V(Mnz8tZ|8HQ>A~zNUVJ^)7Vch? zME->T#!TUomn97wNb5aFWo&&kopm9iChj9muN0w`?*#k|tMq;nn)mi^EAR@YvaT zPA{81{h+_{1eUt`I_I@C$umFDmy-!F01K|dFfA0i`Ib$t!Yd}iUZXZF%$#<9kZZZ| zt)-bdIVve(*!*SQL|TQay)N%IEG={~|LZalxpH-Y$~adjf+Q$R_j|I9&CC@~NJs^f z?o8PT=Gzcxk zdoct743VXwq5U}jrEdX*2Co(nBC}NCgF)UjPiSI-&=l3e&ZZ)U_~Na6cZB4Q!@%f7 z*2{fhi)h47*v>1ApmDFu5vh{@p*H+eCY$qOGkbwGqPf}vgT)>?H0gk z1Z1!TwF4aR#7vjO(f7f z`r!G|0uZCIeKo~-VOQ~jT>i0p#S7jQtiRzCrQST{fE9}wZf z-y1FgBn`xmvN?E$ZK~1ytQiGZl5-61XP3V?%Fr$8atD zlT-mPg*z2-j1G+m^)u~*9IMV)--(%K;hjo!?#Xi-Nd};Gli#vvD_wju_|n5}1;88w z*sH6_=M~^$mWqtsjtrc}y}OL+X!rlO%ZVeST4aLxgffqM^~-j+?Yupm|E2L6_9D)Y zXQWbg_j135{H=I`_F#~xG~x$M&GNcfh#u=wkSEWedt03&3&BZ0w=M4l(kzg}|JcF64#K-AloW|JUf? z&?)_70w53&rT)(>FdRVAbU!si{nGbiO(iCq8ieFtW}<5{0-^N{0tt!+`_$+>r^+nd zF!ONC0}`h*e41qrG*Y`?=b>m}< zqWvz#!vu`6;@tG_#GHs_z_;RIaBSpPM~1i*93E(eyXHu9ci?Z^P-oA^%H!yvaV+N@ zr^YG3;2^TCb|+yuCw%OW z(Z;aZJ%#)Ygq8&pZl#9<7_5a=3|*9wDU{&j;67*6f|j~udNl46+|~K!U-`|X)K@og zI#}{0BiV?OS*6^KiKA%^nJZXs8t!P1T*6na{9O|uP7!uHZ_ROHJsV}-G%69-(g0X$ zno3g}GUnJB-WJi%R?*e2&q$q^KC&-vHpStyQg$J{oKpXxvOiLXvA3#HJu=nz5R)@uOh-3%XDi0 zRDLP=?XWM0ZZyskJI$4oLEHOn;9tD+*GQYH9O|?xX+7pbG(D@4MHQAF@;nA5|Drjt z`bo;YaK(_cL5-4u|6il;sW}JYHw&3%+u@n-E5-$cwv8tK-1CS4!?Q6e-=Gg!UQ z5DJ2~SaonFa&Hs42Gaiq*ZI1@7}%W=1@;XCa={8Rh_s-N`{Teuyj2&Y%Yeh)|8fAT z@yJ(7nAjNaMFR3-E{1XB>7PMZG~}T|7ax(9ag~!ZYI52ivZP&#YPUbVe4^Y}K7ZEP z^7Kl~>S%TdEjsc&0Hmm!vO5X-invN!y#N;70b)hb9}xxoX77~LKXHRCq2MfV^0X4A z&FkieQBQ23C6%`T^4HhsdDL1&a}Ebz=6>F^x`aVe{h?tT!amYy5)0s18KrcWtKTs{ zHE7+Y=MnA~`ITe8)PTKg?z8u$8SJe2Lq_f~fW|9F=q*IFj)R7^5bcZQ;!0&=i>L0+ z9IJ?*9;0chD)s_c`}VEMtMUvBg-=2AH%_{ki(TJ7&8OcIWE?;xztAzQkCcrNcKvQ0 z?`PE13$l$R!kAHR`TS)hg`6l7A;52FJ+;VqW5DK`Gy%$!nnY~(9$2*EcSTJq+4n^5 zY)uu3UGI~r;t`?4He79lBlp)Y1~2>j&SHhFafP=s!NfjZq`zp0&`8#nj>L?=?P?S^ zE|j+PZC1O7e@|Ae7!&BtxoVRxM_`*(CZW?nq>&))9&1fXdb=y&GuE-EdELeU`hJ~SCY^U zV1=iu%E$ZSn-BLw5H`SB#_R6`+c9dSEipLEw)Fejt?BdO1K+j)ZMmf*N;SA>)goRM zJ7C8BN!9o+JJr@(xUnKkCuG%PCFF9|bHBaBEt=QuZ*F>)eVgq|c(4}8Y=kO|p~nKx z?V(}XZ~rl7T5Q!HRqSw;B&ntIrjo#*5cI5?+I(niJc5RSOKN~46w`z#fx9Rqe@yYq zN5`0tL|+(jK`*UP0iob!;K0f4RKTGim~DE^H@o}vq-5q^ zn|W{rK1=df!*MMLhq6`P9C{~DmLjIb31a8D=d5#`0Q%ak|IXV&#$yU-tfoCaf(1jH zGBMe@c1a`9`+FNT!GbP03FYxnf=AT6Z0!Gt-12VI6ZawlYLX`wk0n49RT1A?rwY%f78jn|)y=@-2$Vn{Oed8|>y92CEr zTfXhB-)xS(951cKUne5T&T2eaR36iiMEZ8g@B|r{&VcpFc!xj>OMA%aq@16?PX%#y zzk%E$mv{CsEG#T>G_n6cN|T{NUM3l$ue)viMsO23Z)C4ZBum_j!}7?A3+`}be9#*7 zKiCcZQ4&495w;WlhrJS)hq3(S7s(*Zk*-=wi;s(*=8Z=!y>zTjHLGo2sj1B+FTz7hP{1FEE}2$U<5pLknUvhGEM{mkh17)^ zPG4ro^ZiSzXFxbu{3Py-w)=h&ZKvkYNDh=@DaF%CpZg7lx$KZ#S9%4IYF%7wsBK;gVY^e@C5Kzs`z4uIaGh?@tbC{LpLT0Wxi z;@y6k>7n@3@2$(y4_C{2yyPWsqcj(R@c^9UUnEHxWb?$LlwlY!14TJdMtSx4i8jVN z=o?KisyTp6{UR_vk)fLJOfMx%7f4Drpk)1!NUCHnjgD#dvXC1`7tm={%3Wll=Y+s+ z+@}>{w4MO7V7){$-(4^(r||jc_xUtlD6mc){K(?C^|T#&Z6owBGI#BHYxTd=@~fs0 zhTf8hFMsT^?)xH`dAcp5m+|vd9R{_LpiVC$72=u3BaR3Awc2iabY&`%pSWG?h9AY+ z{RG6v7yfeQVjaPciHH3KDOmM~Y9kHyY1aGkBSQ4`o)Fglj@U|v8crDw!>(op@`<)bR)#dK- z*WQ^ts`EU^Q}^K6)&9$Rv1*@1k7^Z>?{9RlI}Yw_hyC^zw}+jwLbv=Ru}(X&6}}Wy zNW(z`+ZuirrH<$QMYp0>bNjDG5ghe=T(|$ z9ZfvDQ9NUd6Lxm0%{*@3E$s^Rq}vsN%vkc<@KrUb^H(ufjTJ|RS1t`lXjlKStD5V0 zWQ}XNH7({ddfdvazSSZyk3$%`M*HWV5pf0geJc!^K#_5N1BG1;un`&q zxU^^xs6v>4d>adWrkNFe%7z&FFKNjj%LEN80D!zAT=BcxI<)LL9BQK;1<=a36=hNS zBO?ED3)tF|)_hV&9dsoyh)GiW^QjfqFS+={i7dow6m?(>mB!k>JpF6x+I6@D@Q1> zw&Q18GqhmU*hDvTeEA{kQW+mm@FQcv)foi_8#04F z`iVA;dRv?H{U9(WTj%WMM=eM2dz&)Dttg40H8@UjwC|u4|BOFWNw_r3JdDaqzssnR z?%SEE6336V?m-;(|CUvHJ~ViGI#=bC;@Jht<%k(C!6!}bXG;Xv%md^8mL!0WWT+cw zmi+U}(rIN8z~Fa$u-RSJJO4Kj>GX*8p4 zcVY>J3%c5(B^CI~+C=`tpA)V4J24>aJqUc2dPSFWNNvjT`4G!q*yk#vg{^VLE!^|Z z1+(<($!S ztvBqfl;PJ6tMC0^BNn1~@K2GD2OF=O{WfZdrkKQkWdGzrv=g3Ia@aq#_M*?X z+&%qHloBa_jmkNZ;bSq&;IWr&fr}_HVWG;AEgx zPLgq>sd>wFs@2z7z&x1TKh?6L&q+<<{k@)63(VJyZ%(h1tnL7GI+kbS)Ejnd*;VmAVH4DVeYx=DUs5GWYZNW?IPs@|=EcMY z9FfGM#Da#i%y%~0U<}hxqJEBr*y(z<-MY`YoHe9=x~ZR?{1ye7+AvHG;(>^&Aobs6 zSy~5f1rDa$1h`N~$Wg~F=B5AjL%>B9s%7!?t!-<^68^lct`@qPDskg&GClwE_+d`b zB;5lA0y@=dE0iuBQ;QDmSzlgvd%tP?-o<9S#TqiieT%lYfhS|dDDDes;IlAz7)|mb zbZM-Cx`q6DuVhU;5tPpyvx)pF&Wb{=WXLe#7#)vmC#N$gb3#t9%B`q@up^)i8*N4D zfSpXQR@soJns5x9FUzO!=!^!qulA{Q2s917`7dwZD*}W-WVN6SpXU?z0WJ zQ!lyo*wpp9&b~R~mRrSJQ);6LCOn3s%0Abr6y=rd{)!p!v~P2!nes5^xqbZ5rPu;% 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%0DRqCpSPASC<3YO&$1Zbc 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%0Ap3~hY`p*&!zDh z0io~%$2H=J3E#|Yh5ZSrcc;1}g!J(taTnG0Pi4~6)1%cA`u7PWpv_}zYs>w8XnO{n zo*mIFb6M)1^xENiC>s<;!^itq9%%7SD_i91(X*|^u8Cr}+#^<=^zSYnzzPui4lHG^ z%l*a*x=%z~;k}N&TS*tLvb)N3XFYmv>_Z&FDS9|97Ju@_nFcvf)r2_#Q)4X!{<7`@ zBN>%DjPOlKnTX4$$iOiE@cf3eV>m&b+G6lauKj5mKB$LWJNoG!JmxyFaNIDK-wyCtDO zt5!(6R@|H7G|&25+IFPVLUcD={=w>woEi{ezU*X z!RL3m#NKOjz72^7uA$Cr*8zJB)lLOeoOs|xz*g=75j^J)Cr3Re+a`7qI7EsMm2R)AKdmT!d*T^CY^yKTp990oVOa1Cu$IJQzd*Upct{h&L$t7GrWi9k-JH^^siHpma3>hb*o_81h+=tj0~E_5`_ z76&u>?#*UbU$Y&`)9typ)v4*b`MzMR{l$lj&B$UGDq9PZvzLx!mUagEOnFr6%y&WkH7u)voXjeYkQF5lbu0zLn-a+nX()x`qUEQ!W} z+jZ87Mk((IH3S)-QAj>3Kp}oEcT0bq5%aXXUG|}#zsq80f-LH|uo5?(&v+yD(u*Hp zp!#XvvAB=IkAKAf)#7~ghhtZw$i93IRVkx;>=MK3+irLSh3Y#wvimpkc9~fo5>tq- zx7%(G9h!E4zCpiKUI$8PA&am(iEvuh7tko_s3NSQ8MkXTZU!;Fb8E|TT<*^X{p&8Z z=r|G~r(*0KG1W*E&aL_4%CB$iX;JigxqG*67u$B~Si}tIz-&f3b$^hMc=4lpoe42{ zlU0eur)*B#h`HUF(Z?SE3*vLrMZVg!%U(^F#IF50JJUG}U~``4kI!tKcY*>e{20$; ziNl5mS^!WVAX@g5>h~G2JrKBgv%<&?s6Nf_pO+eRiAVXLoBxySZNN(MiZsgavrPu_ zBa($uq7!s6V1@J-;1wJtz$D+$2`S2VOX7K2od4h+1L;RJOSx&o>mwE-P+NQ?yONiW zS$Pq(xM(T8FbQfLr=GyKmNW}Tr#QJzD2NF>N>oN8Lt+?+>{N$=Q$!KHmpc==b++z| zLGXJq*vV;egQk8jz=VrP3y=KA-~ULkO6dza80+yJo_c`6?mWfzFgVsmY5K4H)dAN! zb}W{Y4#I{O>r0#^dk(yL+gRv|4?j#DMt~9gZU#Mo5sWgBvb6E1)3PwNo9&=pL^z`a zcy20nkWg`M53Hi?M&NgkVk+zjQ#E4A8i?H-04(@`xd=pX`4>S za_{HcCSKyoCHI`A;uZ?O&7PZNe_b5%a`-h?g!TA+fHJ@S?jf!2ry-S!{Lf30neII) z0YR5SnEdnEMu@e;1%fuGli8wL0kZ|AjLcE*wQcq{7l6`olMwJnpupr=^1iZ)ij{!z z@$vPD0)qUtNdtK(FxuZ*!Y{Me1HFQMJgA?$-LDE1O83EvUKr4nz01wby{NEobvE=m z_tC&8D0Jk8Ee4QYFa?v6vwqhFr{FjF@`IiY{u0?qK5YN_JsPA^Y9>kSKLAxSQ~{pE(8TZXc_H?@Z5K1!pv1Q3)^WF#`)cn+ zXnMYeTt%!;ezqCnny3JkkYT7$>^f~=`qCSG0pOSOtx?!eErv1)HTL(0l@6CMp8-l} zN-SKX-iOpApnAl}g(4IQ4_RkN>|N=_|2bwg1A~LE_`=F#P^!H~TSeZXp5%_||1wE^ zK$XXMW8=J3mPVlc^ZNIF`Q)kmAoFFPR*ii&E0%yxp7np6(&Q z#U`&XVIKmQ8V(k`CxDn)r#(<7Ysb;isQ3vFnr4SEEeoP2h(u<+*VwFdn5=Scczy2D zrAr{3s{x*p$b|V;b5>2>mAdzKi?bx*Dpe4KjbXgie*<#?lsN`Y3xb(tNKH*s1F-SG zhws08y%3?b)GMrRRDO6kI5e~z(B9tO+}s?+rUbE0XwdhUQd7O?t1dB!cBV)hPB+;A z);|pnEP^=E8z_zI=Icq5wg*61lqBYegEV`Cn2{Vk6y*<+n!p!%ZY_qif;Lw;OjXaw z0K9pHuZFxGpw05nM=(bJryWYUFfK(YF@FZ&M4aL4D0P5f$`LElL*du5{2~>e&~zFQ zU{@*^c@LcDQue^IrYy;|C4vcyl>O!Cd&qwUl{He9$2qvI$OhPk-9D1%#cua2gxy%y6t4rp%DuzYPY0aq*j-#~Z0scU`Agl5i&x>Ep8L5UQ}W_Q z3JeC6dUT&tWfKNQQzf=yAZ)EIAOR3r zjMxZdRL2&muHMlYWbvYBV2}kw<#+Gs(obwNui|KWbiJvvBcW~$nw5--)%^?yYe1P( z_wi%r5hH{Tu(*pfyqyQP4D!HKMm4>jHVyItQ+X~E*~9X0D#-XAh$ z_6f;H9|w@OtWmwTS3=|?gEo7t(zPnZp62A`^Q$vX#URen(G1U zLppbfXk2{*)gcI`LzN(GfOK^RVZE+vD73zO#s?jIOV zaBzw`kC>096LsH6k=yd89+`oQpuY3K#R0T>eohWR6hhshL)>M9YS&!e;QF2NA`AOJ zQa&&PcmvvM-oOd+)gQgs5S{*p=LNww@I%I>&qK~)s$(9yJkim~qyf%H()VbOclT#~ zBBrpgiz(f)cTr3J2Jf>yKtd`36wssx{~|EIb?3)U33G{EI>uXD8wlU z+r(QxzdXPc8=mLP-d@N7CJXTCN39!Rf7Q3b6*GT&Oqu{zu!R2z%y?H)b_Gx@4DJBj z^8Cohf#q`-Zv+R!X(Od~;*As3*!ikvPE!l0ZvhPLytBycD5U+wKVV@4BqjSIt4TW( zHIp}^l+`|nKPG%~o@+K^h54}sfoVf+tVwe}%pOFmCvEq>0g81?SJfhx`l~w>;gQ<6 zRp!##fwz)fEpC#}0$H2F!n>(K^ATE7IWOYn*2RL-lbV>>&i;zjd0>RkmntC8$G?IR zq!pEk7+|$!z-oQCcj+unj!AqTuVX5;xx{M>SfeN$RI;@}wqw8$Fhv$}vE`!g3iEG- zx}A)~s+Iwx>x-*`g82%2axtHc2J%@aagP_9smiGtAg7YSN7HpTRR?y8`bKP1VBmS5 zGUZ#F01@4NXCi&K*?dL;`TEpKF*MUUyR$Yy;*P$f@ge>?oaaW8kW~ck093y{C$_LB z4e~<)(kd|=;eK2}pq6A2@%UuN@g!Di^&T6H+=R-dm9)t3>N0BXPxi7-4hn3fD;xAg z9%IQ_6o@IBAPqzh0=O`6h@$dE>SMsdxl#%ZE6MCIhDW&(Klw0{p-f-lSgnn%t(g5d?79EAX)9bo zA;8!~SJw>~4#pT;{rR&ei1wk?4)QxVVXN*B1(^%2@P;vt)yH|)tQlbvN8qUf@Q47o zgAlURmvrFGdT$iWapajFfeut&Z~i3fRm#DE**5j+*2!U~OvOEW5bSmJND=Ox{K3~H z+=VZyuglKPuDJtkEP&kea|6AN$C--Z?bToM<~Q#t5JekV0s4b@2H;s&9xY{4)%Q^D z>JRWwFDX=W_81`o4_3}eynuPB@e6Ra27pVv+icP>6n&hRfT`@WO>IW$mM#TvfYn2_ zuSP8e>}Z7gG+DJgNMQlX!G^wF@zGj%3);@Oc%K;I7nB~|elm6T%gfQvE=v=R^@Y>B zchutfy>{$;*y1Mtw=D0lOXwwL(v5U&8^H2xhYJiU9iUJkno|d?5N#tPX%AMOCkQ|$ ze#UU?gDjji7|xiOnD^}Jl5=l_Sfi9p?&+J{%abKqQK>S_&OD$B6WashIS-t(GDO-X zv^;M_GTw09PzrtprucXI_~jLTFWk9*bIIHO|JfcOyAAfU|MMX*@W0>RzW`D=zu%{w z1a=Qu^b{`)OiG})zpQ|DwVFaO{EdIe|3rFW{l5`g7`Xs`3GVTCJh z7O)&C@B;v2+kgQPQ65mwykP{g-Vw^|!TT*_WVGY|?ijENf`tgSBJNgkGDm7AiQ0p} zR##V-TdyD|Kc69u78;;nE$o^5Eav`FWNA+z)?Geg%*_hOGz;V&XV6f@ZCvk*4W2}u zkOuMKf-f&Kk>oFBzJV=>`xnZ}%09UEKLW@HT(?oV%@E*I^7D|rirB{DtCv932|Uhu zNkyoYtWYcCpsfgwS1T(kCZrX8PzO;&1Z--!vA$DdFRDAR8F7PlB0%DR()A^DjbIM$ zR2tz4q;~qNZ&d6WAF5C%$I#9nNOl+H=Nr~~`~>kC2P-rr+sgywl9JGcYtV&}(8fgC zbHI&2j4lImABl;H6&0c_&H#a1$>_kxO#jRPy{UtYOG|~td!qsP`E~J#U=WfNJ}Jq_ z%d<)I19Hz~z31`}WE>KUz}TYutv@EagU8A73(%vV{|pKUO{vIkw?Ko!iT&Bk0MdDV zcj7`rL&5489vQjpss%Nw`u=}D)g~+|YV0BS*kQ zJ^Nf*S}JH81V+ReSL?|t2yO*-zT#AMfQ7$&^$-lYPx${>>tASMpk_d?|DXK9KP~>h c@@7Y}$dz%(De0x0dC^h5&!@I literal 0 HcmV?d00001 diff --git a/scripts2D_variational/app_inclusion2D.jl b/scripts2D_variational/app_inclusion2D.jl new file mode 100644 index 00000000..63868090 --- /dev/null +++ b/scripts2D_variational/app_inclusion2D.jl @@ -0,0 +1,164 @@ +using FastIce +using TinyKernels +using CairoMakie +using ElasticArrays +using Printf + +include("bcs.jl") +include("helpers_tmp.jl") +include("level_sets.jl") +include("stokes.jl") +include("volume_fractions.jl") + +@views av1(A) = 0.5 .* (A[1:end-1] .+ A[2:end]) +@views inn_x(A) = A[2:end-1,:] +@views inn_y(A) = A[:,2:end-1] +@views inn(A) = A[2:end-1,2:end-1] + +@views function runsim(::Type{DAT}; nx=127) where {DAT} + # physics + # lx, ly = 2.0, 1.0 + lx, ly = 1.0, 1.0 + ox, oy = -0.5lx, -0.5ly + # xb1, yb1 = ox + 0.5lx, oy + 0.0ly + # xb2, yb2 = ox + 0.5lx, oy + 3.0ly + xb1, yb1 = ox + 0.5lx, oy + 0.5ly + rinc = 0.14ly + # rair = 2.3ly + ηs0 = 1.0 + ebg = 1.0 + ρg0 = 0.0 + α = 0.0 + npow = 1 + # numerics + ny = ceil(Int, (nx + 1) * ly / lx) - 1 + maxiter = 40nx + ncheck = 2nx + ϵtol = (1e-6, 1e-6, 1e-6) + nt = 1 + χ = 1.0 + # preprocessing + dx, dy = lx / nx, ly / ny + xv, yv = LinRange(ox, ox + lx, nx + 1), LinRange(oy, oy + ly, ny + 1) + xc, yc = av1(xv), av1(yv) + mc1 = to_device(make_marker_chain_circle(Point(xb1, yb1), rinc, min(dx, dy))) + # mc2 = to_device(make_marker_chain_circle(Point(xb2, yb2), rair, min(dx, dy))) + ρg = (x=ρg0 .* sin(α), y=ρg0 .* cos(α)) + mpow = -(1 - 1 / npow) + # PT parameters + r = 0.7 + re_mech = 6π + lτ = min(lx, ly) + vdτ = min(dx, dy) / sqrt(2.1) + θ_dτ = lτ * (r + 4 / 3) / (re_mech * vdτ) + nudτ = vdτ * lτ / re_mech + dτ_r = 1.0 / (θ_dτ + 1.0) + # level set + Ψ = ( + not_air = field_array(DAT, nx + 1, ny + 1), # liquid + ) + wt = ( + not_solid = volfrac_field(DAT, nx, ny), # fluid + not_air = volfrac_field(DAT, nx, ny), # liquid + ) + # mechanics + Pr = scalar_field(DAT, nx, ny) + τ = tensor_field(DAT, nx, ny) + ε = tensor_field(DAT, nx, ny) + V = vector_field(DAT, nx, ny) + ηs = scalar_field(DAT, nx, ny) + τII = scalar_field(DAT, nx, ny) + εII = scalar_field(DAT, nx, ny) + # residuals + Res = ( + Pr = scalar_field(DAT, nx , ny ), + V = vector_field(DAT, nx - 2, ny - 2), + ) + # visualisation + Vmag = field_array(DAT, nx - 2, ny - 2) + Ψav = ( + not_solid = field_array(DAT, nx - 2, ny - 2), + not_air = field_array(DAT, nx - 2, ny - 2), + ) + # initial and boundary conditions + @info "computing the level set for the inclusion" + for comp in eachindex(Ψ) fill!(Ψ[comp], 1.0) end + init!(Pr, τ, V, ηs, ebg, ηs0, xv, yv) + fill!(τII, 0.0) + fill!(εII, 0.0) + Ψ.not_air .= Inf # needs init now + compute_levelset!(Ψ.not_air, xv, yv, mc1) + # compute_levelset!(Ψ.not_air, xv, yv, mc2) + Ψ.not_air .= .-Ψ.not_air + + @info "computing volume fractions from level sets" + compute_volume_fractions_from_level_set!(wt.not_air, Ψ.not_air, dx, dy) + for comp in eachindex(wt.not_solid) fill!(wt.not_solid[comp], 1.0) end + + update_vis!(Vmag, Ψav, V, Ψ) + # convergence history + iter_evo = Float64[] + errs_evo = ElasticArray{Float64}(undef, length(ϵtol), 0) + # figures + fig = Figure(resolution=(2500, 1600), fontsize=32) + ax = ( + Pr =Axis(fig[1, 1][1, 1]; aspect=DataAspect(), title="p"), + τII =Axis(fig[1, 2][1, 1]; aspect=DataAspect(), title="τII"), + Vmag=Axis(fig[2, 1][1, 1]; aspect=DataAspect(), title="|v|"), + εII =Axis(fig[2, 2][1, 1]; aspect=DataAspect(), title="εII"), + wt =Axis(fig[1, 3][1, 1]; aspect=DataAspect(), title="Volume fraction"), + errs=Axis(fig[2, 3] ; yscale=log10, title="Convergence", xlabel="#iter/ny", ylabel="error"), + ) + plt = ( + fields=( + Pr =heatmap!(ax.Pr , xc, yc, to_host(Pr ); colormap=:turbo), + τII =heatmap!(ax.τII , xc, yc, to_host(τII ); colormap=:turbo), + Vmag=heatmap!(ax.Vmag, xc, yc, to_host(Vmag); colormap=:turbo), + εII =heatmap!(ax.εII , xc, yc, to_host(εII ); colormap=:turbo), + wt =heatmap!(ax.wt , xc, yc, to_host(wt.not_air.c); colormap=Reverse(:grays)), + ), + errs=[scatterlines!(ax.errs, Point2.(iter_evo, errs_evo[ir, :])) for ir in eachindex(ϵtol)], + ) + Colorbar(fig[1, 1][1, 2], plt.fields.Pr ) + Colorbar(fig[1, 2][1, 2], plt.fields.τII ) + Colorbar(fig[2, 1][1, 2], plt.fields.Vmag) + Colorbar(fig[2, 2][1, 2], plt.fields.εII ) + Colorbar(fig[1, 3][1, 2], plt.fields.wt ) + display(fig) + + @info "running simulation 🚀" + for it in 1:nt + @printf "it # %d\n" it + # iteration loop + empty!(iter_evo); resize!(errs_evo, length(ϵtol), 0) + iter = 0; errs = 2.0 .* ϵtol + while any(errs .>= ϵtol) && (iter += 1) <= maxiter + update_σ!(Pr, ε, τ, V, ηs, wt, r, θ_dτ, dτ_r, dx, dy) + compute_invariants!(εII, τII, ε, τ, ηs, χ, mpow) + update_V!(V, Pr, τ, ηs, wt, nudτ, ρg, dx, dy) + if iter % ncheck == 0 + compute_residual!(Res, Pr, V, τ, wt, ρg, dx, dy) + errs = (maximum(abs.(Res.V.x)), maximum(abs.(Res.V.y)), maximum(abs.(Res.Pr))) + @printf " iter/nx # %2.1f, errs: [ Vx = %1.3e, Vy = %1.3e, Pr = %1.3e ]\n" iter / nx errs... + push!(iter_evo, iter / nx); append!(errs_evo, errs) + # visu + for ir in eachindex(plt.errs) + plt.errs[ir][1] = Point2.(iter_evo, errs_evo[ir, :]) + end + autolimits!(ax.errs) + update_vis!(Vmag, Ψav, V, Ψ) + plt.fields[1][3] = to_host(to_host(Pr)) + plt.fields[2][3] = to_host(to_host(τII)) + plt.fields[3][3] = to_host(to_host(Vmag)) + # plt.fields[4][3] = to_host(to_host(εII)) + plt.fields[4][3] = to_host(to_host(log10.(ηs))) + plt.fields[5][3] = to_host(to_host(wt.not_air.c)) + # plt.fields[4][3] = to_host(to_host(Ψ.not_air)) + display(fig) + end + end + end + return +end + +runsim(Float64, nx=127) \ No newline at end of file diff --git a/scripts2D_variational/bc_kernels.jl b/scripts2D_variational/bc_kernels.jl new file mode 100644 index 00000000..2e926a98 --- /dev/null +++ b/scripts2D_variational/bc_kernels.jl @@ -0,0 +1,43 @@ +@tiny function _kernel_bc_x_dirichlet!(val,arrays...) + iy, = @indices + for A in arrays + if iy ∈ axes(A,2) + @inbounds A[1 ,iy] = val + @inbounds A[end,iy] = val + end + end + return +end + +@tiny function _kernel_bc_y_dirichlet!(val, arrays...) + ix, = @indices + for A in arrays + if ix ∈ axes(A,1) + @inbounds A[ix,1 ] = val + @inbounds A[ix,end] = val + end + end + return +end + +@tiny function _kernel_bc_x_neumann!(val, arrays...) + iy, = @indices + for A in arrays + if iy ∈ axes(A,2) + @inbounds A[1 ,iy] = A[2 ,iy] + val + @inbounds A[end,iy] = A[end-1,iy] + val + end + end + return +end + +@tiny function _kernel_bc_y_neumann!(val, arrays...) + ix, = @indices + for A in arrays + if ix ∈ axes(A,1) + @inbounds A[ix,1 ] = A[ix,2 ] + val + @inbounds A[ix,end] = A[ix,end-1] + val + end + end + return +end \ No newline at end of file diff --git a/scripts2D_variational/bcs.jl b/scripts2D_variational/bcs.jl new file mode 100644 index 00000000..72f48ecf --- /dev/null +++ b/scripts2D_variational/bcs.jl @@ -0,0 +1,33 @@ +include("bc_kernels.jl") + +const _bc_x_dirichlet! = _kernel_bc_x_dirichlet!(get_device()) +const _bc_y_dirichlet! = _kernel_bc_y_dirichlet!(get_device()) + +const _bc_x_neumann! = _kernel_bc_x_neumann!(get_device()) +const _bc_y_neumann! = _kernel_bc_y_neumann!(get_device()) + +for fname in (:bx_x_dirichlet!, :bc_x_neumann!) + @eval begin + function $fname(val, arrays...) + ax = axes(arrays[1], 2) + for A in arrays[2:end] + ax = union.(ax, axes(A, 2)) + end + wait($(Symbol(:_, fname))(val, arrays...; ndrange=ax)) + return + end + end +end + +for fname in (:bx_y_dirichlet!, :bc_y_neumann!) + @eval begin + function $fname(val, arrays...) + ax = axes(arrays[1], 1) + for A in arrays[2:end] + ax = union.(ax, axes(A, 1)) + end + wait($(Symbol(:_, fname))(val, arrays...; ndrange=ax)) + return + end + end +end \ No newline at end of file diff --git a/scripts2D_variational/geometry.jl b/scripts2D_variational/geometry.jl new file mode 100644 index 00000000..32f0eee7 --- /dev/null +++ b/scripts2D_variational/geometry.jl @@ -0,0 +1,24 @@ +using LinearAlgebra, GeometryBasics + +function make_marker_chain_circle(rc, rad, hmax) + np = ceil(Int, 2π * rad / hmax) + return [rc + rad .* Point2(reverse(sincospi(2 * (i - 1) / np))...) for i in 1:np] +end + +function signed_distance(p::Point2{T}, poly::AbstractVector{Point2{T}}) where {T} + d = dot(p - poly[1], p - poly[1]) + s = 1.0 + j = length(poly) + for i in eachindex(poly) + e = poly[j] - poly[i] + w = p - poly[i] + b = w - e .* clamp(dot(w, e) / dot(e, e), 0.0, 1.0) + d = min(d, dot(b, b)) + c = p[2] >= poly[i][2], p[2] < poly[j][2], e[1] * w[2] > e[2] * w[1] + if all(c) || all(.!c) + s = -s + end + j = i + end + return s * sqrt(d) +end \ No newline at end of file diff --git a/scripts2D_variational/helpers_tmp.jl b/scripts2D_variational/helpers_tmp.jl new file mode 100644 index 00000000..aaaf4f1a --- /dev/null +++ b/scripts2D_variational/helpers_tmp.jl @@ -0,0 +1,67 @@ +@inline scalar_field(::Type{T}, nx, ny) where {T} = field_array(T, nx, ny) +@inline vector_field(::Type{T}, nx, ny) where {T} = (x = field_array(T, nx + 1, ny ), + y = field_array(T, nx , ny + 1)) +@inline tensor_field(::Type{T}, nx, ny) where {T} = (xx = field_array(T, nx , ny ), + yy = field_array(T, nx , ny ), + xy = field_array(T, nx - 1, ny - 1)) +@inline volfrac_field(::Type{T}, nx, ny) where {T} = (c = field_array(T, nx , ny ), + x = field_array(T, nx + 1, ny ), + y = field_array(T, nx , ny + 1), + xy = field_array(T, nx - 1, ny - 1)) + +@tiny function _kernel_init!(Pr, τ, V, ηs, ebg, ηs0, xv, yv) + ix, iy = @indices() + @inbounds if ix ∈ axes(Pr, 1) && iy ∈ axes(Pr, 2) + Pr[ix, iy] = 0.0 + τ.xx[ix, iy] = 0.0 + τ.yy[ix, iy] = 0.0 + ηs[ix, iy] = ηs0 + end + if ix ∈ axes(τ.xy, 1) && iy ∈ axes(τ.xy, 2) + @inbounds τ.xy[ix, iy] = 0.0 + end + if ix ∈ axes(V.x, 1) && iy ∈ axes(V.x, 2) + @inbounds V.x[ix, iy] = -xv[ix] * ebg + end + if ix ∈ axes(V.y, 1) && iy ∈ axes(V.y, 2) + @inbounds V.y[ix, iy] = yv[iy] * ebg + end +end + +@tiny function _kernel_update_vis_fields!(Vmag, Ψav, V, Ψ) + ix, iy = @indices + @inline isin(A) = checkbounds(Bool, A, ix, iy) + @inbounds if isin(Ψ.not_air) + pav = 0.0 + for idy = 1:2, idx = 1:2 + pav += Ψ.not_air[ix+idx, iy+idy] + end + Ψav.not_air[ix, iy] = pav / 8 + end + # @inbounds if isin(Ψ.not_solid) + # pav = 0.0 + # for idy = 1:2, idx = 1:2 + # pav += Ψ.not_solid[ix+idx, iy+idy] + # end + # Ψav.not_solid[ix, iy] = pav / 8 + # end + @inbounds if isin(Vmag) + vxc = 0.5 * (V.x[ix+1, iy+1] + V.x[ix+2, iy+1]) + vyc = 0.5 * (V.y[ix+1, iy+1] + V.y[ix+1, iy+2]) + Vmag[ix, iy] = sqrt(vxc^2 + vyc^2) + end + return +end + +const _init! = _kernel_init!(get_device()) +const _update_vis! = _kernel_update_vis_fields!(get_device()) + +function init!(Pr, τ, V, ηs, ebg, ηs0, xv, yv) + wait(_init!(Pr, τ, V, ηs, ebg, ηs0, xv, yv; ndrange=size(Pr) .+ 1)) + return +end + +function update_vis!(Vmag, Ψav, V, Ψ) + wait(_update_vis!(Vmag, Ψav, V, Ψ; ndrange=axes(Vmag))) + return +end \ No newline at end of file diff --git a/scripts2D_variational/level_set_kernels.jl b/scripts2D_variational/level_set_kernels.jl new file mode 100644 index 00000000..adba3347 --- /dev/null +++ b/scripts2D_variational/level_set_kernels.jl @@ -0,0 +1,23 @@ +include("geometry.jl") + +@tiny function _kernel_compute_levelset_from_polygon!(op, ψ, xv, yv, mc) + ix, iy = @indices + @inbounds ψ[ix, iy] = op(ψ[ix, iy], signed_distance(Point(xv[ix], yv[iy]), mc)) +end + +@tiny function _kernel_extrapolate_with_levelset!(∂A_∂τ,A,Ψ,Δx,Δy) + @inline S(x) = x/sqrt(x^2+max(Δx,Δy)^2) + @inline Ψ_c(_ix,_iy) = 0.25*(Ψ[_ix,_iy] + Ψ[_ix+1,_iy] + Ψ[_ix,_iy+1] + Ψ[_ix+1,_iy+1]) + @inline Ψ_x(_ix,_iy) = 0.5*(Ψ[_ix,_iy] + Ψ[_ix+1,_iy]) + @inline Ψ_y(_ix,_iy) = 0.5*(Ψ[_ix,_iy] + Ψ[_ix,_iy+1]) + ix,iy = @indices + if Ψ[ix,iy] > 0 && Ψ[ix+1,iy] > 0 && Ψ[ix,iy+1] > 0 && Ψ[ix+1,iy+1] > 0 + s = S(Ψ_c(ix,iy)) + ∇Ψx = (Ψ_y(ix+1,iy) - Ψ_y(ix,iy))/Δx + ∇Ψy = (Ψ_x(ix,iy+1) - Ψ_x(ix,iy))/Δy + nx,ny = ∇Ψx/sqrt(∇Ψx^2 + ∇Ψy^2), ∇Ψy/sqrt(∇Ψx^2 + ∇Ψy^2) + Fx = max(s*nx,0)*(A[ix,iy]-A[ix-1,iy])/Δx + min(s*nx,0)*(A[ix+1,iy]-A[ix,iy])/Δx + Fy = max(s*ny,0)*(A[ix,iy]-A[ix,iy-1])/Δy + min(s*ny,0)*(A[ix,iy+1]-A[ix,iy])/Δy + ∂A_∂τ[ix-1,iy-1] = -(Fx + Fy) + end +end \ No newline at end of file diff --git a/scripts2D_variational/level_sets.jl b/scripts2D_variational/level_sets.jl new file mode 100644 index 00000000..dac746b5 --- /dev/null +++ b/scripts2D_variational/level_sets.jl @@ -0,0 +1,18 @@ +include("level_set_kernels.jl") + +const _compute_levelset_from_polygon! = _kernel_compute_levelset_from_polygon!(get_device()) + +function compute_levelset!(op, Ψ, xv, yv, mc) + wait(_compute_levelset_from_polygon!(op, Ψ, xv, yv, mc; ndrange=axes(Ψ))) + return +end + +# by default, compute union of new and current levelset +compute_levelset!(Ψ, xv, yv, mc) = compute_levelset!(min, Ψ, xv, yv, mc) + +const _extrapolate_with_levelset! = _kernel_extrapolate_with_levelset!(get_device()) + +function extrapolate_with_levelset!(∂A_∂τ,A,Ψ,Δx,Δy) + wait(_extrapolate_with_levelset!(∂A_∂τ,A,Ψ,Δx,Δy; ndrange=(axes(A,1)[2:end-1],axes(A,2)[2:end-1]))) + return +end diff --git a/src/level_sets/signed_distances.jl b/scripts2D_variational/signed_distances.jl similarity index 90% rename from src/level_sets/signed_distances.jl rename to scripts2D_variational/signed_distances.jl index a95f537b..6bc7b26e 100644 --- a/src/level_sets/signed_distances.jl +++ b/scripts2D_variational/signed_distances.jl @@ -35,8 +35,8 @@ end @inline function triangle_pair(Iv,dem,rc) @inline function sample_dem(I) - x,y = rc[1][I[1]],rc[2][I[2]] - Point3(x,y,dem[I]) + @inbounds x,y = rc[1][I[1]],rc[2][I[2]] + @inbounds Point3(x,y,dem[I]) end T_BL = Triangle(sample_dem(Iv) ,sample_dem(inc(Iv,1)),sample_dem(inc(Iv,2))) T_TR = Triangle(sample_dem(inc(Iv,2)),sample_dem(inc(Iv,1)),sample_dem(inc(Iv))) @@ -50,8 +50,8 @@ end end function sd_dem(P,cutoff,dem,rc) - Pp = clamp.(Point(P[1],P[2]),first.(rc),last.(rc)) - P = Point(Pp[1],Pp[2],P[3]) + @inbounds Pp = clamp.(Point(P[1],P[2]),first.(rc),last.(rc)) + @inbounds P = Point(Pp[1],Pp[2],P[3]) BL = closest_vertex_index(Pp.-cutoff,rc) TR = closest_vertex_index(Pp.+cutoff,rc) Ic = closest_vertex_index(Pp,rc) diff --git a/scripts2D_variational/stokes.jl b/scripts2D_variational/stokes.jl new file mode 100644 index 00000000..eafdba44 --- /dev/null +++ b/scripts2D_variational/stokes.jl @@ -0,0 +1,43 @@ +include("stokes_kernels.jl") + +const _update_σ! = _kernel_update_σ!(get_device()) +const _compute_invariants! = _kernel_compute_invariants!(get_device()) +const _compute_xII_η! = _kernel_compute_xII_η!(get_device()) +const _update_V! = _kernel_update_V!(get_device()) +const _compute_residual_P! = _kernel_compute_residual_P!(get_device()) +const _compute_residual_V! = _kernel_compute_residual_V!(get_device()) + +function update_σ!(Pr, ε, τ, V, ηs, wt, r, θ_dτ, dτ_r, dx, dy) + wait(_update_σ!(Pr, ε, τ, V, ηs, wt, r, θ_dτ, dτ_r, dx, dy; ndrange=axes(Pr))) + return +end + +function compute_invariants!(εII, τII, ε, τ, ηs, χ, mpow) + εII_inn = inn(εII) + τII_inn = inn(τII) + ηs_inn = inn(ηs) + wait(_compute_xII_η!(εII_inn, τII_inn, ε, τ, ηs_inn, χ, mpow; ndrange=axes(εII_inn))) + bc_x_neumann!(0.0, εII) + bc_y_neumann!(0.0, εII) + bc_x_neumann!(0.0, τII) + bc_y_neumann!(0.0, τII) + bc_x_neumann!(0.0, ηs) + bc_y_neumann!(0.0, ηs) + return +end + +function update_V!(V, Pr, τ, ηs, wt, nudτ, ρg, dx, dy) + V_inn = (x=inn(V.x), y=inn(V.y)) + wait(_update_V!(V_inn, Pr, τ, ηs, wt, nudτ, ρg, dx, dy; ndrange=axes(Pr))) + bc_x_neumann!(0.0, V.y) + bc_y_neumann!(0.0, V.x) + return +end + +function compute_residual!(Res, Pr, V, τ, wt, ρg, dx, dy) + V_inn = (x=inn(V.x), y=inn(V.y)) + e1 = _compute_residual_P!(Res, V, wt, dx, dy; ndrange=axes(Pr)) + e2 = _compute_residual_V!(Res, Pr, V_inn, τ, wt, ρg, dx, dy; ndrange=axes(Pr)) + wait.((e1, e2)) + return +end \ No newline at end of file diff --git a/scripts2D_variational/stokes_kernels.jl b/scripts2D_variational/stokes_kernels.jl new file mode 100644 index 00000000..3b81722d --- /dev/null +++ b/scripts2D_variational/stokes_kernels.jl @@ -0,0 +1,138 @@ +@tiny function _kernel_update_σ!(Pr, ε, τ, V, ηs, wt, r, θ_dτ, dτ_r, dx, dy) + ix, iy = @indices + @inline isin(A) = checkbounds(Bool, A, ix, iy) + # detect and eliminate null spaces + isnull = (wt.not_air.x[ix, iy] ≈ 0.0) || (wt.not_air.x[ix+1, iy] ≈ 0.0) || + (wt.not_air.y[ix, iy] ≈ 0.0) || (wt.not_air.y[ix, iy+1] ≈ 0.0) + if !isnull && (wt.not_air.c[ix, iy] > 0.0) + ε.xx[ix, iy] = (V.x[ix+1, iy] * wt.not_solid.x[ix+1, iy] - V.x[ix, iy] * wt.not_solid.x[ix, iy]) / dx + ε.yy[ix, iy] = (V.y[ix, iy+1] * wt.not_solid.y[ix, iy+1] - V.y[ix, iy] * wt.not_solid.y[ix, iy]) / dy + ∇V = ε.xx[ix, iy] + ε.yy[ix, iy] + Pr[ix, iy] -= ∇V * ηs[ix, iy] * r / θ_dτ + τ.xx[ix, iy] += (-τ.xx[ix, iy] + 2.0 * wt.not_air.c[ix, iy] * ηs[ix, iy] * (ε.xx[ix, iy] - ∇V / 3.0)) * dτ_r + τ.yy[ix, iy] += (-τ.yy[ix, iy] + 2.0 * wt.not_air.c[ix, iy] * ηs[ix, iy] * (ε.yy[ix, iy] - ∇V / 3.0)) * dτ_r + else + ε.xx[ix, iy] = 0.0 + ε.yy[ix, iy] = 0.0 + Pr[ix, iy] = 0.0 + τ.xx[ix, iy] = 0.0 + τ.yy[ix, iy] = 0.0 + end + @inbounds if isin(τ.xy) + # detect and eliminate null spaces + isnull = (wt.not_air.x[ix+1, iy+1] ≈ 0.0) || (wt.not_air.x[ix+1, iy] ≈ 0.0) || + (wt.not_air.y[ix+1, iy+1] ≈ 0.0) || (wt.not_air.y[ix, iy+1] ≈ 0.0) + if !isnull && (wt.not_air.xy[ix, iy] > 0.0) + ε.xy[ix, iy] = + 0.5 * ( + (V.x[ix+1, iy+1] * wt.not_solid.x[ix+1, iy+1] - V.x[ix+1, iy] * wt.not_solid.x[ix+1, iy]) / dy + + (V.y[ix+1, iy+1] * wt.not_solid.y[ix+1, iy+1] - V.y[ix, iy+1] * wt.not_solid.y[ix, iy+1]) / dx + ) + ηs_av = 0.25 * (ηs[ix, iy] + ηs[ix+1, iy] + ηs[ix, iy+1] + ηs[ix+1, iy+1]) + τ.xy[ix, iy] += (-τ.xy[ix, iy] + 2.0 * wt.not_air.xy[ix, iy] * ηs_av * ε.xy[ix, iy]) * dτ_r + else + ε.xy[ix, iy] = 0.0 + τ.xy[ix, iy] = 0.0 + end + end + return +end + +@tiny function _kernel_compute_xII_η!(εII, τII, ε, τ, ηs, χ, mpow) + ix, iy = @indices + εxyc = 0.25 * (ε.xy[ix, iy] + ε.xy[ix+1, iy] + ε.xy[ix, iy+1] + ε.xy[ix+1, iy+1]) + τxyc = 0.25 * (τ.xy[ix, iy] + τ.xy[ix+1, iy] + τ.xy[ix, iy+1] + τ.xy[ix+1, iy+1]) + εII[ix, iy] = sqrt(0.5 * (ε.xx[ix+1, iy+1]^2 + ε.yy[ix+1, iy+1]^2) + εxyc^2) + τII[ix, iy] = sqrt(0.5 * (τ.xx[ix+1, iy+1]^2 + τ.yy[ix+1, iy+1]^2) + τxyc^2) + # nonlinear viscosity + ηs_τ = εII[ix, iy]^mpow + ηs[ix, iy] = min((1 - χ) * ηs[ix, iy] + χ * ηs_τ, 1e2) + return +end + +@tiny function _kernel_update_V!(V, Pr, τ, ηs, wt, nudτ, ρg, dx, dy) + ix, iy = @indices + @inline isin(A) = checkbounds(Bool, A, ix, iy) + # TODO: check which volume fraction (non-air or non-solid) really determines the null spaces + @inbounds if isin(V.x) + # detect and eliminate null spaces + isnull = (wt.not_solid.c[ix+1, iy+1] ≈ 0) || (wt.not_solid.c[ix, iy+1] ≈ 0) || + (wt.not_solid.xy[ix, iy+1] ≈ 0) || (wt.not_solid.xy[ix, iy] ≈ 0) + if !isnull && (wt.not_air.x[ix+1, iy+1] > 0) && (wt.not_solid.x[ix+1, iy+1] > 0) + # TODO: check which cells contribute to the momentum balance to verify ηs_x is computed correctly + ηs_x = max(ηs[ix, iy+1], ηs[ix+1, iy+1]) + ∂σxx_∂x = ((-Pr[ix+1, iy+1] + τ.xx[ix+1, iy+1]) * wt.not_air.c[ix+1, iy+1] - + (-Pr[ix , iy+1] + τ.xx[ix , iy+1]) * wt.not_air.c[ix , iy+1]) / dx + ∂τxy_∂y = (τ.xy[ix, iy+1] * wt.not_air.xy[ix, iy+1] - τ.xy[ix, iy] * wt.not_air.xy[ix, iy]) / dy + V.x[ix, iy] += (∂σxx_∂x + ∂τxy_∂y - ρg.x * wt.not_air.x[ix+1, iy+1]) * nudτ / ηs_x + else + V.x[ix, iy] = 0.0 + end + end + @inbounds if isin(V.y) + # detect and eliminate null spaces + isnull = (wt.not_solid.c[ix+1, iy+1] ≈ 0) || (wt.not_solid.c[ix+1, iy] ≈ 0) || + (wt.not_solid.xy[ix+1, iy] ≈ 0) || (wt.not_solid.xy[ix, iy] ≈ 0) + if !isnull && (wt.not_air.y[ix+1, iy+1] > 0) && (wt.not_solid.y[ix+1, iy+1] > 0) + # TODO: check which cells contribute to the momentum balance to verify ηs_y is computed correctly + ηs_y = max(ηs[ix+1, iy], ηs[ix+1, iy+1]) + ∂σyy_∂y = ((-Pr[ix+1, iy+1] + τ.yy[ix+1, iy+1]) * wt.not_air.c[ix+1, iy+1] - + (-Pr[ix+1, iy ] + τ.yy[ix+1, iy ]) * wt.not_air.c[ix+1, iy ]) / dy + ∂τxy_∂x = (τ.xy[ix+1, iy] * wt.not_air.xy[ix+1, iy] - τ.xy[ix, iy] * wt.not_air.xy[ix, iy]) / dx + V.y[ix, iy] += (∂σyy_∂y + ∂τxy_∂x - ρg.y * wt.not_air.y[ix+1, iy+1]) * nudτ / ηs_y + else + V.y[ix, iy] = 0.0 + end + end + return +end + +@tiny function _kernel_compute_residual_P!(Res, V, wt, dx, dy) + ix, iy = @indices + @inline isin(A) = checkbounds(Bool, A, ix, iy) + # detect and eliminate null spaces + isnull = (wt.not_air.x[ix, iy] ≈ 0.0) || (wt.not_air.x[ix+1, iy] ≈ 0.0) || + (wt.not_air.y[ix, iy] ≈ 0.0) || (wt.not_air.y[ix, iy+1] ≈ 0.0) + if !isnull && (wt.not_air.c[ix, iy] > 0.0) + exx = (V.x[ix+1, iy] * wt.not_solid.x[ix+1, iy] - V.x[ix, iy] * wt.not_solid.x[ix, iy]) / dx + eyy = (V.y[ix, iy+1] * wt.not_solid.y[ix, iy+1] - V.y[ix, iy] * wt.not_solid.y[ix, iy]) / dy + ∇V = exx + eyy + Res.Pr[ix, iy] = ∇V + else + Res.Pr[ix, iy] = 0.0 + end + return +end + +@tiny function _kernel_compute_residual_V!(Res, Pr, V, τ, wt, ρg, dx, dy) + ix, iy = @indices + @inline isin(A) = checkbounds(Bool, A, ix, iy) + # TODO: check which volume fraction (non-air or non-solid) really determines the null spaces + @inbounds if isin(V.x) + # detect and eliminate null spaces + isnull = (wt.not_solid.c[ix+1, iy+1] ≈ 0) || (wt.not_solid.c[ix, iy+1] ≈ 0) || + (wt.not_solid.xy[ix, iy+1] ≈ 0) || (wt.not_solid.xy[ix, iy] ≈ 0) + if !isnull && (wt.not_air.x[ix+1, iy+1] > 0) && (wt.not_solid.x[ix+1, iy+1] > 0) + ∂σxx_∂x = ((-Pr[ix+1, iy+1] + τ.xx[ix+1, iy+1]) * wt.not_air.c[ix+1, iy+1] - + (-Pr[ix , iy+1] + τ.xx[ix , iy+1]) * wt.not_air.c[ix , iy+1]) / dx + ∂τxy_∂y = (τ.xy[ix, iy+1] * wt.not_air.xy[ix, iy+1] - τ.xy[ix, iy] * wt.not_air.xy[ix, iy]) / dy + Res.V.x[ix, iy] = ∂σxx_∂x + ∂τxy_∂y - ρg.x * wt.not_air.x[ix+1, iy+1] + else + Res.V.x[ix, iy] = 0.0 + end + end + @inbounds if isin(V.y) + # detect and eliminate null spaces + isnull = (wt.not_solid.c[ix+1, iy+1] ≈ 0) || (wt.not_solid.c[ix+1, iy] ≈ 0) || + (wt.not_solid.xy[ix+1, iy] ≈ 0) || (wt.not_solid.xy[ix, iy] ≈ 0) + if !isnull && (wt.not_air.y[ix+1, iy+1] > 0) && (wt.not_solid.y[ix+1, iy+1] > 0) + ∂σyy_∂y = ((-Pr[ix+1, iy+1] + τ.yy[ix+1, iy+1]) * wt.not_air.c[ix+1, iy+1] - + (-Pr[ix+1, iy ] + τ.yy[ix+1, iy ]) * wt.not_air.c[ix+1, iy ]) / dy + ∂τxy_∂x = (τ.xy[ix+1, iy] * wt.not_air.xy[ix+1, iy] - τ.xy[ix, iy] * wt.not_air.xy[ix, iy]) / dx + Res.V.y[ix, iy] = ∂σyy_∂y + ∂τxy_∂x - ρg.y * wt.not_air.y[ix+1, iy+1] + else + Res.V.y[ix, iy] = 0.0 + end + end + return +end \ No newline at end of file diff --git a/scripts2D_variational/test_volume_fractions2D.jl b/scripts2D_variational/test_volume_fractions2D.jl new file mode 100644 index 00000000..e3bb7448 --- /dev/null +++ b/scripts2D_variational/test_volume_fractions2D.jl @@ -0,0 +1,222 @@ +using FastIce +using TinyKernels +using HDF5 +using LightXML + +include("load_dem.jl") +include("signed_distances.jl") +include("level_sets.jl") +include("volume_fractions.jl") +include("bcs.jl") +include("stokes.jl") +include("data_io.jl") +include("hide_communication.jl") + +@views av1(A) = 0.5.*(A[1:end-1].+A[2:end]) +@views inn_x(A) = A[2:end-1,:] +@views inn_y(A) = A[:,2:end-1] +@views inn(A) = A[2:end-1,2:end-1] + +const DAT = Float32 + +@views function main(grid_dims) + + # load DEM + (me==0) && @info "loading DEM data from the file '$greenland_path'" + (;x,y,bed,surface) = load_dem(greenland_path,global_region) + (me==0) && @info "DEM resolution: $(size(bed,1)) × $(size(bed,2))" + + # compute origin and size of the domain (required for scaling and computing the grid size) + ox,oy,oz = x[1], y[1], minimum(bed) + lx = x[end] - ox + ly = y[end] - oy + lz = maximum(surface) - oz + + # shift and scale the domain before computation (center of the domain is (0,0) in x-y plane) + δx, δy = ox + 0.5lx,oy + 0.5ly # required to avoid conversion to Vector + x = @. (x - δx)/lz + y = @. (y - δy)/lz + @. bed = (bed - oz)/lz + @. surface = (surface - oz)/lz + + # run simulation + dem_data = (;x,y,bed,surface) + @info "running the simulation" + run_simulation(dem_data,grid_dims,me,dims,coords,comm_cart) + + return +end + +@views function run_simulation(dem_data,grid_dims,me,dims,coords,comm_cart) + # physics + # global domain origin and size + ox_g, oy_g, oz_g = dem_data.x[1], dem_data.y[1], 0.0 + lx_g = dem_data.x[end] - ox_g + ly_g = dem_data.y[end] - oy_g + lz_g = 1.0 + + ρg = (x=0.0,y=0.0,z=1.0) + + # local domain size and origin + lx_l,ly_l,lz_l = (lx_g,ly_g,lz_g)./dims + ox_l,oy_l,oz_l = (ox_g,oy_g,oz_g) .+ coords.*(lx_l,ly_l,lz_l) + + # numerics + nx,ny,nz = grid_dims + bwidth = (8,4,4) + + # preprocessing + dx,dy,dz = lx_g/nx_g(), ly_g/ny_g(), lz_g/nz_g() + (me==0) && @info "grid spacing: dx = $dx, dy = $dy, dz = $dz" + + xv_l = LinRange(ox_l,ox_l+lx_l,nx+1) + yv_l = LinRange(oy_l,oy_l+ly_l,ny+1) + zv_l = LinRange(oz_l,oz_l+lz_l,nz+1) + xc_l,yc_l,zc_l = av1.((xv_l,yv_l,zv_l)) + + # PT params + r = 0.7 + lτ_re_mech = 0.5min(lx_g,ly_g,lz_g)/π + vdτ = min(dx,dy,dz)/sqrt(10.1) + θ_dτ = lτ_re_mech*(r+4/3)/vdτ + nudτ = vdτ*lτ_re_mech + dτ_r = 1.0/(θ_dτ+1.0) + + # fields allocation + # level set + Ψ = ( + not_solid = field_array(DAT,nx+1,ny+1), # fluid + not_air = field_array(DAT,nx+1,ny+1), # liquid + ) + wt = ( + not_solid = ( + c = field_array(DAT,nx ,ny ), + x = field_array(DAT,nx+1,ny ), + y = field_array(DAT,nx ,ny+1), + xy = field_array(DAT,nx-1,ny-1), + ), + not_air = ( + c = field_array(DAT,nx ,ny ), + x = field_array(DAT,nx+1,ny ), + y = field_array(DAT,nx ,ny+1), + xy = field_array(DAT,nx-1,ny-1), + ) + ) + # mechanics + Pr = field_array(DAT,nx,ny) + τ = ( + xx = field_array(DAT,nx ,ny ), + yy = field_array(DAT,nx ,ny ), + xy = field_array(DAT,nx-1,ny-1), + ) + V = ( + x = field_array(DAT,nx+1,ny), + y = field_array(DAT,nx,ny+1), + ) + ηs = field_array(DAT,nx,ny) + # residuals + Res = ( + Pr = field_array(DAT,nx,ny), + V = ( + x = field_array(DAT,nx-1,ny-2), + y = field_array(DAT,nx-2,ny-1), + ) + ) + # visualisation + Vmag = field_array(DAT,nx-2,ny-2) + τII = field_array(DAT,nx-2,ny-2) + Ψav = ( + not_solid = field_array(DAT,nx-2,ny-2), + not_air = field_array(DAT,nx-2,ny-2), + ) + + # initialisation + for comp in eachindex(V) fill!(V[comp],0.0) end + for comp in eachindex(τ) fill!(τ[comp],0.0) end + fill!(Pr,0.0) + fill!(ηs,1.0) + + # compute level sets from DEM data + dem_grid = (dem_data.x,dem_data.y) + Ψ_grid = (xv_l,yv_l,zv_l) + + (me==0) && @info "computing the level set for the ice surface" + compute_level_set_from_dem!(Ψ.not_air,to_device(dem_data.surface),dem_grid,Ψ_grid) + + (me==0) && @info "computing the level set for the bedrock surface" + compute_level_set_from_dem!(Ψ.not_solid,to_device(dem_data.bed),dem_grid,Ψ_grid) + TinyKernels.device_synchronize(get_device()) + @. Ψ.not_solid*= -1.0 + TinyKernels.device_synchronize(get_device()) + + (me==0) && @info "computing volume fractions from level sets" + for phase in eachindex(Ψ) + compute_volume_fractions_from_level_set!(wt[phase],Ψ[phase],dx,dy,dz) + end + + (me==0) && @info "iteration loop" + for iter in 1:1000 + (me==0) && println(" iter: $iter") + update_σ!(Pr,τ,V,ηs,wt,r,θ_dτ,dτ_r,dx,dy,dz) + update_V!(V,Pr,τ,ηs,wt,nudτ,ρg,dx,dy,dz;bwidth) + end + + (me==0) && @info "saving results on disk" + dim_g = (nx_g()-2, ny_g()-2, nz_g()-2) + update_vis_fields!(Vmag,τII,Ψav,V,τ,Ψ) + out_h5 = "results.h5" + ndrange = CartesianIndices(( (coords[1]*(nx-2) + 1):(coords[1]+1)*(nx-2), + (coords[2]*(ny-2) + 1):(coords[2]+1)*(ny-2), + (coords[3]*(nz-2) + 1):(coords[3]+1)*(nz-2) )) + fields = Dict("LS_ice"=>Ψav.not_air,"LS_bed"=>Ψav.not_solid"Vmag"=>Vmag,"TII"=>τII,"Pr"=>inn(Pr)) + (me==0) && @info "saving HDF5 file" + write_h5(out_h5,fields,dim_g,ndrange,comm_cart,MPI.Info()) + + if me==0 + @info "saving XDMF file..." + write_xdmf("results.xdmf3",out_h5,fields,(xc_l[2],yc_l[2],zc_l[2]),(dx,dy,dz),dim_g) + end + + return +end + +@tiny function _kernel_update_vis_fields!(Vmag, τII, Ψav, V, τ, Ψ) + ix,iy,iz = @indices + @inline isin(A) = checkbounds(Bool,A,ix,iy,iz) + @inbounds if isin(Ψ.not_air) + pav = 0.0 + for idz = 1:2, idy=1:2, idx = 1:2 + pav += Ψ.not_air[ix+idx,iy+idy,iz+idz] + end + Ψav.not_air[ix,iy,iz] = pav/8 + end + @inbounds if isin(Ψ.not_solid + pav = 0.0 + for idz = 1:2, idy=1:2, idx = 1:2 + pav += Ψ.not_solidix+idx,iy+idy,iz+idz] + end + Ψav.not_solidix,iy,iz] = pav/8 + end + @inbounds if isin(Vmag) + vxc = 0.5*(V.x[ix+1,iy+1,iz+1] + V.x[ix+2,iy+1,iz+1]) + vyc = 0.5*(V.y[ix+1,iy+1,iz+1] + V.y[ix+1,iy+2,iz+1]) + vzc = 0.5*(V.z[ix+1,iy+1,iz+1] + V.z[ix+1,iy+1,iz+2]) + Vmag[ix,iy,iz] = sqrt(vxc^2 + vyc^2 + vzc^2) + end + @inbounds if isin(τII) + τxyc = 0.25*(τ.xy[ix,iy,iz]+τ.xy[ix+1,iy,iz]+τ.xy[ix,iy+1,iz]+τ.xy[ix+1,iy+1,iz]) + τxzc = 0.25*(τ.xz[ix,iy,iz]+τ.xz[ix+1,iy,iz]+τ.xz[ix,iy,iz+1]+τ.xz[ix+1,iy,iz+1]) + τyzc = 0.25*(τ.yz[ix,iy,iz]+τ.yz[ix,iy+1,iz]+τ.yz[ix,iy,iz+1]+τ.yz[ix,iy+1,iz+1]) + τII[ix,iy,iz] = sqrt(0.5*(τ.xx[ix+1,iy+1,iz+1]^2 + τ.yy[ix+1,iy+1,iz+1]^2 + τ.zz[ix+1,iy+1,iz+1]^2) + τxyc^2 + τxzc^2 + τyzc^2) + end + return +end + +const _update_vis_fields! = Kernel(_kernel_update_vis_fields!,get_device()) + +function update_vis_fields!(Vmag, τII, Ψav, V, τ, Ψ) + wait(_update_vis_fields!(Vmag, τII, Ψav, V, τ, Ψ; ndrange=axes(Vmag))) + return +end + +main((1024,1024,64)) \ No newline at end of file diff --git a/scripts2D_variational/volume_fraction_kernels.jl b/scripts2D_variational/volume_fraction_kernels.jl new file mode 100644 index 00000000..5adb7009 --- /dev/null +++ b/scripts2D_variational/volume_fraction_kernels.jl @@ -0,0 +1,31 @@ +@tiny function _kernel_compute_volume_fractions_from_level_set!(wt, Ψ, dx, dy) + ix, iy = @indices + cell = Rect(Vec(0.0, 0.0), Vec(dx, dy)) + ω = GeometryBasics.volume(cell) + @inline Ψ_ax(dix, diy) = 0.5 * (Ψ[ix+dix, iy+diy] + Ψ[ix+dix+1, iy+diy ]) + @inline Ψ_ay(dix, diy) = 0.5 * (Ψ[ix+dix, iy+diy] + Ψ[ix+dix , iy+diy+1]) + @inline Ψ_axy(dix, diy) = 0.25 * (Ψ[ix+dix, iy+diy ] + Ψ[ix+dix+1, iy+diy ] + + Ψ[ix+dix, iy+diy+1] + Ψ[ix+dix+1, iy+diy+1]) + @inline isin(A) = checkbounds(Bool, A, ix, iy) + # cell centers + @inbounds if isin(wt.c) + Ψs = Vec{4}(Ψ[ix, iy], Ψ[ix+1, iy], Ψ[ix+1, iy+1], Ψ[ix, iy+1]) + wt.c[ix, iy] = volfrac(cell, Ψs) / ω + end + # x faces + @inbounds if isin(wt.x) + Ψs = Vec{4}(Ψ_ax(0, 0), Ψ_ax(1, 0), Ψ_ax(1, 1), Ψ_ax(0, 1)) + wt.x[ix, iy] = volfrac(cell, Ψs) / ω + end + # y faces + @inbounds if isin(wt.y) + Ψs = Vec{4}(Ψ_ay(0, 0), Ψ_ay(1, 0), Ψ_ay(1, 1), Ψ_ay(0, 1)) + wt.y[ix, iy] = volfrac(cell, Ψs) / ω + end + # xy edges + @inbounds if isin(wt.xy) + Ψs = Vec{4}(Ψ_axy(0, 0), Ψ_axy(1, 0), Ψ_axy(1, 1), Ψ_axy(0, 1)) + wt.xy[ix, iy] = volfrac(cell, Ψs) / ω + end + return +end \ No newline at end of file diff --git a/scripts2D_variational/volume_fractions.jl b/scripts2D_variational/volume_fractions.jl new file mode 100644 index 00000000..7ab5a9e3 --- /dev/null +++ b/scripts2D_variational/volume_fractions.jl @@ -0,0 +1,55 @@ +@inline perturb(ϕ) = abs(ϕ) > 1e-20 ? ϕ : (ϕ > 0 ? 1e-20 : -1e-20) + +@inline trivol(v1, v2, v3) = 0.5 * abs(cross(v3 - v1, v2 - v1)) + +function volfrac(tri, ϕ::Vec3{T})::T where {T} + v1, v2, v3 = tri + if ϕ[1] < 0 && ϕ[2] < 0 && ϕ[3] < 0 # --- + return trivol(v1, v2, v3) + elseif ϕ[1] > 0 && ϕ[2] > 0 && ϕ[3] > 0 # +++ + return 0.0 + end + @inline vij(i, j) = tri[j] * (ϕ[i] / (ϕ[i] - ϕ[j])) - tri[i] * (ϕ[j] / (ϕ[i] - ϕ[j])) + v12, v13, v23 = vij(1, 2), vij(1, 3), vij(2, 3) + if ϕ[1] < 0 + if ϕ[2] < 0 + trivol(v1, v23, v13) + trivol(v1, v2, v23) # --+ + else + if ϕ[3] < 0 + trivol(v3, v12, v23) + trivol(v3, v1, v12) # -+- + else + trivol(v1, v12, v13) # -++ + end + end + else + if ϕ[2] < 0 + if ϕ[3] < 0 + trivol(v2, v13, v12) + trivol(v2, v3, v13) # +-- + else + trivol(v12, v2, v23) # +-+ + end + else + trivol(v13, v23, v3) # ++- + end + end +end + +function volfrac(rect::Rect2{T}, ϕ::Vec4{T}) where {T} + or, ws = origin(rect), widths(rect) + v1, v2, v3, v4 = or, or + Vec(ws[1], 0.0), or + ws, or + Vec(0.0, ws[2]) + ϕ1, ϕ2, ϕ3, ϕ4 = perturb.(ϕ) + return volfrac(Vec(v1, v2, v3), Vec3{T}(ϕ1, ϕ2, ϕ3)) + + volfrac(Vec(v1, v3, v4), Vec3{T}(ϕ1, ϕ3, ϕ4)) +end + +include("volume_fraction_kernels.jl") + +const _compute_volume_fractions_from_level_set! = _kernel_compute_volume_fractions_from_level_set!(get_device()) + +function compute_volume_fractions_from_level_set!(wt, Ψ, dx, dy) + wt_inn = (; c=wt.c, x=inn_x(wt.x), y=inn_y(wt.y), xy=wt.xy) + wait(_compute_volume_fractions_from_level_set!(wt_inn, Ψ, dx, dy; ndrange=axes(wt.c))) + bc_x_neumann!(0.0, wt.x) + bc_y_neumann!(0.0, wt.y) + return +end \ No newline at end of file diff --git a/scripts2D_variational_TM/bc_kernels.jl b/scripts2D_variational_TM/bc_kernels.jl new file mode 100644 index 00000000..2e926a98 --- /dev/null +++ b/scripts2D_variational_TM/bc_kernels.jl @@ -0,0 +1,43 @@ +@tiny function _kernel_bc_x_dirichlet!(val,arrays...) + iy, = @indices + for A in arrays + if iy ∈ axes(A,2) + @inbounds A[1 ,iy] = val + @inbounds A[end,iy] = val + end + end + return +end + +@tiny function _kernel_bc_y_dirichlet!(val, arrays...) + ix, = @indices + for A in arrays + if ix ∈ axes(A,1) + @inbounds A[ix,1 ] = val + @inbounds A[ix,end] = val + end + end + return +end + +@tiny function _kernel_bc_x_neumann!(val, arrays...) + iy, = @indices + for A in arrays + if iy ∈ axes(A,2) + @inbounds A[1 ,iy] = A[2 ,iy] + val + @inbounds A[end,iy] = A[end-1,iy] + val + end + end + return +end + +@tiny function _kernel_bc_y_neumann!(val, arrays...) + ix, = @indices + for A in arrays + if ix ∈ axes(A,1) + @inbounds A[ix,1 ] = A[ix,2 ] + val + @inbounds A[ix,end] = A[ix,end-1] + val + end + end + return +end \ No newline at end of file diff --git a/scripts2D_variational_TM/bcs.jl b/scripts2D_variational_TM/bcs.jl new file mode 100644 index 00000000..72f48ecf --- /dev/null +++ b/scripts2D_variational_TM/bcs.jl @@ -0,0 +1,33 @@ +include("bc_kernels.jl") + +const _bc_x_dirichlet! = _kernel_bc_x_dirichlet!(get_device()) +const _bc_y_dirichlet! = _kernel_bc_y_dirichlet!(get_device()) + +const _bc_x_neumann! = _kernel_bc_x_neumann!(get_device()) +const _bc_y_neumann! = _kernel_bc_y_neumann!(get_device()) + +for fname in (:bx_x_dirichlet!, :bc_x_neumann!) + @eval begin + function $fname(val, arrays...) + ax = axes(arrays[1], 2) + for A in arrays[2:end] + ax = union.(ax, axes(A, 2)) + end + wait($(Symbol(:_, fname))(val, arrays...; ndrange=ax)) + return + end + end +end + +for fname in (:bx_y_dirichlet!, :bc_y_neumann!) + @eval begin + function $fname(val, arrays...) + ax = axes(arrays[1], 1) + for A in arrays[2:end] + ax = union.(ax, axes(A, 1)) + end + wait($(Symbol(:_, fname))(val, arrays...; ndrange=ax)) + return + end + end +end \ No newline at end of file diff --git a/scripts2D_variational_TM/data_io.jl b/scripts2D_variational_TM/data_io.jl new file mode 100644 index 00000000..73a32553 --- /dev/null +++ b/scripts2D_variational_TM/data_io.jl @@ -0,0 +1,105 @@ +function write_h5(path,fields,dim,I,args...) + if !HDF5.has_parallel() && (length(args)>0) + @warn("HDF5 has no parallel support.") + end + h5open(path, "w", args...) do io + for (name,field) ∈ fields + dset = create_dataset(io, "/$name", datatype(eltype(field)), dataspace(dim)) + dset[I.indices...] = Array(field) + end + end + return +end + +function write_xdmf(path,h5_names,fields,origin,spacing,dim,timesteps) + xdoc = XMLDocument() + xroot = create_root(xdoc, "Xdmf") + set_attribute(xroot, "Version","3.0") + + xdomain = new_child(xroot, "Domain") + xcollection = new_child(xdomain, "Grid") + set_attribute(xcollection, "GridType","Collection") + set_attribute(xcollection, "CollectionType","Temporal") + + for (it,tt) ∈ enumerate(timesteps) + xgrid = new_child(xcollection, "Grid") + set_attribute(xgrid, "GridType","Uniform") + xtopo = new_child(xgrid, "Topology") + set_attribute(xtopo, "TopologyType", "2DCoRectMesh") + set_attribute(xtopo, "Dimensions", join(reverse(dim).+1,' ')) + + xtime = new_child(xgrid, "Time") + set_attribute(xtime, "Value", "$tt") + + xgeom = new_child(xgrid, "Geometry") + set_attribute(xgeom, "GeometryType", "ORIGIN_DXDY") + + xorig = new_child(xgeom, "DataItem") + set_attribute(xorig, "Format", "XML") + set_attribute(xorig, "NumberType", "Float") + set_attribute(xorig, "Dimensions", "$(length(dim)) ") + add_text(xorig, join(reverse(origin), ' ')) + + xdr = new_child(xgeom, "DataItem") + set_attribute(xdr, "Format", "XML") + set_attribute(xdr, "NumberType", "Float") + set_attribute(xdr, "Dimensions", "$(length(dim))") + add_text(xdr, join(reverse(spacing), ' ')) + + h5_path = h5_names[it] + for (name,_) ∈ fields + create_xdmf_attribute(xgrid,h5_path,name,dim) + end + end + + save_file(xdoc, path) + return +end + +function write_xdmf(path,h5_path,fields,origin,spacing,dim) + xdoc = XMLDocument() + xroot = create_root(xdoc, "Xdmf") + set_attribute(xroot, "Version","3.0") + + xdomain = new_child(xroot, "Domain") + xgrid = new_child(xdomain, "Grid") + set_attribute(xgrid, "GridType","Uniform") + xtopo = new_child(xgrid, "Topology") + set_attribute(xtopo, "TopologyType", "2DCoRectMesh") + set_attribute(xtopo, "Dimensions", join(reverse(dim).+1,' ')) + + xgeom = new_child(xgrid, "Geometry") + set_attribute(xgeom, "GeometryType", "ORIGIN_DXDY") + + xorig = new_child(xgeom, "DataItem") + set_attribute(xorig, "Format", "XML") + set_attribute(xorig, "NumberType", "Float") + set_attribute(xorig, "Dimensions", "$(length(dim)) ") + add_text(xorig, join(reverse(origin), ' ')) + + xdr = new_child(xgeom, "DataItem") + set_attribute(xdr, "Format", "XML") + set_attribute(xdr, "NumberType", "Float") + set_attribute(xdr, "Dimensions", "$(length(dim))") + add_text(xdr, join(reverse(spacing), ' ')) + + for (name,_) ∈ fields + create_xdmf_attribute(xgrid,h5_path,name,dim) + end + save_file(xdoc, path) + return +end + +function create_xdmf_attribute(xgrid,h5_path,name,dim_g) + # TODO: solve type and precision + xattr = new_child(xgrid, "Attribute") + set_attribute(xattr, "Name", name) + set_attribute(xattr, "Center", "Cell") + xdata = new_child(xattr, "DataItem") + set_attribute(xdata, "Format", "HDF") + set_attribute(xdata, "NumberType", "Float") + set_attribute(xdata, "Precision", "8") + set_attribute(xdata, "Dimensions", join(reverse(dim_g), ' ')) + add_text(xdata, "$(h5_path):/$name") + return xattr +end diff --git a/scripts2D_variational_TM/geometry.jl b/scripts2D_variational_TM/geometry.jl new file mode 100644 index 00000000..4ca7fbde --- /dev/null +++ b/scripts2D_variational_TM/geometry.jl @@ -0,0 +1,22 @@ +function make_marker_chain_circle(rc, rad, hmax) + np = ceil(Int, 2π * rad / hmax) + return [rc + rad .* Point2(reverse(sincospi(2 * (i - 1) / np))...) for i in 1:np] +end + +function signed_distance(p::Point2{T}, poly::AbstractVector{Point2{T}}) where {T} + d = dot(p - poly[1], p - poly[1]) + s = 1.0 + j = length(poly) + for i in eachindex(poly) + e = poly[j] - poly[i] + w = p - poly[i] + b = w - e .* clamp(dot(w, e) / dot(e, e), 0.0, 1.0) + d = min(d, dot(b, b)) + c = p[2] >= poly[i][2], p[2] < poly[j][2], e[1] * w[2] > e[2] * w[1] + if all(c) || all(.!c) + s = -s + end + j = i + end + return s * sqrt(d) +end \ No newline at end of file diff --git a/scripts2D_variational_TM/level_set_kernels.jl b/scripts2D_variational_TM/level_set_kernels.jl new file mode 100644 index 00000000..6bef91d4 --- /dev/null +++ b/scripts2D_variational_TM/level_set_kernels.jl @@ -0,0 +1,21 @@ +@tiny function _kernel_compute_levelset_from_polygon!(op, ψ, xv, yv, mc) + ix, iy = @indices + @inbounds ψ[ix, iy] = op(ψ[ix, iy], signed_distance(Point(xv[ix], yv[iy]), mc)) +end + +@tiny function _kernel_extrapolate_with_levelset!(∂A_∂τ,A,Ψ,Δx,Δy) + @inline S(x) = x/sqrt(x^2+max(Δx,Δy)^2) + @inline Ψ_c(_ix,_iy) = 0.25*(Ψ[_ix,_iy] + Ψ[_ix+1,_iy] + Ψ[_ix,_iy+1] + Ψ[_ix+1,_iy+1]) + @inline Ψ_x(_ix,_iy) = 0.5*(Ψ[_ix,_iy] + Ψ[_ix+1,_iy]) + @inline Ψ_y(_ix,_iy) = 0.5*(Ψ[_ix,_iy] + Ψ[_ix,_iy+1]) + ix,iy = @indices + if Ψ[ix,iy] > 0 && Ψ[ix+1,iy] > 0 && Ψ[ix,iy+1] > 0 && Ψ[ix+1,iy+1] > 0 + s = S(Ψ_c(ix,iy)) + ∇Ψx = (Ψ_y(ix+1,iy) - Ψ_y(ix,iy))/Δx + ∇Ψy = (Ψ_x(ix,iy+1) - Ψ_x(ix,iy))/Δy + nx,ny = ∇Ψx/sqrt(∇Ψx^2 + ∇Ψy^2), ∇Ψy/sqrt(∇Ψx^2 + ∇Ψy^2) + Fx = max(s*nx,0)*(A[ix,iy]-A[ix-1,iy])/Δx + min(s*nx,0)*(A[ix+1,iy]-A[ix,iy])/Δx + Fy = max(s*ny,0)*(A[ix,iy]-A[ix,iy-1])/Δy + min(s*ny,0)*(A[ix,iy+1]-A[ix,iy])/Δy + ∂A_∂τ[ix-1,iy-1] = -(Fx + Fy) + end +end \ No newline at end of file diff --git a/scripts2D_variational_TM/level_sets.jl b/scripts2D_variational_TM/level_sets.jl new file mode 100644 index 00000000..dac746b5 --- /dev/null +++ b/scripts2D_variational_TM/level_sets.jl @@ -0,0 +1,18 @@ +include("level_set_kernels.jl") + +const _compute_levelset_from_polygon! = _kernel_compute_levelset_from_polygon!(get_device()) + +function compute_levelset!(op, Ψ, xv, yv, mc) + wait(_compute_levelset_from_polygon!(op, Ψ, xv, yv, mc; ndrange=axes(Ψ))) + return +end + +# by default, compute union of new and current levelset +compute_levelset!(Ψ, xv, yv, mc) = compute_levelset!(min, Ψ, xv, yv, mc) + +const _extrapolate_with_levelset! = _kernel_extrapolate_with_levelset!(get_device()) + +function extrapolate_with_levelset!(∂A_∂τ,A,Ψ,Δx,Δy) + wait(_extrapolate_with_levelset!(∂A_∂τ,A,Ψ,Δx,Δy; ndrange=(axes(A,1)[2:end-1],axes(A,2)[2:end-1]))) + return +end diff --git a/scripts2D_variational_TM/runme.sh b/scripts2D_variational_TM/runme.sh new file mode 100755 index 00000000..8a535606 --- /dev/null +++ b/scripts2D_variational_TM/runme.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +module purge +module load cuda openmpi hdf5 + +export JULIA_HDF5_PATH=/scratch-1/soft/spack/opt/spack/linux-ubuntu20.04-zen2/gcc-9.4.0/hdf5-1.12.1-cualmplov32dcc2bdnucqywutca437vp/ + +# julia --project scripts2D_variational_TM/test_volume_fractions2D.jl \ No newline at end of file diff --git a/scripts2D_variational_TM/signed_distances.jl b/scripts2D_variational_TM/signed_distances.jl new file mode 100644 index 00000000..6bc7b26e --- /dev/null +++ b/scripts2D_variational_TM/signed_distances.jl @@ -0,0 +1,65 @@ +using LinearAlgebra,GeometryBasics + +@inline S(x) = x == zero(x) ? oneunit(x) : sign(x) +@inline sign_triangle(p,a,b,c) = S(dot(p-a,cross(b-a,c-a))) + +@inline function ud_triangle(p,a,b,c) + dot2(v) = dot(v,v) + ba = b - a; pa = p - a + cb = c - b; pb = p - b + ac = a - c; pc = p - c + nor = cross(ba,ac) + return sqrt( + (sign(dot(cross(ba,nor),pa)) + + sign(dot(cross(cb,nor),pb)) + + sign(dot(cross(ac,nor),pc)) < 2) + ? + min( + dot2(ba*clamp(dot(ba,pa)/dot2(ba),0,1)-pa), + dot2(cb*clamp(dot(cb,pb)/dot2(cb),0,1)-pb), + dot2(ac*clamp(dot(ac,pc)/dot2(ac),0,1)-pc) ) + : + dot(nor,pa)*dot(nor,pa)/dot2(nor) ) +end + +@inline function closest_vertex_index(P,rc) + lims = map(x->x[1:end-1],axes.(rc,1)) + Δ = step.(rc) + O = first.(rc) + I = @. clamp(Int(fld(P-O,Δ))+1,lims) + return CartesianIndex(I...) +end + +@inline inc(I,dim) = Base.setindex(I,I[dim]+1,dim) +@inline inc(I) = I + oneunit(I) + +@inline function triangle_pair(Iv,dem,rc) + @inline function sample_dem(I) + @inbounds x,y = rc[1][I[1]],rc[2][I[2]] + @inbounds Point3(x,y,dem[I]) + end + T_BL = Triangle(sample_dem(Iv) ,sample_dem(inc(Iv,1)),sample_dem(inc(Iv,2))) + T_TR = Triangle(sample_dem(inc(Iv,2)),sample_dem(inc(Iv,1)),sample_dem(inc(Iv))) + return T_BL,T_TR +end + +@inline function distance_to_triangle_pair(P,Iv,dem,rc) + T_BL,T_TR = triangle_pair(Iv,dem,rc) + ud = min(ud_triangle(P,T_BL...),ud_triangle(P,T_TR...)) + return ud,sign_triangle(P,T_BL...) +end + +function sd_dem(P,cutoff,dem,rc) + @inbounds Pp = clamp.(Point(P[1],P[2]),first.(rc),last.(rc)) + @inbounds P = Point(Pp[1],Pp[2],P[3]) + BL = closest_vertex_index(Pp.-cutoff,rc) + TR = closest_vertex_index(Pp.+cutoff,rc) + Ic = closest_vertex_index(Pp,rc) + ud,sgn = distance_to_triangle_pair(P,Ic,dem,rc) + for Iv in BL:TR + if Iv == Ic continue end + ud_pair,_ = distance_to_triangle_pair(P,Iv,dem,rc) + ud = min(ud,ud_pair) + end + return ud,sgn +end \ No newline at end of file diff --git a/scripts2D_variational_TM/stokes.jl b/scripts2D_variational_TM/stokes.jl new file mode 100644 index 00000000..fbf1d9b0 --- /dev/null +++ b/scripts2D_variational_TM/stokes.jl @@ -0,0 +1,33 @@ +include("stokes_kernels.jl") + +const _update_ηs! = _kernel_update_ηs!(get_device()) +const _update_σ! = _kernel_update_σ!(get_device()) +const _update_V! = _kernel_update_V!(get_device()) +const _compute_residual! = _kernel_compute_residual!(get_device()) + +function update_ηs!(ηs,ε̇,T,wt,K,n,Q_R,T_mlt,ηreg,χ) + wait(_update_ηs!(ηs,ε̇,T,wt,K,n,Q_R,T_mlt,ηreg,χ;ndrange=axes(ηs))) + return +end + +function update_σ!(Pr, τ, ε̇, V, ηs, wt, r, θ_dτ, dτ_r, dx, dy) + wait(_update_σ!(Pr, τ, ε̇, V, ηs, wt, r, θ_dτ, dτ_r, dx, dy; ndrange=axes(Pr))) + return +end + +function update_V!(V, Pr, τ, ηs, wt, nudτ, ρg, dx, dy) + V_inn = (x=inn(V.x), y=inn(V.y)) + wait(_update_V!(V_inn, Pr, τ, ηs, wt, nudτ, ρg, dx, dy; ndrange=axes(Pr))) + bc_x_neumann!(0.0, V.y) + bc_y_neumann!(0.0, V.x) + TinyKernels.device_synchronize(FastIce.get_device()) + @. V.x[end,:] = V.x[end-1,:]*wt.not_solid.x[end-1,:] + @. V.x[1 ,:] = V.x[2 ,:]*wt.not_solid.x[2 ,:] + TinyKernels.device_synchronize(FastIce.get_device()) + return +end + +function compute_residual!(Res, Pr, V, τ, wt, ρg, dx, dy) + wait(_compute_residual!(Res, Pr, V, τ, wt, ρg, dx, dy; ndrange=axes(Pr))) + return +end \ No newline at end of file diff --git a/scripts2D_variational_TM/stokes_kernels.jl b/scripts2D_variational_TM/stokes_kernels.jl new file mode 100644 index 00000000..d1707121 --- /dev/null +++ b/scripts2D_variational_TM/stokes_kernels.jl @@ -0,0 +1,136 @@ +@tiny function _kernel_update_σ!(Pr, τ, ε̇, V, ηs, wt, r, θ_dτ, dτ_r, dx, dy) + ns,na = wt.not_solid, wt.not_air + ix, iy = @indices + @inline isin(A) = checkbounds(Bool, A, ix, iy) + # detect and eliminate null spaces + isnull = (na.x[ix, iy] ≈ 0.0) || (na.x[ix+1, iy] ≈ 0.0) || + (na.y[ix, iy] ≈ 0.0) || (na.y[ix, iy+1] ≈ 0.0) + if !isnull && (na.c[ix, iy] > 0.0) + ε̇.xx[ix, iy] = (V.x[ix+1, iy] * ns.x[ix+1, iy] - V.x[ix, iy] * ns.x[ix, iy]) / dx + ε̇.yy[ix, iy] = (V.y[ix, iy+1] * ns.y[ix, iy+1] - V.y[ix, iy] * ns.y[ix, iy]) / dy + ∇V = ε̇.xx[ix, iy] + ε̇.yy[ix, iy] + Pr[ix, iy] -= ∇V * ηs[ix, iy] * r / θ_dτ + τ.xx[ix, iy] += (-τ.xx[ix, iy] + 2.0 * ηs[ix, iy] * (ε̇.xx[ix,iy] - ∇V / 3.0)) * dτ_r + τ.yy[ix, iy] += (-τ.yy[ix, iy] + 2.0 * ηs[ix, iy] * (ε̇.yy[ix,iy] - ∇V / 3.0)) * dτ_r + else + Pr[ix, iy] = 0.0 + τ.xx[ix, iy] = 0.0 + τ.yy[ix, iy] = 0.0 + end + @inbounds if isin(τ.xy) + # detect and eliminate null spaces + isnull = (na.x[ix+1, iy+1] ≈ 0.0) || (na.x[ix+1, iy] ≈ 0.0) || + (na.y[ix+1, iy+1] ≈ 0.0) || (na.y[ix, iy+1] ≈ 0.0) + if !isnull && (na.xy[ix, iy] > 0.0) + ε̇.xy[ix, iy] = + 0.5 * ( + (V.x[ix+1,iy+1]*ns.x[ix+1,iy+1] - V.x[ix+1, iy]*ns.x[ix+1, iy]) / dy + + (V.y[ix+1,iy+1]*ns.y[ix+1,iy+1] - V.y[ix, iy+1]*ns.y[ix, iy+1]) / dx + ) + ηs_av = 0.25 * (ηs[ix, iy] + ηs[ix+1, iy] + ηs[ix, iy+1] + ηs[ix+1, iy+1]) + τ.xy[ix, iy] += (-τ.xy[ix, iy] + 2.0 * ηs_av * ε̇.xy[ix, iy]) * dτ_r + else + τ.xy[ix, iy] = 0.0 + end + end + return +end + +@tiny function _kernel_update_V!(V, Pr, τ, ηs, wt, nudτ, ρg, dx, dy) + ns,na = wt.not_solid, wt.not_air + ix, iy = @indices + @inline isin(A) = checkbounds(Bool, A, ix, iy) + # TODO: check which volume fraction (non-air or non-solid) really determines the null spaces + @inbounds if isin(V.x) + # detect and eliminate null spaces + isnull = (ns.c[ix+1, iy+1] ≈ 0) || (ns.c[ix, iy+1] ≈ 0) || + (ns.xy[ix, iy+1] ≈ 0) || (ns.xy[ix, iy] ≈ 0) + if !isnull && (ns.x[ix+1, iy+1] > 0) && (na.x[ix+1, iy+1] > 0) + ηs_x = max(ηs[ix, iy+1], ηs[ix+1, iy+1]) + ∂σxx_∂x = ((-Pr[ix+1, iy+1] + τ.xx[ix+1, iy+1]) * na.c[ix+1, iy+1] - + (-Pr[ix , iy+1] + τ.xx[ix , iy+1]) * na.c[ix , iy+1]) / dx + ∂τxy_∂y = (τ.xy[ix, iy+1] * na.xy[ix, iy+1] - τ.xy[ix, iy] * na.xy[ix, iy]) / dy + V.x[ix, iy] += (∂σxx_∂x + ∂τxy_∂y - ρg.x) * nudτ / ηs_x + else + V.x[ix, iy] = 0.0 + end + end + @inbounds if isin(V.y) + # detect and eliminate null spaces + isnull = (ns.c[ix+1, iy+1] ≈ 0) || (ns.c[ix+1, iy] ≈ 0) || + (ns.xy[ix+1, iy] ≈ 0) || (ns.xy[ix, iy] ≈ 0) + if !isnull && (ns.y[ix+1, iy+1] > 0) && (na.y[ix+1, iy+1] > 0) + # TODO: check which cells contribute to the momentum balance to verify ηs_y is computed correctly + ηs_y = max(ηs[ix+1, iy], ηs[ix+1, iy+1]) + ∂σyy_∂y = ((-Pr[ix+1, iy+1] + τ.yy[ix+1, iy+1]) * na.c[ix+1, iy+1] - + (-Pr[ix+1, iy ] + τ.yy[ix+1, iy ]) * na.c[ix+1, iy ]) / dy + ∂τxy_∂x = (τ.xy[ix+1, iy] * na.xy[ix+1, iy] - τ.xy[ix, iy] * na.xy[ix, iy]) / dx + V.y[ix, iy] += (∂σyy_∂y + ∂τxy_∂x - ρg.y) * nudτ / ηs_y + else + V.y[ix, iy] = 0.0 + end + end +end + +@tiny function _kernel_update_ηs!(ηs,ε̇,T,wt,K,n,Q_R,T_mlt,ηreg,χ) + ix, iy = @indices + @inline isin(A) = checkbounds(Bool, A, ix, iy) + @inbounds if isin(ηs) + ε̇xyc = 0.0 + for idy = -1:0, idx = -1:0 + ix2,iy2 = clamp(ix+idx,1,size(ε̇.xy,1)),clamp(iy+idy,1,size(ε̇.xy,2)) + ε̇xyc += ε̇.xy[ix2,iy2] + end + ε̇xyc *= 0.25 + ε̇II = sqrt(0.5*(ε̇.xx[ix,iy]^2 + ε̇.yy[ix,iy]^2) + ε̇xyc^2) + ηs_t = 0.5*K*exp(-1/n*Q_R*(1/T_mlt - 1/T[ix,iy]))*ε̇II^(1/n-1) + ηs_t = wt.not_air.c[ix,iy]/(1/ηs_t + 1/ηreg) + ηs[ix,iy] = exp(log(ηs[ix,iy])*(1-χ) + log(ηs_t)*χ) + end +end + +@tiny function _kernel_compute_residual!(Res, Pr, V, τ, wt, ρg, dx, dy) + ns,na = wt.not_solid, wt.not_air + ix, iy = @indices + @inline isin(A) = checkbounds(Bool, A, ix, iy) + @inbounds if isin(Pr) + # detect and eliminate null spaces + isnull = (na.x[ix, iy] ≈ 0.0) || (na.x[ix+1, iy] ≈ 0.0) || + (na.y[ix, iy] ≈ 0.0) || (na.y[ix, iy+1] ≈ 0.0) + if !isnull && (na.c[ix, iy] > 0.0) + exx = (V.x[ix+1, iy] * ns.x[ix+1, iy] - V.x[ix, iy] * ns.x[ix, iy]) / dx + eyy = (V.y[ix, iy+1] * ns.y[ix, iy+1] - V.y[ix, iy] * ns.y[ix, iy]) / dy + ∇V = exx + eyy + Res.Pr[ix, iy] = ∇V + else + Res.Pr[ix, iy] = 0.0 + end + end + @inbounds if isin(Res.V.x) + # detect and eliminate null spaces + isnull = (ns.c[ix+1, iy+1] ≈ 0) || (ns.c[ix, iy+1] ≈ 0) || + (ns.xy[ix, iy+1] ≈ 0) || (ns.xy[ix, iy] ≈ 0) + if !isnull && (na.x[ix+1, iy+1] > 0) && (ns.x[ix+1, iy+1] > 0) + ∂σxx_∂x = ((-Pr[ix+1, iy+1] + τ.xx[ix+1, iy+1]) * na.c[ix+1, iy+1] - + (-Pr[ix , iy+1] + τ.xx[ix , iy+1]) * na.c[ix , iy+1]) / dx + ∂τxy_∂y = (τ.xy[ix, iy+1] * na.xy[ix, iy+1] - τ.xy[ix, iy] * na.xy[ix, iy]) / dy + Res.V.x[ix, iy] = ∂σxx_∂x + ∂τxy_∂y - ρg.x + else + Res.V.x[ix, iy] = 0.0 + end + end + @inbounds if isin(Res.V.y) + # detect and eliminate null spaces + isnull = (ns.c[ix+1, iy+1] ≈ 0) || (ns.c[ix+1, iy] ≈ 0) || + (ns.xy[ix+1, iy] ≈ 0) || (ns.xy[ix, iy] ≈ 0) + if !isnull && (na.y[ix+1, iy+1] > 0) && (ns.y[ix+1, iy+1] > 0) + ∂σyy_∂y = ((-Pr[ix+1, iy+1] + τ.yy[ix+1, iy+1]) * na.c[ix+1, iy+1] - + (-Pr[ix+1, iy ] + τ.yy[ix+1, iy ]) * na.c[ix+1, iy ]) / dy + ∂τxy_∂x = (τ.xy[ix+1, iy] * na.xy[ix+1, iy] - τ.xy[ix, iy] * na.xy[ix, iy]) / dx + Res.V.y[ix, iy] = ∂σyy_∂y + ∂τxy_∂x - ρg.y + else + Res.V.y[ix, iy] = 0.0 + end + end + return +end \ No newline at end of file diff --git a/scripts2D_variational_TM/test_volume_fractions2D.jl b/scripts2D_variational_TM/test_volume_fractions2D.jl new file mode 100644 index 00000000..7dccf5f4 --- /dev/null +++ b/scripts2D_variational_TM/test_volume_fractions2D.jl @@ -0,0 +1,409 @@ +using FastIce +using TinyKernels +using HDF5 +using LightXML +using UnicodePlots +using LinearAlgebra +using GeometryBasics +using CairoMakie +using ElasticArrays +using Printf +using JLD2 + +using CUDA +CUDA.device!(1) + +include("geometry.jl") +include("signed_distances.jl") +include("level_sets.jl") +include("volume_fractions.jl") +include("bcs.jl") +include("stokes.jl") +include("thermo.jl") +include("data_io.jl") + +@views inn_x(A) = A[2:end-1,:] +@views inn_y(A) = A[:,2:end-1] +@views inn(A) = A[2:end-1,2:end-1] +@views av1(A) = 0.5.*(A[1:end-1].+A[2:end]) +@views av4(A) = 0.25.*(A[1:end-1,1:end-1].+A[1:end-1,2:end].+A[2:end,1:end-1].+A[2:end,2:end]) + +# generate synthetic sinusoidal geometry with constant slope +# `ox` - domain origin in x +# `oz` - domain origin in z +# `lx` - domain extent +# `Δz` - offset of the bed from origin +# `amp` - amplitude of the bumps +# `ω` - frequency of the bumps +# `α` - slope +# `nx` - number of grid points +function generate_sinusoidal(ox,oz,lx,Δz,amp,ω,α,nx) + xv = LinRange(0,lx,nx) + zv = amp.*cos.((2π.*ω/lx).*xv) .+ tan(α).*xv + zv .= zv .- minimum(zv) .+ Δz + return Point2.(xv.+ox,zv.+oz) +end + +# generate synthetic circle shape +# `ox` - domain origin in x +# `oz` - domain origin in z +# `r` - circle radius +# `nθ` - number of grid points +function generate_circle(ox,oz,r,θs,θe,nθ) + θ = LinRange(θs,θe*(1-1/nθ),nθ) + zv,xv = r.*sin.(θ), r.*cos.(θ) + return Point2.(xv.+ox,zv.+oz) +end + +@views function run_simulation(nz) + ## physics ========================================================================================================= + # non-dimensional numbers + α = deg2rad(-20) # slope + nglen = 3 # Glen's law power exponent + ρr = 0.92 # density ratio of ice to water + cpr = 0.5 # heat capacity ratio of ice to water + U_P = 60.0 # ratio of sensible heat to gravitational potential energy + L_P = 37.0 # ratio of latent heat to gravitational potential energy + Pr = 2e-9 # Prandtl number - ratio of thermal diffusivity to momentum diffusivity + A_L = 5e-2 # ratio of bump amplitude to length scale + lx_lz = 3e0 # ratio of horizontal to vertical domain extents + nbump = 13 # number of bumps + Q_RT = 2*26.0 # ratio of activation temperature to melting temperature + # dimensionally independent parameters + lz = 1.0 # domain size in z-direction [m ] + K = 1.0 # consistency [Pa*s^(1/n)] + ρg = 1.0 # ice gravity pressure gradient [Pa/m ] + T_mlt = 1.0 # ice melting temperature [K ] + # scales + l̄ = lz # length scale [m ] + σ̄ = ρg*cos(α)*l̄ # stress scale [Pa ] + t̄ = (K/σ̄)^nglen # time scale [s ] + T̄ = T_mlt # temperature scale [K ] + # dimensionally dependent + lx = lx_lz*lz # domain length [m ] + λ_i = Pr*σ̄*l̄^2/(T̄*t̄) # thermal conductivity [W/m/K ] + ρcp = U_P*σ̄/T̄ # ice heat capacity [Pa/K ] + ρL = L_P*σ̄ # latent heat of melting [Pa ] + Q_R = Q_RT*T_mlt # activational temperature [K ] + T_atm = 0.9*T_mlt # atmospheric temperature [K ] + T_ini = 0.9*T_mlt # initial surface temperature [K ] + amp = A_L*l̄ # bump amplitude [m ] + ox,oz = -0.5lx,0.0lz # domain origin [m ] + rgl = 1.2lz # glacier radius [m ] + ogx,ogz = 0.0lx,-0.3rgl # glacier origin [m ] + ηreg = 0.5*K*(1e-6/t̄)^(1/nglen-1) + # not important (cancels in the equations) + ρ_w = 1.0 # density of water [kg/m^3 ] + ρ_i = ρr*ρ_w # density of ice [kg/m^3 ] + cp_i = ρcp/ρ_i # heat capacity of ice [J/kg/K ] + cp_w = cp_i/cpr # heat capacity of ice [J/kg/K ] + L = ρL/ρ_w # latent heat of melting [J/kg ] + # phase data + ρ = (ice = ρ_i , wat = ρ_w ) + cp = (ice = cp_i, wat = cp_w) + λ = (ice = λ_i , wat = λ_i ) + # body force + f = (x = ρg*sin(α), y = ρg*cos(α)) + # thermodynamics + @inline u_ice(T) = cp.ice*(T-T_mlt) + @inline u_wat(T) = L + cp.wat*(T-T_mlt) + @inline T_lt(u_t) = (u_t < u_ice(T_mlt)) ? T_mlt + u_t/cp.ice : + (u_t > u_wat(T_mlt)) ? T_mlt + (u_t - L)/cp.wat : T_mlt + @inline ω_lt(u_t) = (u_t < u_ice(T_mlt)) ? 0.0 : + (u_t > u_wat(T_mlt)) ? 1.0 : ρ.ice*(u_ice(T_mlt) - u_t)/(ρ.ice*(u_ice(T_mlt)-u_t) - ρ.wat*(u_wat(T_mlt)-u_t)) + ## numerics ======================================================================================================== + nx = ceil(Int,nz*lx/lz) + ϵtol = (1e-4,1e-4,1e-4) + maxiter = 50max(nx,nz) + ncheck = ceil(Int,0.5max(nx,nz)) + nviz = 5 + nsave = 5 + nt = 500 + # nviz = 1 + # nsave = 1 + # nt = 1 + χ = 5e-3 + ## preprocessing =================================================================================================== + # grid spacing + dx,dz = lx/nx,lz/nz + @info "grid resolution: $nx × $nz" + @info "grid spacing : dx = $dx, dz = $dz" + @info "generating DEM data" + dem = ( + bed = generate_sinusoidal(ox ,oz,lx ,0.05lz,amp,nbump ,0,nx), + ice = generate_sinusoidal(ox-0.25lx,oz,lx+0.25lx,0.70lz,0 ,1 ,deg2rad(-3),nx), + # ice = generate_circle(ogx,ogz,rgl,0,π,ceil(Int,π*rgl/dx)) + ) + TinyKernels.device_synchronize(FastIce.get_device()) + @info "computing marker chains" + mc = ( + bed = to_device(push!(pushfirst!(copy(dem.bed),Point2(ox,0.0)),Point2(ox+lx,0.0))), + ice = to_device(push!(pushfirst!(copy(dem.ice),Point2(ox-0.25lx,0.0)),Point2(ox+lx+0.25lx,0.0))), + # ice = to_device(dem.ice) + ) + # grid locations + xv = LinRange(ox,ox+lx,nx+1) + zv = LinRange(oz,oz+lz,nz+1) + xc,zc = av1.((xv,zv)) + # PT params + r = 0.7 + lτ_re_mech = 1.5min(lx,lz)/π + vdτ_mech = min(dx,dz)/sqrt(5.1) + θ_dτ = lτ_re_mech*(r+4/3)/vdτ_mech + nudτ = vdτ_mech*lτ_re_mech + dτ_r = 1.0/(θ_dτ+1.0) + ## fields allocation =============================================================================================== + # level set + Ψ = ( + not_solid = scalar_field(Float64,nx+1,nz+1), + not_air = scalar_field(Float64,nx+1,nz+1), + ) + wt = ( + not_solid = volfrac_field(Float64,nx,nz), + not_air = volfrac_field(Float64,nx,nz), + ) + # mechanics + Pr = scalar_field(Float64,nx,nz) + τ = tensor_field(Float64,nx,nz) + ε̇ = tensor_field(Float64,nx,nz) + V = vector_field(Float64,nx,nz) + ηs = scalar_field(Float64,nx,nz) + # thermal + ρU = scalar_field(Float64,nx,nz) + T = scalar_field(Float64,nx,nz) + qT = vector_field(Float64,nx,nz) + # hydro + ω = scalar_field(Float64,nx,nz) + # residuals + Res = ( + Pr = scalar_field(Float64,nx ,nz ), + V = vector_field(Float64,nx-2,nz-2) + ) + # visualisation + Vmag = scalar_field(Float64,nx-2,nz-2) + ε̇II = scalar_field(Float64,nx-2,nz-2) + Ψav = ( + not_solid = scalar_field(Float64,nx-2,nz-2), + not_air = scalar_field(Float64,nx-2,nz-2), + ) + ## initialisation ================================================================================================== + # level set + TinyKernels.device_synchronize(FastIce.get_device()) + for comp in eachindex(Ψ) fill!(Ψ[comp],Inf) end + @info "computing the level set for the ice surface" + compute_levelset!(Ψ.not_air,xv,zv,mc.ice) + @info "computing the level set for the bedrock surface" + compute_levelset!(Ψ.not_solid,xv,zv,mc.bed) + TinyKernels.device_synchronize(FastIce.get_device()) + @. Ψ.not_solid *= -1.0 + TinyKernels.device_synchronize(FastIce.get_device()) + @info "computing volume fractions from level sets" + for phase in eachindex(Ψ) + compute_volume_fractions_from_level_set!(wt[phase],Ψ[phase],dx,dz) + end + TinyKernels.device_synchronize(FastIce.get_device()) + # mechanics + for comp in eachindex(V) fill!(V[comp],0.0) end + for comp in eachindex(τ) fill!(τ[comp],0.0) end + for comp in eachindex(τ) fill!(ε̇[comp],0.0) end + fill!(Pr,0.0) + fill!(ηs,0.5*K*(1e-1/t̄)^(1/nglen-1)*exp(-1/nglen*Q_R*(1/T_mlt-1/T_ini))) + # fill!(ηs,1.0) + TinyKernels.device_synchronize(FastIce.get_device()) + # thermo + for comp in eachindex(qT) fill!(qT[comp],0.0) end + @. T = lerp(T_atm,T_ini,wt.not_air.c) + @. ρU = ρ.ice*u_ice(T) + @. ω = ω_lt(ρU/ρ.ice) + TinyKernels.device_synchronize(FastIce.get_device()) + # convergence tracking + iter_evo = Float64[] + errs_evo = ElasticArray{Float64}(undef, length(ϵtol), 0) + # figures + fig = Figure(resolution=(3000,1200),fontsize=32) + axs = ( + hmaps = ( + Pr = Axis(fig[1,1][1,1];aspect=DataAspect(),title="p" ), + ε̇II = Axis(fig[1,2][1,1];aspect=DataAspect(),title="ε̇II"), + Vmag = Axis(fig[1,3][1,1];aspect=DataAspect(),title="|V|"), + T = Axis(fig[2,1][1,1];aspect=DataAspect(),title="T" ), + ω = Axis(fig[2,2][1,1];aspect=DataAspect(),title="ω" ), + ηs = Axis(fig[3,1][1,1];aspect=DataAspect(),title="ηs" ), + ), + errs = Axis(fig[2,3];yscale=log10, title="Convergence", xlabel="#iter/ny", ylabel="ϵ"), + ) + for axname in eachindex(axs.hmaps) + xlims!(axs.hmaps[axname],ox,ox+lx) + ylims!(axs.hmaps[axname],oz,oz+lz) + end + plt = ( + hmaps = ( + Pr = heatmap!(axs.hmaps.Pr ,xv,zv,to_host(Pr );colormap=:turbo), + ε̇II = heatmap!(axs.hmaps.ε̇II ,xv,zv,to_host(ε̇II );colormap=:turbo), + Vmag = heatmap!(axs.hmaps.Vmag,xv,zv,to_host(Vmag );colormap=:turbo), + T = heatmap!(axs.hmaps.T ,xc,zc,to_host(T );colormap=:turbo), + ω = heatmap!(axs.hmaps.ω ,xc,zc,to_host(ω );colormap=:turbo), + ηs = heatmap!(axs.hmaps.ηs ,xc,zc,to_host(log10.(ηs));colormap=:turbo,colorrange=(1,4)), + ), + errs=[scatterlines!(axs.errs, Point2.(iter_evo, errs_evo[ir, :])) for ir in eachindex(ϵtol)], + ) + plt_bed = [ + ( + bed = poly!(axs.hmaps[f],to_host(mc.bed);strokewidth=2,color=:black), + ice = lines!(axs.hmaps[f],to_host(mc.ice);strokewidth=2,color=:black), + ) for f in eachindex(axs.hmaps) + ] + Colorbar(fig[1,1][1,2],plt.hmaps.Pr) + Colorbar(fig[1,2][1,2],plt.hmaps.ε̇II) + Colorbar(fig[1,3][1,2],plt.hmaps.Vmag) + Colorbar(fig[2,1][1,2],plt.hmaps.T) + Colorbar(fig[2,2][1,2],plt.hmaps.ω) + Colorbar(fig[3,1][1,2],plt.hmaps.ηs) + TinyKernels.device_synchronize(FastIce.get_device()) + update_vis_fields!(Vmag,ε̇II,Ψav,V,ε̇,Ψ) + plt.hmaps.Pr[3][] = to_host(Pr) + plt.hmaps.ε̇II[3][] = to_host(ε̇II) + plt.hmaps.Vmag[3][] = to_host(Vmag) + plt.hmaps.T[3][] = to_host(T) + plt.hmaps.ω[3][] = to_host(ω) + plt.hmaps.ηs[3][] = to_host(ηs) + TinyKernels.device_synchronize(FastIce.get_device()) + display(fig) + ## simulation run ================================================================================================== + @info "time loop" + # save static data + outdir = joinpath("out_visu","egu2023",@sprintf("nbump_%d_slope_%.1f",nbump,rad2deg(α))) + mkpath(outdir) + jldsave(joinpath(outdir,"static.h5");xc,xv,zc,zv,Ψ,wt,dem,mc) + tcur = 0.0; isave = 1 + for it in 1:nt + @info @sprintf("time step #%d, time = %g",it,tcur) + empty!(iter_evo); resize!(errs_evo,(length(ϵtol),0)) + TinyKernels.device_synchronize(FastIce.get_device()) + # mechanics + for iter in 1:maxiter + update_σ!(Pr,τ,ε̇,V,ηs,wt,r,θ_dτ,dτ_r,dx,dz) + TinyKernels.device_synchronize(FastIce.get_device()) + update_V!(V,Pr,τ,ηs,wt,nudτ,f,dx,dz) + TinyKernels.device_synchronize(FastIce.get_device()) + update_ηs!(ηs,ε̇,T,wt,K,nglen,Q_R,T_mlt,ηreg,χ) + TinyKernels.device_synchronize(FastIce.get_device()) + if iter % ncheck == 0 + compute_residual!(Res,Pr,V,τ,wt,f,dx,dz) + TinyKernels.device_synchronize(FastIce.get_device()) + errs = (maximum(abs.(Res.V.x))*l̄/σ̄, + maximum(abs.(Res.V.y))*l̄/σ̄, + maximum(abs.(inn(Res.Pr)))*t̄) + TinyKernels.device_synchronize(FastIce.get_device()) + @printf(" iter/nz # %2.1f, errs: [ Vx = %1.3e, Vy = %1.3e, Pr = %1.3e ]\n", iter/nz, errs...) + push!(iter_evo, iter/nz); append!(errs_evo, errs) + + # debug viz + # for ir in eachindex(plt.errs) + # plt.errs[ir][1] = Point2.(iter_evo, errs_evo[ir, :]) + # end + # autolimits!(axs.errs) + # update_vis_fields!(Vmag,ε̇II,Ψav,V,ε̇,Ψ) + # TinyKernels.device_synchronize(FastIce.get_device()) + # plt.hmaps.Pr[3][] = to_host(Pr) + # plt.hmaps.ε̇II[3][] = to_host(ε̇II) + # plt.hmaps.Vmag[3][] = to_host(Vmag) + # plt.hmaps.T[3][] = to_host(T) + # plt.hmaps.ω[3][] = to_host(ω) + # plt.hmaps.ηs[3][] = to_host(log10.(ηs)) + # yield() + + # check convergence + if any(.!isfinite.(errs)) error("simulation failed") end + if all(errs .< ϵtol) break end + end + end + TinyKernels.device_synchronize(FastIce.get_device()) + dt = min(dx,dz)^2/max(λ.ice*ρ.ice*cp.ice,λ.wat*ρ.wat*cp.wat)/4.1 + # thermal + update_qT!(qT,T,wt,λ,T_atm,dx,dz) + TinyKernels.device_synchronize(FastIce.get_device()) + update_ρU!(ρU,qT,τ,ε̇,wt,ρ.ice*u_ice(T_atm),dt,dx,dz) + TinyKernels.device_synchronize(FastIce.get_device()) + @. T = T_lt(ρU/(ρ.ice*(1-ω) + ρ.wat*ω)) + @. ω = ω_lt(ρU/(ρ.ice*(1-ω) + ρ.wat*ω)) + TinyKernels.device_synchronize(FastIce.get_device()) + tcur += dt + # update figures + if it % nviz == 0 + for ir in eachindex(plt.errs) + plt.errs[ir][1] = Point2.(iter_evo, errs_evo[ir, :]) + end + autolimits!(axs.errs) + update_vis_fields!(Vmag,ε̇II,Ψav,V,ε̇,Ψ) + TinyKernels.device_synchronize(FastIce.get_device()) + plt.hmaps.Pr[3][] = to_host(Pr) + plt.hmaps.ε̇II[3][] = to_host(ε̇II) + plt.hmaps.Vmag[3][] = to_host(Vmag) + plt.hmaps.T[3][] = to_host(T) + plt.hmaps.ω[3][] = to_host(ω) + plt.hmaps.ηs[3][] = to_host(log10.(ηs)) + display(fig) + yield() + end + # save timestep + if it % nsave == 0 + @info "saving timestep" + update_vis_fields!(Vmag,ε̇II,Ψav,V,ε̇,Ψ) + TinyKernels.device_synchronize(FastIce.get_device()) + jldsave(joinpath(outdir,@sprintf("%04d.jld2",isave));Pr,τ,ε̇,ε̇II,V,T,ω,ηs) + isave += 1 + end + end + + TinyKernels.device_synchronize(FastIce.get_device()) + @info "saving results on disk" + out_h5 = "results.h5" + ndrange = CartesianIndices((nx-2,nz-2)) + fields = Dict("LS_ice"=>Ψav.not_air,"LS_bed"=>Ψav.not_solid,"Vmag"=>Vmag,"TII"=>ε̇II,"Pr"=>inn(Pr)) + @info "saving HDF5 file" + write_h5(out_h5,fields,(nx,nz),ndrange) + + @info "saving XDMF file..." + write_xdmf("results.xdmf3",out_h5,fields,(xc[2],zc[2]),(dx,dz),(nx-2,nz,2)) + + return +end + +@tiny function _kernel_update_vis_fields!(Vmag, ε̇II, Ψav, V, ε̇, Ψ) + ix,iz = @indices + @inline isin(A) = checkbounds(Bool,A,ix,iz) + @inbounds if isin(Ψav.not_air) + pav = 0.0 + for idz = 0:1, idx = 0:1 + pav += Ψ.not_air[ix+idx,iz+idz] + end + Ψav.not_air[ix,iz] = pav/4 + end + @inbounds if isin(Ψav.not_solid) + pav = 0.0 + for idz = 0:1, idx = 0:1 + pav += Ψ.not_solid[ix+idx,iz+idz] + end + Ψav.not_solid[ix,iz] = pav/4 + end + @inbounds if isin(Vmag) + vxc = 0.5*(V.x[ix+1,iz+1] + V.x[ix+2,iz+1]) + vzc = 0.5*(V.y[ix+1,iz+1] + V.y[ix+1,iz+2]) + Vmag[ix,iz] = sqrt(vxc^2 + vzc^2) + end + @inbounds if isin(ε̇II) + ε̇xzc = 0.25*(ε̇.xy[ix,iz]+ε̇.xy[ix+1,iz]+ε̇.xy[ix,iz+1]+ε̇.xy[ix+1,iz+1]) + ε̇II[ix,iz] = sqrt(0.5*(ε̇.xx[ix+1,iz+1]^2 + ε̇.yy[ix+1,iz+1]^2) + ε̇xzc^2) + end + return +end + +const _update_vis_fields! = _kernel_update_vis_fields!(get_device()) + +function update_vis_fields!(Vmag, ε̇II, Ψav, V, ε̇, Ψ) + wait(_update_vis_fields!(Vmag, ε̇II, Ψav, V, ε̇, Ψ; ndrange=axes(Vmag))) + return +end + +run_simulation(100) \ No newline at end of file diff --git a/scripts2D_variational_TM/thermo.jl b/scripts2D_variational_TM/thermo.jl new file mode 100644 index 00000000..1b302859 --- /dev/null +++ b/scripts2D_variational_TM/thermo.jl @@ -0,0 +1,24 @@ +include("thermo_kernels.jl") + +const _update_qT! = _kernel_update_qT!(get_device()) +const _update_ρU! = _kernel_update_ρU!(get_device()) + +function update_qT!(qT,T,wt,λ,T_atm,dx,dy) + qT_inn = (x=inn_x(qT.x), y=inn_y(qT.y)) + vf_inn(vf) = ( + c = vf.c, + x = inn_x(vf.x), + y = inn_y(vf.y), + ) + wt_inn = ( + not_air = vf_inn(wt.not_air ), + not_solid = vf_inn(wt.not_solid), + ) + wait(_update_qT!(qT_inn,T,wt_inn,λ,T_atm,dx,dy; ndrange=axes(T))) + return +end + +function update_ρU!(ρU,qT,τ,ε̇,wt,ρU_atm,dt,dx,dy) + wait(_update_ρU!(ρU,qT,τ,ε̇,wt,ρU_atm,dt,dx,dy; ndrange=axes(ρU))) + return +end \ No newline at end of file diff --git a/scripts2D_variational_TM/thermo_kernels.jl b/scripts2D_variational_TM/thermo_kernels.jl new file mode 100644 index 00000000..dd1f41cb --- /dev/null +++ b/scripts2D_variational_TM/thermo_kernels.jl @@ -0,0 +1,56 @@ +@inline lerp(a,b,t) = a*(1-t) + b*t + +@tiny function _kernel_update_qT!(qT,T,wt,λ,T_atm,dx,dy) + ns,na = wt.not_solid, wt.not_air + ix, iy = @indices + @inline isin(A) = checkbounds(Bool, A, ix, iy) + @inbounds if isin(qT.x) + # detect and eliminate null spaces + isnull = (ns.c[ix+1,iy] ≈ 0) || (ns.c[ix,iy] ≈ 0) + if !isnull && (na.x[ix,iy] > 0) && (ns.x[ix,iy] > 0) + T_w = lerp(T_atm,T[ix+1,iy],na.c[ix+1,iy]) + T_e = lerp(T_atm,T[ix ,iy],na.c[ix ,iy]) + qT.x[ix,iy] = -λ.ice*(T_w - T_e)/dx + else + qT.x[ix,iy] = 0.0 + end + end + @inbounds if isin(qT.y) + # detect and eliminate null spaces + isnull = (ns.c[ix,iy+1] ≈ 0) || (ns.c[ix,iy] ≈ 0) + if !isnull && (na.y[ix,iy] > 0) && (ns.y[ix,iy] > 0) + T_n = lerp(T_atm,T[ix,iy+1],na.c[ix,iy+1]) + T_s = lerp(T_atm,T[ix,iy ],na.c[ix,iy ]) + qT.y[ix,iy] = -λ.ice*(T_n - T_s)/dy + else + qT.y[ix,iy] = 0.0 + end + end +end + +@tiny function _kernel_update_ρU!(ρU,qT,τ,ε̇,wt,ρU_atm,dt,dx,dy) + ns,na = wt.not_solid, wt.not_air + ix, iy = @indices + @inline isin(A) = checkbounds(Bool, A, ix, iy) + @inbounds if isin(ρU) + isnull = (na.x[ix,iy] ≈ 0.0) || (na.x[ix+1,iy] ≈ 0.0) || + (na.y[ix,iy] ≈ 0.0) || (na.y[ix,iy+1] ≈ 0.0) + if !isnull && (na.c[ix, iy] > 0.0 && ns.c[ix, iy] > 0.0) + ∇qx = (qT.x[ix+1,iy]*ns.x[ix+1,iy] - qT.x[ix, iy]*ns.x[ix,iy])/dx + ∇qy = (qT.y[ix,iy+1]*ns.y[ix,iy+1] - qT.y[ix, iy]*ns.y[ix,iy])/dy + ∇qT = ∇qx + ∇qy + # average shear heating contribution on cell vertices + τxyc,ε̇xyc = 0.0,0.0 + for idy = -1:0, idx = -1:0 + ix2,iy2 = clamp(ix+idx,1,size(τ.xy,1)),clamp(iy+idy,1,size(τ.xy,2)) + τxyc += τ.xy[ix2,iy2] + ε̇xyc += ε̇.xy[ix2,iy2] + end + τxyc *= 0.25; ε̇xyc *= 0.25 + SH = τ.xx[ix,iy]*ε̇.xx[ix,iy] + τ.yy[ix,iy]*ε̇.yy[ix,iy] + 2.0*τxyc*ε̇xyc + ρU[ix,iy] += dt*(-∇qT + SH) + else + ρU[ix,iy] = ρU_atm + end + end +end \ No newline at end of file diff --git a/scripts2D_variational_TM/visme.jl b/scripts2D_variational_TM/visme.jl new file mode 100644 index 00000000..76ef5f57 --- /dev/null +++ b/scripts2D_variational_TM/visme.jl @@ -0,0 +1,104 @@ +using CairoMakie +using JLD2 +using Printf + +nbump = 10 +slope = -15.0 + +# ist = 1 + +simdir = "out_visu/egu2023/nbump_$(nbump)_slope_$(slope)" +xc,xv,zc,zv,Ψ,wt,dem,mc = load("$simdir/static.jld2","xc","xv","zc","zv","Ψ","wt","dem","mc") +Pr,τ,ε̇,ε̇II,V,T,ω,ηs = load(@sprintf("%s/%04d.jld2",simdir,1),"Pr","τ","ε̇","ε̇II","V","T","ω","ηs") + + +fig = Figure(resolution=(800,500),fontsize=36) +# fig = Figure(resolution=(800,950),fontsize=36) +axs = ( + hmaps = ( + ε̇II = Axis(fig[1,1][1,1];aspect=DataAspect(),title=L"\log_{10}(\dot{\varepsilon}_{II})",xlabel=L"x",ylabel=L"z"), + # T = Axis(fig[2,1][1,1];aspect=DataAspect(),title=L"T",xlabel=L"x",ylabel=L"z"), + # ω = Axis(fig[3,1][1,1];aspect=DataAspect(),title=L"\omega",xlabel=L"x",ylabel=L"z"), + ), +) + +plts = ( + hmaps = ( + ε̇II = heatmap!(axs.hmaps.ε̇II,xc,zc,log10.(ε̇II);colormap=:turbo,colorrange=(-6,-2)), + # T = heatmap!(axs.hmaps.T ,xc,zc,T ;colormap=:magma,colorrange=(0.9,1)), + # ω = heatmap!(axs.hmaps.ω ,xc,zc,ω ;colormap=Reverse(:grays),colorrange=(0,0.06)), + ), +) + +for axname in eachindex(axs.hmaps) + xlims!(axs.hmaps[axname],-0.5,0.5) + ylims!(axs.hmaps[axname],zc[1],0.6) +end + +mc_air = mc.ice[2:end-1] +push!(mc_air,Point(mc.ice[end][1],zv[end]+0.2)) +push!(mc_air,Point(mc.ice[1 ][1],zv[end]+0.2)) + +plt_bed = [ + ( + bed = poly!(axs.hmaps[f],mc.bed;strokewidth=2,color=:gray), + ice = poly!(axs.hmaps[f],mc_air;strokewidth=4,color=:white), + ) for f in eachindex(axs.hmaps) +] + +Colorbar(fig[1,1][1,2],plts.hmaps.ε̇II) +# Colorbar(fig[2,1][1,2],plts.hmaps.T ) +# Colorbar(fig[3,1][1,2],plts.hmaps.ω ) + +display(fig) + +record(fig,"video_$(nbump)_$(slope).mp4",1:50;framerate=5) do it + if it == 1 return end + local Pr,τ,ε̇,ε̇II,V,T,ω,ηs = load(@sprintf("%s/%04d.jld2",simdir,it),"Pr","τ","ε̇","ε̇II","V","T","ω","ηs") + plts.hmaps.ε̇II[3] = log10.(ε̇II) + # plts.hmaps.T[3] = T + # plts.hmaps.ω[3] = ω +end + +display(fig) + + +# fig = Figure(resolution=(1000,800),fontsize=32) +# axs = ( +# Vx = Axis(fig[1,1];ylabel=L"z",xlabel=L"v_x"), +# ε̇xy = Axis(fig[1,2];ylabel=L"z",xlabel=L"\dot{\varepsilon}_{xy}"), +# ) + +# for axname in eachindex(axs) +# # xlims!(axs[axname],xc[1],xc[end]) +# ylims!(axs[axname],0.07,0.75) +# end + +# xlims!(axs.ε̇xy,(-5e-3,nothing)) + +# exy = (V.x[ix,2:end] .- V.x[ix,1:end-1])./(zc[2]-zc[1]) + +# plts = ( +# Vx = lines!(axs.Vx,V.x[ix,:].*100,zc;linewidth=2), +# ε̇xy = lines!(axs.ε̇xy,exy,zv[2:end-1];linewidth=2), +# ) + +# display(fig) + +# it = 50 + +# for slope in (-20.0,-15.0,-10.0,-5.0) +# simdir = "out_visu/egu2023/nbump_$(nbump)_slope_$(slope)" +# xc,xv,zc,zv,Ψ,wt,dem,mc = load("$simdir/static.jld2","xc","xv","zc","zv","Ψ","wt","dem","mc") +# Pr,τ,ε̇,ε̇II,V,T,ω,ηs = load(@sprintf("%s/%04d.jld2",simdir,it),"Pr","τ","ε̇","ε̇II","V","T","ω","ηs") + +# nx,nz = length(xc),length(zc) +# ix = nx ÷ 2 +# exy = (V.x[ix,2:end] .- V.x[ix,1:end-1])./(zc[2]-zc[1]) +# plts = ( +# Vx = lines!(axs.Vx,V.x[ix,:],zc;linewidth=2), +# ε̇xy = lines!(axs.ε̇xy,exy,zv[2:end-1];linewidth=2), +# ) +# end + +# display(fig) \ No newline at end of file diff --git a/scripts2D_variational_TM/visme_2.jl b/scripts2D_variational_TM/visme_2.jl new file mode 100644 index 00000000..70dfcdfd --- /dev/null +++ b/scripts2D_variational_TM/visme_2.jl @@ -0,0 +1,41 @@ +using CairoMakie +using JLD2 +using Printf + +nbump = 20 +slope = -20.0 + +fig = Figure(resolution=(1000,800),fontsize=38) +axs = ( + Vx = Axis(fig[1,1];ylabel=L"z",xlabel=L"v_x\times 10^{4}"), + ε̇xy = Axis(fig[1,2];ylabel=L"z",xlabel=L"\dot{\varepsilon}_{xy}"), +) + +for axname in eachindex(axs) + # xlims!(axs[axname],xc[1],xc[end]) + ylims!(axs[axname],0.07,0.75) +end + +xlims!(axs.ε̇xy,(-5e-3,nothing)) + +it = 50 + +for slope in (-10.0,-19.0,-20.0) + simdir = "out_visu/egu2023/nbump_$(nbump)_slope_$(slope)" + xc,xv,zc,zv,Ψ,wt,dem,mc = load("$simdir/static.jld2","xc","xv","zc","zv","Ψ","wt","dem","mc") + Pr,τ,ε̇,ε̇II,V,T,ω,ηs = load(@sprintf("%s/%04d.jld2",simdir,it),"Pr","τ","ε̇","ε̇II","V","T","ω","ηs") + + nx,nz = length(xc),length(zc) + ix = nx ÷ 2 + exy = (V.x[ix,2:end] .- V.x[ix,1:end-1])./(zc[2]-zc[1]) + plts = ( + Vx = lines!(axs.Vx,V.x[ix,:].*10000,zc;linewidth=3), + ε̇xy = lines!(axs.ε̇xy,exy,zv[2:end-1];linewidth=3,label=L"\theta = %$(slope)^\circ"), + ) +end + +axislegend(axs.ε̇xy) + +display(fig) + +save("comparison.png",fig) \ No newline at end of file diff --git a/scripts2D_variational_TM/volume_fraction_kernels.jl b/scripts2D_variational_TM/volume_fraction_kernels.jl new file mode 100644 index 00000000..5adb7009 --- /dev/null +++ b/scripts2D_variational_TM/volume_fraction_kernels.jl @@ -0,0 +1,31 @@ +@tiny function _kernel_compute_volume_fractions_from_level_set!(wt, Ψ, dx, dy) + ix, iy = @indices + cell = Rect(Vec(0.0, 0.0), Vec(dx, dy)) + ω = GeometryBasics.volume(cell) + @inline Ψ_ax(dix, diy) = 0.5 * (Ψ[ix+dix, iy+diy] + Ψ[ix+dix+1, iy+diy ]) + @inline Ψ_ay(dix, diy) = 0.5 * (Ψ[ix+dix, iy+diy] + Ψ[ix+dix , iy+diy+1]) + @inline Ψ_axy(dix, diy) = 0.25 * (Ψ[ix+dix, iy+diy ] + Ψ[ix+dix+1, iy+diy ] + + Ψ[ix+dix, iy+diy+1] + Ψ[ix+dix+1, iy+diy+1]) + @inline isin(A) = checkbounds(Bool, A, ix, iy) + # cell centers + @inbounds if isin(wt.c) + Ψs = Vec{4}(Ψ[ix, iy], Ψ[ix+1, iy], Ψ[ix+1, iy+1], Ψ[ix, iy+1]) + wt.c[ix, iy] = volfrac(cell, Ψs) / ω + end + # x faces + @inbounds if isin(wt.x) + Ψs = Vec{4}(Ψ_ax(0, 0), Ψ_ax(1, 0), Ψ_ax(1, 1), Ψ_ax(0, 1)) + wt.x[ix, iy] = volfrac(cell, Ψs) / ω + end + # y faces + @inbounds if isin(wt.y) + Ψs = Vec{4}(Ψ_ay(0, 0), Ψ_ay(1, 0), Ψ_ay(1, 1), Ψ_ay(0, 1)) + wt.y[ix, iy] = volfrac(cell, Ψs) / ω + end + # xy edges + @inbounds if isin(wt.xy) + Ψs = Vec{4}(Ψ_axy(0, 0), Ψ_axy(1, 0), Ψ_axy(1, 1), Ψ_axy(0, 1)) + wt.xy[ix, iy] = volfrac(cell, Ψs) / ω + end + return +end \ No newline at end of file diff --git a/scripts2D_variational_TM/volume_fractions.jl b/scripts2D_variational_TM/volume_fractions.jl new file mode 100644 index 00000000..7ab5a9e3 --- /dev/null +++ b/scripts2D_variational_TM/volume_fractions.jl @@ -0,0 +1,55 @@ +@inline perturb(ϕ) = abs(ϕ) > 1e-20 ? ϕ : (ϕ > 0 ? 1e-20 : -1e-20) + +@inline trivol(v1, v2, v3) = 0.5 * abs(cross(v3 - v1, v2 - v1)) + +function volfrac(tri, ϕ::Vec3{T})::T where {T} + v1, v2, v3 = tri + if ϕ[1] < 0 && ϕ[2] < 0 && ϕ[3] < 0 # --- + return trivol(v1, v2, v3) + elseif ϕ[1] > 0 && ϕ[2] > 0 && ϕ[3] > 0 # +++ + return 0.0 + end + @inline vij(i, j) = tri[j] * (ϕ[i] / (ϕ[i] - ϕ[j])) - tri[i] * (ϕ[j] / (ϕ[i] - ϕ[j])) + v12, v13, v23 = vij(1, 2), vij(1, 3), vij(2, 3) + if ϕ[1] < 0 + if ϕ[2] < 0 + trivol(v1, v23, v13) + trivol(v1, v2, v23) # --+ + else + if ϕ[3] < 0 + trivol(v3, v12, v23) + trivol(v3, v1, v12) # -+- + else + trivol(v1, v12, v13) # -++ + end + end + else + if ϕ[2] < 0 + if ϕ[3] < 0 + trivol(v2, v13, v12) + trivol(v2, v3, v13) # +-- + else + trivol(v12, v2, v23) # +-+ + end + else + trivol(v13, v23, v3) # ++- + end + end +end + +function volfrac(rect::Rect2{T}, ϕ::Vec4{T}) where {T} + or, ws = origin(rect), widths(rect) + v1, v2, v3, v4 = or, or + Vec(ws[1], 0.0), or + ws, or + Vec(0.0, ws[2]) + ϕ1, ϕ2, ϕ3, ϕ4 = perturb.(ϕ) + return volfrac(Vec(v1, v2, v3), Vec3{T}(ϕ1, ϕ2, ϕ3)) + + volfrac(Vec(v1, v3, v4), Vec3{T}(ϕ1, ϕ3, ϕ4)) +end + +include("volume_fraction_kernels.jl") + +const _compute_volume_fractions_from_level_set! = _kernel_compute_volume_fractions_from_level_set!(get_device()) + +function compute_volume_fractions_from_level_set!(wt, Ψ, dx, dy) + wt_inn = (; c=wt.c, x=inn_x(wt.x), y=inn_y(wt.y), xy=wt.xy) + wait(_compute_volume_fractions_from_level_set!(wt_inn, Ψ, dx, dy; ndrange=axes(wt.c))) + bc_x_neumann!(0.0, wt.x) + bc_y_neumann!(0.0, wt.y) + return +end \ No newline at end of file diff --git a/scripts3D_variational/bc_kernels.jl b/scripts3D_variational/bc_kernels.jl new file mode 100644 index 00000000..5d805bee --- /dev/null +++ b/scripts3D_variational/bc_kernels.jl @@ -0,0 +1,65 @@ +@tiny function _kernel_bc_x_dirichlet!(val,arrays...) + iy,iz = @indices + for A in arrays + if iy ∈ axes(A,2) && iz ∈ axes(A,3) + @inbounds A[1 ,iy,iz] = val + @inbounds A[end,iy,iz] = val + end + end + return +end + +@tiny function _kernel_bc_y_dirichlet!(val, arrays...) + ix,iz = @indices + for A in arrays + if ix ∈ axes(A,1) && iz ∈ axes(A,3) + @inbounds A[ix,1 ,iz] = val + @inbounds A[ix,end,iz] = val + end + end + return +end + +@tiny function _kernel_bc_z_dirichlet!(val, arrays...) + ix,iy = @indices + for A in arrays + if ix ∈ axes(A,1) && iy ∈ axes(A,2) + @inbounds A[ix,iy,1 ] = val + @inbounds A[ix,iy,end] = val + end + end + return +end + +@tiny function _kernel_bc_x_neumann!(val, arrays...) + iy,iz = @indices + for A in arrays + if iy ∈ axes(A,2) && iz ∈ axes(A,3) + @inbounds A[1 ,iy,iz] = A[2 ,iy,iz] + val + @inbounds A[end,iy,iz] = A[end-1,iy,iz] + val + end + end + return +end + +@tiny function _kernel_bc_y_neumann!(val, arrays...) + ix,iz = @indices + for A in arrays + if ix ∈ axes(A,1) && iz ∈ axes(A,3) + @inbounds A[ix,1 ,iz] = A[ix,2 ,iz] + val + @inbounds A[ix,end,iz] = A[ix,end-1,iz] + val + end + end + return +end + +@tiny function _kernel_bc_z_neumann!(val, arrays...) + ix,iy = @indices + for A in arrays + if ix ∈ axes(A,1) && iy ∈ axes(A,2) + @inbounds A[ix,iy,1 ] = A[ix,iy,2 ] + val + @inbounds A[ix,iy,end] = A[ix,iy,end-1] + val + end + end + return +end \ No newline at end of file diff --git a/scripts3D_variational/bcs.jl b/scripts3D_variational/bcs.jl new file mode 100644 index 00000000..a592d30a --- /dev/null +++ b/scripts3D_variational/bcs.jl @@ -0,0 +1,48 @@ +include("bc_kernels.jl") + +const _bc_x_dirichlet! = _kernel_bc_x_dirichlet!(get_device()) +const _bc_y_dirichlet! = _kernel_bc_y_dirichlet!(get_device()) +const _bc_z_dirichlet! = _kernel_bc_z_dirichlet!(get_device()) + +const _bc_x_neumann! = _kernel_bc_x_neumann!(get_device()) +const _bc_y_neumann! = _kernel_bc_y_neumann!(get_device()) +const _bc_z_neumann! = _kernel_bc_z_neumann!(get_device()) + +for fname in (:bx_x_dirichlet!,:bc_x_neumann!) + @eval begin + function $fname(val,arrays...) + ax = axes(arrays[1])[[2,3]] + for A in arrays[2:end] + ax = union.(ax,axes(A)[[2,3]]) + end + wait($(Symbol(:_,fname))(val,arrays...;ndrange=ax)) + return + end + end +end + +for fname in (:bx_y_dirichlet!,:bc_y_neumann!) + @eval begin + function $fname(val,arrays...) + ax = axes(arrays[1])[[1,3]] + for A in arrays[2:end] + ax = union.(ax,axes(A)[[1,3]]) + end + wait($(Symbol(:_,fname))(val,arrays...;ndrange=ax)) + return + end + end +end + +for fname in (:bx_z_dirichlet!,:bc_z_neumann!) + @eval begin + function $fname(val,arrays...) + ax = axes(arrays[1])[[1,2]] + for A in arrays[2:end] + ax = union.(ax,axes(A)[[1,2]]) + end + wait($(Symbol(:_,fname))(val,arrays...;ndrange=ax)) + return + end + end +end \ No newline at end of file diff --git a/scripts3D_variational/data_io.jl b/scripts3D_variational/data_io.jl new file mode 100644 index 00000000..7e6ef484 --- /dev/null +++ b/scripts3D_variational/data_io.jl @@ -0,0 +1,105 @@ +function write_h5(path,fields,dim_g,I,args...) + if !HDF5.has_parallel() && (length(args)>0) + @warn("HDF5 has no parallel support.") + end + h5open(path, "w", args...) do io + for (name,field) ∈ fields + dset = create_dataset(io, "/$name", datatype(eltype(field)), dataspace(dim_g)) + dset[I.indices...] = Array(field) + end + end + return +end + +function write_xdmf(path,h5_names,fields,origin,spacing,dim_g,timesteps) + xdoc = XMLDocument() + xroot = create_root(xdoc, "Xdmf") + set_attribute(xroot, "Version","3.0") + + xdomain = new_child(xroot, "Domain") + xcollection = new_child(xdomain, "Grid") + set_attribute(xcollection, "GridType","Collection") + set_attribute(xcollection, "CollectionType","Temporal") + + for (it,tt) ∈ enumerate(timesteps) + xgrid = new_child(xcollection, "Grid") + set_attribute(xgrid, "GridType","Uniform") + xtopo = new_child(xgrid, "Topology") + set_attribute(xtopo, "TopologyType", "3DCoRectMesh") + set_attribute(xtopo, "Dimensions", join(reverse(dim_g).+1,' ')) + + xtime = new_child(xgrid, "Time") + set_attribute(xtime, "Value", "$tt") + + xgeom = new_child(xgrid, "Geometry") + set_attribute(xgeom, "GeometryType", "ORIGIN_DXDYDZ") + + xorig = new_child(xgeom, "DataItem") + set_attribute(xorig, "Format", "XML") + set_attribute(xorig, "NumberType", "Float") + set_attribute(xorig, "Dimensions", "$(length(dim_g)) ") + add_text(xorig, join(reverse(origin), ' ')) + + xdr = new_child(xgeom, "DataItem") + set_attribute(xdr, "Format", "XML") + set_attribute(xdr, "NumberType", "Float") + set_attribute(xdr, "Dimensions", "$(length(dim_g))") + add_text(xdr, join(reverse(spacing), ' ')) + + h5_path = h5_names[it] + for (name,_) ∈ fields + create_xdmf_attribute(xgrid,h5_path,name,dim_g) + end + end + + save_file(xdoc, path) + return +end + +function write_xdmf(path,h5_path,fields,origin,spacing,dim_g) + xdoc = XMLDocument() + xroot = create_root(xdoc, "Xdmf") + set_attribute(xroot, "Version","3.0") + + xdomain = new_child(xroot, "Domain") + xgrid = new_child(xdomain, "Grid") + set_attribute(xgrid, "GridType","Uniform") + xtopo = new_child(xgrid, "Topology") + set_attribute(xtopo, "TopologyType", "3DCoRectMesh") + set_attribute(xtopo, "Dimensions", join(reverse(dim_g).+1,' ')) + + xgeom = new_child(xgrid, "Geometry") + set_attribute(xgeom, "GeometryType", "ORIGIN_DXDYDZ") + + xorig = new_child(xgeom, "DataItem") + set_attribute(xorig, "Format", "XML") + set_attribute(xorig, "NumberType", "Float") + set_attribute(xorig, "Dimensions", "$(length(dim_g)) ") + add_text(xorig, join(reverse(origin), ' ')) + + xdr = new_child(xgeom, "DataItem") + set_attribute(xdr, "Format", "XML") + set_attribute(xdr, "NumberType", "Float") + set_attribute(xdr, "Dimensions", "$(length(dim_g))") + add_text(xdr, join(reverse(spacing), ' ')) + + for (name,_) ∈ fields + create_xdmf_attribute(xgrid,h5_path,name,dim_g) + end + save_file(xdoc, path) + return +end + +function create_xdmf_attribute(xgrid,h5_path,name,dim_g) + # TODO: solve type and precision + xattr = new_child(xgrid, "Attribute") + set_attribute(xattr, "Name", name) + set_attribute(xattr, "Center", "Cell") + xdata = new_child(xattr, "DataItem") + set_attribute(xdata, "Format", "HDF") + set_attribute(xdata, "NumberType", "Float") + set_attribute(xdata, "Precision", "8") + set_attribute(xdata, "Dimensions", join(reverse(dim_g), ' ')) + add_text(xdata, "$(h5_path):/$name") + return xattr +end diff --git a/scripts3D_variational/dual_contouring.jl b/scripts3D_variational/dual_contouring.jl new file mode 100644 index 00000000..cba484c0 --- /dev/null +++ b/scripts3D_variational/dual_contouring.jl @@ -0,0 +1,139 @@ +using GLMakie +using GeometryBasics +using StaticArrays +using LinearAlgebra + +function dual_contour(Ψ::AbstractArray{T,3},xc,yc,zc) where T + vertices = Point{3,Float64}[] + tris = TriangleFace{Int}[] + vert_idx = Array{Int,3}(undef,size(Ψ).-1) + # insert vertices + for iz in 1:size(Ψ,3)-1, iy in 1:size(Ψ,2)-1, ix in 1:size(Ψ,1)-1 + S = MArray{NTuple{3,2},T}(undef) + for idz in 0:1,idy in 0:1,idx in 0:1 + S[idx+1,idy+1,idz+1] = Ψ[ix+idx,iy+idy,iz+idz] + end + change_sign = !(all(S .> 0) || all(S .< 0)) + if change_sign + push!(vertices,Point(xc[ix],yc[iy],zc[iz])) + vert_idx[ix,iy,iz] = length(vertices) + end + end + # insert triangles + for iz in 1:size(Ψ,3)-1, iy in 1:size(Ψ,2)-1, ix in 1:size(Ψ,1)-1 + if Ψ[ix,iy,iz]*Ψ[ix+1,iy,iz] <= 0 + if iy < 2 || iz < 2 + continue + end + i1 = vert_idx[ix,iy-1,iz-1] + i2 = vert_idx[ix,iy ,iz-1] + i3 = vert_idx[ix,iy ,iz ] + i4 = vert_idx[ix,iy-1,iz ] + push!(tris,TriangleFace(i1,i2,i3),TriangleFace(i1,i3,i4)) + end + if Ψ[ix,iy,iz]*Ψ[ix,iy+1,iz] <= 0 + if ix < 2 || iz < 2 + continue + end + i1 = vert_idx[ix-1,iy,iz-1] + i2 = vert_idx[ix ,iy,iz-1] + i3 = vert_idx[ix ,iy,iz ] + i4 = vert_idx[ix-1,iy,iz ] + push!(tris,TriangleFace(i1,i2,i3),TriangleFace(i1,i3,i4)) + end + if Ψ[ix,iy,iz]*Ψ[ix,iy,iz+1] <= 0 + if ix < 2 || iy < 2 + continue + end + i1 = vert_idx[ix-1,iy-1,iz] + i2 = vert_idx[ix ,iy-1,iz] + i3 = vert_idx[ix ,iy ,iz] + i4 = vert_idx[ix-1,iy ,iz] + push!(tris,TriangleFace(i1,i2,i3),TriangleFace(i1,i3,i4)) + end + end + return vertices, tris +end + +# Coefficients of a cubic Hermite spline in 1D +function hspline_coeffs(p::StaticVector{2},∇p::StaticVector{2}) + return SVector( + p[1], ∇p[1], + 3*(p[2] - p[1]) - 2*∇p[1] - ∇p[2], + 2*(p[1] - p[2]) + ∇p[1] + ∇p[2] + ) +end + +function hspline_coeffs(p::StaticMatrix{2},∇px::StaticMatrix{2},∇py::StaticMatrix{2},∇pxy::StaticMatrix{2}) + +end + +@inline function eval_poly(a::StaticVector{4},x) + return a[1] + (a[2] + (a[3] + a[4]*x)*x)*x +end + +@inline function eval_poly(a::StaticMatrix{4},x,y) + return eval_poly( + SVector(eval_poly(a[:,1],x), + eval_poly(a[:,2],x), + eval_poly(a[:,3],x), + eval_poly(a[:,4],x)), + y + ) +end + +function hspline_interp!(p_i,x_i,xs,ps;bcs=(nothing,nothing)) + dx = step(xs) + for (ip,x) in enumerate(x_i) + xdiv = (x-xs[1])/dx + ix = clamp(floor(Int,xdiv) + 1, 1, length(xs)-1) + t = xdiv - (ix-1) + p = SVector(ps[ix], ps[ix+1]) + m1 = ix > firstindex(xs) ? (ps[ix+1] - ps[ix-1]) / 2 : isnothing(bcs[1]) ? ps[2 ] - ps[1 ] : bcs[1] * dx + m2 = ix < lastindex(xs) - 1 ? (ps[ix+2] - ps[ix ]) / 2 : isnothing(bcs[2]) ? ps[end] - ps[end-1] : bcs[2] * dx + m = SVector(m1, m2) + p_i[ip] = hspline_interp(p, m, t) + end + return +end + +function test_interp() + xs = LinRange(-π,π,11) + qs = sin.(xs) + x_i = LinRange(-1.1π,1.1π,101) + q_i = similar(x_i) + hspline_interp!(q_i,x_i,xs,qs;bcs=(-1,-1)) + fig = Figure() + ax = Axis(fig[1,1];aspect=DataAspect()) + lines!(ax,x_i,q_i) + scatter!(ax,xs,qs) + display(fig) + return +end + +test_interp() + +function main() + println("Hello world!") + Ψ = Array{Float64}(undef,100,100,100) + xv = LinRange(-2,2,size(Ψ,1)) + yv = LinRange(-2,2,size(Ψ,2)) + zv = LinRange(-2,2,size(Ψ,3)) + xc = 0.5.*(xv[1:end-1].+xv[2:end]) + yc = 0.5.*(yv[1:end-1].+yv[2:end]) + zc = 0.5.*(zv[1:end-1].+zv[2:end]) + for iz in axes(Ψ,3), iy in axes(Ψ,2), ix in axes(Ψ,1) + Ψ[ix,iy,iz] = sqrt(xv[ix]^2 + yv[iy]^2 + zv[iz]^2) - 1.5 + end + @time verts,tris = dual_contour(Ψ,xc,yc,zc) + fig = Figure() + ax = Axis3(fig[1,1];aspect=:data,viewmode=:fitzoom) + limits!(ax,extrema(xv),extrema(yv),extrema(zv)) + isosurface = GeometryBasics.Mesh(verts,tris) + mesh!(ax,isosurface) + # wireframe!(ax,isosurface;color=:black) + display(fig) + return +end + +main() \ No newline at end of file diff --git a/scripts3D_variational/hide_communication.jl b/scripts3D_variational/hide_communication.jl new file mode 100644 index 00000000..0a1e85e0 --- /dev/null +++ b/scripts3D_variational/hide_communication.jl @@ -0,0 +1,33 @@ +@inline __subrange(nr,bw,I,::Val{1}) = 1:bw[I] +@inline __subrange(nr,bw,I,::Val{2}) = (size(nr,I)-bw[I]+1):size(nr,I) +@inline __subrange(nr,bw,I,::Val{3}) = (bw[I]+1):(size(nr,I)-bw[I]) + +@inline split_ndrange(ndrange,ndwidth) = split_ndrange(CartesianIndices(ndrange),ndwidth) + +function split_ndrange(ndrange::CartesianIndices{N},ndwidth::NTuple{N,<:Integer}) where N + @assert all(size(ndrange) .> ndwidth.*2) + @inline ndsubrange(I,::Val{J}) where J = ntuple(Val(N)) do idim + if idim < I + 1:size(ndrange,idim) + elseif idim == I + __subrange(ndrange,ndwidth,idim,Val(J)) + else + __subrange(ndrange,ndwidth,idim,Val(3)) + end + end + ndinner = ntuple(idim -> __subrange(ndrange,ndwidth,idim,Val(3)), Val(N)) + return ntuple(Val(2N+1)) do i + if i == 2N+1 + ndrange[ndinner...] + else + idim,idir = divrem(i-1,2) .+ 1 + ndrange[ndsubrange(idim,Val(idir))...] + end + end +end + +function hide_comm(f,ranges) + ie = f(ranges[end]) + oe = ntuple(i->f(ranges[i]), length(ranges)-1) + return ie, oe +end \ No newline at end of file diff --git a/scripts3D_variational/level_set_kernels.jl b/scripts3D_variational/level_set_kernels.jl new file mode 100644 index 00000000..cd5a68d2 --- /dev/null +++ b/scripts3D_variational/level_set_kernels.jl @@ -0,0 +1,62 @@ +@tiny function _kernel_init_level_set!(Ψ,dem,dem_grid,Ψ_grid,cutoff,R) + ix,iy,iz = @indices + x,y,z = Ψ_grid[1][ix],Ψ_grid[2][iy],Ψ_grid[3][iz] + P = R*Point3(x,y,z) + ud,sgn = sd_dem(P,cutoff,dem,dem_grid) + @inbounds Ψ[ix,iy,iz] = ud*sgn + return +end + +@tiny function _kernel_compute_dΨ_dt!(dΨ_dt,Ψ,Ψ0,dx,dy,dz) + ix,iy,iz = @indices + @inline changes_sign_x(disp) = @inbounds Ψ0[ix,iy,iz]*Ψ0[ix+disp,iy,iz] < 0 + @inline changes_sign_y(disp) = @inbounds Ψ0[ix,iy,iz]*Ψ0[ix,iy+disp,iz] < 0 + @inline changes_sign_z(disp) = @inbounds Ψ0[ix,iy,iz]*Ψ0[ix,iy,iz+disp] < 0 + ch_x, ch_y, ch_z = false, false, false + ∂Ψ0_∂x, ∂Ψ0_∂y, ∂Ψ0_∂z = 0.0, 0.0, 0.0 + if ix ∈ axes(Ψ0,1)[2:end-1] + ch_x = changes_sign_x(1) || changes_sign_x(-1) + @inbounds ∂Ψ0_∂x = (Ψ0[ix+1,iy,iz]-Ψ0[ix-1,iy,iz])/(2dx) + end + if iy ∈ axes(Ψ0,2)[2:end-1] + ch_y = changes_sign_y(1) || changes_sign_y(-1) + @inbounds ∂Ψ0_∂y = (Ψ0[ix,iy+1,iz]-Ψ0[ix,iy-1,iz])/(2dy) + end + if iz ∈ axes(Ψ0,3)[2:end-1] + ch_z = changes_sign_z(1) || changes_sign_z(-1) + @inbounds ∂Ψ0_∂z = (Ψ0[ix,iy,iz+1]-Ψ0[ix,iy,iz-1])/(2dz) + end + if (ch_x || ch_y || ch_z) + # local surface reconstruction + @inbounds D = Ψ0[ix,iy,iz]/sqrt(∂Ψ0_∂x^2 + ∂Ψ0_∂y^2 + ∂Ψ0_∂z^2) + @inbounds dΨ_dt[ix,iy,iz] = (D-sign(Ψ0[ix,iy,iz])*abs(Ψ[ix,iy,iz]))/dx + else + @inbounds begin + # Hamilton-Jacobi with Godunov flux + # direction '-' derivatives + ∂Ψ_∂x⁻ = ix > 1 ? (Ψ[ix,iy,iz] - Ψ[ix-1,iy,iz])/dx : 0.0 + ∂Ψ_∂y⁻ = iy > 1 ? (Ψ[ix,iy,iz] - Ψ[ix,iy-1,iz])/dy : 0.0 + ∂Ψ_∂z⁻ = iz > 1 ? (Ψ[ix,iy,iz] - Ψ[ix,iy,iz-1])/dy : 0.0 + # direction '+' derivatives + ∂Ψ_∂x⁺ = ix < size(Ψ,1) ? (Ψ[ix+1,iy,iz] - Ψ[ix,iy,iz]) / dx : 0.0 + ∂Ψ_∂y⁺ = iy < size(Ψ,2) ? (Ψ[ix,iy+1,iz] - Ψ[ix,iy,iz]) / dy : 0.0 + ∂Ψ_∂z⁺ = iz < size(Ψ,3) ? (Ψ[ix,iy,iz+1] - Ψ[ix,iy,iz]) / dz : 0.0 + # upwind fluxes + ∂Ψ_∂x2 = Ψ0[ix,iy,iz] >= 0 ? max(max(∂Ψ_∂x⁻,0)^2, min(∂Ψ_∂x⁺,0)^2) : + max(min(∂Ψ_∂x⁻,0)^2, max(∂Ψ_∂x⁺,0)^2) + ∂Ψ_∂y2 = Ψ0[ix,iy,iz] >= 0 ? max(max(∂Ψ_∂y⁻,0)^2, min(∂Ψ_∂y⁺,0)^2) : + max(min(∂Ψ_∂y⁻,0)^2, max(∂Ψ_∂y⁺,0)^2) + ∂Ψ_∂z2 = Ψ0[ix,iy,iz] >= 0 ? max(max(∂Ψ_∂z⁻,0)^2, min(∂Ψ_∂z⁺,0)^2) : + max(min(∂Ψ_∂z⁻,0)^2, max(∂Ψ_∂z⁺,0)^2) + # compute update + dΨ_dt[ix,iy,iz] = sign(Ψ0[ix,iy,iz])*(1.0-sqrt(∂Ψ_∂x2+∂Ψ_∂y2+∂Ψ_∂z2)) + end + end + return +end + +@tiny function _kernel_update_Ψ!(Ψ, dΨ_dt, dt) + I = @cartesianindex + @inbounds Ψ[I] += dt*dΨ_dt[I] + return +end \ No newline at end of file diff --git a/scripts3D_variational/level_sets.jl b/scripts3D_variational/level_sets.jl new file mode 100644 index 00000000..13019b10 --- /dev/null +++ b/scripts3D_variational/level_sets.jl @@ -0,0 +1,15 @@ +include("level_set_kernels.jl") + +const _init_level_set! = _kernel_init_level_set!(get_device()) +const _compute_dΨ_dt! = _kernel_compute_dΨ_dt!(get_device()) +const _update_Ψ! = _kernel_update_Ψ!(get_device()) + +function compute_level_set_from_dem!(Ψ,dem,dem_grid,Ψ_grid) + TinyKernels.device_synchronize(get_device()) + dx,dy,dz = step.(Ψ_grid) + cutoff = 4max(dx,dy,dz) + R = LinearAlgebra.I + wait(_init_level_set!(Ψ,dem,dem_grid,Ψ_grid,cutoff,R;ndrange=axes(Ψ))) + return +end + diff --git a/scripts3D_variational/load_dem.jl b/scripts3D_variational/load_dem.jl new file mode 100644 index 00000000..0385198b --- /dev/null +++ b/scripts3D_variational/load_dem.jl @@ -0,0 +1,15 @@ +using FileIO + +function filter_range(r,lims) + istart = something(findfirst(v -> v>lims[1], r), length(r)) + iend = something( findlast(v -> vx[1:end-1],axes.(rc,1)) + Δ = step.(rc) + O = first.(rc) + I = @. clamp(Int(fld(P-O,Δ))+1,lims) + return CartesianIndex(I...) +end + +@inline inc(I,dim) = Base.setindex(I,I[dim]+1,dim) +@inline inc(I) = I + oneunit(I) + +@inline function triangle_pair(Iv,dem,rc) + @inline function sample_dem(I) + @inbounds x,y = rc[1][I[1]],rc[2][I[2]] + @inbounds Point3(x,y,dem[I]) + end + T_BL = Triangle(sample_dem(Iv) ,sample_dem(inc(Iv,1)),sample_dem(inc(Iv,2))) + T_TR = Triangle(sample_dem(inc(Iv,2)),sample_dem(inc(Iv,1)),sample_dem(inc(Iv))) + return T_BL,T_TR +end + +@inline function distance_to_triangle_pair(P,Iv,dem,rc) + T_BL,T_TR = triangle_pair(Iv,dem,rc) + ud = min(ud_triangle(P,T_BL...),ud_triangle(P,T_TR...)) + return ud,sign_triangle(P,T_BL...) +end + +function sd_dem(P,cutoff,dem,rc) + @inbounds Pp = clamp.(Point(P[1],P[2]),first.(rc),last.(rc)) + @inbounds P = Point(Pp[1],Pp[2],P[3]) + BL = closest_vertex_index(Pp.-cutoff,rc) + TR = closest_vertex_index(Pp.+cutoff,rc) + Ic = closest_vertex_index(Pp,rc) + ud,sgn = distance_to_triangle_pair(P,Ic,dem,rc) + for Iv in BL:TR + if Iv == Ic continue end + ud_pair,_ = distance_to_triangle_pair(P,Iv,dem,rc) + ud = min(ud,ud_pair) + end + return ud,sgn +end \ No newline at end of file diff --git a/scripts3D_variational/stokes.jl b/scripts3D_variational/stokes.jl new file mode 100644 index 00000000..cae191dd --- /dev/null +++ b/scripts3D_variational/stokes.jl @@ -0,0 +1,24 @@ +include("stokes_kernels.jl") + +const _update_σ! = _kernel_update_σ!(get_device()) +const _update_V! = _kernel_update_V!(get_device()) + +function update_σ!(Pr, τ, V, ηs, wt, r, θ_dτ, dτ_r, dx, dy, dz) + wait(_update_σ!(Pr, τ, V, ηs, wt, r, θ_dτ, dτ_r, dx, dy, dz; ndrange=axes(Pr))) + return +end + +function update_V!(V, Pr, τ, ηs, wt, nudτ, ρg, dx, dy, dz; bwidth) + V_inn = (x = inn(V.x), y = inn(V.y), z = inn(V.z)) + ranges = split_ndrange(axes(Pr),bwidth) + ie,oe = hide_comm(ranges) do ndrange + _update_V!(V_inn, Pr, τ, ηs, wt, nudτ, ρg, dx, dy, dz; ndrange) + end + wait.(oe) + bc_x_neumann!(0.0,V.y,V.z) + bc_y_neumann!(0.0,V.x,V.z) + bc_z_neumann!(0.0,V.x,V.y) + update_halo!(V.x,V.y,V.z) + wait(ie) + return +end \ No newline at end of file diff --git a/scripts3D_variational/stokes_kernels.jl b/scripts3D_variational/stokes_kernels.jl new file mode 100644 index 00000000..0a9aab4a --- /dev/null +++ b/scripts3D_variational/stokes_kernels.jl @@ -0,0 +1,131 @@ +@tiny function _kernel_update_σ!(Pr, τ, V, ηs, wt, r, θ_dτ, dτ_r, dx, dy, dz) + ix,iy,iz = @indices + # na,ns = wt.not_air, wt.not_solid + @inline isin(A) = checkbounds(Bool,A,ix,iy,iz) + # detect and eliminate null spaces + isnull = (wt.not_air.x[ix,iy,iz] ≈ 0.0) || (wt.not_air.x[ix+1,iy ,iz ] ≈ 0.0) || + (wt.not_air.y[ix,iy,iz] ≈ 0.0) || (wt.not_air.y[ix ,iy+1,iz ] ≈ 0.0) || + (wt.not_air.z[ix,iy,iz] ≈ 0.0) || (wt.not_air.z[ix ,iy ,iz+1] ≈ 0.0) + if !isnull && (wt.not_air.c[ix,iy,iz] > 0.0) + exx = (V.x[ix+1,iy ,iz ]*wt.not_solid.x[ix+1,iy ,iz ] - V.x[ix,iy,iz]*wt.not_solid.x[ix,iy,iz])/dx + eyy = (V.y[ix ,iy+1,iz ]*wt.not_solid.y[ix ,iy+1,iz ] - V.y[ix,iy,iz]*wt.not_solid.y[ix,iy,iz])/dy + ezz = (V.z[ix ,iy ,iz+1]*wt.not_solid.z[ix ,iy ,iz+1] - V.z[ix,iy,iz]*wt.not_solid.z[ix,iy,iz])/dz + ∇V = exx + eyy + ezz + Pr[ix,iy,iz] -= ∇V*ηs[ix,iy,iz]*r/θ_dτ + τ.xx[ix,iy,iz] += (-τ.xx[ix,iy,iz] + 2.0*ηs[ix,iy,iz]*(exx-∇V/3.0)) * dτ_r + τ.yy[ix,iy,iz] += (-τ.yy[ix,iy,iz] + 2.0*ηs[ix,iy,iz]*(eyy-∇V/3.0)) * dτ_r + τ.zz[ix,iy,iz] += (-τ.zz[ix,iy,iz] + 2.0*ηs[ix,iy,iz]*(ezz-∇V/3.0)) * dτ_r + else + Pr[ix,iy,iz] = 0.0 + τ.xx[ix,iy,iz] = 0.0 + τ.yy[ix,iy,iz] = 0.0 + τ.zz[ix,iy,iz] = 0.0 + end + @inbounds if isin(τ.xy) + # detect and eliminate null spaces + isnull = (wt.not_air.x[ix+1,iy+1,iz+1] ≈ 0.0) || (wt.not_air.x[ix+1,iy ,iz+1] ≈ 0.0) || + (wt.not_air.y[ix+1,iy+1,iz+1] ≈ 0.0) || (wt.not_air.y[ix ,iy+1,iz+1] ≈ 0.0) + if !isnull && (wt.not_air.xy[ix,iy,iz] > 0.0) + exy = + 0.5 * ( + (V.x[ix+1,iy+1,iz+1]*wt.not_solid.x[ix+1,iy+1,iz+1] - V.x[ix+1,iy ,iz+1]*wt.not_solid.x[ix+1,iy ,iz+1])/dy + + (V.y[ix+1,iy+1,iz+1]*wt.not_solid.y[ix+1,iy+1,iz+1] - V.y[ix ,iy+1,iz+1]*wt.not_solid.y[ix ,iy+1,iz+1])/dx + ) + ηs_av = 0.25*(ηs[ix,iy,iz+1] + ηs[ix+1,iy,iz+1] + ηs[ix,iy+1,iz+1] + ηs[ix+1,iy+1,iz+1]) + τ.xy[ix,iy,iz] += (-τ.xy[ix,iy,iz] + 2.0*ηs_av*exy)*dτ_r + else + τ.xy[ix,iy,iz] = 0.0 + end + end + @inbounds if isin(τ.xz) + # detect and eliminate null spaces + isnull = (wt.not_air.x[ix+1,iy+1,iz+1] ≈ 0.0) || (wt.not_air.x[ix+1,iy+1,iz ] ≈ 0.0) || + (wt.not_air.z[ix+1,iy+1,iz+1] ≈ 0.0) || (wt.not_air.z[ix ,iy+1,iz+1] ≈ 0.0) + if !isnull && (wt.not_air.xz[ix,iy,iz] > 0.0) + exz = + 0.5 * ( + (V.x[ix+1,iy+1,iz+1]*wt.not_solid.x[ix+1,iy+1,iz+1] - V.x[ix+1,iy+1,iz ]*wt.not_solid.x[ix+1,iy+1,iz ])/dz + + (V.z[ix+1,iy+1,iz+1]*wt.not_solid.z[ix+1,iy+1,iz+1] - V.z[ix ,iy+1,iz+1]*wt.not_solid.z[ix ,iy+1,iz+1])/dx + ) + ηs_av = 0.25*(ηs[ix,iy+1,iz] + ηs[ix+1,iy+1,iz] + ηs[ix,iy+1,iz+1] + ηs[ix+1,iy+1,iz+1]) + τ.xz[ix,iy,iz] += (-τ.xz[ix,iy,iz] + 2.0*ηs_av*exz)*dτ_r + else + τ.xz[ix,iy,iz] = 0.0 + end + end + @inbounds if isin(τ.yz) + # detect and eliminate null spaces + isnull = (wt.not_air.y[ix+1,iy+1,iz+1] ≈ 0.0) || (wt.not_air.y[ix+1,iy+1,iz ] ≈ 0.0) || + (wt.not_air.z[ix+1,iy+1,iz+1] ≈ 0.0) || (wt.not_air.z[ix+1,iy ,iz+1] ≈ 0.0) + if !isnull && (wt.not_air.yz[ix,iy,iz] > 0.0) + eyz = + 0.5 * ( + (V.y[ix+1,iy+1,iz+1]*wt.not_solid.y[ix+1,iy+1,iz+1] - V.y[ix+1,iy+1,iz ]*wt.not_solid.y[ix+1,iy+1,iz ])/dz + + (V.z[ix+1,iy+1,iz+1]*wt.not_solid.z[ix+1,iy+1,iz+1] - V.z[ix+1,iy ,iz+1]*wt.not_solid.z[ix+1,iy ,iz+1])/dy + ) + ηs_av = 0.25*(ηs[ix+1,iy,iz] + ηs[ix+1,iy+1,iz] + ηs[ix+1,iy,iz+1] + ηs[ix+1,iy+1,iz+1]) + τ.yz[ix,iy,iz] += (-τ.yz[ix,iy,iz] + 2.0*ηs_av*eyz)*dτ_r + else + τ.yz[ix,iy,iz] = 0.0 + end + end + return +end + +@tiny function _kernel_update_V!(V, Pr, τ, ηs, wt, nudτ, ρg, dx, dy, dz) + ix,iy,iz = @indices + @inline isin(A) = checkbounds(Bool,A,ix,iy,iz) + # TODO: check which volume fraction (non-air or non-solid) really determines the null spaces + @inbounds if isin(V.x) + # detect and eliminate null spaces + isnull = ( wt.not_solid.c[ix+1,iy+1,iz+1] ≈ 0) || ( wt.not_solid.c[ix,iy+1,iz+1] ≈ 0) || + (wt.not_solid.xy[ix ,iy+1,iz ] ≈ 0) || (wt.not_solid.xy[ix,iy ,iz ] ≈ 0) || + (wt.not_solid.xz[ix ,iy ,iz+1] ≈ 0) || (wt.not_solid.xz[ix,iy ,iz ] ≈ 0) + if !isnull && (wt.not_air.x[ix+1,iy+1,iz+1] > 0) && (wt.not_solid.x[ix+1,iy+1,iz+1] > 0) + # TODO: check which cells contribute to the momentum balance to verify ηs_x is computed correctly + ηs_x = max(ηs[ix,iy+1,iz+1],ηs[ix+1,iy+1,iz+1]) + ∂σxx_∂x = ((-Pr[ix+1,iy+1,iz+1]+τ.xx[ix+1,iy+1,iz+1])*wt.not_air.c[ix+1,iy+1,iz+1] - + (-Pr[ix ,iy+1,iz+1]+τ.xx[ix ,iy+1,iz+1])*wt.not_air.c[ix ,iy+1,iz+1])/dx + ∂τxy_∂y = (τ.xy[ix,iy+1,iz]*wt.not_air.xy[ix,iy+1,iz] - τ.xy[ix,iy,iz]*wt.not_air.xy[ix,iy,iz])/dy + ∂τxz_∂z = (τ.xz[ix,iy,iz+1]*wt.not_air.xz[ix,iy,iz+1] - τ.xz[ix,iy,iz]*wt.not_air.xz[ix,iy,iz])/dz + V.x[ix,iy,iz] += (∂σxx_∂x + ∂τxy_∂y + ∂τxz_∂z - ρg.x)*nudτ/ηs_x + else + V.x[ix,iy,iz] = 0.0 + end + end + @inbounds if isin(V.y) + # detect and eliminate null spaces + isnull = ( wt.not_solid.c[ix+1,iy+1,iz+1] ≈ 0) || ( wt.not_solid.c[ix+1,iy,iz+1] ≈ 0) || + (wt.not_solid.xy[ix+1,iy ,iz ] ≈ 0) || (wt.not_solid.xy[ix ,iy,iz ] ≈ 0) || + (wt.not_solid.yz[ix ,iy ,iz+1] ≈ 0) || (wt.not_solid.yz[ix ,iy,iz ] ≈ 0) + if !isnull && (wt.not_air.y[ix+1,iy+1,iz+1] > 0) && (wt.not_solid.y[ix+1,iy+1,iz+1] > 0) + # TODO: check which cells contribute to the momentum balance to verify ηs_y is computed correctly + ηs_y = max(ηs[ix+1,iy,iz+1],ηs[ix+1,iy+1,iz+1]) + ∂σyy_∂y = ((-Pr[ix+1,iy+1,iz+1] + τ.yy[ix+1,iy+1,iz+1])*wt.not_air.c[ix+1,iy+1,iz+1] - + (-Pr[ix+1,iy ,iz+1] + τ.yy[ix+1,iy ,iz+1])*wt.not_air.c[ix+1,iy ,iz+1])/dy + ∂τxy_∂x = (τ.xy[ix+1,iy,iz ]*wt.not_air.xy[ix+1,iy,iz] - τ.xy[ix,iy,iz]*wt.not_air.xy[ix,iy,iz])/dx + ∂τyz_∂z = (τ.yz[ix ,iy,iz+1]*wt.not_air.yz[ix,iy,iz+1] - τ.yz[ix,iy,iz]*wt.not_air.yz[ix,iy,iz])/dz + V.y[ix,iy,iz] += (∂σyy_∂y + ∂τxy_∂x + ∂τyz_∂z - ρg.y)*nudτ/ηs_y + else + V.y[ix,iy,iz] = 0.0 + end + end + @inbounds if isin(V.z) + # detect and eliminate null spaces + isnull = ( wt.not_solid.c[ix+1,iy+1,iz+1] ≈ 0) || ( wt.not_solid.c[ix+1,iy+1,iz ] ≈ 0) || + (wt.not_solid.xy[ix+1,iy ,iz ] ≈ 0) || (wt.not_solid.xy[ix ,iy ,iz ] ≈ 0) || + (wt.not_solid.yz[ix ,iy+1,iz ] ≈ 0) || (wt.not_solid.yz[ix ,iy ,iz ] ≈ 0) + if !isnull && (wt.not_air.y[ix+1,iy+1,iz+1] > 0) && (wt.not_solid.y[ix+1,iy+1,iz+1] > 0) + # TODO: check which cells contribute to the momentum balance to verify ηs_z is computed correctly + ηs_z = max(ηs[ix+1,iy+1,iz],ηs[ix+1,iy+1,iz+1]) + ∂σzz_∂z = ((-Pr[ix+1,iy+1,iz+1] + τ.zz[ix+1,iy+1,iz+1])*wt.not_air.c[ix+1,iy+1,iz+1] - + (-Pr[ix+1,iy+1,iz ] + τ.zz[ix+1,iy+1,iz ])*wt.not_air.c[ix+1,iy+1,iz ])/dz + ∂τxz_∂x = (τ.xz[ix+1,iy,iz]*wt.not_air.xz[ix+1,iy,iz] - τ.xz[ix,iy,iz]*wt.not_air.xz[ix,iy,iz])/dx + ∂τyz_∂y = (τ.yz[ix,iy+1,iz]*wt.not_air.yz[ix,iy+1,iz] - τ.yz[ix,iy,iz]*wt.not_air.yz[ix,iy,iz])/dy + V.z[ix,iy,iz] += (∂σzz_∂z + ∂τxz_∂x + ∂τyz_∂y - ρg.z)*nudτ/ηs_z + else + V.z[ix,iy,iz] = 0.0 + end + end + return +end diff --git a/scripts3D_variational/test_volume_fractions.jl b/scripts3D_variational/test_volume_fractions.jl new file mode 100644 index 00000000..5a28f584 --- /dev/null +++ b/scripts3D_variational/test_volume_fractions.jl @@ -0,0 +1,251 @@ +using FastIce +using Logging +using MPI +using ImplicitGlobalGrid +using TinyKernels +using HDF5 +using LightXML +using CairoMakie + +include("load_dem.jl") +include("signed_distances.jl") +include("level_sets.jl") +include("volume_fractions.jl") +include("bcs.jl") +include("stokes.jl") +include("data_io.jl") +include("hide_communication.jl") + +@views av1(A) = 0.5 .* (A[1:end-1] .+ A[2:end]) +@views inn_x(A) = A[2:end-1, :, :] +@views inn_y(A) = A[:, 2:end-1, :] +@views inn_z(A) = A[:, :, 2:end-1] +@views inn(A) = A[2:end-1, 2:end-1, 2:end-1] + +@views function main(grid_dims,grid) + # unpack values + me, dims, nprocs, coords, comm_cart = grid + + # init logger + global_logger(FastIce.Logging.MPILogger(0, comm_cart, global_logger())) + + # path to DEM data + greenland_path = "data/BedMachine/greenland.jld2" + + # region to simulate + global_region = (xlims=(1100.0e3, 1200.0e3), ylims=(1000.0e3, 1100.0e3)) + + # load DEM + @info "loading DEM data from the file '$greenland_path'" + (; x, y, bed, surface) = load_dem(greenland_path, global_region) + @info "DEM resolution: $(size(bed,1)) × $(size(bed,2))" + + @info "plot DEMs" + if me == 0 + fig = Figure(resolution=(2000,700),fontsize=32) + ax = ( + bed = Axis(fig[1,1][1,1];aspect=DataAspect(),title="bedrock",xlabel="x",ylabel="y"), + ice = Axis(fig[1,2][1,1];aspect=DataAspect(),title="ice" ,xlabel="x",ylabel="y"), + ) + plt = ( + bed = heatmap!(ax.bed,x,y,bed ;colormap=:terrain), + ice = heatmap!(ax.ice,x,y,surface;colormap=:terrain), + ) + Colorbar(fig[1,1][1,2],plt.bed) + Colorbar(fig[1,2][1,2],plt.ice) + save("region.png",fig) + end + + # compute origin and size of the domain (required for scaling and computing the grid size) + ox, oy, oz = x[1], y[1], minimum(bed) + lx = x[end] - ox + ly = y[end] - oy + lz = maximum(surface) - oz + + # shift and scale the domain before computation (center of the domain is (0,0) in x-y plane) + δx, δy = ox + 0.5lx, oy + 0.5ly # required to avoid conversion to Vector + x = @. (x - δx) / lz + y = @. (y - δy) / lz + @. bed = (bed - oz) / lz + @. surface = (surface - oz) / lz + + @. surface -= 0.05 + + # run simulation + dem_data = (; x, y, bed, surface) + @info "running the simulation" + run_simulation(dem_data, grid_dims, me, dims, coords, comm_cart) + + return +end + +@views function run_simulation(dem_data, grid_dims, me, dims, coords, comm_cart) + # physics + # global domain origin and size + ox_g, oy_g, oz_g = dem_data.x[1], dem_data.y[1], 0.0 + lx_g = dem_data.x[end] - ox_g + ly_g = dem_data.y[end] - oy_g + lz_g = 1.0 + + ρg = (x=0.0, y=0.0, z=1.0) + + # local domain size and origin + lx_l, ly_l, lz_l = (lx_g, ly_g, lz_g) ./ dims + ox_l, oy_l, oz_l = (ox_g, oy_g, oz_g) .+ coords .* (lx_l, ly_l, lz_l) + + # numerics + nx, ny, nz = grid_dims + nx_l, ny_l, nz_l = grid_dims .+ 2 # include ghost nodes + nx_g, ny_g, nz_g = grid_dims.*dims + bwidth = (8, 4, 4) + + # preprocessing + dx, dy, dz = lx_g / nx_g, ly_g / ny_g, lz_g / nz_g + @info "grid spacing: dx = $dx, dy = $dy, dz = $dz" + + # take into account ghost nodes to simplify model setup + xv_l = LinRange(ox_l - dx, ox_l + lx_l + dx, nx_l + 1) + yv_l = LinRange(oy_l - dy, oy_l + ly_l + dy, ny_l + 1) + zv_l = LinRange(oz_l - dz, oz_l + lz_l + dz, nz_l + 1) + xc_l, yc_l, zc_l = av1.((xv_l, yv_l, zv_l)) + + # PT params + r = 0.7 + lτ_re_mech = 0.5min(lx_g, ly_g, lz_g) / π + vdτ = min(dx, dy, dz) / sqrt(5.1) + θ_dτ = lτ_re_mech * (r + 4 / 3) / vdτ + nudτ = vdτ * lτ_re_mech + dτ_r = 1.0 / (θ_dτ + 1.0) + + # fields allocation + # level set + Ψ = ( + not_solid=scalar_field(Float64, nx_l + 1, ny_l + 1, nz_l + 1), + not_air =scalar_field(Float64, nx_l + 1, ny_l + 1, nz_l + 1), + ) + wt = ( + not_solid=volfrac_field(Float64, nx_l, ny_l, nz_l), + not_air =volfrac_field(Float64, nx_l, ny_l, nz_l), + ) + # mechanics (stress fields include ghost nodes due to redundant computations on distributed staggered grid) + Pr = scalar_field(Float64, nx_l, ny_l, nz_l) + τ = tensor_field(Float64, nx_l, ny_l, nz_l) + V = vector_field(Float64, nx_l, ny_l, nz_l) + ηs = scalar_field(Float64, nx_l, ny_l, nz_l) + # residuals + Res = ( + Pr=scalar_field(Float64, nx, ny, nz), + V =vector_field(Float64, nx, ny, nz) + ) + # visualisation + Vmag = scalar_field(Float64, nx, ny, nz) + τII = scalar_field(Float64, nx, ny, nz) + Ψav = ( + not_air=scalar_field(Float64,nx,ny,nz), + not_solid=scalar_field(Float64,nx,ny,nz), + ) + + # initialisation + for comp in eachindex(V) fill!(V[comp], 0.0) end + for comp in eachindex(τ) fill!(τ[comp], 0.0) end + fill!(Pr, 0.0) + fill!(ηs, 1.0) + + # compute level sets from DEM data + dem_grid = (dem_data.x, dem_data.y) + Ψ_grid = (xv_l, yv_l, zv_l) + + @info "computing the level set for the ice surface" + compute_level_set_from_dem!(Ψ.not_air, to_device(dem_data.surface), dem_grid, Ψ_grid) + + @info "computing the level set for the bedrock surface" + compute_level_set_from_dem!(Ψ.not_solid, to_device(dem_data.bed), dem_grid, Ψ_grid) + TinyKernels.device_synchronize(get_device()) + # invert level set to set what's below the DEM surface as inside + @. Ψ.not_solid *= -1.0 + TinyKernels.device_synchronize(get_device()) + + @info "computing volume fractions from level sets" + for phase in eachindex(Ψ) + compute_volume_fractions_from_level_set!(wt[phase], Ψ[phase], dx, dy, dz) + end + + @info "iteration loop" + for iter in 1:500 + @info " iter: $iter" + update_σ!(Pr, τ, V, ηs, wt, r, θ_dτ, dτ_r, dx, dy, dz) + update_V!(V, Pr, τ, ηs, wt, nudτ, ρg, dx, dy, dz; bwidth) + end + + @info "saving results on disk" + dim_g = (nx_g, ny_g, nz_g) + update_vis_fields!(Vmag, τII, Ψav, V, τ, Ψ) + out_h5 = "results.h5" + ndrange = CartesianIndices(((coords[1]*nx+1):(coords[1]+1)*nx, + (coords[2]*ny+1):(coords[2]+1)*ny, + (coords[3]*nz+1):(coords[3]+1)*nz)) + fields = Dict("LS_ice" => Ψav.not_air, "LS_bed" => Ψav.not_solid, "Vmag" => Vmag, "TII" => τII, "Pr" => inn(Pr)) + @info "saving HDF5 file" + write_h5(out_h5, fields, dim_g, ndrange, comm_cart, MPI.Info()) + + @info "saving XDMF file..." + (me == 0) && write_xdmf("results.xdmf3", out_h5, fields, (xc_l[2], yc_l[2], zc_l[2]), (dx, dy, dz), dim_g) + + return +end + +@tiny function _kernel_update_vis_fields!(Vmag, τII, Ψav, V, τ, Ψ) + ix, iy, iz = @indices + @inline isin(A) = checkbounds(Bool, A, ix, iy, iz) + @inbounds if isin(Ψ.not_air) + pav = 0.0 + for idz = 1:2, idy = 1:2, idx = 1:2 + pav += Ψ.not_air[ix+idx, iy+idy, iz+idz] + end + Ψav.not_air[ix, iy, iz] = pav / 8 + end + @inbounds if isin(Ψ.not_solid) + pav = 0.0 + for idz = 1:2, idy = 1:2, idx = 1:2 + pav += Ψ.not_solid[ix+idx, iy+idy, iz+idz] + end + Ψav.not_solid[ix, iy, iz] = pav / 8 + end + @inbounds if isin(Vmag) + vxc = 0.5 * (V.x[ix+1, iy+1, iz+1] + V.x[ix+2, iy+1, iz+1]) + vyc = 0.5 * (V.y[ix+1, iy+1, iz+1] + V.y[ix+1, iy+2, iz+1]) + vzc = 0.5 * (V.z[ix+1, iy+1, iz+1] + V.z[ix+1, iy+1, iz+2]) + Vmag[ix, iy, iz] = sqrt(vxc^2 + vyc^2 + vzc^2) + end + @inbounds if isin(τII) + τxyc = 0.25 * (τ.xy[ix, iy, iz] + τ.xy[ix+1, iy, iz] + τ.xy[ix, iy+1, iz] + τ.xy[ix+1, iy+1, iz]) + τxzc = 0.25 * (τ.xz[ix, iy, iz] + τ.xz[ix+1, iy, iz] + τ.xz[ix, iy, iz+1] + τ.xz[ix+1, iy, iz+1]) + τyzc = 0.25 * (τ.yz[ix, iy, iz] + τ.yz[ix, iy+1, iz] + τ.yz[ix, iy, iz+1] + τ.yz[ix, iy+1, iz+1]) + τII[ix, iy, iz] = sqrt(0.5 * (τ.xx[ix+1, iy+1, iz+1]^2 + τ.yy[ix+1, iy+1, iz+1]^2 + τ.zz[ix+1, iy+1, iz+1]^2) + τxyc^2 + τxzc^2 + τyzc^2) + end + return +end + +const _update_vis_fields! = _kernel_update_vis_fields!(get_device()) + +function update_vis_fields!(Vmag, τII, Ψav, V, τ, Ψ) + wait(_update_vis_fields!(Vmag, τII, Ψav, V, τ, Ψ; ndrange=axes(Vmag))) + return +end + +grid_dims = (1000, 1000, 100) +grid_dims_igg = grid_dims .+ 2 + +# init MPI and IGG +MPI.Init() +me, dims, nprocs, coords, comm_cart = init_global_grid(grid_dims_igg...; init_MPI=false) +dims = Tuple(dims) +coords = Tuple(coords) +grid = (me,dims,nprocs,coords,comm_cart) + +main(grid_dims,grid) + +MPI.Barrier(comm_cart) +# finalize_global_grid(; finalize_MPI=false) +# MPI.Barrier(comm_cart) +MPI.Finalize() \ No newline at end of file diff --git a/scripts3D_variational/volume_fraction_kernels.jl b/scripts3D_variational/volume_fraction_kernels.jl new file mode 100644 index 00000000..39df9f54 --- /dev/null +++ b/scripts3D_variational/volume_fraction_kernels.jl @@ -0,0 +1,58 @@ +@tiny function _kernel_compute_volume_fractions_from_level_set!(wt,Ψ,dx,dy,dz) + ix,iy,iz = @indices + cell = Rect(Vec(0.0,0.0,0.0), Vec(dx,dy,dz)) + ω = GeometryBasics.volume(cell) + @inline Ψ_ax(dix,diy,diz) = 0.5*(Ψ[ix+dix,iy+diy,iz+diz]+Ψ[ix+dix+1,iy+diy,iz+diz]) + @inline Ψ_ay(dix,diy,diz) = 0.5*(Ψ[ix+dix,iy+diy,iz+diz]+Ψ[ix+dix,iy+diy+1,iz+diz]) + @inline Ψ_az(dix,diy,diz) = 0.5*(Ψ[ix+dix,iy+diy,iz+diz]+Ψ[ix+dix,iy+diy,iz+diz+1]) + @inline Ψ_axy(dix,diy,diz) = 0.25*(Ψ[ix+dix ,iy+diy ,iz+diz+1]+Ψ[ix+dix+1,iy+diy ,iz+diz+1]+ + Ψ[ix+dix ,iy+diy+1,iz+diz+1]+Ψ[ix+dix+1,iy+diy+1,iz+diz+1]) + @inline Ψ_axz(dix,diy,diz) = 0.25*(Ψ[ix+dix ,iy+diy+1,iz+diz ]+Ψ[ix+dix+1,iy+diy+1,iz+diz ]+ + Ψ[ix+dix ,iy+diy+1,iz+diz+1]+Ψ[ix+dix+1,iy+diy+1,iz+diz+1]) + @inline Ψ_ayz(dix,diy,diz) = 0.25*(Ψ[ix+dix+1,iy+diy ,iz+diz ]+Ψ[ix+dix+1,iy+diy+1,iz+diz ]+ + Ψ[ix+dix+1,iy+diy ,iz+diz+1]+Ψ[ix+dix+1,iy+diy+1,iz+diz+1]) + @inline isin(A) = checkbounds(Bool,A,ix,iy,iz) + # cell centers + @inbounds if isin(wt.c) + Ψs = Vec{8}(Ψ[ix,iy,iz ],Ψ[ix+1,iy,iz ],Ψ[ix,iy+1,iz ],Ψ[ix+1,iy+1,iz ], + Ψ[ix,iy,iz+1],Ψ[ix+1,iy,iz+1],Ψ[ix,iy+1,iz+1],Ψ[ix+1,iy+1,iz+1]) + wt.c[ix,iy,iz] = volfrac(cell,Ψs)/ω + end + # x faces + @inbounds if isin(wt.x) + Ψs = Vec{8}(Ψ_ax(0,0,0),Ψ_ax(1,0,0),Ψ_ax(0,1,0),Ψ_ax(1,1,0), + Ψ_ax(0,0,1),Ψ_ax(1,0,1),Ψ_ax(0,1,1),Ψ_ax(1,1,1)) + wt.x[ix,iy,iz] = volfrac(cell,Ψs)/ω + end + # y faces + @inbounds if isin(wt.y) + Ψs = Vec{8}(Ψ_ay(0,0,0),Ψ_ay(1,0,0),Ψ_ay(0,1,0),Ψ_ay(1,1,0), + Ψ_ay(0,0,1),Ψ_ay(1,0,1),Ψ_ay(0,1,1),Ψ_ay(1,1,1)) + wt.y[ix,iy,iz] = volfrac(cell,Ψs)/ω + end + # z faces + @inbounds if isin(wt.z) + Ψs = Vec{8}(Ψ_az(0,0,0),Ψ_az(1,0,0),Ψ_az(0,1,0),Ψ_az(1,1,0), + Ψ_az(0,0,1),Ψ_az(1,0,1),Ψ_az(0,1,1),Ψ_az(1,1,1)) + wt.z[ix,iy,iz] = volfrac(cell,Ψs)/ω + end + # xy edges + @inbounds if isin(wt.xy) + Ψs = Vec{8}(Ψ_axy(0,0,0),Ψ_axy(1,0,0),Ψ_axy(0,1,0),Ψ_axy(1,1,0), + Ψ_axy(0,0,1),Ψ_axy(1,0,1),Ψ_axy(0,1,1),Ψ_axy(1,1,1)) + wt.xy[ix,iy,iz] = volfrac(cell,Ψs)/ω + end + # xz edges + @inbounds if isin(wt.xz) + Ψs = Vec{8}(Ψ_axz(0,0,0),Ψ_axz(1,1,0),Ψ_axz(0,1,0),Ψ_axz(1,1,0), + Ψ_axz(0,0,1),Ψ_axz(1,1,1),Ψ_axz(0,1,1),Ψ_axz(1,1,1)) + wt.xz[ix,iy,iz] = volfrac(cell,Ψs)/ω + end + # yz edges + @inbounds if isin(wt.yz) + Ψs = Ψs = Vec{8}(Ψ_ayz(0,0,0),Ψ_ayz(1,1,0),Ψ_ayz(0,1,0),Ψ_ayz(1,1,0), + Ψ_ayz(0,0,1),Ψ_ayz(1,1,1),Ψ_ayz(0,1,1),Ψ_ayz(1,1,1)) + wt.yz[ix,iy,iz] = volfrac(cell,Ψs)/ω + end + return +end \ No newline at end of file diff --git a/scripts3D_variational/volume_fractions.jl b/scripts3D_variational/volume_fractions.jl new file mode 100644 index 00000000..4ef6a96d --- /dev/null +++ b/scripts3D_variational/volume_fractions.jl @@ -0,0 +1,128 @@ +@inline perturb(ϕ) = abs(ϕ) > 1e-20 ? ϕ : (ϕ > 0 ? 1e-20 : -1e-20) + +@inline trivol(v1,v2,v3) = 0.5*abs(cross(v3-v1,v2-v1)) + +function volfrac(tri,ϕ::Vec3{T})::T where T + v1,v2,v3 = tri + if ϕ[1] < 0 && ϕ[2] < 0 && ϕ[3] < 0 # --- + return trivol(v1,v2,v3) + elseif ϕ[1] > 0 && ϕ[2] > 0 && ϕ[3] > 0 # +++ + return 0.0 + end + @inline vij(i,j) = tri[j]*(ϕ[i]/(ϕ[i]-ϕ[j])) - tri[i]*(ϕ[j]/(ϕ[i]-ϕ[j])) + v12,v13,v23 = vij(1,2),vij(1,3),vij(2,3) + if ϕ[1] < 0 + if ϕ[2] < 0 + trivol(v1,v23,v13) + trivol(v1,v2,v23) # --+ + else + if ϕ[3] < 0 + trivol(v3,v12,v23) + trivol(v3,v1,v12) # -+- + else + trivol(v1,v12,v13) # -++ + end + end + else + if ϕ[2] < 0 + if ϕ[3] < 0 + trivol(v2,v13,v12) + trivol(v2,v3,v13) # +-- + else + trivol(v12,v2,v23) # +-+ + end + else + trivol(v13,v23,v3) # ++- + end + end +end + +function volfrac(rect::Rect2{T},ϕ::Vec4{T}) where T + or,ws = origin(rect), widths(rect) + v1,v2,v3,v4 = or,or+Vec(ws[1],0.0),or+ws,or+Vec(0.0,ws[2]) + ϕ1,ϕ2,ϕ3,ϕ4 = perturb.(ϕ) + return volfrac(Vec(v1,v2,v3),Vec3{T}(ϕ1,ϕ2,ϕ3)) + + volfrac(Vec(v1,v3,v4),Vec3{T}(ϕ1,ϕ3,ϕ4)) +end + +@inline tetvol(v1,v2,v3,v4) = abs(det([v2-v1 v3-v1 v4-v1]))/6.0 + +function volfrac(tet,ϕ::Vec4) + v1,v2,v3,v4 = tet + @inline vij(i,j) = tet[j]*(ϕ[i]/(ϕ[i]-ϕ[j])) - tet[i]*(ϕ[j]/(ϕ[i]-ϕ[j])) + nneg = count(ϕ.<0) + if nneg == 0 # ++++ + return 0.0 + elseif nneg == 1 # -+++ + if ϕ[1] < 0 + return tetvol(v1,vij(1,2),vij(1,3),vij(1,4)) + elseif ϕ[2] < 0 + return tetvol(v2,vij(2,1),vij(2,3),vij(2,4)) + elseif ϕ[3] < 0 + return tetvol(v3,vij(3,1),vij(3,2),vij(3,4)) + else # ϕ[4] < 0 + return tetvol(v4,vij(4,1),vij(4,2),vij(4,3)) + end + elseif nneg == 2 # --++ + if ϕ[1] < 0 && ϕ[2] < 0 + return tetvol(v1 ,v2 ,vij(1,3),vij(2,4)) + + tetvol(vij(2,3),v2 ,vij(1,3),vij(2,4)) + + tetvol(v1 ,vij(1,4),vij(1,3),vij(2,4)) + elseif ϕ[1] < 0 && ϕ[3] < 0 + return tetvol(v1 ,v3 ,vij(1,4),vij(3,2)) + + tetvol(vij(3,4),v3 ,vij(1,4),vij(3,2)) + + tetvol(v1 ,vij(1,2),vij(1,4),vij(3,2)) + elseif ϕ[1] < 0 && ϕ[4] < 0 + return tetvol(v1 ,v4 ,vij(1,2),vij(4,3)) + + tetvol(vij(4,2),v4 ,vij(1,2),vij(4,3)) + + tetvol(v1 ,vij(1,3),vij(1,2),vij(4,3)) + elseif ϕ[2] < 0 && ϕ[3] < 0 + return tetvol(v3 ,v2 ,vij(3,1),vij(2,4)) + + tetvol(vij(2,1),v2 ,vij(3,1),vij(2,4)) + + tetvol(v3 ,vij(3,4),vij(3,1),vij(2,4)) + elseif ϕ[2] < 0 && ϕ[4] < 0 + return tetvol(v4 ,v2 ,vij(4,1),vij(2,3)) + + tetvol(vij(2,1),v2 ,vij(4,1),vij(2,3)) + + tetvol(v4 ,vij(4,3),vij(4,1),vij(2,3)) + else # ϕ[3] < 0 && ϕ[4] < 0 + return tetvol(v3 ,v4 ,vij(3,1),vij(4,2)) + + tetvol(vij(4,1),v4 ,vij(3,1),vij(4,2)) + + tetvol(v3 ,vij(3,2),vij(3,1),vij(4,2)) + end + elseif nneg == 3 # ---+ + vol_tot = tetvol(v1,v2,v3,v4) + if ϕ[1] >= 0 + return vol_tot - tetvol(v1,vij(1,2),vij(1,3),vij(1,4)) + elseif ϕ[2] >= 0 + return vol_tot - tetvol(v2,vij(2,1),vij(2,3),vij(2,4)) + elseif ϕ[3] >= 0 + return vol_tot - tetvol(v3,vij(3,1),vij(3,2),vij(3,4)) + else # ϕ[4] >= 0 + return vol_tot - tetvol(v4,vij(4,1),vij(4,2),vij(4,3)) + end + else # ---- + return tetvol(v1,v2,v3,v4) + end +end + +function volfrac(rect::Rect3,ϕ::Vec{8}) + or,ws = origin(rect), widths(rect) + v000,v001,v100,v101 = or ,or+Vec(ws[1],0.0,0.0 ),or+Vec(0.0,ws[2],0.0 ),or+Vec(ws[1],ws[2],0.0 ) + v010,v011,v110,v111 = or+Vec(0.0,0.0,ws[3]),or+Vec(ws[1],0.0,ws[3]),or+Vec(0.0,ws[2],ws[3]),or+Vec(ws[1],ws[2],ws[3]) + ϕ = perturb.(ϕ) + return volfrac(Vec(v000,v100,v010,v001),Vec(ϕ[1],ϕ[5],ϕ[3],ϕ[2])) + + volfrac(Vec(v110,v100,v010,v111),Vec(ϕ[7],ϕ[5],ϕ[3],ϕ[7])) + + volfrac(Vec(v101,v100,v111,v001),Vec(ϕ[6],ϕ[5],ϕ[7],ϕ[2])) + + volfrac(Vec(v011,v111,v010,v001),Vec(ϕ[4],ϕ[7],ϕ[3],ϕ[2])) + + volfrac(Vec(v111,v100,v010,v001),Vec(ϕ[7],ϕ[5],ϕ[3],ϕ[2])) +end + +include("volume_fraction_kernels.jl") + +const _compute_volume_fractions_from_level_set! = _kernel_compute_volume_fractions_from_level_set!(get_device()) + +function compute_volume_fractions_from_level_set!(wt,Ψ,dx,dy,dz) + wt_inn = (;c=wt.c,x=inn_x(wt.x),y=inn_y(wt.y),z=inn_z(wt.z),xy=wt.xy,xz=wt.xz,yz=wt.yz) + wait(_compute_volume_fractions_from_level_set!(wt_inn,Ψ,dx,dy,dz;ndrange=axes(Ψ))) + bc_x_neumann!(0.0,wt.x) + bc_y_neumann!(0.0,wt.y) + bc_z_neumann!(0.0,wt.z) + return +end \ No newline at end of file diff --git a/scripts3D_variational_TM/bc_kernels.jl b/scripts3D_variational_TM/bc_kernels.jl new file mode 100644 index 00000000..5d805bee --- /dev/null +++ b/scripts3D_variational_TM/bc_kernels.jl @@ -0,0 +1,65 @@ +@tiny function _kernel_bc_x_dirichlet!(val,arrays...) + iy,iz = @indices + for A in arrays + if iy ∈ axes(A,2) && iz ∈ axes(A,3) + @inbounds A[1 ,iy,iz] = val + @inbounds A[end,iy,iz] = val + end + end + return +end + +@tiny function _kernel_bc_y_dirichlet!(val, arrays...) + ix,iz = @indices + for A in arrays + if ix ∈ axes(A,1) && iz ∈ axes(A,3) + @inbounds A[ix,1 ,iz] = val + @inbounds A[ix,end,iz] = val + end + end + return +end + +@tiny function _kernel_bc_z_dirichlet!(val, arrays...) + ix,iy = @indices + for A in arrays + if ix ∈ axes(A,1) && iy ∈ axes(A,2) + @inbounds A[ix,iy,1 ] = val + @inbounds A[ix,iy,end] = val + end + end + return +end + +@tiny function _kernel_bc_x_neumann!(val, arrays...) + iy,iz = @indices + for A in arrays + if iy ∈ axes(A,2) && iz ∈ axes(A,3) + @inbounds A[1 ,iy,iz] = A[2 ,iy,iz] + val + @inbounds A[end,iy,iz] = A[end-1,iy,iz] + val + end + end + return +end + +@tiny function _kernel_bc_y_neumann!(val, arrays...) + ix,iz = @indices + for A in arrays + if ix ∈ axes(A,1) && iz ∈ axes(A,3) + @inbounds A[ix,1 ,iz] = A[ix,2 ,iz] + val + @inbounds A[ix,end,iz] = A[ix,end-1,iz] + val + end + end + return +end + +@tiny function _kernel_bc_z_neumann!(val, arrays...) + ix,iy = @indices + for A in arrays + if ix ∈ axes(A,1) && iy ∈ axes(A,2) + @inbounds A[ix,iy,1 ] = A[ix,iy,2 ] + val + @inbounds A[ix,iy,end] = A[ix,iy,end-1] + val + end + end + return +end \ No newline at end of file diff --git a/scripts3D_variational_TM/bcs.jl b/scripts3D_variational_TM/bcs.jl new file mode 100644 index 00000000..a592d30a --- /dev/null +++ b/scripts3D_variational_TM/bcs.jl @@ -0,0 +1,48 @@ +include("bc_kernels.jl") + +const _bc_x_dirichlet! = _kernel_bc_x_dirichlet!(get_device()) +const _bc_y_dirichlet! = _kernel_bc_y_dirichlet!(get_device()) +const _bc_z_dirichlet! = _kernel_bc_z_dirichlet!(get_device()) + +const _bc_x_neumann! = _kernel_bc_x_neumann!(get_device()) +const _bc_y_neumann! = _kernel_bc_y_neumann!(get_device()) +const _bc_z_neumann! = _kernel_bc_z_neumann!(get_device()) + +for fname in (:bx_x_dirichlet!,:bc_x_neumann!) + @eval begin + function $fname(val,arrays...) + ax = axes(arrays[1])[[2,3]] + for A in arrays[2:end] + ax = union.(ax,axes(A)[[2,3]]) + end + wait($(Symbol(:_,fname))(val,arrays...;ndrange=ax)) + return + end + end +end + +for fname in (:bx_y_dirichlet!,:bc_y_neumann!) + @eval begin + function $fname(val,arrays...) + ax = axes(arrays[1])[[1,3]] + for A in arrays[2:end] + ax = union.(ax,axes(A)[[1,3]]) + end + wait($(Symbol(:_,fname))(val,arrays...;ndrange=ax)) + return + end + end +end + +for fname in (:bx_z_dirichlet!,:bc_z_neumann!) + @eval begin + function $fname(val,arrays...) + ax = axes(arrays[1])[[1,2]] + for A in arrays[2:end] + ax = union.(ax,axes(A)[[1,2]]) + end + wait($(Symbol(:_,fname))(val,arrays...;ndrange=ax)) + return + end + end +end \ No newline at end of file diff --git a/scripts3D_variational_TM/data_io.jl b/scripts3D_variational_TM/data_io.jl new file mode 100644 index 00000000..7e6ef484 --- /dev/null +++ b/scripts3D_variational_TM/data_io.jl @@ -0,0 +1,105 @@ +function write_h5(path,fields,dim_g,I,args...) + if !HDF5.has_parallel() && (length(args)>0) + @warn("HDF5 has no parallel support.") + end + h5open(path, "w", args...) do io + for (name,field) ∈ fields + dset = create_dataset(io, "/$name", datatype(eltype(field)), dataspace(dim_g)) + dset[I.indices...] = Array(field) + end + end + return +end + +function write_xdmf(path,h5_names,fields,origin,spacing,dim_g,timesteps) + xdoc = XMLDocument() + xroot = create_root(xdoc, "Xdmf") + set_attribute(xroot, "Version","3.0") + + xdomain = new_child(xroot, "Domain") + xcollection = new_child(xdomain, "Grid") + set_attribute(xcollection, "GridType","Collection") + set_attribute(xcollection, "CollectionType","Temporal") + + for (it,tt) ∈ enumerate(timesteps) + xgrid = new_child(xcollection, "Grid") + set_attribute(xgrid, "GridType","Uniform") + xtopo = new_child(xgrid, "Topology") + set_attribute(xtopo, "TopologyType", "3DCoRectMesh") + set_attribute(xtopo, "Dimensions", join(reverse(dim_g).+1,' ')) + + xtime = new_child(xgrid, "Time") + set_attribute(xtime, "Value", "$tt") + + xgeom = new_child(xgrid, "Geometry") + set_attribute(xgeom, "GeometryType", "ORIGIN_DXDYDZ") + + xorig = new_child(xgeom, "DataItem") + set_attribute(xorig, "Format", "XML") + set_attribute(xorig, "NumberType", "Float") + set_attribute(xorig, "Dimensions", "$(length(dim_g)) ") + add_text(xorig, join(reverse(origin), ' ')) + + xdr = new_child(xgeom, "DataItem") + set_attribute(xdr, "Format", "XML") + set_attribute(xdr, "NumberType", "Float") + set_attribute(xdr, "Dimensions", "$(length(dim_g))") + add_text(xdr, join(reverse(spacing), ' ')) + + h5_path = h5_names[it] + for (name,_) ∈ fields + create_xdmf_attribute(xgrid,h5_path,name,dim_g) + end + end + + save_file(xdoc, path) + return +end + +function write_xdmf(path,h5_path,fields,origin,spacing,dim_g) + xdoc = XMLDocument() + xroot = create_root(xdoc, "Xdmf") + set_attribute(xroot, "Version","3.0") + + xdomain = new_child(xroot, "Domain") + xgrid = new_child(xdomain, "Grid") + set_attribute(xgrid, "GridType","Uniform") + xtopo = new_child(xgrid, "Topology") + set_attribute(xtopo, "TopologyType", "3DCoRectMesh") + set_attribute(xtopo, "Dimensions", join(reverse(dim_g).+1,' ')) + + xgeom = new_child(xgrid, "Geometry") + set_attribute(xgeom, "GeometryType", "ORIGIN_DXDYDZ") + + xorig = new_child(xgeom, "DataItem") + set_attribute(xorig, "Format", "XML") + set_attribute(xorig, "NumberType", "Float") + set_attribute(xorig, "Dimensions", "$(length(dim_g)) ") + add_text(xorig, join(reverse(origin), ' ')) + + xdr = new_child(xgeom, "DataItem") + set_attribute(xdr, "Format", "XML") + set_attribute(xdr, "NumberType", "Float") + set_attribute(xdr, "Dimensions", "$(length(dim_g))") + add_text(xdr, join(reverse(spacing), ' ')) + + for (name,_) ∈ fields + create_xdmf_attribute(xgrid,h5_path,name,dim_g) + end + save_file(xdoc, path) + return +end + +function create_xdmf_attribute(xgrid,h5_path,name,dim_g) + # TODO: solve type and precision + xattr = new_child(xgrid, "Attribute") + set_attribute(xattr, "Name", name) + set_attribute(xattr, "Center", "Cell") + xdata = new_child(xattr, "DataItem") + set_attribute(xdata, "Format", "HDF") + set_attribute(xdata, "NumberType", "Float") + set_attribute(xdata, "Precision", "8") + set_attribute(xdata, "Dimensions", join(reverse(dim_g), ' ')) + add_text(xdata, "$(h5_path):/$name") + return xattr +end diff --git a/scripts3D_variational_TM/dual_contouring.jl b/scripts3D_variational_TM/dual_contouring.jl new file mode 100644 index 00000000..cba484c0 --- /dev/null +++ b/scripts3D_variational_TM/dual_contouring.jl @@ -0,0 +1,139 @@ +using GLMakie +using GeometryBasics +using StaticArrays +using LinearAlgebra + +function dual_contour(Ψ::AbstractArray{T,3},xc,yc,zc) where T + vertices = Point{3,Float64}[] + tris = TriangleFace{Int}[] + vert_idx = Array{Int,3}(undef,size(Ψ).-1) + # insert vertices + for iz in 1:size(Ψ,3)-1, iy in 1:size(Ψ,2)-1, ix in 1:size(Ψ,1)-1 + S = MArray{NTuple{3,2},T}(undef) + for idz in 0:1,idy in 0:1,idx in 0:1 + S[idx+1,idy+1,idz+1] = Ψ[ix+idx,iy+idy,iz+idz] + end + change_sign = !(all(S .> 0) || all(S .< 0)) + if change_sign + push!(vertices,Point(xc[ix],yc[iy],zc[iz])) + vert_idx[ix,iy,iz] = length(vertices) + end + end + # insert triangles + for iz in 1:size(Ψ,3)-1, iy in 1:size(Ψ,2)-1, ix in 1:size(Ψ,1)-1 + if Ψ[ix,iy,iz]*Ψ[ix+1,iy,iz] <= 0 + if iy < 2 || iz < 2 + continue + end + i1 = vert_idx[ix,iy-1,iz-1] + i2 = vert_idx[ix,iy ,iz-1] + i3 = vert_idx[ix,iy ,iz ] + i4 = vert_idx[ix,iy-1,iz ] + push!(tris,TriangleFace(i1,i2,i3),TriangleFace(i1,i3,i4)) + end + if Ψ[ix,iy,iz]*Ψ[ix,iy+1,iz] <= 0 + if ix < 2 || iz < 2 + continue + end + i1 = vert_idx[ix-1,iy,iz-1] + i2 = vert_idx[ix ,iy,iz-1] + i3 = vert_idx[ix ,iy,iz ] + i4 = vert_idx[ix-1,iy,iz ] + push!(tris,TriangleFace(i1,i2,i3),TriangleFace(i1,i3,i4)) + end + if Ψ[ix,iy,iz]*Ψ[ix,iy,iz+1] <= 0 + if ix < 2 || iy < 2 + continue + end + i1 = vert_idx[ix-1,iy-1,iz] + i2 = vert_idx[ix ,iy-1,iz] + i3 = vert_idx[ix ,iy ,iz] + i4 = vert_idx[ix-1,iy ,iz] + push!(tris,TriangleFace(i1,i2,i3),TriangleFace(i1,i3,i4)) + end + end + return vertices, tris +end + +# Coefficients of a cubic Hermite spline in 1D +function hspline_coeffs(p::StaticVector{2},∇p::StaticVector{2}) + return SVector( + p[1], ∇p[1], + 3*(p[2] - p[1]) - 2*∇p[1] - ∇p[2], + 2*(p[1] - p[2]) + ∇p[1] + ∇p[2] + ) +end + +function hspline_coeffs(p::StaticMatrix{2},∇px::StaticMatrix{2},∇py::StaticMatrix{2},∇pxy::StaticMatrix{2}) + +end + +@inline function eval_poly(a::StaticVector{4},x) + return a[1] + (a[2] + (a[3] + a[4]*x)*x)*x +end + +@inline function eval_poly(a::StaticMatrix{4},x,y) + return eval_poly( + SVector(eval_poly(a[:,1],x), + eval_poly(a[:,2],x), + eval_poly(a[:,3],x), + eval_poly(a[:,4],x)), + y + ) +end + +function hspline_interp!(p_i,x_i,xs,ps;bcs=(nothing,nothing)) + dx = step(xs) + for (ip,x) in enumerate(x_i) + xdiv = (x-xs[1])/dx + ix = clamp(floor(Int,xdiv) + 1, 1, length(xs)-1) + t = xdiv - (ix-1) + p = SVector(ps[ix], ps[ix+1]) + m1 = ix > firstindex(xs) ? (ps[ix+1] - ps[ix-1]) / 2 : isnothing(bcs[1]) ? ps[2 ] - ps[1 ] : bcs[1] * dx + m2 = ix < lastindex(xs) - 1 ? (ps[ix+2] - ps[ix ]) / 2 : isnothing(bcs[2]) ? ps[end] - ps[end-1] : bcs[2] * dx + m = SVector(m1, m2) + p_i[ip] = hspline_interp(p, m, t) + end + return +end + +function test_interp() + xs = LinRange(-π,π,11) + qs = sin.(xs) + x_i = LinRange(-1.1π,1.1π,101) + q_i = similar(x_i) + hspline_interp!(q_i,x_i,xs,qs;bcs=(-1,-1)) + fig = Figure() + ax = Axis(fig[1,1];aspect=DataAspect()) + lines!(ax,x_i,q_i) + scatter!(ax,xs,qs) + display(fig) + return +end + +test_interp() + +function main() + println("Hello world!") + Ψ = Array{Float64}(undef,100,100,100) + xv = LinRange(-2,2,size(Ψ,1)) + yv = LinRange(-2,2,size(Ψ,2)) + zv = LinRange(-2,2,size(Ψ,3)) + xc = 0.5.*(xv[1:end-1].+xv[2:end]) + yc = 0.5.*(yv[1:end-1].+yv[2:end]) + zc = 0.5.*(zv[1:end-1].+zv[2:end]) + for iz in axes(Ψ,3), iy in axes(Ψ,2), ix in axes(Ψ,1) + Ψ[ix,iy,iz] = sqrt(xv[ix]^2 + yv[iy]^2 + zv[iz]^2) - 1.5 + end + @time verts,tris = dual_contour(Ψ,xc,yc,zc) + fig = Figure() + ax = Axis3(fig[1,1];aspect=:data,viewmode=:fitzoom) + limits!(ax,extrema(xv),extrema(yv),extrema(zv)) + isosurface = GeometryBasics.Mesh(verts,tris) + mesh!(ax,isosurface) + # wireframe!(ax,isosurface;color=:black) + display(fig) + return +end + +main() \ No newline at end of file diff --git a/scripts3D_variational_TM/hide_communication.jl b/scripts3D_variational_TM/hide_communication.jl new file mode 100644 index 00000000..0a1e85e0 --- /dev/null +++ b/scripts3D_variational_TM/hide_communication.jl @@ -0,0 +1,33 @@ +@inline __subrange(nr,bw,I,::Val{1}) = 1:bw[I] +@inline __subrange(nr,bw,I,::Val{2}) = (size(nr,I)-bw[I]+1):size(nr,I) +@inline __subrange(nr,bw,I,::Val{3}) = (bw[I]+1):(size(nr,I)-bw[I]) + +@inline split_ndrange(ndrange,ndwidth) = split_ndrange(CartesianIndices(ndrange),ndwidth) + +function split_ndrange(ndrange::CartesianIndices{N},ndwidth::NTuple{N,<:Integer}) where N + @assert all(size(ndrange) .> ndwidth.*2) + @inline ndsubrange(I,::Val{J}) where J = ntuple(Val(N)) do idim + if idim < I + 1:size(ndrange,idim) + elseif idim == I + __subrange(ndrange,ndwidth,idim,Val(J)) + else + __subrange(ndrange,ndwidth,idim,Val(3)) + end + end + ndinner = ntuple(idim -> __subrange(ndrange,ndwidth,idim,Val(3)), Val(N)) + return ntuple(Val(2N+1)) do i + if i == 2N+1 + ndrange[ndinner...] + else + idim,idir = divrem(i-1,2) .+ 1 + ndrange[ndsubrange(idim,Val(idir))...] + end + end +end + +function hide_comm(f,ranges) + ie = f(ranges[end]) + oe = ntuple(i->f(ranges[i]), length(ranges)-1) + return ie, oe +end \ No newline at end of file diff --git a/scripts3D_variational_TM/level_set_kernels.jl b/scripts3D_variational_TM/level_set_kernels.jl new file mode 100644 index 00000000..cd5a68d2 --- /dev/null +++ b/scripts3D_variational_TM/level_set_kernels.jl @@ -0,0 +1,62 @@ +@tiny function _kernel_init_level_set!(Ψ,dem,dem_grid,Ψ_grid,cutoff,R) + ix,iy,iz = @indices + x,y,z = Ψ_grid[1][ix],Ψ_grid[2][iy],Ψ_grid[3][iz] + P = R*Point3(x,y,z) + ud,sgn = sd_dem(P,cutoff,dem,dem_grid) + @inbounds Ψ[ix,iy,iz] = ud*sgn + return +end + +@tiny function _kernel_compute_dΨ_dt!(dΨ_dt,Ψ,Ψ0,dx,dy,dz) + ix,iy,iz = @indices + @inline changes_sign_x(disp) = @inbounds Ψ0[ix,iy,iz]*Ψ0[ix+disp,iy,iz] < 0 + @inline changes_sign_y(disp) = @inbounds Ψ0[ix,iy,iz]*Ψ0[ix,iy+disp,iz] < 0 + @inline changes_sign_z(disp) = @inbounds Ψ0[ix,iy,iz]*Ψ0[ix,iy,iz+disp] < 0 + ch_x, ch_y, ch_z = false, false, false + ∂Ψ0_∂x, ∂Ψ0_∂y, ∂Ψ0_∂z = 0.0, 0.0, 0.0 + if ix ∈ axes(Ψ0,1)[2:end-1] + ch_x = changes_sign_x(1) || changes_sign_x(-1) + @inbounds ∂Ψ0_∂x = (Ψ0[ix+1,iy,iz]-Ψ0[ix-1,iy,iz])/(2dx) + end + if iy ∈ axes(Ψ0,2)[2:end-1] + ch_y = changes_sign_y(1) || changes_sign_y(-1) + @inbounds ∂Ψ0_∂y = (Ψ0[ix,iy+1,iz]-Ψ0[ix,iy-1,iz])/(2dy) + end + if iz ∈ axes(Ψ0,3)[2:end-1] + ch_z = changes_sign_z(1) || changes_sign_z(-1) + @inbounds ∂Ψ0_∂z = (Ψ0[ix,iy,iz+1]-Ψ0[ix,iy,iz-1])/(2dz) + end + if (ch_x || ch_y || ch_z) + # local surface reconstruction + @inbounds D = Ψ0[ix,iy,iz]/sqrt(∂Ψ0_∂x^2 + ∂Ψ0_∂y^2 + ∂Ψ0_∂z^2) + @inbounds dΨ_dt[ix,iy,iz] = (D-sign(Ψ0[ix,iy,iz])*abs(Ψ[ix,iy,iz]))/dx + else + @inbounds begin + # Hamilton-Jacobi with Godunov flux + # direction '-' derivatives + ∂Ψ_∂x⁻ = ix > 1 ? (Ψ[ix,iy,iz] - Ψ[ix-1,iy,iz])/dx : 0.0 + ∂Ψ_∂y⁻ = iy > 1 ? (Ψ[ix,iy,iz] - Ψ[ix,iy-1,iz])/dy : 0.0 + ∂Ψ_∂z⁻ = iz > 1 ? (Ψ[ix,iy,iz] - Ψ[ix,iy,iz-1])/dy : 0.0 + # direction '+' derivatives + ∂Ψ_∂x⁺ = ix < size(Ψ,1) ? (Ψ[ix+1,iy,iz] - Ψ[ix,iy,iz]) / dx : 0.0 + ∂Ψ_∂y⁺ = iy < size(Ψ,2) ? (Ψ[ix,iy+1,iz] - Ψ[ix,iy,iz]) / dy : 0.0 + ∂Ψ_∂z⁺ = iz < size(Ψ,3) ? (Ψ[ix,iy,iz+1] - Ψ[ix,iy,iz]) / dz : 0.0 + # upwind fluxes + ∂Ψ_∂x2 = Ψ0[ix,iy,iz] >= 0 ? max(max(∂Ψ_∂x⁻,0)^2, min(∂Ψ_∂x⁺,0)^2) : + max(min(∂Ψ_∂x⁻,0)^2, max(∂Ψ_∂x⁺,0)^2) + ∂Ψ_∂y2 = Ψ0[ix,iy,iz] >= 0 ? max(max(∂Ψ_∂y⁻,0)^2, min(∂Ψ_∂y⁺,0)^2) : + max(min(∂Ψ_∂y⁻,0)^2, max(∂Ψ_∂y⁺,0)^2) + ∂Ψ_∂z2 = Ψ0[ix,iy,iz] >= 0 ? max(max(∂Ψ_∂z⁻,0)^2, min(∂Ψ_∂z⁺,0)^2) : + max(min(∂Ψ_∂z⁻,0)^2, max(∂Ψ_∂z⁺,0)^2) + # compute update + dΨ_dt[ix,iy,iz] = sign(Ψ0[ix,iy,iz])*(1.0-sqrt(∂Ψ_∂x2+∂Ψ_∂y2+∂Ψ_∂z2)) + end + end + return +end + +@tiny function _kernel_update_Ψ!(Ψ, dΨ_dt, dt) + I = @cartesianindex + @inbounds Ψ[I] += dt*dΨ_dt[I] + return +end \ No newline at end of file diff --git a/scripts3D_variational_TM/level_sets.jl b/scripts3D_variational_TM/level_sets.jl new file mode 100644 index 00000000..13019b10 --- /dev/null +++ b/scripts3D_variational_TM/level_sets.jl @@ -0,0 +1,15 @@ +include("level_set_kernels.jl") + +const _init_level_set! = _kernel_init_level_set!(get_device()) +const _compute_dΨ_dt! = _kernel_compute_dΨ_dt!(get_device()) +const _update_Ψ! = _kernel_update_Ψ!(get_device()) + +function compute_level_set_from_dem!(Ψ,dem,dem_grid,Ψ_grid) + TinyKernels.device_synchronize(get_device()) + dx,dy,dz = step.(Ψ_grid) + cutoff = 4max(dx,dy,dz) + R = LinearAlgebra.I + wait(_init_level_set!(Ψ,dem,dem_grid,Ψ_grid,cutoff,R;ndrange=axes(Ψ))) + return +end + diff --git a/scripts3D_variational_TM/load_dem.jl b/scripts3D_variational_TM/load_dem.jl new file mode 100644 index 00000000..0385198b --- /dev/null +++ b/scripts3D_variational_TM/load_dem.jl @@ -0,0 +1,15 @@ +using FileIO + +function filter_range(r,lims) + istart = something(findfirst(v -> v>lims[1], r), length(r)) + iend = something( findlast(v -> vx[1:end-1],axes.(rc,1)) + Δ = step.(rc) + O = first.(rc) + I = @. clamp(Int(fld(P-O,Δ))+1,lims) + return CartesianIndex(I...) +end + +@inline inc(I,dim) = Base.setindex(I,I[dim]+1,dim) +@inline inc(I) = I + oneunit(I) + +@inline function triangle_pair(Iv,dem,rc) + @inline function sample_dem(I) + @inbounds x,y = rc[1][I[1]],rc[2][I[2]] + @inbounds Point3(x,y,dem[I]) + end + T_BL = Triangle(sample_dem(Iv) ,sample_dem(inc(Iv,1)),sample_dem(inc(Iv,2))) + T_TR = Triangle(sample_dem(inc(Iv,2)),sample_dem(inc(Iv,1)),sample_dem(inc(Iv))) + return T_BL,T_TR +end + +@inline function distance_to_triangle_pair(P,Iv,dem,rc) + T_BL,T_TR = triangle_pair(Iv,dem,rc) + ud = min(ud_triangle(P,T_BL...),ud_triangle(P,T_TR...)) + return ud,sign_triangle(P,T_BL...) +end + +function sd_dem(P,cutoff,dem,rc) + @inbounds Pp = clamp.(Point(P[1],P[2]),first.(rc),last.(rc)) + @inbounds P = Point(Pp[1],Pp[2],P[3]) + BL = closest_vertex_index(Pp.-cutoff,rc) + TR = closest_vertex_index(Pp.+cutoff,rc) + Ic = closest_vertex_index(Pp,rc) + ud,sgn = distance_to_triangle_pair(P,Ic,dem,rc) + for Iv in BL:TR + if Iv == Ic continue end + ud_pair,_ = distance_to_triangle_pair(P,Iv,dem,rc) + ud = min(ud,ud_pair) + end + return ud,sgn +end \ No newline at end of file diff --git a/scripts3D_variational_TM/stokes.jl b/scripts3D_variational_TM/stokes.jl new file mode 100644 index 00000000..154ef2be --- /dev/null +++ b/scripts3D_variational_TM/stokes.jl @@ -0,0 +1,44 @@ +include("stokes_kernels.jl") + +const _update_ηs! = _kernel_update_ηs!(get_device()) +const _update_σ! = _kernel_update_σ!(get_device()) +const _update_V! = _kernel_update_V!(get_device()) +const _compute_residual! = _kernel_compute_residual!(get_device()) + +function update_ηs!(ηs,ε̇,T,wt,K,n,Q_R,T_mlt,ηreg,χ) + wait(_update_ηs!(ηs,ε̇,T,wt,K,n,Q_R,T_mlt,ηreg,χ;ndrange=axes(ηs))) + return +end + +function update_σ!(Pr, τ, ε̇, V, ηs, wt, r, θ_dτ, dτ_r, dx, dy, dz) + wait(_update_σ!(Pr, τ, ε̇, V, ηs, wt, r, θ_dτ, dτ_r, dx, dy, dz; ndrange=axes(Pr))) + return +end + +function update_V!(V, Pr, τ, ηs, wt, nudτ, ρg, dx, dy, dz; bwidth) + V_inn = (x = inn(V.x), y = inn(V.y), z = inn(V.z)) + # ranges = split_ndrange(axes(Pr),bwidth) + # ie,oe = hide_comm(ranges) do ndrange + ndrange = axes(Pr) + wait(_update_V!(V_inn, Pr, τ, ηs, wt, nudτ, ρg, dx, dy, dz; ndrange)) + # end + # wait.(oe) + TinyKernels.device_synchronize(FastIce.get_device()) + bc_x_neumann!(0.0,V.z) + bc_y_neumann!(0.0,V.x,V.z) + bc_z_neumann!(0.0,V.x) + # TinyKernels.device_synchronize(FastIce.get_device()) + # @. V.x[end,: ,:] = V.x[end-1,:,:]*wt.not_solid.x[end-1,:,:] + # @. V.x[1 ,: ,:] = V.x[2 ,:,:]*wt.not_solid.x[2 ,:,:] + # @. V.y[: ,end,:] = V.y[:,end-1,:]*wt.not_solid.y[:,end-1,:] + # @. V.y[: ,1 ,:] = V.y[:,2 ,:]*wt.not_solid.y[:,2 ,:] + TinyKernels.device_synchronize(FastIce.get_device()) + # update_halo!(V.x,V.y,V.z) + # wait(ie) + return +end + +function compute_residual!(Res, Pr, V, τ, wt, ρg, dx, dy, dz) + wait(_compute_residual!(Res, Pr, V, τ, wt, ρg, dx, dy, dz; ndrange=axes(Pr))) + return +end \ No newline at end of file diff --git a/scripts3D_variational_TM/stokes_kernels.jl b/scripts3D_variational_TM/stokes_kernels.jl new file mode 100644 index 00000000..c3ee3b1d --- /dev/null +++ b/scripts3D_variational_TM/stokes_kernels.jl @@ -0,0 +1,236 @@ +@tiny function _kernel_update_ηs!(ηs,ε̇,T,wt,K,n,Q_R,T_mlt,ηreg,χ) + ix, iy, iz = @indices + @inline isin(A) = checkbounds(Bool, A, ix, iy, iz) + @inbounds if isin(ηs) + ε̇xyc = 0.0 + for idz = -1:-1, idy = -1:0, idx = -1:0 + ix2,iy2,iz2 = clamp(ix+idx,1,size(ε̇.xy,1)),clamp(iy+idy,1,size(ε̇.xy,2)),clamp(iz+idz,1,size(ε̇.xy,3)) + ε̇xyc += ε̇.xy[ix2,iy2,iz2] + end + ε̇xyc *= 0.25 + ε̇xzc = 0.0 + for idz = -1:0, idy = -1:-1, idx = -1:0 + ix2,iy2,iz2 = clamp(ix+idx,1,size(ε̇.xz,1)),clamp(iy+idy,1,size(ε̇.xz,2)),clamp(iz+idz,1,size(ε̇.xz,3)) + ε̇xzc += ε̇.xz[ix2,iy2,iz2] + end + ε̇xzc *= 0.25 + ε̇yzc = 0.0 + for idz = -1:0, idy = -1:0, idx = -1:-1 + ix2,iy2,iz2 = clamp(ix+idx,1,size(ε̇.yz,1)),clamp(iy+idy,1,size(ε̇.yz,2)),clamp(iz+idz,1,size(ε̇.yz,3)) + ε̇yzc += ε̇.yz[ix2,iy2,iz2] + end + ε̇yzc *= 0.25 + ε̇II = sqrt(0.5*(ε̇.xx[ix,iy,iz]^2 + ε̇.yy[ix,iy,iz]^2 + ε̇.zz[ix,iy,iz]^2) + ε̇xyc^2 + ε̇xzc^2 + ε̇yzc^2) + ηs_t = 0.5*K*exp(-1/n*Q_R*(1/T_mlt - 1/T[ix,iy,iz]))*ε̇II^(1/n-1) + ηs_t = 1.0/(1/ηs_t + 1/ηreg) + ηs[ix,iy,iz] = exp(log(ηs[ix,iy,iz])*(1-χ) + log(ηs_t)*χ) + end +end + +@tiny function _kernel_update_σ!(Pr, τ, ε̇, V, ηs, wt, r, θ_dτ, dτ_r, dx, dy, dz) + ix,iy,iz = @indices + na,ns = wt.not_air, wt.not_solid + @inline isin(A) = checkbounds(Bool,A,ix,iy,iz) + # detect and eliminate null spaces + isnull = (na.x[ix,iy,iz] ≈ 0.0) || (na.x[ix+1,iy ,iz ] ≈ 0.0) || + (na.y[ix,iy,iz] ≈ 0.0) || (na.y[ix ,iy+1,iz ] ≈ 0.0) || + (na.z[ix,iy,iz] ≈ 0.0) || (na.z[ix ,iy ,iz+1] ≈ 0.0) + if !isnull && (na.c[ix,iy,iz] > 0.0) + ε̇.xx[ix,iy,iz] = (V.x[ix+1,iy ,iz ]*ns.x[ix+1,iy ,iz ] - V.x[ix,iy,iz]*ns.x[ix,iy,iz])/dx + ε̇.yy[ix,iy,iz] = (V.y[ix ,iy+1,iz ]*ns.y[ix ,iy+1,iz ] - V.y[ix,iy,iz]*ns.y[ix,iy,iz])/dy + ε̇.zz[ix,iy,iz] = (V.z[ix ,iy ,iz+1]*ns.z[ix ,iy ,iz+1] - V.z[ix,iy,iz]*ns.z[ix,iy,iz])/dz + ∇V = ε̇.xx[ix,iy,iz] + ε̇.yy[ix,iy,iz] + ε̇.zz[ix,iy,iz] + Pr[ix,iy,iz] -= ∇V*ηs[ix,iy,iz]*r/θ_dτ + τ.xx[ix,iy,iz] += (-τ.xx[ix,iy,iz] + 2.0*ηs[ix,iy,iz]*(ε̇.xx[ix,iy,iz]-∇V/3.0)) * dτ_r + τ.yy[ix,iy,iz] += (-τ.yy[ix,iy,iz] + 2.0*ηs[ix,iy,iz]*(ε̇.yy[ix,iy,iz]-∇V/3.0)) * dτ_r + τ.zz[ix,iy,iz] += (-τ.zz[ix,iy,iz] + 2.0*ηs[ix,iy,iz]*(ε̇.zz[ix,iy,iz]-∇V/3.0)) * dτ_r + else + Pr[ix,iy,iz] = 0.0 + τ.xx[ix,iy,iz] = 0.0 + τ.yy[ix,iy,iz] = 0.0 + τ.zz[ix,iy,iz] = 0.0 + ε̇.xx[ix,iy,iz] = 0.0 + ε̇.yy[ix,iy,iz] = 0.0 + ε̇.zz[ix,iy,iz] = 0.0 + end + @inbounds if isin(τ.xy) + # detect and eliminate null spaces + isnull = (na.x[ix+1,iy+1,iz+1] ≈ 0.0) || (na.x[ix+1,iy ,iz+1] ≈ 0.0) || + (na.y[ix+1,iy+1,iz+1] ≈ 0.0) || (na.y[ix ,iy+1,iz+1] ≈ 0.0) + if !isnull && (na.xy[ix,iy,iz] > 0.0) + ε̇.xy[ix,iy,iz] = + 0.5 * ( + (V.x[ix+1,iy+1,iz+1]*ns.x[ix+1,iy+1,iz+1] - V.x[ix+1,iy ,iz+1]*ns.x[ix+1,iy ,iz+1])/dy + + (V.y[ix+1,iy+1,iz+1]*ns.y[ix+1,iy+1,iz+1] - V.y[ix ,iy+1,iz+1]*ns.y[ix ,iy+1,iz+1])/dx + ) + ηs_av = 0.25*(ηs[ix,iy,iz+1] + ηs[ix+1,iy,iz+1] + ηs[ix,iy+1,iz+1] + ηs[ix+1,iy+1,iz+1]) + τ.xy[ix,iy,iz] += (-τ.xy[ix,iy,iz] + 2.0*ηs_av*ε̇.xy[ix,iy,iz])*dτ_r + else + ε̇.xy[ix,iy,iz] = 0.0 + τ.xy[ix,iy,iz] = 0.0 + end + end + @inbounds if isin(τ.xz) + # detect and eliminate null spaces + isnull = (na.x[ix+1,iy+1,iz+1] ≈ 0.0) || (na.x[ix+1,iy+1,iz ] ≈ 0.0) || + (na.z[ix+1,iy+1,iz+1] ≈ 0.0) || (na.z[ix ,iy+1,iz+1] ≈ 0.0) + if !isnull && (na.xz[ix,iy,iz] > 0.0) + ε̇.xz[ix,iy,iz] = + 0.5 * ( + (V.x[ix+1,iy+1,iz+1]*ns.x[ix+1,iy+1,iz+1] - V.x[ix+1,iy+1,iz ]*ns.x[ix+1,iy+1,iz ])/dz + + (V.z[ix+1,iy+1,iz+1]*ns.z[ix+1,iy+1,iz+1] - V.z[ix ,iy+1,iz+1]*ns.z[ix ,iy+1,iz+1])/dx + ) + ηs_av = 0.25*(ηs[ix,iy+1,iz] + ηs[ix+1,iy+1,iz] + ηs[ix,iy+1,iz+1] + ηs[ix+1,iy+1,iz+1]) + τ.xz[ix,iy,iz] += (-τ.xz[ix,iy,iz] + 2.0*ηs_av*ε̇.xz[ix,iy,iz])*dτ_r + else + ε̇.xz[ix,iy,iz] = 0.0 + τ.xz[ix,iy,iz] = 0.0 + end + end + @inbounds if isin(τ.yz) + # detect and eliminate null spaces + isnull = (na.y[ix+1,iy+1,iz+1] ≈ 0.0) || (na.y[ix+1,iy+1,iz ] ≈ 0.0) || + (na.z[ix+1,iy+1,iz+1] ≈ 0.0) || (na.z[ix+1,iy ,iz+1] ≈ 0.0) + if !isnull && (na.yz[ix,iy,iz] > 0.0) + ε̇.yz[ix,iy,iz] = + 0.5 * ( + (V.y[ix+1,iy+1,iz+1]*ns.y[ix+1,iy+1,iz+1] - V.y[ix+1,iy+1,iz ]*ns.y[ix+1,iy+1,iz ])/dz + + (V.z[ix+1,iy+1,iz+1]*ns.z[ix+1,iy+1,iz+1] - V.z[ix+1,iy ,iz+1]*ns.z[ix+1,iy ,iz+1])/dy + ) + ηs_av = 0.25*(ηs[ix+1,iy,iz] + ηs[ix+1,iy+1,iz] + ηs[ix+1,iy,iz+1] + ηs[ix+1,iy+1,iz+1]) + τ.yz[ix,iy,iz] += (-τ.yz[ix,iy,iz] + 2.0*ηs_av*ε̇.yz[ix,iy,iz])*dτ_r + else + ε̇.yz[ix,iy,iz] = 0.0 + τ.yz[ix,iy,iz] = 0.0 + end + end + return +end + +@tiny function _kernel_update_V!(V, Pr, τ, ηs, wt, nudτ, ρg, dx, dy, dz) + ix,iy,iz = @indices + na,ns = wt.not_air, wt.not_solid + @inline isin(A) = checkbounds(Bool,A,ix,iy,iz) + # TODO: check which volume fraction (non-air or non-solid) really determines the null spaces + @inbounds if isin(V.x) + # detect and eliminate null spaces + isnull = ( ns.c[ix+1,iy+1,iz+1] ≈ 0) || ( ns.c[ix,iy+1,iz+1] ≈ 0) || + (ns.xy[ix ,iy+1,iz ] ≈ 0) || (ns.xy[ix,iy ,iz ] ≈ 0) || + (ns.xz[ix ,iy ,iz+1] ≈ 0) || (ns.xz[ix,iy ,iz ] ≈ 0) + if !isnull && (na.x[ix+1,iy+1,iz+1] > 0) && (ns.x[ix+1,iy+1,iz+1] > 0) + # TODO: check which cells contribute to the momentum balance to verify ηs_x is computed correctly + ηs_x = max(ηs[ix,iy+1,iz+1],ηs[ix+1,iy+1,iz+1]) + ∂σxx_∂x = ((-Pr[ix+1,iy+1,iz+1]+τ.xx[ix+1,iy+1,iz+1])*na.c[ix+1,iy+1,iz+1] - + (-Pr[ix ,iy+1,iz+1]+τ.xx[ix ,iy+1,iz+1])*na.c[ix ,iy+1,iz+1])/dx + ∂τxy_∂y = (τ.xy[ix,iy+1,iz]*na.xy[ix,iy+1,iz] - τ.xy[ix,iy,iz]*na.xy[ix,iy,iz])/dy + ∂τxz_∂z = (τ.xz[ix,iy,iz+1]*na.xz[ix,iy,iz+1] - τ.xz[ix,iy,iz]*na.xz[ix,iy,iz])/dz + V.x[ix,iy,iz] += (∂σxx_∂x + ∂τxy_∂y + ∂τxz_∂z - ρg.x)*nudτ/ηs_x + else + V.x[ix,iy,iz] = 0.0 + end + end + @inbounds if isin(V.y) + # detect and eliminate null spaces + isnull = ( ns.c[ix+1,iy+1,iz+1] ≈ 0) || ( ns.c[ix+1,iy,iz+1] ≈ 0) || + (ns.xy[ix+1,iy ,iz ] ≈ 0) || (ns.xy[ix ,iy,iz ] ≈ 0) || + (ns.yz[ix ,iy ,iz+1] ≈ 0) || (ns.yz[ix ,iy,iz ] ≈ 0) + if !isnull && (na.y[ix+1,iy+1,iz+1] > 0) && (ns.y[ix+1,iy+1,iz+1] > 0) + # TODO: check which cells contribute to the momentum balance to verify ηs_y is computed correctly + ηs_y = max(ηs[ix+1,iy,iz+1],ηs[ix+1,iy+1,iz+1]) + ∂σyy_∂y = ((-Pr[ix+1,iy+1,iz+1] + τ.yy[ix+1,iy+1,iz+1])*na.c[ix+1,iy+1,iz+1] - + (-Pr[ix+1,iy ,iz+1] + τ.yy[ix+1,iy ,iz+1])*na.c[ix+1,iy ,iz+1])/dy + ∂τxy_∂x = (τ.xy[ix+1,iy,iz ]*na.xy[ix+1,iy,iz] - τ.xy[ix,iy,iz]*na.xy[ix,iy,iz])/dx + ∂τyz_∂z = (τ.yz[ix ,iy,iz+1]*na.yz[ix,iy,iz+1] - τ.yz[ix,iy,iz]*na.yz[ix,iy,iz])/dz + V.y[ix,iy,iz] += (∂σyy_∂y + ∂τxy_∂x + ∂τyz_∂z - ρg.y)*nudτ/ηs_y + else + V.y[ix,iy,iz] = 0.0 + end + end + @inbounds if isin(V.z) + # detect and eliminate null spaces + isnull = ( ns.c[ix+1,iy+1,iz+1] ≈ 0) || ( ns.c[ix+1,iy+1,iz ] ≈ 0) || + (ns.xz[ix+1,iy ,iz ] ≈ 0) || (ns.xz[ix ,iy ,iz ] ≈ 0) || + (ns.yz[ix ,iy+1,iz ] ≈ 0) || (ns.yz[ix ,iy ,iz ] ≈ 0) + if !isnull && (na.z[ix+1,iy+1,iz+1] > 0) && (ns.z[ix+1,iy+1,iz+1] > 0) + # TODO: check which cells contribute to the momentum balance to verify ηs_z is computed correctly + ηs_z = max(ηs[ix+1,iy+1,iz],ηs[ix+1,iy+1,iz+1]) + ∂σzz_∂z = ((-Pr[ix+1,iy+1,iz+1] + τ.zz[ix+1,iy+1,iz+1])*na.c[ix+1,iy+1,iz+1] - + (-Pr[ix+1,iy+1,iz ] + τ.zz[ix+1,iy+1,iz ])*na.c[ix+1,iy+1,iz ])/dz + ∂τxz_∂x = (τ.xz[ix+1,iy,iz]*na.xz[ix+1,iy,iz] - τ.xz[ix,iy,iz]*na.xz[ix,iy,iz])/dx + ∂τyz_∂y = (τ.yz[ix,iy+1,iz]*na.yz[ix,iy+1,iz] - τ.yz[ix,iy,iz]*na.yz[ix,iy,iz])/dy + V.z[ix,iy,iz] += (∂σzz_∂z + ∂τxz_∂x + ∂τyz_∂y - ρg.z)*nudτ/ηs_z + else + V.z[ix,iy,iz] = 0.0 + end + end + return +end + +@tiny function _kernel_compute_residual!(Res, Pr, V, τ, wt, ρg, dx, dy, dz) + ns,na = wt.not_solid, wt.not_air + ix,iy,iz = @indices + @inline isin(A) = checkbounds(Bool,A,ix,iy,iz) + if isin(Pr) + # detect and eliminate null spaces + isnull = (na.x[ix,iy,iz] ≈ 0.0) || (na.x[ix+1,iy ,iz ] ≈ 0.0) || + (na.y[ix,iy,iz] ≈ 0.0) || (na.y[ix ,iy+1,iz ] ≈ 0.0) || + (na.z[ix,iy,iz] ≈ 0.0) || (na.z[ix ,iy ,iz+1] ≈ 0.0) + if !isnull && (na.c[ix,iy,iz] > 0.0) + ε̇xx = (V.x[ix+1,iy ,iz ]*ns.x[ix+1,iy ,iz ] - V.x[ix,iy,iz]*ns.x[ix,iy,iz])/dx + ε̇yy = (V.y[ix ,iy+1,iz ]*ns.y[ix ,iy+1,iz ] - V.y[ix,iy,iz]*ns.y[ix,iy,iz])/dy + ε̇zz = (V.z[ix ,iy ,iz+1]*ns.z[ix ,iy ,iz+1] - V.z[ix,iy,iz]*ns.z[ix,iy,iz])/dz + ∇V = ε̇xx + ε̇yy + ε̇zz + Res.Pr[ix,iy,iz] = ∇V + else + Res.Pr[ix,iy,iz] = 0.0 + end + end + @inbounds if isin(Res.V.x) + # detect and eliminate null spaces + isnull = ( ns.c[ix+1,iy+1,iz+1] ≈ 0) || ( ns.c[ix,iy+1,iz+1] ≈ 0) || + (ns.xy[ix ,iy+1,iz ] ≈ 0) || (ns.xy[ix,iy ,iz ] ≈ 0) || + (ns.xz[ix ,iy ,iz+1] ≈ 0) || (ns.xz[ix,iy ,iz ] ≈ 0) + if !isnull && (na.x[ix+1,iy+1,iz+1] > 0) && (ns.x[ix+1,iy+1,iz+1] > 0) + # TODO: check which cells contribute to the momentum balance to verify ηs_x is computed correctly + ∂σxx_∂x = ((-Pr[ix+1,iy+1,iz+1]+τ.xx[ix+1,iy+1,iz+1])*na.c[ix+1,iy+1,iz+1] - + (-Pr[ix ,iy+1,iz+1]+τ.xx[ix ,iy+1,iz+1])*na.c[ix ,iy+1,iz+1])/dx + ∂τxy_∂y = (τ.xy[ix,iy+1,iz]*na.xy[ix,iy+1,iz] - τ.xy[ix,iy,iz]*na.xy[ix,iy,iz])/dy + ∂τxz_∂z = (τ.xz[ix,iy,iz+1]*na.xz[ix,iy,iz+1] - τ.xz[ix,iy,iz]*na.xz[ix,iy,iz])/dz + Res.V.x[ix,iy,iz] = ∂σxx_∂x + ∂τxy_∂y + ∂τxz_∂z - ρg.x + else + Res.V.x[ix,iy,iz] = 0.0 + end + end + @inbounds if isin(Res.V.y) + # detect and eliminate null spaces + isnull = ( ns.c[ix+1,iy+1,iz+1] ≈ 0) || ( ns.c[ix+1,iy,iz+1] ≈ 0) || + (ns.xy[ix+1,iy ,iz ] ≈ 0) || (ns.xy[ix ,iy,iz ] ≈ 0) || + (ns.yz[ix ,iy ,iz+1] ≈ 0) || (ns.yz[ix ,iy,iz ] ≈ 0) + if !isnull && (na.y[ix+1,iy+1,iz+1] > 0) && (ns.y[ix+1,iy+1,iz+1] > 0) + # TODO: check which cells contribute to the momentum balance to verify ηs_y is computed correctly + ∂σyy_∂y = ((-Pr[ix+1,iy+1,iz+1] + τ.yy[ix+1,iy+1,iz+1])*na.c[ix+1,iy+1,iz+1] - + (-Pr[ix+1,iy ,iz+1] + τ.yy[ix+1,iy ,iz+1])*na.c[ix+1,iy ,iz+1])/dy + ∂τxy_∂x = (τ.xy[ix+1,iy,iz ]*na.xy[ix+1,iy,iz] - τ.xy[ix,iy,iz]*na.xy[ix,iy,iz])/dx + ∂τyz_∂z = (τ.yz[ix ,iy,iz+1]*na.yz[ix,iy,iz+1] - τ.yz[ix,iy,iz]*na.yz[ix,iy,iz])/dz + Res.V.y[ix,iy,iz] = ∂σyy_∂y + ∂τxy_∂x + ∂τyz_∂z - ρg.y + else + Res.V.y[ix,iy,iz] = 0.0 + end + end + @inbounds if isin(Res.V.z) + # detect and eliminate null spaces + isnull = ( ns.c[ix+1,iy+1,iz+1] ≈ 0) || ( ns.c[ix+1,iy+1,iz ] ≈ 0) || + (ns.xz[ix+1,iy ,iz ] ≈ 0) || (ns.xz[ix ,iy ,iz ] ≈ 0) || + (ns.yz[ix ,iy+1,iz ] ≈ 0) || (ns.yz[ix ,iy ,iz ] ≈ 0) + if !isnull && (na.z[ix+1,iy+1,iz+1] > 0) && (ns.z[ix+1,iy+1,iz+1] > 0) + # TODO: check which cells contribute to the momentum balance to verify ηs_z is computed correctly + ∂σzz_∂z = ((-Pr[ix+1,iy+1,iz+1] + τ.zz[ix+1,iy+1,iz+1])*na.c[ix+1,iy+1,iz+1] - + (-Pr[ix+1,iy+1,iz ] + τ.zz[ix+1,iy+1,iz ])*na.c[ix+1,iy+1,iz ])/dz + ∂τxz_∂x = (τ.xz[ix+1,iy,iz]*na.xz[ix+1,iy,iz] - τ.xz[ix,iy,iz]*na.xz[ix,iy,iz])/dx + ∂τyz_∂y = (τ.yz[ix,iy+1,iz]*na.yz[ix,iy+1,iz] - τ.yz[ix,iy,iz]*na.yz[ix,iy,iz])/dy + Res.V.z[ix,iy,iz] = ∂σzz_∂z + ∂τxz_∂x + ∂τyz_∂y - ρg.z + else + Res.V.z[ix,iy,iz] = 0.0 + end + end +end \ No newline at end of file diff --git a/scripts3D_variational_TM/test_volume_fractions.jl b/scripts3D_variational_TM/test_volume_fractions.jl new file mode 100644 index 00000000..6cb1971d --- /dev/null +++ b/scripts3D_variational_TM/test_volume_fractions.jl @@ -0,0 +1,429 @@ +using FastIce +using Logging +using MPI +using ImplicitGlobalGrid +using TinyKernels +using HDF5 +using LightXML +using CairoMakie +using Printf +using JLD2 +using LinearAlgebra +using GeometryBasics +using ElasticArrays + +include("load_dem.jl") +include("signed_distances.jl") +include("level_sets.jl") +include("volume_fractions.jl") +include("bcs.jl") +include("stokes.jl") +include("thermo.jl") +include("data_io.jl") +include("hide_communication.jl") + +@views av1(A) = 0.5 .* (A[1:end-1] .+ A[2:end]) +@views inn_x(A) = A[2:end-1, :, :] +@views inn_y(A) = A[:, 2:end-1, :] +@views inn_z(A) = A[:, :, 2:end-1] +@views inn(A) = A[2:end-1, 2:end-1, 2:end-1] + +# @views function main(grid_dims,grid) +# # unpack values +# me, dims, nprocs, coords, comm_cart = grid + +# # init logger +# global_logger(FastIce.Logging.MPILogger(0, comm_cart, global_logger())) + +# # path to DEM data +# greenland_path = "data/BedMachine/greenland.jld2" + +# # region to simulate +# global_region = (xlims=(1100.0e3, 1200.0e3), ylims=(1000.0e3, 1100.0e3)) + +# # load DEM +# @info "loading DEM data from the file '$greenland_path'" +# (; x, y, bed, surface) = load_dem(greenland_path, global_region) +# @info "DEM resolution: $(size(bed,1)) × $(size(bed,2))" + +# @info "plot DEMs" +# if me == 0 +# fig = Figure(resolution=(2000,700),fontsize=32) +# ax = ( +# bed = Axis(fig[1,1][1,1];aspect=DataAspect(),title="bedrock",xlabel="x",ylabel="y"), +# ice = Axis(fig[1,2][1,1];aspect=DataAspect(),title="ice" ,xlabel="x",ylabel="y"), +# ) +# plt = ( +# bed = heatmap!(ax.bed,x,y,bed ;colormap=:terrain), +# ice = heatmap!(ax.ice,x,y,surface;colormap=:terrain), +# ) +# Colorbar(fig[1,1][1,2],plt.bed) +# Colorbar(fig[1,2][1,2],plt.ice) +# save("region.png",fig) +# end + +# # compute origin and size of the domain (required for scaling and computing the grid size) +# ox, oy, oz = x[1], y[1], minimum(bed) +# lx = x[end] - ox +# ly = y[end] - oy +# lz = maximum(surface) - oz + +# # shift and scale the domain before computation (center of the domain is (0,0) in x-y plane) +# δx, δy = ox + 0.5lx, oy + 0.5ly # required to avoid conversion to Vector +# x = @. (x - δx) / lz +# y = @. (y - δy) / lz +# @. bed = (bed - oz) / lz +# @. surface = (surface - oz) / lz + +# @. surface -= 0.05 + +# # run simulation +# dem_data = (; x, y, bed, surface) +# @info "running the simulation" +# run_simulation(dem_data, grid_dims, me, dims, coords) + +# return +# end + +function make_dem(ox,oy,lx,ly,Δz,rgl,ogx,ogy,ogz,nx,ny) + x = LinRange(ox,ox+lx,nx+1) + y = LinRange(ox,oy+ly,ny+1) + bed = zeros(nx+1,ny+1) + for iy in axes(bed,2), ix in axes(bed,1) + ωx = 2π*10*(x[ix] - ox)/lx + ωy = 2π*10*(y[iy] - oy)/lx + bed[ix,iy] = 0.025*rgl*sin(ωx)*cos(ωy) + end + bed .= bed .- minimum(bed) .+ Δz + surface = zeros(nx+1,ny+1) + for iy in axes(surface,2), ix in axes(surface,1) + δx = x[ix] - ogx + δy = y[iy] - ogy + surface[ix,iy] = sqrt(max(rgl^2 - δx^2 - δy^2, 0.0)) + ogz + end + return (;x,y,bed,surface) +end + +@views function main(grid_dims,grid) + # unpack values + me, dims, nprocs, coords, comm_cart = grid + + # init logger + global_logger(FastIce.Logging.MPILogger(0, comm_cart, global_logger())) + + lx,ly,lz = 5.0,2.5,1.0 + ox,oy,oz = -lx/2,-ly/2,0.0 + Δz = 0.1lz + + rgl = 4lz + ogx,ogy,ogz = 0.0lx,0.0ly,-3.2lz + + dem_data = make_dem(ox,oy,lx,ly,Δz,rgl,ogx,ogy,ogz,grid_dims[1],grid_dims[2]) + run_simulation(dem_data, grid_dims, me, dims, coords) + + return +end + +@views function run_simulation(dem_data, grid_dims, me, dims, coords) + # physics + # global domain origin and size + ox_g, oy_g, oz_g = dem_data.x[1], dem_data.y[1], 0.0 + lx_g = dem_data.x[end] - ox_g + ly_g = dem_data.y[end] - oy_g + lz_g = 1.0 + + # local domain size and origin + lx_l, ly_l, lz_l = (lx_g, ly_g, lz_g) ./ dims + ox_l, oy_l, oz_l = (ox_g, oy_g, oz_g) .+ coords .* (lx_l, ly_l, lz_l) + + #################################################################### + # non-dimensional numbers + α = deg2rad(-15) # slope + nglen = 3 # Glen's law power exponent + ρr = 0.92 # density ratio of ice to water + cpr = 0.5 # heat capacity ratio of ice to water + U_P = 60.0 # ratio of sensible heat to gravitational potential energy + L_P = 37.0 # ratio of latent heat to gravitational potential energy + Pr = 2e-9 # Prandtl number - ratio of thermal diffusivity to momentum diffusivity + A_L = 5e-2 # ratio of bump amplitude to length scale + nbump = 10 # number of bumps + Q_RT = 2*26.0 # ratio of activation temperature to melting temperature + # dimensionally independent parameters + K = 1.0 # consistency [Pa*s^(1/n)] + ρg = 1.0 # ice gravity pressure gradient [Pa/m ] + T_mlt = 1.0 # ice melting temperature [K ] + # scales + l̄ = lz_g # length scale [m ] + σ̄ = ρg*cos(α)*l̄ # stress scale [Pa ] + t̄ = (K/σ̄)^nglen # time scale [s ] + T̄ = T_mlt # temperature scale [K ] + # dimensionally dependent + λ_i = Pr*σ̄*l̄^2/(T̄*t̄) # thermal conductivity [W/m/K ] + ρcp = U_P*σ̄/T̄ # ice heat capacity [Pa/K ] + ρL = L_P*σ̄ # latent heat of melting [Pa ] + Q_R = Q_RT*T_mlt # activational temperature [K ] + T_atm = 0.9*T_mlt # atmospheric temperature [K ] + T_ini = 0.9*T_mlt # initial surface temperature [K ] + amp = A_L*l̄ # bump amplitude [m ] + rgl = 1.2l̄ # glacier radius [m ] + ηreg = 0.5*K*(1e-6/t̄)^(1/nglen-1) + # not important (cancels in the equations) + ρ_w = 1.0 # density of water [kg/m^3 ] + ρ_i = ρr*ρ_w # density of ice [kg/m^3 ] + cp_i = ρcp/ρ_i # heat capacity of ice [J/kg/K ] + cp_w = cp_i/cpr # heat capacity of ice [J/kg/K ] + L = ρL/ρ_w # latent heat of melting [J/kg ] + # phase data + ρ = (ice = ρ_i , wat = ρ_w ) + cp = (ice = cp_i, wat = cp_w) + λ = (ice = λ_i , wat = λ_i ) + # body force + f = (x = ρg*sin(α), y = 0ρg, z = ρg*cos(α)) + # thermodynamics + @inline u_ice(T) = cp.ice*(T-T_mlt) + @inline u_wat(T) = L + cp.wat*(T-T_mlt) + @inline T_lt(u_t) = (u_t < u_ice(T_mlt)) ? T_mlt + u_t/cp.ice : + (u_t > u_wat(T_mlt)) ? T_mlt + (u_t - L)/cp.wat : T_mlt + @inline ω_lt(u_t) = (u_t < u_ice(T_mlt)) ? 0.0 : + (u_t > u_wat(T_mlt)) ? 1.0 : ρ.ice*(u_ice(T_mlt) - u_t)/(ρ.ice*(u_ice(T_mlt)-u_t) - ρ.wat*(u_wat(T_mlt)-u_t)) + #################################################################### + + # numerics + nx, ny, nz = grid_dims + nx_l, ny_l, nz_l = grid_dims .+ 2 # include ghost nodes + nx_g, ny_g, nz_g = grid_dims.*dims + bwidth = (8, 4, 4) + + ϵtol = (1e-4,1e-4,1e-4,1e-4) + maxiter = 50max(nx,ny,nz) + ncheck = ceil(Int,0.5max(nx,ny,nz)) + nviz = 1 + nsave = 1 + nt = 1 + χ = 5e-3 + + # preprocessing + dx, dy, dz = lx_g / nx_g, ly_g / ny_g, lz_g / nz_g + @info "grid spacing: dx = $dx, dy = $dy, dz = $dz" + + # take into account ghost nodes to simplify model setup + xv_l = LinRange(ox_l - dx, ox_l + lx_l + dx, nx_l + 1) + yv_l = LinRange(oy_l - dy, oy_l + ly_l + dy, ny_l + 1) + zv_l = LinRange(oz_l - dz, oz_l + lz_l + dz, nz_l + 1) + xc_l, yc_l, zc_l = av1.((xv_l, yv_l, zv_l)) + + # PT params + r = 0.9 + lτ_re_mech = 0.25min(lx_g, ly_g, lz_g) / π + vdτ = min(dx, dy, dz) / sqrt(8.1) + θ_dτ = lτ_re_mech * (r + 4 / 3) / vdτ + nudτ = vdτ * lτ_re_mech + dτ_r = 1.0 / (θ_dτ + 1.0) + + # fields allocation + # level set + Ψ = ( + not_solid=scalar_field(Float64, nx_l + 1, ny_l + 1, nz_l + 1), + not_air =scalar_field(Float64, nx_l + 1, ny_l + 1, nz_l + 1), + ) + wt = ( + not_solid=volfrac_field(Float64, nx_l, ny_l, nz_l), + not_air =volfrac_field(Float64, nx_l, ny_l, nz_l), + ) + # mechanics (stress fields include ghost nodes due to redundant computations on distributed staggered grid) + Pr = scalar_field(Float64, nx_l, ny_l, nz_l) + τ = tensor_field(Float64, nx_l, ny_l, nz_l) + ε̇ = tensor_field(Float64, nx_l, ny_l, nz_l) + V = vector_field(Float64, nx_l, ny_l, nz_l) + ηs = scalar_field(Float64, nx_l, ny_l, nz_l) + # thermal + ρU = scalar_field(Float64,nx_l,ny_l,nz_l) + T = scalar_field(Float64,nx_l,ny_l,nz_l) + qT = vector_field(Float64,nx_l,ny_l,nz_l) + # hydro + ω = scalar_field(Float64,nx_l,ny_l,nz_l) + # residuals + Res = ( + Pr=scalar_field(Float64, nx_l, ny_l, nz_l), + V =vector_field(Float64, nx_l-2, ny_l-2, nz_l-2) + ) + # visualisation + Vmag = scalar_field(Float64, nx, ny, nz) + ε̇II = scalar_field(Float64, nx, ny, nz) + Ψav = ( + not_air=scalar_field(Float64,nx,ny,nz), + not_solid=scalar_field(Float64,nx,ny,nz), + ) + + # initialisation + # compute level sets from DEM data + dem_grid = (dem_data.x, dem_data.y) + Ψ_grid = (xv_l, yv_l, zv_l) + + @info "computing the level set for the ice surface" + compute_level_set_from_dem!(Ψ.not_air, to_device(dem_data.surface), dem_grid, Ψ_grid) + + @info "computing the level set for the bedrock surface" + compute_level_set_from_dem!(Ψ.not_solid, to_device(dem_data.bed), dem_grid, Ψ_grid) + TinyKernels.device_synchronize(get_device()) + # invert level set to set what's below the DEM surface as inside + @. Ψ.not_solid *= -1.0 + TinyKernels.device_synchronize(get_device()) + + @info "computing volume fractions from level sets" + for phase in eachindex(Ψ) + compute_volume_fractions_from_level_set!(wt[phase], Ψ[phase], dx, dy, dz) + end + TinyKernels.device_synchronize(FastIce.get_device()) + + @info "initialize mechanics" + for comp in eachindex(V) fill!(V[comp], 0.0) end + for comp in eachindex(τ) fill!(τ[comp], 0.0) end + fill!(Pr, 0.0) + fill!(ηs,0.5*K*(1e-1/t̄)^(1/nglen-1)*exp(-1/nglen*Q_R*(1/T_mlt-1/T_ini))) + # fill!(ηs,1.0) + TinyKernels.device_synchronize(get_device()) + + @info "initialize thermo" + for comp in eachindex(qT) fill!(qT[comp],0.0) end + @. T = lerp(T_atm,T_ini,wt.not_air.c) + @. ρU = ρ.ice*u_ice(T) + @. ω = ω_lt(ρU/ρ.ice) + TinyKernels.device_synchronize(FastIce.get_device()) + + # convergence tracking + iter_evo = Float64[] + errs_evo = ElasticArray{Float64}(undef, length(ϵtol), 0) + ts = Float64[] + h5names = String[] + + # save static data + outdir = joinpath("out_visu","egu2023/greenland") + mkpath(outdir) + jldsave(joinpath(outdir,"static.jld2");xc_l,xv_l,yc_l,yv_l,zc_l,zv_l,Ψ,wt,dem_data) + tcur = 0.0; isave = 1 + for it in 1:nt + @info @sprintf("time step #%d, time = %g",it,tcur) + empty!(iter_evo); resize!(errs_evo,(length(ϵtol),0)) + TinyKernels.device_synchronize(FastIce.get_device()) + # mechanics + for iter in 1:maxiter + update_σ!(Pr, τ, ε̇, V, ηs, wt, r, θ_dτ, dτ_r, dx, dy, dz) + TinyKernels.device_synchronize(FastIce.get_device()) + update_V!(V, Pr, τ, ηs, wt, nudτ, f, dx, dy, dz; bwidth) + TinyKernels.device_synchronize(FastIce.get_device()) + update_ηs!(ηs,ε̇,T,wt,K,nglen,Q_R,T_mlt,ηreg,χ) + TinyKernels.device_synchronize(FastIce.get_device()) + if iter % ncheck == 0 + compute_residual!(Res,Pr,V,τ,wt,f,dx,dy,dz) + TinyKernels.device_synchronize(FastIce.get_device()) + errs = (maximum(abs.(Res.V.x))*l̄/σ̄, + maximum(abs.(Res.V.y))*l̄/σ̄, + maximum(abs.(Res.V.z))*l̄/σ̄, + maximum(abs.(inn(Res.Pr)))*t̄) + TinyKernels.device_synchronize(FastIce.get_device()) + @printf(" iter/nz # %2.1f, errs: [ Vx = %1.3e, Vy = %1.3e, Vz = %1.3e, Pr = %1.3e ]\n", iter/nz, errs...) + push!(iter_evo, iter/nz); append!(errs_evo, errs) + # check convergence + if any(.!isfinite.(errs)) @error("simulation failed"); break; end + if all(errs .< ϵtol) break end + end + end + TinyKernels.device_synchronize(FastIce.get_device()) + dt = min(dx,dy,dz)^2/max(λ.ice*ρ.ice*cp.ice,λ.wat*ρ.wat*cp.wat)/6.1 + # thermal + update_qT!(qT,T,wt,λ,T_atm,dx,dy,dz) + TinyKernels.device_synchronize(FastIce.get_device()) + update_ρU!(ρU,qT,τ,ε̇,wt,ρ.ice*u_ice(T_atm),dt,dx,dy,dz) + TinyKernels.device_synchronize(FastIce.get_device()) + @. T = T_lt(ρU/(ρ.ice*(1-ω) + ρ.wat*ω)) + @. ω = ω_lt(ρU/(ρ.ice*(1-ω) + ρ.wat*ω)) + TinyKernels.device_synchronize(FastIce.get_device()) + tcur += dt + # save timestep + if it % nsave == 0 + @info "saving results on disk" + update_vis_fields!(Vmag, ε̇II, Ψav, V, ε̇, Ψ) + jldsave(joinpath(outdir,@sprintf("%04d.jld2",isave));Pr,τ,ε̇,ε̇II,V,T,ω,ηs) + # h5 + dim_g = (nx_g, ny_g, nz_g) + update_vis_fields!(Vmag, ε̇II, Ψav, V, ε̇, Ψ) + out_h5 = joinpath(outdir,@sprintf("step_%04d.h5",isave)) + ndrange = CartesianIndices(((coords[1]*nx+1):(coords[1]+1)*nx, + (coords[2]*ny+1):(coords[2]+1)*ny, + (coords[3]*nz+1):(coords[3]+1)*nz)) + fields = Dict("LS_ice" => Ψav.not_air, + "LS_bed" => Ψav.not_solid, + "Vmag" => Vmag, + "EII" => ε̇II, + "Pr" => inn(Pr), + "T" => inn(T), + "omega" => inn(ω), + "etas" => inn(ηs), + "wt_na" => inn(wt.not_air.c), + "wt_ns" => inn(wt.not_solid.c),) + @info "saving HDF5 file" + write_h5(out_h5, fields, dim_g, ndrange) + push!(ts,tcur);push!(h5names,out_h5) + isave += 1 + end + end + + @info "saving XDMF file..." + (me == 0) && write_xdmf(joinpath(outdir,"results.xdmf3"), h5names, fields, (xc_l[2], yc_l[2], zc_l[2]), (dx, dy, dz), dim_g, ts) + + return +end + +@tiny function _kernel_update_vis_fields!(Vmag, τII, Ψav, V, τ, Ψ) + ix, iy, iz = @indices + @inline isin(A) = checkbounds(Bool, A, ix, iy, iz) + @inbounds if isin(Ψ.not_air) + pav = 0.0 + for idz = 1:2, idy = 1:2, idx = 1:2 + pav += Ψ.not_air[ix+idx, iy+idy, iz+idz] + end + Ψav.not_air[ix, iy, iz] = pav / 8 + end + @inbounds if isin(Ψ.not_solid) + pav = 0.0 + for idz = 1:2, idy = 1:2, idx = 1:2 + pav += Ψ.not_solid[ix+idx, iy+idy, iz+idz] + end + Ψav.not_solid[ix, iy, iz] = pav / 8 + end + @inbounds if isin(Vmag) + vxc = 0.5 * (V.x[ix+1, iy+1, iz+1] + V.x[ix+2, iy+1, iz+1]) + vyc = 0.5 * (V.y[ix+1, iy+1, iz+1] + V.y[ix+1, iy+2, iz+1]) + vzc = 0.5 * (V.z[ix+1, iy+1, iz+1] + V.z[ix+1, iy+1, iz+2]) + Vmag[ix, iy, iz] = sqrt(vxc^2 + vyc^2 + vzc^2) + end + @inbounds if isin(τII) + τxyc = 0.25 * (τ.xy[ix, iy, iz] + τ.xy[ix+1, iy, iz] + τ.xy[ix, iy+1, iz] + τ.xy[ix+1, iy+1, iz]) + τxzc = 0.25 * (τ.xz[ix, iy, iz] + τ.xz[ix+1, iy, iz] + τ.xz[ix, iy, iz+1] + τ.xz[ix+1, iy, iz+1]) + τyzc = 0.25 * (τ.yz[ix, iy, iz] + τ.yz[ix, iy+1, iz] + τ.yz[ix, iy, iz+1] + τ.yz[ix, iy+1, iz+1]) + τII[ix, iy, iz] = sqrt(0.5 * (τ.xx[ix+1, iy+1, iz+1]^2 + τ.yy[ix+1, iy+1, iz+1]^2 + τ.zz[ix+1, iy+1, iz+1]^2) + τxyc^2 + τxzc^2 + τyzc^2) + end + return +end + +const _update_vis_fields! = _kernel_update_vis_fields!(get_device()) + +function update_vis_fields!(Vmag, τII, Ψav, V, τ, Ψ) + wait(_update_vis_fields!(Vmag, τII, Ψav, V, τ, Ψ; ndrange=axes(Vmag))) + return +end + +grid_dims = (200, 100, 50) + +# init MPI and IGG +MPI.Init() +me, dims, nprocs, coords, comm_cart = init_global_grid(grid_dims...; init_MPI=false) +dims = Tuple(dims) +coords = Tuple(coords) +grid = (me,dims,nprocs,coords,comm_cart) + +main(grid_dims,grid) + +# finalize_global_grid(; finalize_MPI=false) +# MPI.Finalize() \ No newline at end of file diff --git a/scripts3D_variational_TM/thermo.jl b/scripts3D_variational_TM/thermo.jl new file mode 100644 index 00000000..560299e0 --- /dev/null +++ b/scripts3D_variational_TM/thermo.jl @@ -0,0 +1,25 @@ +include("thermo_kernels.jl") + +const _update_qT! = _kernel_update_qT!(get_device()) +const _update_ρU! = _kernel_update_ρU!(get_device()) + +function update_qT!(qT,T,wt,λ,T_atm,dx,dy,dz) + qT_inn = (x=inn_x(qT.x), y=inn_y(qT.y), z=inn_z(qT.z)) + vf_inn(vf) = ( + c = vf.c, + x = inn_x(vf.x), + y = inn_y(vf.y), + z = inn_z(vf.z), + ) + wt_inn = ( + not_air = vf_inn(wt.not_air ), + not_solid = vf_inn(wt.not_solid), + ) + wait(_update_qT!(qT_inn,T,wt_inn,λ,T_atm,dx,dy,dz; ndrange=axes(T))) + return +end + +function update_ρU!(ρU,qT,τ,ε̇,wt,ρU_atm,dt,dx,dy,dz) + wait(_update_ρU!(ρU,qT,τ,ε̇,wt,ρU_atm,dt,dx,dy,dz; ndrange=axes(ρU))) + return +end \ No newline at end of file diff --git a/scripts3D_variational_TM/thermo_kernels.jl b/scripts3D_variational_TM/thermo_kernels.jl new file mode 100644 index 00000000..58de02eb --- /dev/null +++ b/scripts3D_variational_TM/thermo_kernels.jl @@ -0,0 +1,88 @@ +@inline lerp(a,b,t) = a*(1-t) + b*t + +@tiny function _kernel_update_qT!(qT,T,wt,λ,T_atm,dx,dy,dz) + ns,na = wt.not_solid, wt.not_air + ix, iy, iz = @indices + @inline isin(A) = checkbounds(Bool, A, ix, iy, iz) + @inbounds if isin(qT.x) + # detect and eliminate null spaces + isnull = (ns.c[ix+1,iy,iz] ≈ 0) || (ns.c[ix,iy,iz] ≈ 0) + if !isnull && (na.x[ix,iy,iz] > 0) && (ns.x[ix,iy,iz] > 0) + T_w = lerp(T_atm,T[ix+1,iy,iz],na.c[ix+1,iy,iz]) + T_e = lerp(T_atm,T[ix ,iy,iz],na.c[ix ,iy,iz]) + qT.x[ix,iy,iz] = -λ.ice*(T_w - T_e)/dx + else + qT.x[ix,iy,iz] = 0.0 + end + end + @inbounds if isin(qT.y) + # detect and eliminate null spaces + isnull = (ns.c[ix,iy+1,iz] ≈ 0) || (ns.c[ix,iy,iz] ≈ 0) + if !isnull && (na.y[ix,iy,iz] > 0) && (ns.y[ix,iy,iz] > 0) + T_n = lerp(T_atm,T[ix,iy+1,iz],na.c[ix,iy+1,iz]) + T_s = lerp(T_atm,T[ix,iy ,iz],na.c[ix,iy ,iz]) + qT.y[ix,iy,iz] = -λ.ice*(T_n - T_s)/dy + else + qT.y[ix,iy,iz] = 0.0 + end + end + @inbounds if isin(qT.z) + # detect and eliminate null spaces + isnull = (ns.c[ix,iy,iz+1] ≈ 0) || (ns.c[ix,iy,iz] ≈ 0) + if !isnull && (na.z[ix,iy,iz] > 0) && (ns.z[ix,iy,iz] > 0) + T_f = lerp(T_atm,T[ix,iy,iz+1],na.c[ix,iy,iz+1]) + T_b = lerp(T_atm,T[ix,iy,iz ],na.c[ix,iy,iz ]) + qT.z[ix,iy,iz] = -λ.ice*(T_f - T_b)/dz + else + qT.z[ix,iy,iz] = 0.0 + end + end +end + +@tiny function _kernel_update_ρU!(ρU,qT,τ,ε̇,wt,ρU_atm,dt,dx,dy,dz) + ns,na = wt.not_solid, wt.not_air + ix, iy, iz = @indices + @inline isin(A) = checkbounds(Bool, A, ix, iy, iz) + @inbounds if isin(ρU) + isnull = (na.x[ix,iy,iz] ≈ 0.0) || (na.x[ix+1,iy,iz] ≈ 0.0) || + (na.y[ix,iy,iz] ≈ 0.0) || (na.y[ix,iy+1,iz] ≈ 0.0) || + (na.z[ix,iy,iz] ≈ 0.0) || (na.z[ix,iy,iz+1] ≈ 0.0) + if !isnull && (na.c[ix,iy,iz] > 0.0 && ns.c[ix,iy,iz] > 0.0) + ∇qx = (qT.x[ix+1,iy,iz]*ns.x[ix+1,iy,iz] - qT.x[ix,iy,iz]*ns.x[ix,iy,iz])/dx + ∇qy = (qT.y[ix,iy+1,iz]*ns.y[ix,iy+1,iz] - qT.y[ix,iy,iz]*ns.y[ix,iy,iz])/dy + ∇qz = (qT.z[ix,iy,iz+1]*ns.z[ix,iy,iz+1] - qT.z[ix,iy,iz]*ns.z[ix,iy,iz])/dz + ∇qT = ∇qx + ∇qy + ∇qz + # average shear heating contribution on cell vertices + τxyc,ε̇xyc = 0.0,0.0 + for idz = -1:-1, idy = -1:0, idx = -1:0 + ix2,iy2,iz2 = clamp(ix+idx,1,size(τ.xy,1)),clamp(iy+idy,1,size(τ.xy,2)),clamp(iz+idz,1,size(τ.xy,3)) + τxyc += τ.xy[ix2,iy2,iz2] + ε̇xyc += ε̇.xy[ix2,iy2,iz2] + end + τxyc *= 0.25; ε̇xyc *= 0.25 + # average shear heating contribution on cell vertices + τxzc,ε̇xzc = 0.0,0.0 + for idz = -1:0, idy = -1:-1, idx = -1:0 + ix2,iy2,iz2 = clamp(ix+idx,1,size(τ.xz,1)),clamp(iy+idy,1,size(τ.xz,2)),clamp(iz+idz,1,size(τ.xz,3)) + τxzc += τ.xz[ix2,iy2,iz2] + ε̇xzc += ε̇.xz[ix2,iy2,iz2] + end + τxzc *= 0.25; ε̇xzc *= 0.25 + # average shear heating contribution on cell vertices + τyzc,ε̇yzc = 0.0,0.0 + for idz = -1:0, idy = -1:0, idx = -1:-1 + ix2,iy2,iz2 = clamp(ix+idx,1,size(τ.yz,1)),clamp(iy+idy,1,size(τ.yz,2)),clamp(iz+idz,1,size(τ.yz,3)) + τyzc += τ.yz[ix2,iy2,iz2] + ε̇yzc += ε̇.yz[ix2,iy2,iz2] + end + τyzc *= 0.25; ε̇yzc *= 0.25 + SH = τ.xx[ix,iy,iz]*ε̇.xx[ix,iy,iz] + + τ.yy[ix,iy,iz]*ε̇.yy[ix,iy,iz] + + τ.zz[ix,iy,iz]*ε̇.zz[ix,iy,iz] + + 2.0*τxyc*ε̇xyc + 2.0*τxzc*ε̇xzc + 2.0*τyzc*ε̇yzc + ρU[ix,iy,iz] += dt*(-∇qT + SH) + else + ρU[ix,iy,iz] = ρU_atm + end + end +end \ No newline at end of file diff --git a/scripts3D_variational_TM/volume_fraction_kernels.jl b/scripts3D_variational_TM/volume_fraction_kernels.jl new file mode 100644 index 00000000..ea58938d --- /dev/null +++ b/scripts3D_variational_TM/volume_fraction_kernels.jl @@ -0,0 +1,58 @@ +@tiny function _kernel_compute_volume_fractions_from_level_set!(wt,Ψ,dx,dy,dz) + ix,iy,iz = @indices + cell = Rect(Vec(0.0,0.0,0.0), Vec(dx,dy,dz)) + ω = GeometryBasics.volume(cell) + @inline Ψ_ax(dix,diy,diz) = 0.5*(Ψ[ix+dix,iy+diy,iz+diz]+Ψ[ix+dix+1,iy+diy,iz+diz]) + @inline Ψ_ay(dix,diy,diz) = 0.5*(Ψ[ix+dix,iy+diy,iz+diz]+Ψ[ix+dix,iy+diy+1,iz+diz]) + @inline Ψ_az(dix,diy,diz) = 0.5*(Ψ[ix+dix,iy+diy,iz+diz]+Ψ[ix+dix,iy+diy,iz+diz+1]) + @inline Ψ_axy(dix,diy,diz) = 0.25*(Ψ[ix+dix ,iy+diy ,iz+diz+1]+Ψ[ix+dix+1,iy+diy ,iz+diz+1]+ + Ψ[ix+dix ,iy+diy+1,iz+diz+1]+Ψ[ix+dix+1,iy+diy+1,iz+diz+1]) + @inline Ψ_axz(dix,diy,diz) = 0.25*(Ψ[ix+dix ,iy+diy+1,iz+diz ]+Ψ[ix+dix+1,iy+diy+1,iz+diz ]+ + Ψ[ix+dix ,iy+diy+1,iz+diz+1]+Ψ[ix+dix+1,iy+diy+1,iz+diz+1]) + @inline Ψ_ayz(dix,diy,diz) = 0.25*(Ψ[ix+dix+1,iy+diy ,iz+diz ]+Ψ[ix+dix+1,iy+diy+1,iz+diz ]+ + Ψ[ix+dix+1,iy+diy ,iz+diz+1]+Ψ[ix+dix+1,iy+diy+1,iz+diz+1]) + @inline isin(A) = checkbounds(Bool,A,ix,iy,iz) + # cell centers + @inbounds if isin(wt.c) + Ψs = Vec{8}(Ψ[ix,iy,iz ],Ψ[ix+1,iy,iz ],Ψ[ix,iy+1,iz ],Ψ[ix+1,iy+1,iz ], + Ψ[ix,iy,iz+1],Ψ[ix+1,iy,iz+1],Ψ[ix,iy+1,iz+1],Ψ[ix+1,iy+1,iz+1]) + wt.c[ix,iy,iz] = volfrac(cell,Ψs)/ω + end + # x faces + @inbounds if isin(wt.x) + Ψs = Vec{8}(Ψ_ax(0,0,0),Ψ_ax(1,0,0),Ψ_ax(0,1,0),Ψ_ax(1,1,0), + Ψ_ax(0,0,1),Ψ_ax(1,0,1),Ψ_ax(0,1,1),Ψ_ax(1,1,1)) + wt.x[ix,iy,iz] = volfrac(cell,Ψs)/ω + end + # y faces + @inbounds if isin(wt.y) + Ψs = Vec{8}(Ψ_ay(0,0,0),Ψ_ay(1,0,0),Ψ_ay(0,1,0),Ψ_ay(1,1,0), + Ψ_ay(0,0,1),Ψ_ay(1,0,1),Ψ_ay(0,1,1),Ψ_ay(1,1,1)) + wt.y[ix,iy,iz] = volfrac(cell,Ψs)/ω + end + # z faces + @inbounds if isin(wt.z) + Ψs = Vec{8}(Ψ_az(0,0,0),Ψ_az(1,0,0),Ψ_az(0,1,0),Ψ_az(1,1,0), + Ψ_az(0,0,1),Ψ_az(1,0,1),Ψ_az(0,1,1),Ψ_az(1,1,1)) + wt.z[ix,iy,iz] = volfrac(cell,Ψs)/ω + end + # xy edges + @inbounds if isin(wt.xy) + Ψs = Vec{8}(Ψ_axy(0,0,0),Ψ_axy(1,0,0),Ψ_axy(0,1,0),Ψ_axy(1,1,0), + Ψ_axy(0,0,1),Ψ_axy(1,0,1),Ψ_axy(0,1,1),Ψ_axy(1,1,1)) + wt.xy[ix,iy,iz] = volfrac(cell,Ψs)/ω + end + # xz edges + @inbounds if isin(wt.xz) + Ψs = Vec{8}(Ψ_axz(0,0,0),Ψ_axz(1,0,0),Ψ_axz(0,1,0),Ψ_axz(1,1,0), + Ψ_axz(0,0,1),Ψ_axz(1,0,1),Ψ_axz(0,1,1),Ψ_axz(1,1,1)) + wt.xz[ix,iy,iz] = volfrac(cell,Ψs)/ω + end + # yz edges + @inbounds if isin(wt.yz) + Ψs = Ψs = Vec{8}(Ψ_ayz(0,0,0),Ψ_ayz(1,0,0),Ψ_ayz(0,1,0),Ψ_ayz(1,1,0), + Ψ_ayz(0,0,1),Ψ_ayz(1,0,1),Ψ_ayz(0,1,1),Ψ_ayz(1,1,1)) + wt.yz[ix,iy,iz] = volfrac(cell,Ψs)/ω + end + return +end \ No newline at end of file diff --git a/scripts3D_variational_TM/volume_fractions.jl b/scripts3D_variational_TM/volume_fractions.jl new file mode 100644 index 00000000..4ef6a96d --- /dev/null +++ b/scripts3D_variational_TM/volume_fractions.jl @@ -0,0 +1,128 @@ +@inline perturb(ϕ) = abs(ϕ) > 1e-20 ? ϕ : (ϕ > 0 ? 1e-20 : -1e-20) + +@inline trivol(v1,v2,v3) = 0.5*abs(cross(v3-v1,v2-v1)) + +function volfrac(tri,ϕ::Vec3{T})::T where T + v1,v2,v3 = tri + if ϕ[1] < 0 && ϕ[2] < 0 && ϕ[3] < 0 # --- + return trivol(v1,v2,v3) + elseif ϕ[1] > 0 && ϕ[2] > 0 && ϕ[3] > 0 # +++ + return 0.0 + end + @inline vij(i,j) = tri[j]*(ϕ[i]/(ϕ[i]-ϕ[j])) - tri[i]*(ϕ[j]/(ϕ[i]-ϕ[j])) + v12,v13,v23 = vij(1,2),vij(1,3),vij(2,3) + if ϕ[1] < 0 + if ϕ[2] < 0 + trivol(v1,v23,v13) + trivol(v1,v2,v23) # --+ + else + if ϕ[3] < 0 + trivol(v3,v12,v23) + trivol(v3,v1,v12) # -+- + else + trivol(v1,v12,v13) # -++ + end + end + else + if ϕ[2] < 0 + if ϕ[3] < 0 + trivol(v2,v13,v12) + trivol(v2,v3,v13) # +-- + else + trivol(v12,v2,v23) # +-+ + end + else + trivol(v13,v23,v3) # ++- + end + end +end + +function volfrac(rect::Rect2{T},ϕ::Vec4{T}) where T + or,ws = origin(rect), widths(rect) + v1,v2,v3,v4 = or,or+Vec(ws[1],0.0),or+ws,or+Vec(0.0,ws[2]) + ϕ1,ϕ2,ϕ3,ϕ4 = perturb.(ϕ) + return volfrac(Vec(v1,v2,v3),Vec3{T}(ϕ1,ϕ2,ϕ3)) + + volfrac(Vec(v1,v3,v4),Vec3{T}(ϕ1,ϕ3,ϕ4)) +end + +@inline tetvol(v1,v2,v3,v4) = abs(det([v2-v1 v3-v1 v4-v1]))/6.0 + +function volfrac(tet,ϕ::Vec4) + v1,v2,v3,v4 = tet + @inline vij(i,j) = tet[j]*(ϕ[i]/(ϕ[i]-ϕ[j])) - tet[i]*(ϕ[j]/(ϕ[i]-ϕ[j])) + nneg = count(ϕ.<0) + if nneg == 0 # ++++ + return 0.0 + elseif nneg == 1 # -+++ + if ϕ[1] < 0 + return tetvol(v1,vij(1,2),vij(1,3),vij(1,4)) + elseif ϕ[2] < 0 + return tetvol(v2,vij(2,1),vij(2,3),vij(2,4)) + elseif ϕ[3] < 0 + return tetvol(v3,vij(3,1),vij(3,2),vij(3,4)) + else # ϕ[4] < 0 + return tetvol(v4,vij(4,1),vij(4,2),vij(4,3)) + end + elseif nneg == 2 # --++ + if ϕ[1] < 0 && ϕ[2] < 0 + return tetvol(v1 ,v2 ,vij(1,3),vij(2,4)) + + tetvol(vij(2,3),v2 ,vij(1,3),vij(2,4)) + + tetvol(v1 ,vij(1,4),vij(1,3),vij(2,4)) + elseif ϕ[1] < 0 && ϕ[3] < 0 + return tetvol(v1 ,v3 ,vij(1,4),vij(3,2)) + + tetvol(vij(3,4),v3 ,vij(1,4),vij(3,2)) + + tetvol(v1 ,vij(1,2),vij(1,4),vij(3,2)) + elseif ϕ[1] < 0 && ϕ[4] < 0 + return tetvol(v1 ,v4 ,vij(1,2),vij(4,3)) + + tetvol(vij(4,2),v4 ,vij(1,2),vij(4,3)) + + tetvol(v1 ,vij(1,3),vij(1,2),vij(4,3)) + elseif ϕ[2] < 0 && ϕ[3] < 0 + return tetvol(v3 ,v2 ,vij(3,1),vij(2,4)) + + tetvol(vij(2,1),v2 ,vij(3,1),vij(2,4)) + + tetvol(v3 ,vij(3,4),vij(3,1),vij(2,4)) + elseif ϕ[2] < 0 && ϕ[4] < 0 + return tetvol(v4 ,v2 ,vij(4,1),vij(2,3)) + + tetvol(vij(2,1),v2 ,vij(4,1),vij(2,3)) + + tetvol(v4 ,vij(4,3),vij(4,1),vij(2,3)) + else # ϕ[3] < 0 && ϕ[4] < 0 + return tetvol(v3 ,v4 ,vij(3,1),vij(4,2)) + + tetvol(vij(4,1),v4 ,vij(3,1),vij(4,2)) + + tetvol(v3 ,vij(3,2),vij(3,1),vij(4,2)) + end + elseif nneg == 3 # ---+ + vol_tot = tetvol(v1,v2,v3,v4) + if ϕ[1] >= 0 + return vol_tot - tetvol(v1,vij(1,2),vij(1,3),vij(1,4)) + elseif ϕ[2] >= 0 + return vol_tot - tetvol(v2,vij(2,1),vij(2,3),vij(2,4)) + elseif ϕ[3] >= 0 + return vol_tot - tetvol(v3,vij(3,1),vij(3,2),vij(3,4)) + else # ϕ[4] >= 0 + return vol_tot - tetvol(v4,vij(4,1),vij(4,2),vij(4,3)) + end + else # ---- + return tetvol(v1,v2,v3,v4) + end +end + +function volfrac(rect::Rect3,ϕ::Vec{8}) + or,ws = origin(rect), widths(rect) + v000,v001,v100,v101 = or ,or+Vec(ws[1],0.0,0.0 ),or+Vec(0.0,ws[2],0.0 ),or+Vec(ws[1],ws[2],0.0 ) + v010,v011,v110,v111 = or+Vec(0.0,0.0,ws[3]),or+Vec(ws[1],0.0,ws[3]),or+Vec(0.0,ws[2],ws[3]),or+Vec(ws[1],ws[2],ws[3]) + ϕ = perturb.(ϕ) + return volfrac(Vec(v000,v100,v010,v001),Vec(ϕ[1],ϕ[5],ϕ[3],ϕ[2])) + + volfrac(Vec(v110,v100,v010,v111),Vec(ϕ[7],ϕ[5],ϕ[3],ϕ[7])) + + volfrac(Vec(v101,v100,v111,v001),Vec(ϕ[6],ϕ[5],ϕ[7],ϕ[2])) + + volfrac(Vec(v011,v111,v010,v001),Vec(ϕ[4],ϕ[7],ϕ[3],ϕ[2])) + + volfrac(Vec(v111,v100,v010,v001),Vec(ϕ[7],ϕ[5],ϕ[3],ϕ[2])) +end + +include("volume_fraction_kernels.jl") + +const _compute_volume_fractions_from_level_set! = _kernel_compute_volume_fractions_from_level_set!(get_device()) + +function compute_volume_fractions_from_level_set!(wt,Ψ,dx,dy,dz) + wt_inn = (;c=wt.c,x=inn_x(wt.x),y=inn_y(wt.y),z=inn_z(wt.z),xy=wt.xy,xz=wt.xz,yz=wt.yz) + wait(_compute_volume_fractions_from_level_set!(wt_inn,Ψ,dx,dy,dz;ndrange=axes(Ψ))) + bc_x_neumann!(0.0,wt.x) + bc_y_neumann!(0.0,wt.y) + bc_z_neumann!(0.0,wt.z) + return +end \ No newline at end of file diff --git a/scripts_future_API/tm_stokes.jl b/scripts_future_API/tm_stokes.jl new file mode 100644 index 00000000..db1b89f1 --- /dev/null +++ b/scripts_future_API/tm_stokes.jl @@ -0,0 +1,180 @@ +## TODOs +# 1. How to parametrise boundary conditions for energy and ice flow for the free surface case +# 2. How to efficiently parametrise multiphysics + +using FastIce +using FastIce.Thermodynamics.EOS +# using FastIce.Models.Thermal +# using FastIce.Models.FullStokes.Isothermal +# using FastIce.Models.FullStokes.IsothermalPlasticity +# using FastIce.Models.FullStokes.Thermomechanical +using FastIce.Models.FullStokes.ThermomechanicalWithTopo + +## Supported topologies +# 1. Bounded +# 2. Periodic +grid = CartesianGrid( + origin = (-0.5, -0.5, 0.0), + extent = ( 1.0, 1.0, 1.0), + size = ( 100, 100, 100); + topology = (Bounded, Bounded, Bounded) +) + +free_surface_bc = PrescribedTraction(0.0, 0.0, 0.0) +no_slip_wall_bc = PrescribedVelocity(0.0, 0.0, 0.0) + +adiabatic_flux_bc = PrescribedHeatFlux(0.0) +geothermal_flux_bc = PrescribedHeatFlux(0.1) +fixed_temperature_bc = PrescribedTemperature(-0.1) + +boundary_conditions = ( + stokes = BoundaryConditions( + no_slip_wall_bc; top = free_surface_bc, immersed_ice_air = free_surface_bc + ), + thermal = BoundaryConditions( + adiabatic_flux_bc; immersed_ice_air = fixed_temperature; immersed_ice_bed = geothermal_flux_bc + ) +) + +## Thermodynamics +equation_of_state = IncompressibleEOS( + density = (ice = 920.0 , water = 1000.0), + heat_capacity = (ice = 2100.0, water = 4200.0), + conductivity = (ice = 2.0 , water = 1.0), + latent_heat = 334e3 +) + +## Rheology +rheology = IceRheology( + stress_strain = Glen(A = 1e-20, n = 3), # variants: Linear(μ), Goldsby(...) + thermal_weakening = Arrhenius(Q = 1.0, R = 8.31), # variants: nothing + melt_weakening = PowerLawWeakening(ϕref = 0.1, n = 2), # variants: nothing +) + +physics = (;equation_of_state, rheology) + +numerics = ( + tolerance = (v = 1e-6, τ = 1e-6, p = 1e-8), + check_after_iterations = 100, + max_iterations = 20(size(grid),3) +) + +advection = UpwindAdvection() # variants: + +mass_balance = nothing + +model = ThermomechanicalStokesModel( + grid, + physics, + advection, + boundary_conditions, + numerics, +) + +## Initialisation +# Variants: +# 1. Constant +# τ_ini = 0.0 +# 2. Constant per-component +# τ_ini = ( +# xx = 0.0, yy = 0.0, zz = 0.0, +# xy = 0.0, xz = 0.0, yz = 0.0, +# ) +# 3. Function of coordinates and time +# Pr_ini(x,y,z) = ρg*(zc[end] - z) +# 4. Parametrized function +# Pr_ini(x,y,z,p) = p.ρg*(p.lz - z) +# 5. Function of grid indices and time +# Pr_ini(ix,iy,iz,grid) = ρg*(grid[ix,iy,end][3] - grid[ix,iy,iz][3]) +# 6. Parametrized function of grid indices +# Pr_ini(ix,iy,iz,grid,p) = p.ρg*(p.lz - grid[ix,iy,iz][3]) + +τ_ini = 0.0 +P_ini = 0.0 +v_ini = 0.0 + +ρU_ini = total_energy(equation_of_state, (T=-10.0, ϕ=0.0)) + +set!(model, τ = τ_ini, P = P_ini, v = v_ini, ρU = ρU_ini) + +timestepping = ( + rep_Δt = 1.0, + total_time = 1000.0, + min_Δt = 0.01, + max_Δt = 0.5, + cfl = 1/3.1, +) + +simulation = Simulation(model; timestepping...) + +## High-level framework api +# callbacks = CallbackSet(...) +# run!(simulation; callbacks) +run!(simulation) + +## Low-level library-like API +for (it, rep_Δt, current_time) in timesteps(simulation) + copy_double_buffers!(model) + target_Δt = timestepping.max_Δt + if !isnothing(timestepping.cfl) + cfl_Δt = estimate_Δt(model, timestepping.cfl) + target_Δt = min(target_Δt, cfl_Δt) + end + nsub = ceil(Int,rep_Δt/target_Δt) + Δt = rep_Δt/nsub + isub = 0; Δt_stack = fill(Δt,nsub) + while !isempty(Δt_stack) + isub += 1 + Δt = pop!(Δt_stack) + ϵtol = Tuple(numerics.tolerance) + iter = 1; errs = copy(ϵtol); finished = false; success = true + while !finished + advance_iteration!(model, Δt, current_time) + iter += 1 + if iter % numerics.check_after_iterations == 0 + errs = compute_residual_norm(model) + if !all(isfinite.(errs)) + success = false + finished = true + else + finished = all(errs .<= ϵtol) + end + end + if iter > numerics.max_iterations + success = false + finished = true + end + end + if failed + recover!(model) + push!(Δt_stack, 0.5Δt, 0.5Δt) + else + copy_double_buffers!(model) + current_time += Δt + end + end +end + +## Intermediate-level API +for (it, rep_Δt, current_time) in timesteps(simulation) + copy_double_buffers!(model) + target_Δt = timestepping.max_Δt + if !isnothing(timestepping.cfl) + cfl_Δt = estimate_Δt(model, timestepping.cfl) + target_Δt = min(target_Δt, cfl_Δt) + end + nsub = ceil(Int,rep_Δt/target_Δt) + Δt = rep_Δt/nsub + isub = 0; Δt_stack = fill(Δt,nsub) + while !isempty(Δt_stack) + isub += 1 + Δt = pop!(Δt_stack) + if !advance_timestep!(model, Δt, current_time) + recover!(model) + push!(Δt_stack, 0.5Δt, 0.5Δt) + else + copy_double_buffers!(model) + current_time += Δt + end + end +end diff --git a/src/FastIce.jl b/src/FastIce.jl index 1b20ba76..94e11cef 100644 --- a/src/FastIce.jl +++ b/src/FastIce.jl @@ -1,6 +1,57 @@ module FastIce -include("level_sets/level_sets.jl") -include("geometry.jl") +export field_array,get_device,get_backend,set_backend! +export to_device, to_host + +using Preferences +using TinyKernels + +const BACKEND = @load_preference("backend", "CPU") + +@static if BACKEND == "CPU" + const DEVICE = CPUDevice() +elseif BACKEND == "CUDA" + using CUDA; const DEVICE = CUDADevice() +elseif BACKEND == "AMDGPU" + using AMDGPU; const DEVICE = AMDGPUDevice() +elseif BACKEND == "Metal" + using Metal; const DEVICE = MetalDevice() +else + error("unsupported backend \"$BACKEND\"") +end + +@inline get_device() = DEVICE +@inline get_backend() = BACKEND + +function set_backend!(new_backend) + if !(new_backend ∈ ("CPU", "CUDA", "AMDGPU", "Metal")) + throw(ArgumentError("invalid backend \"$new_backend\"")) + end + @set_preferences!("backend" => new_backend) + @info("new backend set; restart your Julia session for this change to take effect") +end + +@static if BACKEND == "CPU" + @inline to_device(array::AbstractArray) = array + @inline to_host(array::AbstractArray) = array +elseif BACKEND == "CUDA" + @inline to_device(array::CuArray) = array + @inline to_device(array::AbstractArray) = CuArray(array) + @inline to_host(array::CuArray) = Array(array) + @inline to_host(array::AbstractArray) = array +elseif BACKEND == "AMDGPU" + @inline to_device(array::ROCArray) = array + @inline to_device(array::AbstractArray) = ROCArray(array) + @inline to_host(array::ROCArray) = Array(array) + @inline to_host(array::AbstractArray) = array +elseif BACKEND == "Metal" + @inline to_device(array::MtlArray) = array + @inline to_device(array::AbstractArray) = MtlArray(array) + @inline to_host(array::MtlArray) = Array(array) + @inline to_host(array::AbstractArray) = array +end + +include("logging.jl") +include("fields.jl") end # module diff --git a/src/fields.jl b/src/fields.jl new file mode 100644 index 00000000..cdfdf3b2 --- /dev/null +++ b/src/fields.jl @@ -0,0 +1,50 @@ +export field_array, scalar_field, vector_field, tensor_field, volfrac_field + +@inline field_array(::Type{T}, args...) where {T} = TinyKernels.device_array(T, DEVICE, args...) + +@inline scalar_field(::Type{T}, args...) where {T} = field_array(T, args...) + +# 2D fields +@inline vector_field(::Type{T}, nx, ny) where {T} = ( + x=field_array(T, nx + 1, ny), + y=field_array(T, nx, ny + 1) +) + +@inline tensor_field(::Type{T}, nx, ny) where {T} = ( + xx=field_array(T, nx, ny), + yy=field_array(T, nx, ny), + xy=field_array(T, nx - 1, ny - 1) +) + +@inline volfrac_field(::Type{T}, nx, ny) where {T} = ( + c=field_array(T, nx, ny), + x=field_array(T, nx + 1, ny), + y=field_array(T, nx, ny + 1), + xy=field_array(T, nx - 1, ny - 1) +) + +# 3D fields +@inline vector_field(::Type{T}, nx, ny, nz) where {T} = ( + x=field_array(T, nx + 1, ny, nz), + y=field_array(T, nx, ny + 1, nz), + z=field_array(T, nx, ny, nz + 1) +) + +@inline tensor_field(::Type{T}, nx, ny, nz) where {T} = ( + xx=field_array(T, nx, ny, nz), + yy=field_array(T, nx, ny, nz), + zz=field_array(T, nx, ny, nz), + xy=field_array(T, nx - 1, ny - 1, nz - 2), + xz=field_array(T, nx - 1, ny - 2, nz - 1), + yz=field_array(T, nx - 2, ny - 1, nz - 1) +) + +@inline volfrac_field(::Type{T}, nx, ny, nz) where {T} = ( + c=field_array(T, nx, ny, nz), + x=field_array(T, nx + 1, ny, nz), + y=field_array(T, nx, ny + 1, nz), + z=field_array(T, nx, ny, nz + 1), + xy=field_array(T, nx - 1, ny - 1, nz - 2), + xz=field_array(T, nx - 1, ny - 2, nz - 1), + yz=field_array(T, nx - 2, ny - 1, nz - 1) +) \ No newline at end of file diff --git a/src/level_sets/amdgpu_backend.jl b/src/level_sets/amdgpu_backend.jl deleted file mode 100644 index d6f5abb3..00000000 --- a/src/level_sets/amdgpu_backend.jl +++ /dev/null @@ -1,57 +0,0 @@ -module AMDGPUBackend - -using AMDGPU -using LinearAlgebra,GeometryBasics,Printf - -using ..LevelSets - -export init_level_set!,solve_eikonal! - -macro get_thread_idx() esc(:( begin - ix = (workgroupIdx().x - 1) * workgroupDim().x + workitemIdx().x - iy = (workgroupIdx().y - 1) * workgroupDim().y + workitemIdx().y - iz = (workgroupIdx().z - 1) * workgroupDim().z + workitemIdx().z - end )) -end - -include("kernels.jl") - -""" - init_level_set!(ls,mask,dem,rc,dem_rc,cutoff,R) - -Initialise level set as a signed distance function in a narrow band around a heightmap - -# Arguments -- `R` is the rotation matrix -- `cutoff` is the distance from the heightmap within which the levelset computation is accurate -""" -function init_level_set!(ls,mask,dem,rc,dem_rc,cutoff,R) - nthreads = (8,8,4) - wait(@roc groupsize=nthreads gridsize=size(ls) _init_level_set!(ls,mask,dem,rc,dem_rc,cutoff,R)) - return -end - - -""" - solve_eikonal!(ls,dldt,mask,dx,dy,dz) - -Solve eikonal equation to reinitialise the level specified by the approximation `ls` -""" -function solve_eikonal!(ls,dldt,mask,dx,dy,dz;ϵtol = 1e-8) - dt = 0.5min(dx,dy,dz) - nthreads = (8,8,8) - minsteps,maxsteps = extrema(size(ls)) - ncheck = cld(minsteps,4) - for istep in 1:5maxsteps - wait(@roc groupsize=nthreads gridsize=size(ls) _update_dldt!(dldt,ls,mask,dx,dy,dz)) - wait(@roc groupsize=nthreads gridsize=size(ls) _update_ls!(ls,dldt,dt)) - if istep % ncheck == 0 - err = maximum(abs.(dldt)) - @debug @sprintf("iteration # %d , error = %1.3e\n",istep,err) - if err < ϵtol break end - end - end - return -end - -end # module AMDGPUBackend \ No newline at end of file diff --git a/src/level_sets/cuda_backend.jl b/src/level_sets/cuda_backend.jl deleted file mode 100644 index 19a05d95..00000000 --- a/src/level_sets/cuda_backend.jl +++ /dev/null @@ -1,60 +0,0 @@ -module CUDABackend - -using CUDA -using LinearAlgebra,GeometryBasics,Printf - -using ..LevelSets - -export init_level_set!,solve_eikonal! - -macro get_thread_idx() esc(:( begin - ix = (blockIdx().x-1)*blockDim().x + threadIdx().x - iy = (blockIdx().y-1)*blockDim().y + threadIdx().y - iz = (blockIdx().z-1)*blockDim().z + threadIdx().z - end )) -end - -include("kernels.jl") - -""" - init_level_set!(ls,mask,dem,rc,dem_rc,cutoff,R) - -Initialise level set as a signed distance function in a narrow band around a heightmap - -# Arguments -- `R` is the rotation matrix -- `cutoff` is the distance from the heightmap within which the levelset computation is accurate -""" -function init_level_set!(ls,mask,dem,rc,dem_rc,cutoff,R) - nthreads = (8,8,4) - nblocks = cld.(size(ls),nthreads) - CUDA.@sync @cuda threads=nthreads blocks=nblocks _init_level_set!(ls,mask,dem,rc,dem_rc,cutoff,R) - return -end - - -""" - solve_eikonal!(ls,dldt,mask,dx,dy,dz) - -Solve eikonal equation to reinitialise the level specified by the approximation `ls` -""" -function solve_eikonal!(ls,dldt,mask,dx,dy,dz;ϵtol = 1e-8) - dt = 0.5min(dx,dy,dz) - nthreads = (8,8,8) - nblocks = cld.(size(ls),nthreads) - minsteps,maxsteps = extrema(size(ls)) - ncheck = cld(minsteps,4) - for istep in 1:maxsteps - CUDA.@sync @cuda threads=nthreads blocks=nblocks _update_dldt!(dldt,ls,mask,dx,dy,dz) - CUDA.@sync @cuda threads=nthreads blocks=nblocks _update_ls!(ls,dldt,dt) - if istep % ncheck == 0 - err = maximum(abs.(dldt)) - @printf("iteration # %d , error = %1.3e\n",istep,err) - @debug @sprintf("iteration # %d , error = %1.3e\n",istep,err) - if err < ϵtol break end - end - end - return -end - -end # module CUDABackend \ No newline at end of file diff --git a/src/level_sets/kernels.jl b/src/level_sets/kernels.jl deleted file mode 100644 index f9c25d3b..00000000 --- a/src/level_sets/kernels.jl +++ /dev/null @@ -1,39 +0,0 @@ -function _init_level_set!(ls,mask,dem,rc,dem_rc,cutoff,R) - @get_thread_idx() - if !(ix ∈ axes(ls,1)) || !(iy ∈ axes(ls,2)) || !(iz ∈ axes(ls,3)) return end - x,y,z = rc[1][ix],rc[2][iy],rc[3][iz] - P = R*Point3(x,y,z) - ud,sgn = LevelSets.sd_dem(P,cutoff,dem,dem_rc) - ls[ix,iy,iz] = ud*sgn - mask[ix,iy,iz] = ud < cutoff - return -end - -function _update_dldt!(dldt,ls,mask,dx,dy,dz) - @get_thread_idx() - if !(ix ∈ axes(ls,1)) || !(iy ∈ axes(ls,2)) || !(iz ∈ axes(ls,3)) return end - if mask[ix,iy,iz] - dldt[ix,iy,iz] = 0 - return - end - # eikonal solve - dLdx_m = if ix > 1; (ls[ix ,iy ,iz ]-ls[ix-1,iy ,iz ])/dx; else 0.0 end - dLdy_m = if iy > 1; (ls[ix ,iy ,iz ]-ls[ix ,iy-1,iz ])/dy; else 0.0 end - dLdz_m = if iz > 1; (ls[ix ,iy ,iz ]-ls[ix ,iy ,iz-1])/dz; else 0.0 end - dLdx_p = if ix < size(ls,1); (ls[ix+1,iy ,iz ]-ls[ix ,iy ,iz ])/dx; else 0.0 end - dLdy_p = if iy < size(ls,2); (ls[ix ,iy+1,iz ]-ls[ix ,iy ,iz ])/dy; else 0.0 end - dLdz_p = if iz < size(ls,3); (ls[ix ,iy ,iz+1]-ls[ix ,iy ,iz ])/dz; else 0.0 end - dLdx2 = ls[ix,iy,iz] > 0 ? max(max(dLdx_m,0)^2,min(dLdx_p,0)^2) : max(min(dLdx_m,0)^2,max(dLdx_p,0)^2) - dLdy2 = ls[ix,iy,iz] > 0 ? max(max(dLdy_m,0)^2,min(dLdy_p,0)^2) : max(min(dLdy_m,0)^2,max(dLdy_p,0)^2) - dLdz2 = ls[ix,iy,iz] > 0 ? max(max(dLdz_m,0)^2,min(dLdz_p,0)^2) : max(min(dLdz_m,0)^2,max(dLdz_p,0)^2) - dldt[ix,iy,iz] = sign(ls[ix,iy,iz])*(1 - sqrt(dLdx2 + dLdy2 + dLdz2)) - return -end - -function _update_ls!(ls,dldt,dt) - @get_thread_idx() - if ix ∈ axes(ls,1) && iy ∈ axes(ls,2) && iz ∈ axes(ls,3) - ls[ix,iy,iz] += dt*dldt[ix,iy,iz] - end - return -end \ No newline at end of file diff --git a/src/level_sets/level_sets.jl b/src/level_sets/level_sets.jl deleted file mode 100644 index 47e5d2b9..00000000 --- a/src/level_sets/level_sets.jl +++ /dev/null @@ -1,8 +0,0 @@ -module LevelSets - -include("signed_distances.jl") -include("cuda_backend.jl") -include("amdgpu_backend.jl") -# include("ps_backend.jl") - -end # module LevelSets diff --git a/src/level_sets/ps_backend.jl b/src/level_sets/ps_backend.jl deleted file mode 100644 index c1a878ac..00000000 --- a/src/level_sets/ps_backend.jl +++ /dev/null @@ -1,53 +0,0 @@ -module PSBackend - -using ParallelStencil -@init_parallel_stencil(CUDA,Float64,3) - -using ImplicitGlobalGrid - -using LinearAlgebra,GeometryBasics,Printf - -using ..LevelSets - -export init_level_set!,solve_eikonal! - - -include("ps_kernels.jl") - -""" - init_level_set!(ls,mask,dem,rc,dem_rc,cutoff,R) - -Initialise level set as a signed distance function in a narrow band around a heightmap - -# Arguments -- `R` is the rotation matrix -- `cutoff` is the distance from the heightmap within which the levelset computation is accurate -""" -function init_level_set!(ls,mask,dem,rc,dem_rc,cutoff,R) - @parallel (1:size(ls,1),1:size(ls,2),1:size(ls,3)) _init_level_set!(ls,mask,dem,rc,dem_rc,cutoff,R) - return -end - - -""" - solve_eikonal!(ls,dldt,mask,dx,dy,dz) - -Solve eikonal equation to reinitialise the level specified by the approximation `ls` -""" -function solve_eikonal!(ls,dldt,mask,dx,dy,dz;ϵtol = 1e-8) - dt = 0.5min(dx,dy,dz) - minsteps,maxsteps = extrema(size(ls)) - ncheck = cld(minsteps,4) - for istep in 1:maxsteps - @parallel _update_dldt!(dldt,ls,mask,dx,dy,dz) - @parallel _update_ls!(ls,dldt,dt) - if istep % ncheck == 0 - err = maximum(abs.(dldt)) - @debug @sprintf("iteration # %d , error = %1.3e\n",istep,err) - if err < ϵtol break end - end - end - return -end - -end # module PSBackend \ No newline at end of file diff --git a/src/level_sets/ps_kernels.jl b/src/level_sets/ps_kernels.jl deleted file mode 100644 index ef4384f3..00000000 --- a/src/level_sets/ps_kernels.jl +++ /dev/null @@ -1,37 +0,0 @@ -@parallel_indices (ix,iy,iz) function _init_level_set!(ls,mask,dem,rc,dem_rc,cutoff,R) - if ix ∈ axes(ls,1) && iy ∈ axes(ls,2) && iz ∈ axes(ls,3) - P = R*Point3(getindex.(rc,(ix,iy,iz))...) - ud,sgn = LevelSets.sd_dem(P,cutoff,dem,dem_rc) - ls[ix,iy,iz] = ud*sgn - mask[ix,iy,iz] = ud < cutoff - end - return -end - -@parallel_indices (ix,iy,iz) function _update_dldt!(dldt,ls,mask,dx,dy,dz) - if ix ∈ axes(ls,1) && iy ∈ axes(ls,2) && iz ∈ axes(ls,3) - if mask[ix,iy,iz] - dldt[ix,iy,iz] = 0 - else - # eikonal solve - dLdx_m = if ix > 1; (ls[ix ,iy ,iz ]-ls[ix-1,iy ,iz ])/dx; else 0.0 end - dLdy_m = if iy > 1; (ls[ix ,iy ,iz ]-ls[ix ,iy-1,iz ])/dy; else 0.0 end - dLdz_m = if iz > 1; (ls[ix ,iy ,iz ]-ls[ix ,iy ,iz-1])/dz; else 0.0 end - dLdx_p = if ix < size(ls,1); (ls[ix+1,iy ,iz ]-ls[ix ,iy ,iz ])/dx; else 0.0 end - dLdy_p = if iy < size(ls,2); (ls[ix ,iy+1,iz ]-ls[ix ,iy ,iz ])/dy; else 0.0 end - dLdz_p = if iz < size(ls,3); (ls[ix ,iy ,iz+1]-ls[ix ,iy ,iz ])/dz; else 0.0 end - dLdx2 = ls[ix,iy,iz] > 0 ? max(max(dLdx_m,0)^2,min(dLdx_p,0)^2) : max(min(dLdx_m,0)^2,max(dLdx_p,0)^2) - dLdy2 = ls[ix,iy,iz] > 0 ? max(max(dLdy_m,0)^2,min(dLdy_p,0)^2) : max(min(dLdy_m,0)^2,max(dLdy_p,0)^2) - dLdz2 = ls[ix,iy,iz] > 0 ? max(max(dLdz_m,0)^2,min(dLdz_p,0)^2) : max(min(dLdz_m,0)^2,max(dLdz_p,0)^2) - dldt[ix,iy,iz] = sign(ls[ix,iy,iz])*(1 - sqrt(dLdx2 + dLdy2 + dLdz2)) - end - end - return -end - -@parallel_indices (ix,iy,iz) function _update_ls!(ls,dldt,dt) - if ix ∈ axes(ls,1) && iy ∈ axes(ls,2) && iz ∈ axes(ls,3) - ls[ix,iy,iz] += dt*dldt[ix,iy,iz] - end - return -end \ No newline at end of file diff --git a/src/logging.jl b/src/logging.jl new file mode 100644 index 00000000..f3b7eebb --- /dev/null +++ b/src/logging.jl @@ -0,0 +1,24 @@ +module Logging + +export MPILogger + +import Logging: AbstractLogger, handle_message, shouldlog, min_enabled_level +import MPI + +struct MPILogger{B<:AbstractLogger} <: AbstractLogger + rank::Int64 + comm::MPI.Comm + base_logger::B +end + +function handle_message(l::MPILogger,args...;kwargs...) + if MPI.Comm_rank(l.comm) == l.rank + handle_message(l.base_logger,args...;kwargs...) + end +end + +shouldlog(l::MPILogger,args...) = (MPI.Comm_rank(l.comm) == l.rank) && shouldlog(l.base_logger,args...) + +min_enabled_level(l::MPILogger) = min_enabled_level(l.base_logger) + +end \ No newline at end of file diff --git a/startup_ault.sh b/startup_ault.sh deleted file mode 100755 index 43ab9e57..00000000 --- a/startup_ault.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -source ./scripts3D_amdgpu/setenv_ault.sh - -julian --project -e 'using Pkg; Pkg.resolve()' - -julian --project -e 'using Pkg; pkg"add https://github.com/luraess/ImplicitGlobalGrid.jl#lr/amdgpu-0.4.x-support";' - -julian --project -e 'using MPIPreferences; MPIPreferences.use_system_binary()' - -julian --project -e 'using AMDGPU; AMDGPU.versioninfo()'