Implications of closures over large constants #10551
-
Hi, Let's say we have a function with a large static constant jnp array. We can use a closure to embed this into the function, as follows:
Note that we can't use the We can also put the
Q1: In the first case, the jitted function itself contains a copy of the Q2. If we have the memory, will the closure approach generally be faster? It seems that the compiler has strictly more information in the closure case, so can optimize the function. In a colab, it seems that the speedup with large As a suggestion, it might be a good idea to think about raising some sort of warning if the user gets an OOM while closing over a huge constant. I'm not sure how exactly the warning would be implemented, but I can imagine this copying behaviour might not be intuitive to users. Colab: https://colab.research.google.com/drive/1W44JoQ1UKF2h5TLGieZ5OYfQ4HnH9cF9?usp=sharing |
Beta Was this translation helpful? Give feedback.
Replies: 6 comments 7 replies
-
I can not reproduce the problem in Q1. import jax
import jax.numpy as jnp
n = 30000 # 30k all pass, 35k failed during creating large_constant
large_constant = jax.random.normal(jax.random.PRNGKey(0), (n, n))
x = jnp.zeros(n)
def fn1(x):
return x @ large_constant + 1
def fn2(x):
return x @ large_constant + 2
def fn3(x):
return x @ large_constant + jnp.linalg.norm(large_constant**2)
jit_fn1 = jax.jit(fn1)
jit_fn2 = jax.jit(fn2)
jit_fn3 = jax.jit(fn3)
jit_fn1(x)
print(len(jax.lib.xla_bridge.get_backend().live_buffers())) # 2
jit_fn2(x)
print(len(jax.lib.xla_bridge.get_backend().live_buffers())) # 2
jit_fn3(x)
print(len(jax.lib.xla_bridge.get_backend().live_buffers())) # 2 |
Beta Was this translation helpful? Give feedback.
-
It seems that the constant is not copied during tracing... print([id(c) for c in consts]) # print same id I suspect that the constant "leak" happens during compiling. It can also explain why |
Beta Was this translation helpful? Give feedback.
-
Ah Oh! But it seems that |
Beta Was this translation helpful? Give feedback.
-
It seems that JAX do substantially copy which costs a lots of time and memory, and invisible to users. module @jit_myfn.7 {
func public @main(%arg0: tensor<100xf32>) -> tensor<100xf32> {
%0 = mhlo.constant dense<"0x69CEB23F073B803E9CF008C02E87953EA4B6923F1C7223BF61BFD5BFB2BC8DBFC4135EBF7571A6BEFA4D213D1B83B13F47AD09BFC5C7ADBE647B473F3DF9CF3F0E1E0EBF5185563E6A4A9D3FEFE7A9BD790E9FBF451452BF781CBA3DBD4AA1BF889F03BEE842F9BF79AF8C3F2A075B3F4153703FEF7148BFEE42803FFFCA27BFF6A6523FAAE919C0E79CF53E41AE8C3FF120B6BEA311C2BD48CC30BF5F6926BFF38EDC3E2B79723D3CDA2D3F071CC0BE0144003D0A98DB3E43E1EFBEC960503F8D7997BE56B7FABEA0D5173FE66A893E13BD653F436018BEBACC233FAB8946BF79B01FBF02A609BEEDF62FBFF40AF0BFD640293E49D8F0BE892E593F193D4A3F0829EC3F0EEB96BE7596143F852B07BF73BABB3F96DBEB3EE10A29BCFA6F8BBF5B6F7DBFD21FE53EB5E9153F6927973E51020AC0FF6DB3BFD066F63F69A10F3F54BA6EBE632387BCD50882BF80FF01BE04B44FBFC35B67BEBE7A9FBF219AEDBFCD9CA73FF8FB83BF74F3B6BFB8057D3E1127CD3E2CA5E23EA6EC313FE40B4DBF117FF73E1C0CA13ECB17B5BF09AF68BFC9CC37BF0C330DBFEA800C3F5D5D9D3FBEC7013F529998BFD149933E7EE90ABFB5AB57BF7F812BBFFDAB9E3E981AAC3F6B55C33F3FB5643F91180D3FEA00DBBF95247C3EFE1BF4BE84239DBFBEBB29BFADEF36BF11CA87BFC55309408E706ABF249DD2BE430D683F9E5B9CBE197CDD3C2C7403BE7B14523DC65B12BEDF5C853F571449BD9247A03E64596E3FDDA63140F746B4BEBF48C1BF525A7F3F51A57D3F2E9FA73ED503E8BDF4F218BE98939FBEFF851D3F2AC0303F6581DE3F4EEBA6BFA03A603E236568BE0F8C62BE3E43AFBE00208EBE8AC40FBF2F022DBED5F8D8BE9EAF85BF2F8115BF27F0AC3F897B253F12E9993E19B3D4BD96178ABF364F023D2E61ADBEBCFBF03DEA295F3F16C1553FA54AA6BE7639E9BE3CAC95BFF4E44DBFAB2198BDD71923BFEC09BC3E864263BFA5741AC082410EC08F6C7FBF6F99313F9B8F41BFE89C9E3FA2C4A4BF1EFC48BF38F4CF3FC8E4CFBE6337143FFB192EBE9036C23F32917BBF1641A63F41398BBD4532D43E9BF0A13F2E3032BF5EFCCEBF85FEAF3F61FB843FDFB2213FB3AC9A3FBA1BDF3DF2A6D63E472C1D3F735A1DBF2E27103EDC2CB23EB85689BFDE4308BFE75D603FD257C13E5496FFBF55F00AC03141073F05F6B23E4A19493F16B11BBF62198CBEEBC1983F36C9533D705318BDCEDB243F10FF42BE0377D4BF9C5A16BFBFFDC63E5350AEBCE20CA8BE3869ECBEED720E3E2962F83F762649BEE98BE7BE9B00163FAA2A00BF788BC8BE5607C4BF348AEB3DF3C4DEBE5A65D4BFAA5E133FF53995BEC0C9873F36AA63BFFC3ABBBF12E4AC3DCFB1EA3ED0D4E03EDE3DDE3F95EB14BFAA7E173F0B310D3E21B16BBFD0F4423F1DE4DF3E154BE73E3481D4BEE4B6853DFFD3773FD725B53D6714213EC6BF003F0246EC3F7859A1BF15BD5ABEDDE4983F9CC4BD3FAF82BB3DFE7976BF9E2A3C3FED58D43D886AF2BFDD33AC3ED18B7DBF78D42FBE41040B3F094E5BBF03C4CABC8CCBD73F8542CC3F491F4C3EBE45ED3CA8838EBEFB349E3FF3AEF23EA6D7C2BE748C23BF8A68C9BE5E3F823E7EA28C3E8F29763F110EF43F46A2F33E01A7B1BF97F6F9BE0CE0B73FA64A6ABF8B8998BFDD6284BE1FB90140AB2357BFCD1D8BBF641E42BFA6A82CBFFFAC40BCF6649CBFFBEF24BFD3EE6CBFFD77BD3F4B65CD3F58E5034019955CBF6DF6F73E58B341BFEE6C993ECB80B9BFB594E23EA478D73E1C3006BF8F1D5B3F323CA6BE41D037BF632F93BE80F7E93E9C58923FCCD0D33EE7E50AC0DACB2B3DEAA553C0655A9BBF68F72EBE4D6A103F41C7973DBFA41440A264803FEAB1503F43891F3FFAC5083EA53A4EBF3AE09ABF11E446BDD215B1BE98AC5E3F54960FBFD6352E3EFB124ABFE1BE6E3E23D3983E9B93DBBF9C7B593FDC87E2BEAE27AD3EDDB62CBF5E1A05BF2BCB3C3FBE25CEBE47DA393F4753903D08A6583F988492BE5B061BBF15D08F3FC9B7A83C6FCAC1BFA37CA93FF94ADB3E7540C43F3F6D833ED3FD1EBF5457B2BEBB8ED0BF6B99C8BF940E983D5C0D0740072E9C3F6E1080BFDD0F69BE96665ABF7BC835BFBD7964BF2B529C3D9157E0BEFA0C5D3D6A4A92BDA86DF43DED6F4B3F3ECFDE3C1344AFBE7CA3CB3CAF4597BF53A9C83F0BD1C9BEC274843FA656333F9AAB64BF0979DA3E0FB4CF3CF58EA63C3FF0CC3EB79406BEB7809DBD0F2E643F629D4C3E62D224C0296708BF0921523FADD4D2BFEDFE26BFEAF465BDD4C18CBE73B81B3F5888713F074DFDBE6F01C4BED91F80BE3B628EBE9D47D6BE6013F5BE3AD805BFB40B923F9BBB763FD9F53FBF33E9B3BF2BBB173E00202F3F456499BE6293F33FE0071C3EC2A4883ECB31083E6AC0C7BEE1AD0D40AE2A2D3FEF59B8BFA043D33FBDED993DDF6AE03F7F348CBD71F3353F61BBAE3F81A4793D682A623EAECD273F873CD2BE46DE713EF718E33E0806A6BEDA78D2BFFB3CDF3D99C0F03E3AB7DD3EB0014FBED0275D3F229D7BBFCD577BBE12FC933F4DCEA43EDA24263F890D013F337095BD8A8F39BFCE0EA7BFC91CD23F74163C3F7C3155BF4C1EAA3F4432323F35C02ABF4A78C83E6B4E8DBEB3DE143F9F7C803F0EA899BF4009043E3033233FD3C3373FE4E7ADBDC39FA73E40E15A3FB8EA823EC86C7A3DF076CABDEE68A03E42502CBF596B333FB4952C3C2801A5BF2CC58F3F4F5A6EBE8ADE56BF4A8A993F53AD07BF60B23FBFF1297FBF865B09BFE397BF3F349082BFFF275EBFF44CE33F25801F3E102EAC3E8F471B3D01787BBEF34D41BF0F6F5D3FE7E1853D2F6813408A13C9BF965BC23F72C069BF74D12EBF075BC53FAE0F603F7E04363E56720DBFCFE8D8BF264D89BDC73DB5BE9F8C4E3FC3EEE3BE3A9F4FBF24766FBD6740B8BFFED3343F157A4ABF1726F6BB659BE33FEE3D143C8E7EDCBE210794BFBAFF64BF769845BF6D32783F709AF3BA5F411040A14CD7BD970A6D3F9A6A91BD7ED87EBE5B8BD13FC6A1633C15D01DBFD1CB943E53C5EC3E4A44033F353D3F3F59CA873D32AD05BFD96B443F5940C9BE812C803F3EF77CBF8FA8E33E889EAB3CA4CE07C054128E3F3E2C733F11BB6BBF3905213CD243A7BF473F52BFD7BB663F9ACBCABE5FB8C93DFA478F3DC158DE3EF42908409A31DBBFD6E787BF8954DC3F2A80CABF6B5B95BFA09E7F3FF799D23F7DDDB73F2AD2A1BFACD0AA3E6E2BFFBE8418553F9878863E1AB7C3BF5330FD3E4167CC3E214B4BBF354DA93E152AA03E7CFFE73E31D9823FF07E973FB655403F942263BE7340BEBF48559FBF9FF976BF0982DE3E7640553DF4F99E3FAB3F7DBE522843BF366F22BE9D621E3FA4D839BEB529A03E989D06BF5A4A24BE4A288FBF359A50BF2814B63FFD368E3FD151EA3FDC582F3FA62EA0BF8FA707BF21B045BFE148D0BFD0AB7F3FF39A34BFC32DD7BF51FE84BE78CBEEBF4C7A153D5BB359BF0FF206BF50F7AFBE385AEB3EAAE3DB3E286EF73EB55CEBBFDABDC53EA3B86DBE7B440DC086CEC93EB1B18BBF9526163F959E9D3CEE016B3EA89E4CBD09D3B23F8DEDE0BE99641A3F0636AC3F8D1D733F25F4123FA99CE4BE4ECEA03ED69E963FA6B7D9BFCDB8C43D294C173F161C0DBFCB53003F9184F9BF313BB53A79C4D6BEF56E9DBD7B72733FF860993ED60A1DBED533D6BF5192603F665619C05991D93FC963393EC9EA333F623D33BF1C3CBB3FC00E20C0011D3E3D9E7A62BF0FE2C4BF0419D43F7AED023E6EBD86BFD4CEF23FD0C589BFA3030FBEA607843E529A48BE970EB93E8D0560BE65235FBFC4195B3EB22816BE01BC3F3F52BFC73F40188EBFDCC7BABFFE802E3F89B5223E41EB123FAE08054044C3F2BDCB7EBA3F2146BEBF934C333ECE22633F7F6C15BECE815DBFEB06B03EA5B7BB3E211E9DBF65F3603FE08FBE3ED933D53E25EC2C3F803E60BFD843B4BF6BC325BF83EE51BFCE3E19BF704B9E3F5741473F43B4C63EA92861BED955FABFABCB253FED957DBE1D6ED83E3789A1BF0AE288BF4155AA3FF655EC3D3154753FFF9E303E15E0CDBBC2FC65BD94A827BF6A2DC3BF45920E3F76FC7A3E569842BF8223DEBFE4F45C3F0DF1A73E21C113BF2E3881BE594FCE3E31E6D3BC1F7EC5BE21E44C3F5EEE8F3E9C74B13E0647363F0F586BBFEDAD303FCB5A753F97CBEE3D2886763FAC356A3ED24831BFA97AACBF6487F4BE13F740BD8C52EC3F1CF7523C3ECDECBFA529643DB18B943F2302CA3FA7339CBED5DB993DDF23833FE0ABA83C3258133E71E7EBBF77808B3D5C7612BF336F9A3DB3A0A53F4CD617401FE17DBFAF4320BFAFBC45BFB6AA9E3F73C87A3D2BDD1F3F61236A3F50D0BCBFC92C0A3FED3BD3BFECF47C3FE86FE4BF7917973D5EE46D3EED4CFA3EC0DC00C0557AE83EA5DA98BF93362EBF681FDEBC8DB985BF1656BFBF38E9F93D2F0FB2BF2C2D6EBF2E29F9BE39A792BF4D6D8EBFF4AF383F7510B8BEAB5822BD7DF33D40073C1B40AE26903E88588B3F9DCD083F583B9BBF04D8033D3ACC0ABF1828B23FAF39A33E4C5AA1BD4BDBF6BD47D5913EBF49233FEAF803C0BB5727BF1A9CF9BE47D028BE492480BF8DFC52BF44ECAA3F41A33E3D07C06ABEB15F6D3F2B8AB93DC46779BD521D1FBF297CB1BE895155BF609B62BFAB8DD63EDAD8653F905D003FD5690B3E30F1F9BC5D8BED3E79D35D3FE9119F3F7349143EA60B813F6DEAFA3F3373CFBEDEF444BFF95BA03F3C2B53BF70ED8F3FE65F07C02E7F01BF2708553F5A951CBFF4E06DBF2460FEBF83A4D6BF8AD4C4BC15573D3D99E90EBFC6D60C3FEF0166BFF1254E3FFBE0273FA7865F3F6D81AB3FCF74C5BDF3BC99BF01B563BFE21B40BF0742393EE337F13F0769B1BE042680BD072B10C07B131ABF2954E9BD062988BF98BA883E1DDD13C0D9BC803EA1FB9B3EF4AA003F62F22440850483BFE0CD883EC837873E012D8BBDE6DA063F31BFA83F2C2B72BF3EA7E43E0267AE3F5ED901BF3FBCF4BE7D3FD2BFEB60C9BD2DF55D3D4FBB86BED116B1BE09EE79BE001185BF5294C73E9B028DBFB3F0CCBF5CC4373F09C4274017162BC0D53D743F334391BF45B289BF1C6DF93E07D69F3F893394BFDDCDD13E2E2F0B3F2BE3B0BFE409BD3F0A8FF3BF8226A9BE3BBFAE3F8ECB62BFEFA67DBF285D02BE6D95C83FA370AFBFAEF7D5BFD81053BFCA950E3F12BE293ECFC7A3BF91F497BEC10BD73E302C5C3F39363DBFF4F69F3F434200BFC67775BF4A400BBE5EA1EDBE900F62BE7008A3BD3CE1A0BFB5949B3F366FEB3FB5D0CFBE654F86BF113D66BF629AA5BEAAE069BF4EBC88BF6AB4A63EDB2B6C3EF49A88BF6374EB3E89CE26BECD2A41BF6A0207C0359EA9BD9FFF8D3EBB875DBFC75B553FA6A846BF15D61F40F3A60BC08A0508BF023988BF4B131540435C72BF05372A404132743F23772CBE0AAC8A3F66F32D3E562925BF264260BF5FE90C409340883F5A3C593ED5A64DBEEC7F1C3FC1A1AA3FC738B8BEF08B1B3E38A698BFDB69D73D444FFC3EFF7ACABE5B21C5BE6B0855BF9059093F9CD6CEBEA0DDAB3EBAF4B83FB43715BF2BEB793FE1B0FA3F542070BF3B5B23BF70020FC0F6E7623F18B533BFE8A062BDDB28703F8C061E3F192C92BF86ED2FBFCEEEBA3E39311ABF0C59F13FDA3A3B3E59FAB13E8ABFFA3FA3DAF93E50A0353F2AFF813FDC9F333FD951663EC9B6D4BFC1FE01C0C7BCF4BEECB5ADBF5CE9C0BF8AD77FBF337CAF3F4288CEBF8E19863F17D48ABEBC8E36407E83C03F6D21ECBE704DA4BED8158CBE143F23BFC37A513E046E26BF5E33643DCBA8193E5FDE4FBE90671FBF3A2296BF7BC925BFEF16D2BCFB23B53FA8288ABDFABB1ABF51136DBFA4C084BD6AFEA83D70275E3E639D13402D13C1BD4554A7BF316848BF3F51CC3E26F6B53CA4D60E3F6307513FA3B0DD3DDB77B63F022020BFA5970F3FE36428C0CA7855BF8B1C4BBE3334A03E7B4BC33E1FD0C7BF53038E3F03C6113FC35CB5BEFB27E13EE1E9FA3E62B7D73EE5F4A2BED59E1C3F2553943E64740D404D0D2DBFFEB5F0BEB24275BF18BE453E33364BBF0A3B24BE1EBA993E4D1AB73E3810F13F97155EBF0F4700BF1A25F2BE84CA7EBEB62742BFEDFE3140B918FBBEFAD246BFEC77D43FF955A3BEBDCE43BF91ACC53F372469BF98FA78BEF45BA5BE56C70B3F90E3743E96AC06C06819933F0AA3DDBE2A940140E34902BEAFD317BEFD6890BF95C1E5BE4798A9BE538778BD59907E3F780E1E3E2EB1943E05E28CBD79CD013E8833AC3EB5C74ABF0DB202BE623F53BF6B0321BFEDB02E40F60BDEBD4636573EAB0091BFE85CCA3EEEFAC93F022428C03E5AA7BE19D2E03EDF2FAF3EF7D88ABFEB94333F2A13F1BD546604BFD82ADBBE5F5511C0CAD8823B2525B0BE85C888BF9705F13EE47F213F560C223E4595DABF58BB993E3BD61FBFE7D47CBEDA46823E83F53C3F35E92FBF677E113E55DC253EBA57B8BC8ADD2B3F0315D2BFD6E9A4BFE07AE93D19C800403BBD123EA131B1BF01D338BF0254CA3F8C30643D60CAD73F77F5DBBE2EBC353F5E3FDABEBE6A853D4A2ECB3F903E5B3F3D1A923F4346F0BF089F8C3EE4A0B4BF1806C8BF04B267BF5C24D5BDB3A01C3F5704B3BD5F507EBF9C2907BF3F92A43F4D8C93BF5BDABEBF9878A5BFDC0B563FDE06983FF9DEBBBCAC09693FA24586BFF08580BC20F43EBFCC8CDE3CB7A50ABFEE138BBE6FBDB83B1F9C073E030687BD72CAC5BFBCB1A53F82832F3E4B1AA43CCA239DBFD7CAB53F61B1523FEEFE85BFC1ED793E5EB70E3FB173C03FFDF24640C415DE3F2FAA6ABFB8021FBF5C4BBBBEB47607BE19E9543F268FC23CF4DC483FCCC377BF291B24BF456AEDBF927F0D3E345DA83F76CCEDBDFD341FBD0A2E393E2BFE85BF8D79353E9D3A4FBE292D77BF9C4E2F3F7314B43FB23D183F0112A0BF6B69FDBDB47F8F3F8A6BF1BE5FA4BEBD366A03BF720C4C3FA025B03E7727B1BF854915BCD3CBF83F85698EBEE2A497BE4889343F44818A3FCCD827BE7EC66FBDA9B6313FC1FFB1BF72DFA2BF565CA73F1E51F43E970C51BFEAB3244073908E3F4A23E4BF3272AF3EF150B33F5AE9C93F8CDFEA3F9ABCD03EAC0BC9BE651924BE5E83D13E6825E43EBE32FC3E23BEAABFC2F745BE22EED3BE775891BE212F8DBEAB2695BFC869D5BE9193243F810AB23F81ADC83FF09713BFB959C43F4CABF03E9A8A9E3F8CE569BCA03629BF2404123F42B9F8BEA7228B3F14A5963FB202243F0AFC1FBE51E6443EBAE1823F76D4873F130C2D3E2A8A383FAF23A9BFC49934BF9CC5BA3E29AD34BFB213DF3D4FE04CBEED94C7BF3143E2BEC42E9F3E89C3843F7EA666BEDA20EF3E71E1AA3EF76732BD8241B8BF1BD10E3F6864BD3F0E567C3FE71393BFF514C73F51FFD5BF8AE2F63F33E895BEFEAC90BFEDE38F3D03B5FEBF66719CBFAA2B9A3EDC69B13F5E52ABBF670039BFFB412DBF44D4CC3FD482DB3CC463333F7DC248BFB8E6253F46E2253F2F7FA9BF95DD323FDD35B73FD9C7A53E70758DBE89B275BFCCAE733F3472A6BE391D5E3F811C063EBC5483BE7D521A3EC661F2BF51E9B8BE7B40B5BFFC1C863E112E4BBF66CA673F12AF1FC055F606BFCECFCA3A269E0DC01F76893FE12B9E3EE5C32BBFCF8FAF3E0668DF3EFADE813EFE84133E256F1E407D509E3EF7EC7CBE8D35D73FCFF5F53EB85E103E05B8473C4677DC3E4E3711BF430D463EA7CEC93EF4189BBE8ECC74BF6E8F843FBC3E28BF9750983F9B98213D8AA1AF3F225AC73EAD7829BF73F7D23E06D8E33F0EE93A3F862AD23E56EF30BC05627C3F075F173D286E203F900DB63F22CC893FD3DBBFBEFA9CEF3F63B69DBE5C2171BE3B8ABF3F636587BFA5A083BF333E86BE2276223F698BA23D56FA693F110EC4BFBB4EEA3E9F86A7BFAC4EBEBE6FFF6C3F985C3DBF4B3EB63E600A2BBFB253EDBEAE7DEB3F7A07433E761B373FF2E9C73F9E1C00C067D473BE248728C016C1113F6C3BC73F5365033F18CA12BFBD72613C609C27BF99B51D3FACE8FC3E7C83363F489EFA3E2066DC3ED9FC933E1605A4BF57EAA1BF16E4843E80233BBF8AC4D63EDC26FFBE000DA53EF6BC40BF17EA703FD8BB553F57C2003DCE110E3E74FCA5BE65CCD73FA375823FF053993F3FE2283FC4818CBFC3AE0EBEECD5633F2002053FE1B5BC3EE6D0233C9E620340DD51064073172DC0BBE410C0C3E041BD4A1882BFAA35053F4C0C07C07FEA6A3FDB975CBFF4BEB43FEF560CBF413BE7BF9C50993F8B31143EE7C717C0A32347BE19B47EBF4AEB5D3EA6A4C03E3C0B573F2C5584BFC477B53F879F573FB79CD13E34E09CBFFC43123FFB90FF3E1A952E3F16822CBFECA3083F4FAAA1BE8C334DBFBE5220BF923491BF6C1DDEBFBEAE4BC04DB6F3BEFDC8753E0239DCBFC0DA17C001095CBF38CD7D3BFE3ECE3EAF6327BF446E67BF986BC9BF68F22E3FAFC7903F60C2DF3F9865BFBF6206EF3E0856893EC22120C02C06D0BE20C27C3EF3CC973FE27039BE464C623F10A2C1BF07EB123F624BC83E3386F1BFFF624BBF573B863F9ED815402B6591BFC62B86BF9E8BA9BEF1759E3F341984BEA9602CBDDDF3B93FB214E13DF8D0583FB7FE2A3F77A399BFCA5EE8BF0D043B3EE710C33E8F66283D5AA8233D911C2CBEC7AFE0BF5E7B91BE4E9E183FFFC1F3BF04532BBF7A9FC53E47C65D3F708BC93EDDD9D43E96B2953E0EAA7D3F58451040FCF68A3F8BB70540E150DABFB7ECF1BFD74EEE3FF9B8B1BE7678D9BE67D21EBF1F9AF5BF5DDD66BEEBA82A4073BDB73F1F75E5BF9A7C4B3F9C49853EA530493F38673D3F0247233F22D087BFA4B995BFCE740A404A16113F101100BDC8E0044022EF323F82F37A3F98408E3F70D5503EF4DB5CBFFBB587BFCD9B77BF18220BBFCDD49FBEE0DAD43D15C8F23FCE9EA03F012144BFA65237BF070B7CBE26915C3E1ACB553FCC9C113FC50926BF195544BF2B32F5BC0C44733F4D05D5BC73FBFEBE554F6C3EA29D69BF31D603BEB2E58D3E520D8EBC119A9F3EE6F41B40B5E620BFC4A469BF7445193EE917AB3FD7D7BCBFA3B6D63F227297BFE2AD7A3FC1769F3FB8DE30C0CAEF913EBED85D3F72EBDF3D17DA003F2001C6BF8ADC15BF41179BBFD4A1A1BF60AF42BEB22C8E3FC626C3BF8681E6BE84C6AD3FE17E1E3E1FDE7ABF5FDF84BF0427EBBEB110A8BE9275A5BF135C28BF7F29513E683080BF64EF0C409EB7B4BEAE8321BFA0EB0E40291F5D3FEC5157BD055A083E2F88EA3E7D41A13E1319A13E5311933E111917BB0C777D3F5B0D81B9A79A9DBFC449F4BE967A683F5217A83E7A1CCC3DB68AD9BD147467BF467874BF356725BF59F697BFABE6BE3C74A43DBF50390EBF349D243CE8A39FBF881BC5BF2D8FEE3D074A663F79C7BEBEBA5AE2BD92AC3DBF43E5383EF8495CBF8DBE19BF88D328BE65A2ADBDFD24D1BFD549BABF4035E83F59BC853F57B395BB4CB7913EE332DB3E8A94BC3F356BE6BE027893BFC3CACB3D26FEEEBED4979FBE9D7523BFE603053F7CD1583E4890803C7FF5983E9F0B7BBF98D9C53F1F729EBC82C89ABE4250FABE2447C8BE57EBDCBED9D66EBFE5A5C8BF61A141BF593CA43EE45E533FA562883E37F40C3F31CAA03E1E7CCABFB32557BF77D61BBEB5E4623F6233A2BF092782BED5C296BF8CBF8CBEE6AFCE3D4A49183F6410933F671993BF4543B6BFFAF70A3FEA4C00409590783D85131D3FF864AB3FFEC8873FAB0EAD3E330D7CBD85E494BFF8790BBF4E87C0BFB5D5B33F74D972BF785693BF81C4B73FC28A0D3FCB1EA93F65D5403F4DE8B53E59745FBEF515A83E55CE6F3F2083183FDFB0A93E5BBB373E24215DBF21D8F03ED8E3A0BE4CBEAF3FDEA2CEBFEF0B7D3F3788C1BF58D0ACBD929133BF2C1A8CBF822E6DBF4B550240EF51153EC96BF93EF27FDD3FC9E802BF9C7A53BF49DDC7BE1FEA81BF688095BF63269A3FCF9F7BBEF92C233F05D57FBF2D02D9BFC09485BF3807993FF38F173FF149D53CC534ADBFE21477BFCE9AA3BEE3E8DCBEEE6519BFD416263F2E28D63FDA4BE83C937699BD5471ECBE3736A03E4C3C3A40CB26CABFF6847C3F30AFF63D487000C0C4B6943D69A68C3FC42B443E0E3771BFE039BF3E91ECE0BF7804633FC0801ABF7886C2BF7E6F103ED7F2033F3B0F97BF47D097BF82FD0040BA5015BF6B9981BDB8AFBB3F2B66AEBEC6B698BF0FA4C0BFC18F6BBF642AD23F91B8653F910FF13EBD97263FFDC4E93E4A3037BF7B504F3F383589BF9C2F40BFB7B2E13F2671D23F13D4FCBD7CD656BF38C63C3E40BEC4BE65C873BEDB7F0CBFE25168BF2E581DC0901A84BF4D1ADC3FD02D3C3EA0EE583FB72DE4BC99B986BFD25FD03C9B9FECBE12D78FBF61D2363E2B047F3E921B703F5D8DE43E8A32343F768489BF3250A33FC44FBFBF79C5E83C4B15ABBF0F19173F4D91BABF14B9093F1296433F176E77BFC944E93D8334DB3DE102623FAD579ABF9D7E093FDADA563D135B1BBFBF31A73F774458BD151E6A3FD5DEBC3EA406BDBFACB8B63F3A73E03EB4A464405207F7BDEB3F7CBF63BD15C01AF44FBFD731C7BF4B4D8B3ECCFC36BF803DEC3E25838CBF4A95843F6B9AA03FC9A0383FC87C583FE29352BF6490F93FD9E6B63C77C58DBF8B7A843D7C50B53E60F8833FDDB6CA3EC54AB6BF5C9D80BF1F19B9BF647F8B3FA39B753FD2AA253FFB7C733F64F8ECBF9CE60440F8A5C6BFFB43C63F076CDF3E2BF50B3FCA0DD1BF3463523C66BC6ABF0F2988BF4D6E5DBC7FB9BFBE222855BEBB1321BE9FAE873FA763823FC2108BBE6E2E7DBF9AB98E3F6D9BBBBFFA3C893E0E72F0BFE33A8DBF8FC2C6BF7021C8BF9D498A3F015B8E3F0A46D33E327A8B3F0ED7BEBF6845353F9C78BEBF2196413E5A744FBF63C4C6BD9CF664BFC5BEB7BDB2B40B3F914D0A3FED7685BE317731C02EEE3CBE685B53BF56B7333FE0B6843F636D17BF80EA3D3FC05DDA3D3465033EF4DA2B3CC05989BF8F9C163CBB51163FFEEEF93F85B042BF1890043F312C9D3EEE172DBFFDBB0F3E99F4B6BF7F4F3FBF93FB103F676CDC3E61319FBE1F571F4016D59ABD8597603F19D4B1BFADDF30BE6979103FD210763E1EF9C6BDCC278BBE7AED46BDD625BCBF662A8ABE3C74A8BEB31E533FF95B18BF80D4DC3D5510A63E80C8103E6A0C3FBFF977B4BED75B1FC0AD3898BE8EEDBC3F1834A83FF8BD92BEB21EE53EE37CCE3E95355A3F602F57BFA210F0BFEB7099BDE203A6BEC7694ABFD4BD9D3F29EC2EBF5228F5BE152A8FBEEEB7CC3F558F893D72D398BE4B5D36C06A99A0BEE07B4ABFBF080EBEA4A08ABF36DA91BF6145503F93B1D6BF9C86F0BCB04285BFC5A692BDC83A483E1CC065BF61F5D4BECB8DE33E734FDBBF85151B3FF418C9BF11A3143F400F40BF2A628BBE947E81BF0FE350BF79C3D63F34896B3E7B515ABF1DF5813FE3479B3EC9630CBD56EB3BBE4FC62A3D2F46ADBE22241740975E33BE7837E13EDD03CFBFFFCF91BFD6F0CE3F77BFA5BFD77C98BED05A91BF581D0FBE34C27B3FF05FEB3D9FA6DABE1AEE9E3F547836BBA0508E3EDDA5173E5584B33FFC1503BF8F374EBF281B8A3FE356D13F4247913F8162D3BE37B486BEF181A9BFC6AE3ABFB6C0D63FBAF8333FE211BFBD88CFEA3FE4B772BEB659A23F97A39B3E981575BFCCE5C63E1D70BFBE79688ABF7B2E863FAF0526BFC7F2F5BFCDE7463EF7C5FFBC79CF1CBF76DA0ABEBD860CC04F8A58BE576F02BF7ADB7FBED4E81040D606313E115736BF3E0C4ABFC76FA3BE080B71BDA58D45BFD50D2FBF8A43A03F4DB910BFF60FEB3F08F54FBF635A57409F32B3BF93A0893FFABC133FDCE59FBD3EC818BF98346B3D92E2483F0C9525C01A5A17C01725EF3E8EF70B3FC811023F8AAB903D865663BEE68EFDBF25147E3FEED163BD47CC543E0B4377BEF099AA3EA3F116BFCF7E363EC0CB21BF1D36293E1F2314401A7FA33F8388BC3FD89780BEE757033F3CE9D93FDC5634BF9F8E68BF8BA5AFBF734D15BF890D61BE86BBC23F1539ECBEB98FC5BF568981BE79FB7D3F9B5D65BED7C6CC3D3AAB34BF4A30C1BD1654973EB76C293FE11233BF833B91BE4EB1DB3DADD6193FD139253F10FA8DBE5213ADBD8520DDBE3E8D0F3F60FAF1BCAE0D873F1F8AF2BE1BA6793F0BC9C8BE0395903F3F4D4E3FFE1F90BFB730113F5EE5FF3EA055063F3C1274BF0004993F735A82BFA08AF53D99C792BD1F4CCDBD78C6ED3EA2B9DEBE2DE7A2BEE6C6063F914D02BF24BC16BD4BE28A3E7936C1BF2CF7C8BF0E97F7BF24363B3F6EC56F3F119434BFBBF4E3BD2BFC80BF868993BF7762EF3FF64C393D445A72BFEEDED93FDB513C403967B23F545BB33ED554BC3F087E933DE0D98D3F804FBBBE4FA55F3FEEDA80BF321BF6BEB7609FBFADE30C40298D583F1DFD58BFE565D83E7632D43F45E9CB3E93091FBEA075DA3FF00B63BE9E10953F36FE03BFD324BC3EBE4FCA3FF3415CBF889A65BD6EC572BF364CC9BF9AF6BE3F7D849E3FA2A5A0BF78B73B3F08B196BF174AC1BE6A8EB43E4236CB3F34C8EFBD5CF3EF3FA1CF1ABF55077CBFD6EDA13FDEE1CEBE3829CDBE9E0A433F1D8504BF5991B63FD89DD6BF4EE95E3F2F82473F60060B3ED69E1DBF6D059C3F07E909C0D7C8443F94418FBECECCD33CE2F654BD9EC110BF1AF65DBF288E0F3F8E36234063F241BFFB29CA3FB28BA3BF383E883D4D009E3EC7A7CD3FDBB9C0BE64543A3FBFC00E3FC838A1BEDBEA523FF685283F9B4012BF454E9A3F1E6784BF28E2133FE8D1DBBE8B8893BEDD80AC3F6E7BE13E0A42B03F2CA425BF3E27C3BE6A0CFA3D635480BE586F833D2E440ABF8717E2BFA540C9BF29F31F3F92BD58BB8E6A9D3F9E3001BE690092BEDF8555BF9EEFD83F2E9C8BBD471C0140D1307F3FAAF6A5BFC1ECC7BE767A623D6D94CA3E2FE1E6BC370A3B3FAB9C9CBC0F2010BFEB95983E1AF5CCBE8E110EBF36F9653FD5EE73BFF22E4D3F75C92ABFF3114D3FD062F53E2162CE3EF3F852BFD41F01BFB1D3104049E73F3FD261123FA1800CBF76651DC0C708903F51AEB2BE05B04AC0A19C11BDC234CE3EAE4184BFC26428BF5B01823E6B179F3E285BB53D81DAD43EFF57943FAB572BBFAFB967BF7855AE3F730AC5BE05CA19BF01178C3E8025A2BEE8DD20BF3457B2BE7B6D38BFBDDCAE3FE1F9F0BFDEF505BF4F0824BF70728F3F53BE193F73A028C08C216ABF1F5D5EBFD9D9333E31556A3EDDD6D6BE78AD163F8EB1CF3EC3E93C3F5E5D77BFB9C007402D4CE5BEE5BAEA3FC7239ABE998F273FFB6303BEB09653BF645004C0AFA712BFFD660FBF346D1BBFAF375EBE72BEFABFB5751CBC2676A9BFAD8E243F163EA23F7DA7FFBE41631340F5AAEA3F10C3333F32E607BF7F70F63FA325B43D5A41A6BEBC7B43BF4ABD0140E14B30BFDD569B3F408C4A3F0296FEBD4EA80EBFB9C65E3F4283B3BDDCC617BF0165EE3ECBA729BEB538CE3F3852013F2E81EF3E7CA6163F06D358BF0710733F34CA303FB0B8C7BF7985803FDB2B024026EE6DBED75697BF89EE293FB7501ABF2F43BE3FC4232EBF27EC843F3CC83D3E0B5025BFF1882CBF7CD624BD85DBA33FB120763FF1AF34BD1827983EC203223F83D71140C7E04D3F21EEBA3F87A7FCBE8B790DC07A31CC3ECDBD933EFB28FABC0111863D955E823FAFCEB2BF966B5FBFCB1E52BFE178E63E44028DBF4FB5CCBFE308353F29738FBFDCDD2ABE2896D53D47E642BF110EE4BF85E81B408C07963DD51110BF9B69223F29A2BF3EDDCBC2BF42CA2B3F6570123FC011A2BCD5FE3EBF535C67BE67F02F40A30AD33FA75B573F616A863FCAEEE2BF8467143F40A0F83EECC2DC3FFAE883BF4162A33FB70334BCC88DB5BF033F77BE02471B3FB2638E3FF1FABFBFB48C993F797269BF7DD59D3D081AD23F6A1826BF8CCC6DBDF9CB9BBFDA19DCBDF9060C3F0AD976BF869ADABF986EBDBE27375DBEE580C23FEFBEA33EDBC066BF31AD293CF5D6CFBE3E87A53D08E1F63E4727BD3F5DD6C4BF3A6418BFDD0ED4BE29E53C3F62A8EE3F32158D3FE565AE3E444E20BFE9B5BFBFF9E714BE5CC38B3DA8C995BF2AB801BFD31B08BFACE8FC3EAD982CBF33E2523E0DBA20C038D2C83D21A419C07A0A6CBD9C49493F0A3C8BBF54DA1ABE72379D3E1B08FA3F9093ED3E7ACBD13FAFD319BFA091E4BE2A2029BFFCA488BE951941BD35E101BFA22A56BEF0BA69BEDFEB57BE95C7403F7D77AFBE0FC2BEBF9D1323408F5E4E3E3A060AC085BD803F903D30BE84359CBFC07D52BF43101EC0657267BFE3CFD93EF57A30BF8E41B63F928F84BF4420C2BF25FBA6BF7FCEDABF6D77E1BF71B879BD34DDE7BDB6DE503E00DF05BDB9BFB1BF95E56D3FE8C505C0CDDE98BF7533A23FEB2622BF9B3AB8BFCB01AABE8383F73EABB1AFBF4D311DBFDF89AC3E7F9648BCA377D7BF9D94223E5F1114BE472E7C3F7FDE30C0E37947BF4D2ED83D00D587BF9ED4773F3E5C9B3F0BED34BFAB60AF3E487F62BFA04E69BF9815273F425FAD3FD03F0E3F2715923E78803ABFFCFDBD3D1F2B34BFB7F1FB3FD648CA3E7CB09E3CF1FD3FBF767A973FB81BD93F3E3A0A3F32CD7CBF5AE58E3D57FBAF3F2CDF1F40392AB63F6354D4BE1F4101BEB00BEFBE9261963E762D0040EDE260BE6094AEBDA570A3BF49164A40196AADBEFC6481BDEBDB7F3EA982E43C0E72963DBF06B0BFB3954FBFC7E7533E0B9D753EAEDC1EBF1F61353E83412B3F434B573E02BA2D3F0C6359BFEF82D93E0893953EACF1A4BE21EA453FB3712E402858F63EEF61A73DCEA21F40B9D09FBF2878653EE4BC5F3FA5ED9ABF62ABD53E6918A1BF460505BE8BA7E3BEA0C4A0BF2E1DA8BFA2D7A23DEBDC7CBF2B6EEF3FDBDB9C3FCC0F173E1D8C74BFF1189D3F5383743F1602C3BF6407D93F6DA5CEBFDE2C2F40DDC09E3FF4622EC0F7A3373DBA9CB1BE87BE9F3FBB087B3E51CAF1BD29D5BDBEAF1368BFA7DB8EBF754878BE8C9945BFF9247F3F8D41793FBA5A7DBEC71EF3BF2B15C93F7294853ED644AFBF9A8DBFBEB9D477BF1BAF44BD42DF113F93C002BF47529E3F9CA79DBF9CA93F3F997F14BFF3C7F0BFD4A6F7BF0E8D98BE276D9C3F76FD85BD845B12BF426A5A3EE48A5ABF6080D63F981D09BFAE4FD9BFF18CB9BE1DCCA6BF2904F6BEE4766DBEB11CD4BED47FEE3F9A1C3A3D8BE0583EB47EF43F4F18633DCD55913FA68F1ABF45808C3FD94C013E2808FF3E2F00BEBFA575B23EB759E53DE1831BBFB225DABFE0C62B3F33CB003FD64F083F4BBE09BD1EDC553FA631A03E4846A1BE3408593EF397DB3E3EFC713D3B242A3F99D2C03E0189CE3DD378583F2B681A3FE6451E3F70DB1ABEBDED99BFD47935BF371500C04FE2DF3D70E51C3F0914003E881AFBBE858047BF0490A0BF90E5143F19B8C9BF5BB26ABF87D3FABD7DF5CEBF8BA700BF571F383F59EB6ABF907FD0BF9C5BB83FCBDCC3BF5690953E4B038B3F4F11033F37A2503FFF4AB7BFA4C85ABD12268A3EE3A81ABF1E6D7ABFD88594BFA1E280BECF08283F18FF633E06ED183F298482BE4075EBBFEEBC483ED72BF0BE84D198BE42A81E3F87BD18C04C0E67BF2EC7ECBBE91E84BFCB90BFBECB1B51BFA433A93F8A38813F6520873F2B46ADBF37007FBF548FD4BF5560B33FA8C6ABBFABFBB0BEEF1DE63F3495883F0BA82A3E08028E3F3E4C91BF8E03C7BE1F4721BF12B4AE3F4FCDE03ECEBAC13E99BBFF3DAA40833F31F9B4BEF8C9743FCCF986BE219A50401B73C0BEA23656BF843124BEFD56D83EB46714405EB458BE0043A63F1996683FC1BBB83F2E73053F7CF5FCBE3589F2BE77AAC3BF056F413F3406D73F1BC19C3F0B269D3F046972BFDCD6C73F18E8253C40EAC3BF21B3D7BFF35040BF20D9CE3F8D36543F39E0833DA23193BF231B183FDFC3833EB6DA90BFE6E9CE3F5820D6BFBED6773C5D7FA53F27E6383F137C88BEE6425E3FF4E29EBEE0C438BF3617D83F8674B0BE47DA07C09C5D49BF5421833F348EEABF52BB004058FA973F4D6F013FC66E2CBDD753013FBE999FBFF53156BF3D63903ECA16E93F126067BFEB32BB3DC2B5963FF0FC84BE88AFDD3E4B418FBEF9759D3FDC6D5D3F96C74D3F3D13F9BF74FFD0BF05B4613E7704A9BDF730DBBFAA4997BD9497DD3DD4C1FC3EDFC314C01FC6ED3EBBC8813F2753F53FC0DF683E7D56B8BE803A4A3F53AC82BFCBD02BBF9780CEBF35FF883F466A3C3F04D6A63FFF26D3BFFD90DD3E82E6B13E42F9863F1C77943CB97627BFE8DB0FBE3352D5BF72EA2B3F2433ABBFD88303BDD437B43F44A539BF740DC1BFD09FC9BE96EB01BF7AA0D43E75BCA53EAAD4523F3B59C1BEB39ABB3ED89228409A95C43FB7CEF8BFD4793E3F906C1EBFC918713EC641F63E6078C13E983ED8BF3E5D8A3F29A0B5BE4046323D5A05B23FF54CD43DC70FB8BDD45BECBFB618B53FE3853B3EB7B9B23FB99CF1BD7A1F23BD325EE93E33BBC73E901D083E50ED743EC58460BF963702C03A67AB3F147B7A3F2972B83F0C79AE3F8AE0433D9BEEE43EDE5BDA3DB9D4F03E7C01A1BFEB4A2B3FBF8CDE3E3CFBA1BF213B0D3F12F365BF3D28783FCFAF06C03264B0BFDA79B23E187070BFED587F3F217E04BF15A689BF553DF4B87A03E03F2472683D4C4C5DBF5FBEC73E7492D9BFE6BAC23FBA7D743F663A90BFEAD20A40EF32B03DBF49DABE3F51AC3E71AA7A3F531BB9BEAA1B4BBE57371140D03051BF93E2CFBE18422FBF6600E1BE97CD59BFB537F3BFABFFC93E96AEE4BD86DA26BEF549DEBFF7E095BF189AA9BFB4B25B3F25BB693F5FAED23F17490E3E600105BF13C60D3FC245D83FD6CAD2BEF4DD913F717EB8BEE1AACD3F1BA8C43F8825F73FC41C333D9118CFBE9C048A3F72F890BEDA2EB1BEA3955FBE2096913FFE1BD23E13A7803F664B9D3E1FF2E9BF0612B53FA4AE433F884D0D3FD046133FEE80573F3BCE60C0AEA0B7BF7DBC61BECD5B463E24C041BF331856BFBEFD1D40A76FD6BFAECDE2BFE1CE01BF4660E0BE981D273F6850B0BE3115A73E8771363FFC4E0B400B2B903F0AF5EA3E7F69333F5E2110BE3A7A4FBFB6C7EB3DB74386BEEBDD023EFD5804BFF9416C3F7D7BA63FE410533F2DFDA03F5A1AF23E2E7D023F3BCC89BFE02667BF604AD1BE1142B03F49D3AD3ECCCED2BEE4F9C83DC5B5B3BF542239BF143F263FB3B3FABF0B03C53FE9AB943FE546843FEECCB23F0C9F7E3FA92C313FA0B57DBFAF0F8E3F4AA6FCBE89FCC2BEB1C891BEA0D22DBF8389CCBD842CB9BF25AF2A3F8B9D7C3E5C4F0C3EFD5E1CBF6B92C3BD6403EFBE19A9A6BFC2C291BF9647623FA764AA3E6D794F3F73654D3F597BD83E9C8DF13F22E4D4BE73A7A53E901DEABEEE53633FE9AC04BFAE8032BFB165823F248BE13EB4B5613E429FEFBFD4C022BF521A7F3FB019613E59C98F3FADA42E3FD8985DBF162A29BE3A4B56BF9309CC3ED34841BFD4C2CBBE2A0E623C029F433F06221C3EDA2BE6BE2EE317BFD6ECCDBE152D703FD92BD23D0CB9A83F17F06B3E3E7FD8BFE091D33EB0B7793EFC43AC3EA9D19FBF7CC523BFD236FB3E9B8CBE3F85681E3F062AA5BFF55E5EBC8A1105C0659BEEBDE58AE9BEB041DE3EA30493BFA693A13EE073813F9A995EBF4D2328BF561ED63FA53C903F4C8C3F3FAAC20FC0B73DD5BD0F2AA63FAFE4363EE7F4BB3F8159DB3FCDC49ABF5E1AA63DC59FA33EE2B677BF3CA2D3BE2634F33D41BC49BF5BECB3BF5ED1E4BEF014ABBE13E71DBFDA9CA53F27B302C0D7328A3F23D3B73F317AA9BEB4AA423F29BAFFBFE976E3BF7CB6AABE8562B3BFD118F53F912E6BBF1A7FBABE3E3BF6BEA47888BF195C23BF262C92BC6A150B3FC5D53CBF9A05C93E829A463F26C008408785DDBE814BBF3FB1E60F3B5C5EC9BF152E7DBF3057C5BF2EDE973FDCA46C3FC7A402BFF1C8B83E1E7B02BF3F302B3FEEFD98BFE07EF23DE28DED3FD10045BF803A9EBFD69820BFEAB186BF6C8F20BFB3375A3E72E0633CDAB7EBBED80EE03F20E09C3E58CA70BFD776903FDB14FB3E272030BF5C92C6BF92A1D9BFADBB26BF3469C3BE21CBAF3E2EC2873D98884DBF079217BE2DC6073FE38C2EBFEA6F36401692A13F2B569B3F950F9F3FE703FF3E4B2B33BFCC354CBF6EA5EDBE9B52923FFA50A3BF3ED2B53FB0193C3F9D467A3E3DAA32BFFC8AA6BD8B13A0BF82C699BED0D5A73EF6DF273F053B8E3FADC82D3F6B6870BF740CE9BE3609223F666CA3BF8BDF1E3F720C87BDACF8B2BFA1DF4FBF87E8CD3FBA09993EB260263F106220BF33A3683F2283B03D53886ABFEA00EB3E524B313F316F81BDD662FABE208C9F3FF8397CBF5D5FFE3E5124263EA4F1C3BF26FD883D8458F4BEB57F85BF3A7B9C3F47F0113F9CD164BF7CCE2FBF99E9C1BF58F80A3F1D5867BFC7F3CD3F60E5C1BFDBBFECBE9279B23CA8BDB23EFAB081BFDB20883D7C2D163EED3E463F534E503F5EC2A23F84ED99BECFFDD1BE6B0E65BFA4C880BD833BA2BFA114C1BF28AA13BEBC378E3FDF6505BF7BF4B7BFAE811640F41F483F2CBB0EBF555D05C0BF3B213F8F18703FE528C2BF2C7362BFA13623BF75E3A0BF87AC8CBF39334CBE4DEB04BFA938453EE285823E9298A63FA891D83ED8722CBEB1A5C23E15B7D73E6D100A3F335E5FBFE76377BF03C4A6BF6BFD023FA414A33E3C0399BE228B41BD295FA9BFBC4A53BEA9F1C93EAD2989BE78A5963F3D8908BE63DC23BF5CC6D73FE5DF52BF726921BF8877E6BFF2FA5EBF3727BE3FB3E2DBBFC52D8A3F8FE434BEAFBCDABDB56ED3BE65B1603FB8B1BC3F8907BC3F1071A93FE4DD2EBE3E538A3EAE836EBE85DEE03E1F5D953EC0CB0240F0F83B3FFEE79B3FBF083CBF98B1C6BF72983DBFC81B6D3F2A261DBF729A5E3E4CAE34BE3689483D14E20FBFA63E8B3F6754A1BE935B41BF72DD89BDA1627C3F4771EE3F1C00713F1F2BAB3E53AD99BFE3C41ABF95395B3FA7159FBFF1182DBF2FD6653F9425873C3F0D9B3EEFBA8D3F95E2B63FE73AE43EF041A4BFE70C59BF0119CEBE5F6DE33E642C8C3E821003C0FA4099BF3F4D8F3B3126083F7277CEBDC99494BF64AACFBEE8C7C63FD5E67CBF8AF26C3FE2C8353ED57C9CBDF7C9D4BF9905083FA67004BF9A9ED93FA18A3F3E92F673BFC969F7BF923CE33F3B950340D20E313D13F016BF61222D40614BE1BEB1E6833E37882A3F6CDAD43E71EDD0BE0F097FBFBA3E8D3FC114983E5FB6A3BB2FE90C3F21F2E4BE94DD1BBFCE0DC53F24D0A6BF1C408ABFFAC94A3E52C7853F9D4FFA3E63EFDB3EC924D6BF9964C03FE0B26B3E23A586BD6C11093F32EC3C3FB7F4BC3FC546223F676A6C3FB6E9C9BF058A503E167E3A3EEC44BABF8161BCBF71C36CBF0822ACBF4171B2BE9851663FAAFDDEBE1F65253F3958DD3E2D8402C0BA7C0D3F3DE2533FDBEEA3BE46C1B0BF8867813FCAD611BF3A0869BFAF7F7CBFB77A273F7C99C63F5EA38C3F17A37FBF5EF8FCBF3A013BBF7547953F666697BF1E1A7EBF40F7D03ED1944B4079A700BE1154B43E0A52DCBED3BBC43E8EAB30408EE99D3FA53B043E4E01E8BD69E9813FC6FB0740A184BF3F472DB03D48D4E6BEF194CCBFE3DEFF3ED89190BE5BFF973F66D1AD3F33FDCA3FC8EBF63F90E9FFBE55C08D3ECEBAFA3E6401ED3E45F7D5BCE78D293FBE3C2FC0B106F9BF64CE973F43B76DBEACCA523E340D70BF2A8507BE3B9697BED42DCB3ECC131340C88044BE74C20EBFD33D1C3F8CB78B3FD918B63F7949B23FF7A0BFBF0FBA4A3FF7F78D3F214184BE987A393F28F53ABFA26ED93FEF25F3BE4EF1A7BF5FC7B6BEF34E65BF8DFF823F57F841BE535AC03FCF33D9BF9905643F89C46B3FABDE1AC0F0D0A43E6E719C3F4980893FDFF916C09D61873FD785823FD69241BF78B868BF003D8CBED302173F15C1003DD75AE9BFF21E9BBF47270A3FBFE29C3F3F6D43BF84D7ABBEE62207BF7AB1C83D3AA05FBF3BE018BFAB06713F26FF48BF004C113EF3EF9EBFFCE01CBE03BCC93FF762C0BEBCB02E3F285096BFEBC1B0BE35CDDA3F3F7CBB3FB57D693FD337D63E91C4123F4A4432BFC6FCB73F4D6D3C3FDBB3A2BF4225A13DFFDE7A3F6BB8353EB105883F2E23A03FC046CF3D5624C23FA03990BF62DCC23E4B36D1BF41BB5CBF26EDE23E579DD63F562B533E7A6601BF032960BE7526803FA7B565BF8E938D3D64965ABFAD3984BE6673D8BEEA5918BB8C4E263E967653BE12DC66BF74329E3EB73402C0394C133FBF81E6BE8DD52CBF2171823EC60E38401BA51ABF79F967BD617155BE2FF6893EC4F2F73FE488783F81C08E3E1D21B4BF963A023F5EC2F5BC499DCA3F7DCC02BF6BA1223FC26771BF1DADB53F0C06163F58BBB13F01D0CC3F6A7609BF03D8AD3EA1D105BFEB2AE3BE8CDC093F818436BF13E0B7BE288D71BF4ABEAA3DCF3AC03E27A426BECB85DDBEBEC4E7BEE6FA1F3F743DA03E63361EBF33E3313FADB3453FFB7586BE81AA0F3E2437123FE11915BDA687243E5AA8233FC967A1BEBF7956BFD550273F59E18C3F73E0803F659D1C3FB9CFF6BEA9D49F3EC916A5BFE59647BF0386B5BFEAF70C409F346D3E977D3CBF99B196BF27594FBED8BF323FD9071CBFBFE36E3E49B45F3FC7CE353EEC72AFBED816ABBEED1E11BF185A8DBE08F2B3BF1105763FC569913EDCFFD8BECA42173FD53AA33F4F6E20402E284CBF5BCB9D3E3310FA3E55F928BEBA7298BD20E00BBF6C9417C07FCD903E008E30404CF8EA3E6406B73EF8DE963E39491C3F1AD91C3F37F2803E48DBE2BF0B31203F0B9556BEA90754BF1863B1BFAE2AB83F2A674CBE140BADBFE2CA37BFD431023F5EC00BBFA8D1C3BF0CE2983FDEF3883E5554EBBE39F4BDBF1583513EB8DD69BD45ACE5BED0348CBFFB8FFA3F59C888BF7E43E73F2781ABBDD86308BFE37799BEC8451040A7665FBF88EA9A3D8F36683EA630CF3E7B679DBFF348F4BCE16138BFFFB78FBF558EF4BF0675B33EB893254037D4CA3DF527BA3FE39F72BE6BD3EE3F8E4A073F0D0614BEB26B78BD579778BF22B6C53E9A4774BFF4B28ABF9C05663F50268F3E0FDF1D3E232380BF72D1A3BDFEF61BBF659AA83FD9E8283F70EC24BD244A853F6B8121BEEBC90A40815276BFBC11EC3F7B55D23FCF29B6BF8D9F6F3EA70DE8BE262B46BF1EFBB5BFF839C3BD6734CE3F4FEA3BBF6ED430BFFE539ABFACF6D03FDE09963E53983D3D6F23AFBFD09C383E344B623F0FBCF53E3F2184BFBD7B153F47AC083F3C801C3F706FAD3FBE6E50BF36458B3F875E393ECB18273FE370A03FE4E717BD6818BEBE118FAB3E27708DBF5E25BEBFF13DB43EF8F0CF3E8B97B93D64BAC03F1F9C90BFAAA628BF56C1C7BDBFD20240900DA63E3BAD1EBFD00EBA3C2986723FCD88B43F7A1D1D3F6E788D3E3D726A3F76FEC1BF625793BF9BE093BFE23696BF6B65DE3F2892F3BF6450FCBE1B39BDBFA134A83EB03ED3BEA87EE73E39FB51BDA5B0BABFEB510A3F224AD73E5BF9CABE40C177BD9203933E71B859BF09686B3F60F132BEE4469D3F56FFABBE9B49BDBF6FE8A63D923B883FECD2B13F6B3D0A3DB3072EBE6BB4BEBF9D732B3F8D3F783F93C29A3F8B3CD4BF0F48A83E24E90FBFB33CE93ECF39513DBF54843F656908BFFE82DC3F2B44183F298A0E3DCBD30A3F63010D3F9FFA08C04746463F285019BD26AAFDBCE3E5003E5C58F43E7781C3BF657C7EBF24B20140708BCE3F6FE9B7BEFC0FC23DB3B429406A9B493F621D72BFE8133F3F8F1E8D3FEE1B77BE3910653E5429BCBE5628AE3FA9CAF93E931E573E57BBA93F66C3B23F3A044DBFDD654EBF9F418F3F3D9412402EA489BF04F19EBEA422193FF3F76D3FC29BAA3EC40B10C0C78E1C3FE8017B3F0E8B413F4DE1DB3E60EF9D3E03CDB6BE6C3BC5BE335497BFDAF62FBFEEAF8A3F9971E83F83224B3AE4CBE4BF4FECFFBF1B860140EAA86A3F5259B43E0A6DBD3FF6DA023F03DAE13F011A8F3FCFC34D3E95ED8ABFFEE238BF158509C0A6BD5CBF7CF4413FC287DE3EF1EA11BF87A2B3BE218527BF07C4F3BE7E72E93C3DF6393F587D6D3F9F6BBC3FBFD8ADBF0D256D3F00EBD33EF7BF37BFEE00B13D7647B0BF35EF823F910B463FF38FABBF5AACDE3E003A5DBDF252AC3F311D1F3F83186F3FDC42113F60F5FDBEA3CA13C0A195ECBEF2E7943FBCC7B5BF3E17FEBC6AEEB5BF992D713FEB5E243FA3119F3F7EE8833F721A253FE1ACA9BE623CC23F3D644ABF3B58793ED84B1FBF8B8C30BF7554C33E576F3F3F3A921F3FE07B6EBED617CB3E4970FD3D82E6CCBEA8528B3E5011C63FF3EA533F5F8BEABFA9BF60BF75D4A43F2B86093F671AE53F56DA64BF15DC80BF3F27D83E45FB0DC02BB44A3E61A5B6BF95A67EBF139655BFD863723F791649BF3BECB7BF7E7ABA3F56A6B7BCB882693F0B2DC2BF4A4FCA3FA8790C3FAD1CD7BF753F923EA2220DBF75D8B93FA853033F7F99DEBB572699BF8EC20E40B13EE1BC5C3553BF84A7C9BE73A780BEE09851BFB1C0433FD3DCA1BED9AF5FBFF2D2E53D93AD58BD22C9D03C05A658BF79E55BBE5309713E773C24BEB6DBC43F089EC03F48BCB13E5F0156BF6FAC563F5CDCA53E1BEA693F169F95BFCA51523FA951CDBFEC5719BF84A96C3E29BE24BFF3B0133FCC4971BF97896BBF43091EBF12DF29BEB38BFEBEC385DA3FADACCABE91BF543FA76D843E51C187BDE4CD773E360012BF9BA3DA3FFFC988BE47D9AD3FDAA0813E1559BEBF479B653F09641B409A9A9A3F532B643F3FB69EBEB1958EBEF266AA3F2A13E53F8DF1A63DD046F73EB4C5933F90B72C3F67F3BDBF9F12B9BECE2F9FBFDB35773F5451063FBEA4E93FCE0A29BFC45B3C3F19618ABFCC20903F3B02054005FAB0BFBEAD9CBE2CDD61BFE3C5553F201C18BFA18F6D3E1DDA6E3F0C9CDC3FF160173F74A2CCBEF33C393FE347D83FCF8ACDBFB83DBC3F3B6C4C3FDC44CBBEFF0C1EBE58A412BEF23076BFBDE3F53FBA5FD73F8C78B0BFC1F4F5BFF12D98BFBA2AD43F33694CBF7682943D1CC514C09C3CFC3DE78F3EBF06923DC0B9D33ABF4F74673E7E27EE3F40BC6FBEB46AC13EB593A4BEBBC5C6BF4FF9EBBE32FBEBBDC723E1BECD36F9BEE17F1E3FAD2C56BFFC8F8A3FA13EE13E3D5D80BEEFA0F9BCC4AB3C3E86ACDB3E2F22A6BE8C9A29BF937E88BF859A653FAA2B33BDE80218C07143BDBFAF35B23EA96193BFFDFF06BF7B6EA4BF120DB0BF5BD899BFB1CB86BEE476D93E2F2DBB3EB810FABF17C4A83D441A92BF812880BFC03D0840CE0C8F3F864CFC3E5777A9BED9D97E3F589486BF61187A3FB7A1A6BF5B8F92BFCA6CE3BEEC1D91BF876E104099B4743F3BF78DBFFE02A2BED77DAD3D9C874EBEEC50124043F5843E9C39AFBEE4FC00C07375A5BE376AF53F01AD2DBFCE74903FCD8CFC3DB16550BC2E80633D15FD033F190931BF4715A1BF2C111F3FCFF5BEBFF9B042BE464E34BEB68BA83FACFB3DBE50C54D3F35291CC0BFE5F83F485DD63F8DB5B9BF0B641D3E1FB01C3F38985CBFEEC195BF149ECF3E308B013FEEC50540F59B0CBF797B753F5998233E934F15C0E42EAC3E93586D3D71DE3C3F56261EBF3955163F4C4F3D3F0F8ADF3EC4105CBF84E3D53F57891A3F87AD9C3FB220D83F5CD0A9BFE4A6E43E602280BF0203993EB06F5B3EF72E09409399EE3F572879BF06093FBF9AE33F3FABEE933FDEF589BBE656553F3668B43FDAD945BFDD294ABE09C8BA3E816607BE6A6284BEBF6B5BBF43B9043F71DEA63F8DACCDBE0AA969BF6B45CC3FAD2803BF0988323F6EB5523DBD35D6BFA5B0B63ED8252040089C0E3FD01B8CBFF258873F1579513E7279B83EE52EF13E58CEFE3E96C234BE3318933FD990CCBE7F2D093F5703143FCD4CD53FBBB210C07DC3533FFA87843EEF4F64BFF78F32BF946C98BF6A14B4BDE656E93E9A418DBEF13E34BF080EF53E08513FBE9EF96A3F7B30483E13DD8C3D42888E3FA7288E3FEE526D3D7119F6BED70C7F3F307060BFE491313F2427363F6A5C843F8A64EB3E41AE0E40FFD625BD2723BEBE827F4CBF3C19A1BD0096273C7ABE9B3CBF9D0340DDD61F3F6C26B5BFFDF39E3E5EAFDFBFE917D63FD0D4543F631A1D40116802C0BA4004BFBEFD11C03555E43EF53F14C0BD3E5C3E1E1310BF11D3D03E46A52F3F8F3FEBBE563AF93DBB04913FD19E38BF29BB36BF993273BEA9E8363FC8DC5A3E5D26EBBE61D6A3BFAA289FBE8760F5BF9A482EBFBB737ABFB0CF7BBF06D5313E699FC43FF499773F5F45C4BED2C4E1BEC51A5BBEB44C1140FD9797BF7A278BBE115FC9BFFB9723C0E436A0BE9D8B37C04C1D683FF84E8FBF805DBD3D516E0FBF62B911BF7F4860BF6A9AE4BF2FB76DBEC9EB863E3F23973F23E0E53E6E05913EADD953BF1D4F9A3EA8CA2B3CAE24EE3FE7D329401F7D233FC5A6AD3F4FE9A93F3A7963BFB582D5BD475A5ABE2283EA3E4120C73E8CD270BFA157923FDF0D1CC0191B01C080F530BFA6D7F8BF5076213FF3D1453FF6EE3F3F52C133BFC21D36BE5CC75D3D27F6A23E97A8F4BD28A77C3E91E52D3E11D4BEBE8DBCD4BD317F60BFAA91E3BE96578F3F8BCF2DBFB58B21BF97F81F3E4C071B3EFC07643F56CD38BE5A5E10BF8920A83FE0E37E3F74DBE4BEC928F9BE5AD114BF77BCC83E6C08783F979517BE6107583F70187B3F12C0263F2B5166BF2C939EBFDF07113E9B2D66BF30536ABFC6A8CFBE0EFDDBBFE19B0B3F8173923FB70710BFD0B158BFC1045ABFCD752DBFC6298E3F6952B83FE22C8C3D79F64F3E8788CB3ECCCB23BE60D7C7BFC4B192BD6E95C1BF84535BBED80CA6BE487496BEA486283F59668B3FAD0B08BFAC5D243F3A580D3F23C6C63F6EA4BD3EE0C56ABFFF07F6BD8E7D763FF60CA03EEE987FBFD7BDC1BFE23B2F3E1611253E4E07F43EFF02D13E156A6FBFF010F4BEBE97733D81DBFC3FD2C685BD2130EABECB2676BEA972F23EB529A03EBDECB23E1BFA4F3DF293643F19514E3FEC9DE33ECB6DF3BF8F53973EE0A8B6BF755AFBBE4024B1BEF678373F7FB79ABF18E215BFFE3C8A3DE6E7B6BF4A1F833ECAA7A5BF9AF013BED6F05CBE0F7D39407528903F58919EBE45CEB6BD773BE8BF357FE03EA9BBB43F266376BFFA4BCD3F1D45883FF9C189BF9BB7BEBEEABDE33E9436273FA9EE4EBE56CE07BEF1A392BD5FCE3D3F7C19633F89E509C08807373F7B402C3F305B33BF30CA33BF854C87BFAD4D70BF6953AD3CA5445FBFAA92BCBF954BF23E0B92E6BE9D055F3FB3BD7ABE6D1CC43FA5F663BFE5AFB8BF69C7013F65BC823FA0D4923FAA1D543C8415ED3FDB80623F9890A8BF05E7483FFEFB6BBF9B66A23FBD07DFBE2A3FCE3ED4080ABF49C78ABF5DF6583F3C96BDBEF58D493FA055573FA0783C3FFC7EED3F2536F7BC3D2A763FDA6A8E3D276BE6BF1A9200BF61115C3F418E223F815DA83FDE058B3FD92BFC3E40BF4EBF073236BF802A913F270B583EFB6986BE99AA7D3FE776BDBEF2A8AF3F953755BE8B60503F32D782BEF8442B3FBAE492BF99A0CD3DEF5714BF9E99C03D7DB630BEC78E1140CEEB553FBCC1273F08DB1D3FC58B623E562CC9BF6AE612BF3332473F28E455BFF674313EBDCBFC3F33A73E3F233C493E0C6FA2BFE397D13F52B524C098D72CBF3C2CF63E7B7FDBBF1CB13C3F85EBD63F9F1FCCBF0E639B3F71AB6ABE042EDDBE654F05BFAFACBBBF7881233DA59CAABF316B7F3EABDB5DBF43BDA73DA66CB03D6DC32D3F1804913F6ECC37BE0B546DBE1A2A353DBF6F2FBDE8B9CABF31F8C1BF228DF33E0FFA8A3FFB0B7DBEA57D00BF342CFD3E2A95563F70184ABFE5068B3F54A634BFE4702ABF2174DE3EED75B03DB3A557BD9A46993F52E9203F7E5AB7BC2D9FB9BF4CEB373CC70A5B3F31BDADBE68930CBEEE7D21BE9CED39BFC6AB3040C6F41340E8BF903FD2A0723F17B0193FBA1C733EFFBFB4BE4A5020C0FE1C02405012C3BE49D1B63E7F8B66BE7458253FEF8BC7BE3A9BDFBE4FD715BF6D9262BF619A473E1DC9853C42882E3FE709893F0C94BF3EFC07A3BF23AFA93EF11369BF30D99C3E5A9C2D3F66680D3E847C15BF774A21BF76DFD5BF95309DBDBA0B543DF43B363F77D57A3FD6140340790798BFB2B474BE86D58BBF63984BBDF668933E1F0213BE276E033FB23C59BF16892B3FE9E86A3FBD07993D8F0B843FFEA1A1BE8F9F98BF6428BEBDA40013C093329B3F8BCFACBE8D4A273F29E33A3E4665A7BE33559BBFD51727BF1F2C5740608FA6BFEA9503BF9D30A83FAE2D76BF8C9E863FBD1D963EF9D40B3FF466CFBD7B5B273E6C11B2BF5E023EBE1F0C4C3FC81EC83EE6B1DD3D5DBE0EBDB3C4C2BE932613BFCC89613F82E669BD1FC75A3F7F8C18BFD7F98BBF0A6F193F3308CCBFE233223FC3E0D0BF81A6793EDF9410BA3F78213FBDC97E3F7C6B8B3F8CCC4B3FD20DA3BEEB7A8A3FA8DD79BFC908043FF4BE77BF6AEF443E0182093FDE4A0F3EACDB9B3E409EA7BE0AFE793F7F24573ED67209BF050C0E3FAD3ADBBE30535A3F09F5CE3FF48112C04C8A09BF796742C0764074BFA163963F227119BF98B39DBED1ECE7BD2813983FCE419E3F37A4B83F4CE17B3FCB150B3E46C3F53DC1FED73F68DF0E3F547151BF84F62B40441E1DBF50229BBF87E601C0C665B73F2A85DF3D3786AF3E685B0940738A03BF1EFFCBBD75F9E73F4BBB1E3FB0DCD9BEAF591B400F5C63BF97DAA43E1CE29EBF4D7C1FBE1C0FE3BFB570CB3C2389903FD85A2FBE2022093FF873653F5C10B03FBE1584BF687D1BBF6913ABBE2B2ADEBE6E9117C0D72D17BFBBECA8BE1466E7BED604593F6299114004CC90BFE00D843FF4FBC3BEA9DC763EDCF99A3FA1EFA2BC9361813FFF8A37BE17E380BFC369EDBE6AB2A73C8696973F4931A73FED160EBF9AA6C7BF963DC13FD4CF773F90B8C43F2564D1BFB3BE9DBFBE89C7BF6CD8AEBFE398B0BFDAB0423E5ED7BE3EE73155BEBFC4C53F720EF33D87EFA43F8480A3BFDAA743BE37015CBEA9FD9BBF8E840D3E6413633FE087ED3E762447BF73C7123F38963B3EF8FC393F44C3F03EBD87AEBF09E45DBE8ADCC33E0E2741BF637B873FF5492C3FE759133FDD28DC3EF35E8BBFE8CC463E5DE3E2BE8B2ADC3FAD1ADA3FECCDAFBF5DA41BBF466B71BF5FE1DABF9AF1EF3F0BFE42BF4507A03F1C24633FA70CD2BFBC2F083E227A59BF1998F33E5D609F3DCEF4BC3F055A2C3EFE690EBF8845023FB1F2B93EF4AE33BF91CFAABF94E8F6BE6B50DF3E6947813FF9A002C0D2638BBFEE9F24BF8B093FBFAB5B71BE3D896A3DE0DC803F316C593F30DD0CBF4F055FBFEA6D8F3E51AB24BE0974FEBCBEFE613FF41A39BFA34E6E3DD9863C3F134C713F00955EBFF285B43F7F0315BFE06F87BF1CF05ABFBBD624BF6FD233BF693EBEBFE4608A3EB2D3093FE9C4D83D66721EBF062EB1BF0CFC28BFD8CF43BFE3B9E63FEE4396BF59E037BFB0E9493E1C95D9BF8A84DFBFF1D3E43FC540A03F11458A3FCEA247BE1AA3783DB92353BFBF97DCBF6554AFBEADFE5F3F683A95BE9E79623F25A0BABF4BBB1E3FD0DAF93EA2C2253FC86822BF33A3BF3D4A12D4BDA1555B409840D43F41C3ABBEDE930F4007EB4040E227593F37FA8CBF4C0988BF5A201D3EF8B4DABDE19192BD954990BE99B1E8BF528A26BF6FABDDBF72A892BFF98069BEC4E889BE30F9E13CB6EC4F3F9183183DB80875BF8763253FECCDDABE7B15543E3EDFB43E0C139BBE84B6C63F76541E3EE7F123BFC61312BFDB22FA3F29B5C03F46C20F4065212BBF9AA1B2BF7540A73DC3F55EBE4C5279BEB013323E9ED8D8BEBE01103F9A98C83F4889453FDF7BF63F03F84F3F48872DBE5D35CEBC74367C3FF024FABF6A787BBFBF21D73E18E3663F7D42173FCB039FBE9E9CAEBEDED28ABF16A282BD2AAE163FB04A04BF220C7E3C5EDF903DB4B58E3FDCBA2C3FFF7EFD3FFF179DBFC23DB0BF40C6F73E726EC0BEE6040140452B2A3E0C6656406A85A63F5C3D3D3D97018ABF74EA20BFEEFEA8BEB13A9C3E4E16B23F62F6A03EE5AB05C0198F1CBF1FC0823F56B8B13F168239BE728AC13F9A9F9FBCB85B813F2828993E71508BBED8795F3EFFED1A3F1C89503F45E8563FDB212DBF8E0541BF38B3EF3E79EBCDBF8256803FE2F30ABF86CC02C08E15A1BE5193E9BF7D7B573F70E2643E9243EABFA8045E3F71D24C3E8978A03FD9178F3FC07595BE7051AB3D054196BFF2E90D3F0D204E3E675808BEECE99C3F63325F3FE994BD3E8DD9A7BE2099B2BE921D0CBF3732AB3FEA090E3F1F8588BE54F77B3FC5067D3E97B10F3F555A07BE12FC65BF4CF8EFBCF322AE3E9834C83ED22484BE626BE9BED36AF93FDE3683BF9CDD853FA3F790BD915DA23FAF2286BF14527C3F8EAD7F3F74A669BF695311BFFB57283FF52C103E72BE193F3F97A73E9B1DBEBF71E215BF475C9C3FD2419FBEF6569C3E526F8FBD600D143E27D50AC0099EEBBE9D14643E67D445BE120B88BF2358FA3F2336C4BFAEA1DD3E275674BEECE682BF3E76CEBEC34BC43EBB6D01BFA7B27EBD0BEB4DBF3CF31FBE50C2A33E27C399BEAFB8AF3E487CA5BF381DC0BF9863ABBEB627B23F6AFFC6BD68F641BDA4941EC0F2540240A8D98F3F7C9112BFCA724C3EF31E513FDA7E98BF34DC353FC25A89BE063AEA3E7EBFB93FBB58313EA0E4573EA4E730C0C454173F3D4307C063B600BFCF5C0B407FA08B3F54E3B7BFEEF9B93E4EDD763CA16B9BBE1D3A97BF2FF9B23E1C4B40BE29094A3E50A7CCBC689DD43E573BC93FB9C5733F31E521BE760D17BFB153843F9ABA953F2341713EAAFC12BEF0AEE8BF1CDB10407E7C04BF9D6F79BFE57FC3BF1B633E3FEA06443F8E15C53F5FB108BF935CA73EB7D53EBF837D243F875898BEB430633F98214EBF8B151B3F4CD8A6BF48730D3FB2DEE2BE5F36BD3F445D28BF1663B23EE12FDFBE6F6A093F1ABEEF3F0162BE3FD37981BFE2F0D9BEAA1E6C3E8449C23F626BBB3A22B702BD0F4D32C05CC730BF11D0673F964B6F3EAE1940BE5AB6513E1D9615C0216ED3BFB1BA04C064EAB33F181A9A3F4955603F1A992D3F7D673DBF8023E53E8607873EB2463B3F70A4FB3FA2ECE6BF0EC6C93EA56DC0BFDD9C043F720025BF0344913F12A35F3EB9A5243FCB2EC23FA56FB93E1419E9BF11BBC4BF6D4EFC3E57F7CEBFA072103D1D0457BD56E93A3FD1EE9D3FA7916EBD23B1033D3E1F653F368B373FACDF01BF2ECFC8BF35C47B3D71A835BF1CBDC4BFF00DA6BF75AD5ABE0F5518BF32A4563FE5FB86BFF59BBC3CD335573CD0440ABF7CA82ABF088C55C020BFB0BDED35EFBEDAF49E3FF66D6F3EF12B983F75F9103F7A37C33F974F3EBE32C4943F6BB5363F0C61113F1FFBEB3D72ED8C3F77F184BF24C83EBF96B27DBF32E3F4BE50D0A1BF84009E3FDC32553F39E30D3EB9ED8A3F6202A33D637D793FA3BFC83EBEE912BF8E6DAA3EC51E463F5BFDA33F96634D3F91182ABEC31272BF285A95BE362F373F4D8D65BF7C12F03FCA9EC9BFA8F607BF59A2B5BFA09F633E1AEF343E05079DBEFF4202C08F988FBF4969873F8CE27B3F8AB251BF7E3E243E3A94ABBE0357D73EEB7669BE4C8ED03E6714DDBDBCD6DDBFD51EA0BEC1F095BF18DF37BD21911ABFF5B2963EEE35FABF41878CBFD3C7AD3FD5A89E3F2210AEBE0313A93FBBD52BBD85AA903F04745DBEDB3AE5BEA5BF7E3EB4332F406DAD2F3FD8E6983F450245BF3F8512C0D003263F1DE7DD3E1BA051BF8AC4E43E145AD83EDBF6C8BE1E2CB23E114FD03E440FB0BF21195F3F006C5BBF407B074047F8473D352A053F12D519BFA73D733DC0460BC0D35E5BBFDE175BBF732A083BBD63333F063F44BF47970F3F64C0A43C62B9AEBFB277F4BF2E33F0BE381313BE33660EBF7E8A2EBFBB03BFBF442980BE2D3CDE3E92FDB1BE944C79BF1BFE12C01127C43D218273BFF5F989BFE167C83F4E2F8BBF727E833FD1E275BF1C4395BED4E1E63E8DC5FFBFAB4E9EBFB808973F92D0563FA8C4D23F2F858FBFB6F47BBDC0273FC027FD8BBF946B85BE9141283F2DDBBD3EEE703CBE4B01C73E271184BFAC772A3F678BB13EAA639F3D62B102C05BDF8D3F2EA2983F4646DFBE97CCE1BEE0F606BF3A5A8BBD5FAE1F3EF88F4B3F39664DBFAAE8C9BE0ACAF9BF5B41B6BECFF2963FD6D71D3F8D29883F804CC8BFAB3CD33FE421C8BE50F47D3E15907FBC6DB1A13F6E5C433EAEA2FC3E6A7D63BF072195BF089FCA3F0872AE3F3E60C83FD561D93F254DC63F38E6703FF8C28FBF673FB0BF00EA08BFF45350BFA3EEE3BF140725C0D22293BF9157383F3DAE683E50FA863DC4E8D239E521503E1DB162BF380216BF072819BE5A8587BE07DF503F5A371DBF47C2BABE658E6A3FB1F5BABEBA9787BEAC0A86BF2680CF3EA1F5C8BEA02AEEBD43FF07C0F5C89C3D3DC8BEBFB153A03F7FC2A0BFE40569BEC07C343F46AA1CBFEAB1503F5C4B5CBFD30E9E3F1A215D3F83666D3E5B4BC93FA36DA23E21E9C5BD5488FB3FAB80313DDB3C1EBF0887973F2179223FFB60A13F51A08FBD4A580640A95124C0D6240A3FC9E700BC0FAC793F3F1A8BBF41963BBEDF048A3F3DC9F6BF870D8FBF24842F3ED95FF83FDB670FBEEBEFCB3EE96F58BF71BDC43F20E8153F260CA43E2B0525BF8FAE86BFB75BACBE8C97323EB5C6FFBF7801EDBFFFEC2C40E4A2B73C311E033FB542B93FB7C09F3E9E8E663F822AEF3E798D40BFF69836BF0305BCBF50ABB53FE2C31A3F0A00B3BF0883CEBE066E1BBEB5BA7E3F73514E3E4433E33C11C17EBEDF36ACBEC83088BF65A1123F9FEFE03F9704E13FB6C11F3FB370B6BFF80B13BF7D654EBFF3CBF33E85ECBF3F548438BE968386BFC64A093FA01F70BF082B13BF0CF892BFDC9265BE53419E3FF0FAF8BFB417ACBE1242E6BF73FB01BF05674F3F20C58EBE6FA8D53D827172BFCAC09DBFF34A0F3E342414BFC0BC93BFF4478C3F1765D3BF25A0B13FE48FB03E009A8D3F3C7B9EBEB30B60BF0210AEBE5D5815C068D4343C86BF9D3E64CAC9BEB46A803FFBBB1E3F5224463F1D8DC23BEE40793FEAB6263FBBA105BF98F316BF620124BF5110E9BE8DC29E3EEAC1CB3F194822BF9835153ED2EEA93EAF00A8BFF65BA0BFD6C1E6BCFB308ABE4C3C44BF0FC2A63F4EDB593EAB6C153F4F1F4FBF62A7D1BE51FBCEBFFE5D2C3E7ED9AEBFB58DACBEE06A6EBFCD2A9A3E7EC914BFFEE1DA3E991D0F3F9806C43E06F1AEBFF91ED23F7F65423F84BB883DFFBECEBF7BFA203F03A978BF083789BEA96B53BF3ED2DA3EB73F53BFDB448CBFD6624EBE9E58533E93609ABF683BD7BF403F443F79864D3F669D373F1FA10A3F41AA203FA190CABFCBAA8FBE82D0823F7F7274BF10DE5CBD426F06C0FC67BDBF0941A13E06DD273F8313DD3EF203CCBF0273E6BE202E813D8B6805C038EBA43FB9CBFD3F291B28BF37F7C53D3F2FC63DAEA4893E4DD6D33E1413BF3FD6172FBEF2D8BE3FFFF40E40BBFEB53DE7FBDF3E3E61B6BF1285C23D3893D4BF25431D401E15703F0734F0BF48D82CBFAA0D323F59BBA5BDD71461BF4184B23E39C805BF83249ABEB1CDBA3FCB7F4F3F1C89023F811CB0BE2E7D6C3F265F473E673AA8BFA0369ABE487BD63EEFBBBF3FA20CA4BF1089CF3F7F2501BF6ACB2E3E70B25D3E2A3C063F151F16BF8D260AC07DA1A13FBA0AAE3F337757BF8D0720BF66348C3F4A27763F80FB273FB140663F8BFE86BFE51F933EF3CABF3F488E833F2F5DE7BE5CACD1BE7CAE993F4D211F3F632F443F89FB0E3FF1195C3E056D18BF3577C33FB588243F69E6073FD36FC2BEF156F3BD64AEE03EDF98ABBE4700FDBE0513B3BE5DE8183FBECAF73EF9DFA03F36B20F3F16BDD0BE46FC11BF923F33BEFBB9D0BF58B095BF375901BFC337BC3D330BD73EEFC9063F830E84BE504109BFB64E383E0FCB52BF393A653F168C2FBFC59E05BC6DCC793F1792B7BE5DE92B3F7B1904BFF7C831BF7B0687BF7AD055BF196B35BF4CC9443DB2C58ABF9B01C0BFDC415C3E5EF9113E0F8536BEF70E89BE99578EBF1B2EE13E63B850BD8AC2433ED4DEAA3F90ECC2BF27AFDF3E0E4EFE3FB75F613F09CD64BE58CB8B3E4589263FFF2A81BEF0DF87BFB22E9DBDF3B0693FC0C367BE6848F03FDFCE0BBF254489BE09CF1A3E1D1105C063330ABF3DEDF4BF46C369BF7D2C0A3D14228EBFB662FEBEDDCDA33FB835D13FC905CE3EB39BA03E53EA4BBF673CCFBE6169DA3E57342E3F6B5A393F4B42223F7A9DD13E3F7EA73E5D4A99BF1685A7BE8550E63FA7A4813F45FA533E17EE9B3E9F2AE3BE0DD3E83E72CDBDBDA235FFBEF2333E3FC326C1BEBEF3493FDD0155BD144CA7BF555644BEC6ECD53F77EF913F7B90243F793786BEFB9723C083DAE0BF16B980BFE31BBABF10E4C93E2D5CBC3F9451643FF57A68BFC9F473BF9FF03FBE6A01853FD31FD9BF67C096BF00D7673F1AE592BE6AAABCBF1DFB1F3F50AB06BFE6AE083F65F4BE3FDD3C2D3E85B41EBF81B1B33ED30CB0BFB573963F5859503F01D84D3F625D80BF2E0555BF7186533F90E0873E16F5933FF909BB3E2A37C13F0345903F7556FE3EC2D617BFB126353F0CEFB8BE3FC785BFF3F05BBF340C123E4851BF3FB2F0253FA52629BF07289F3EAC6DEEBECD068FBFBC7B82BF060EC03F03862ABEBC1F9DBE2634783F9E7EE53F50FD143F9E07AC3F4E7777BF4B8AD93F3FF30BBF92D69D3F0103093F4ED3C93E74802C3F89D4E33F5780F43F7257E8BC3BA5F9BE1AC463BF97A7DF3FF265FA3EAECC9A3F2A031DC093DCF33E5C5CA83E3D714BBC845CBFBFE26D923E6886013E2F9CE13E2DF3913F307861BE5C32183FD444633F4C6B743D528D6A3F4A0841BF1EA93A3F678AA7BFB3EDBF3EADB99ABFA03D2E3E40E949BF88BFA3BEE1BD5ABE2F8887BFEA61D43F5098273FEBF1E2BE71C8853E317D3B3FBA4EA53EFB50E1BF2FF0C2BFA03A4BBFAC19813FE6BC21BF2B5237BFE050393F4AE849BEEFEBC4BF9330843FEDCD983D96F2DF3F298A6D3E48CF72BFD91978BF6E66913EBA19B8BE9698313E682B65BE6032E2BDEC4FA9BDE5CB9CBFCF17DC3FA62CA63E7CF23CBE1467F8BE069C7C3F89F9AE3F6E0C833E4B8FCDBF5C2A863EE27B623E8179C63F2C4F963F4D1595BEC30DB83E8EC0A4BFFFE05DBFC440E33EDBCE86BE9C6E98BF9A962CBE463608C0AA8A2F3F6D21103F0C40A03F99AE453CF2DBBE3E6154BEBE68A7913F1A409EBD58BC5F3E2C92CABDACE320BEC9CDD1BF964DDB3EB0E88DBFE4F448BF8C5D72BF45E7D43EA61137BDC4ADDE3FD00BB9BF1CE537BEBB2826BEF84BE0BE25C0923EE326CBBFA773BD3FA55FDABF6A63ED3E0BD5AFBF89115FBFE128AD3ED8CB5DBF536E5F3C9D36853FFC9A0B3DD5AE5D3E8C0110C078A7B23ECC0D43BFE1A2D73E1185913D54F606C0BE99ED3CFA4994BF83F7FFBF67D4A93FC492433F31C7D5BF16E1DA3E704E863EDBCD2E3F32844F3F5CA08C3F4DEE643F64CE833F62E0DFBE89B5C13BE4884FBFA557ADBE61AB154014B330BFBDE79DBF999FFFBE13DDAABECCBC98BF911B81BF5CD93F3F4A5C3CBF20BA20BD166F0F3F7E4F68BFDAD6DFBCE2C7703F1C871CBE74397B3DF087503F19BFBDBF50325BBFADDE16402A88413FF7D40CBFB521F23E5B56F93E7AECA3BD19C5ACBF5BAF19BF804FE33E34BA683F625551BF2DD4113F5557033C3FBACC3FAC86F8BE2946C3BF086A5DBFA284BC3F8A1BA9BB2F96F8BE7D38D73F8A04133F207FFBBE48AF2B3F56C1273EF64783BFEAC6103FE2A0A63FD05503BFD537CABF16DA273F055E2FBF01581CBF1E574DBDA7BA13BF5E81753F2208423F1209123F1552C2BF5E0732BD0511F73F758474BF1244CD3FAEE3AA3E9306CABF307ED93D1B7F683F7143E4BF65796FBF670B38BED48DAB3EF3ACFBBE65D6BD3E22178E3FFD0BBE3D3C74173FFFC149BF102CEA3CCB78CABE3A48C43FD9F074BF7DF865BFB23DBF3E2195853FE6D582BEE7ACC13F52C2473DF20603C03276023FE4CF14BFD55555BFDE76FEBF7355B7BFA05F093E6DE671BD4EE17EBEB0C4103FBA2DCEBFFBDAABBF8C72B3BF52BCDE3E6B22C0BD5BAAC7BD5864E2BFA22167BF20C989BE536224BF17A840BF860DF7BFD6C8E53E130720BFB05BACBF3B5CEF3D97B1713F6180DBBF0F0C63BFAE2E3A3FD248A43FFF46953F79CB873EA2D2BFBF70DA873E177FEE3D7478ADBE338F9C3F437ED93BB8E4B3BEB9570F4014E12A3E051F1C3F9FF8E8BF1E8D083FDD9C7E3FDE7D53BEB18B0140246D10BD5DD7923F6B270A3F69539CBED11F503EAA0E07BF4ACC693FE544A6BF3958BBBFABAA76BF9D2217405390D43FE8A31940A0688BBFC72439C08E38A9BFD564943E69280AC0E2954C3F678E703FEF38B2BF86CE05C0379421BE3F29253F019F62BF696C1FBFDB11BDBF1F2F72BF626860C0D9C154BF76F264BE19E4A13FD4E2A6BF258A00C05D39B1BF588B91BF5842C2BF1F44C9BFF21B963FAF64AD3D6BD337BF3FBE64BFCF9C11C0914DE33F0897A9BFE241673FCA42CC3A7D4B6C3FC951E83E6733E1BC70C71DBFA009FC3E96A0B03F6ADD1640D9CAA3BD0EC52E3FFB69DBBFB3C79DBF1A89BC3DF9A1F83EA321A6BFF463A4BEA45C11BFCCE82DBF3F8EC33F71CF0D4044EDBEBFE5C5F23FD71B643E777910BC2178C63EA231923F5D20CD3FCD46E23E6A8379BF107D323E969FB7BF3013F43FCBED173F07AA67BE2D3247BDE54C1D3E756A183FE1D9BEBFEB3317BDB058A6BD91B980BD7008953FE9F044BF188141BD43C1CBBC3E48E6BF810413BF22F985BED2FFFE3E6F1AB6BEA949EF3FC95E3A3EB77F42C0E5D1F93EF403C83F9881B7BECB1B653F9D8ECDBE7561293FA514A03FC1DDDDBED7C52FBE4C3DE5BF56E70D3BF853A83F94989DBFC54D383F95F1A5BFA6E29ABF96972E4089AEBABD0851E23EE17DB13F2F2F11BFD318FBBD5BB8D93EBD480440F3E30EBF7616B5BE88D09DBFB4D563BF66D4F4BF3CDDC63F9C04093FD2D2A2BFE58FBEBE85FE38BF9185A53EC024D53D094BF03E7723E13F5ACCD8BF4D3A55BEDB5F923D38BBD1BF5FC0A6BEB6C1003DAFAF403FEDEC8B3F3D1B85BE170FFC3F723F6A3F06D39CBFE979EFBE116AFC3E560CB0BD2A0C0440127788BFCAF3953E28A1B0BFAE44BC3FB5E805BF934C523F376C703FBED5A9BFE74FB43EB3A5DC3C3AB58B3E766D91BEF2E6593FE31CEEBE6451843FADAF17BFCC9D363FFE50A13F5D93A73E8998863FFEDC283FAD6DFD3F1AC2D13EE638FCBD6F69C63E1CA1883F8BEA83BF803C28BFC34998BF4C738ABFA60CFE3FA428F0BFF01D573FE83306BF17C5DF3F6505B1BE8EE0573F9CABDEBF341F613F52AEA03FFBEA0B3FB19B4D3F76920F3DCC0C8B3E3417613EEE7BA1BD7CC8313DC4DCDEBD47FA31BE19418E3F0CD08A3EE39F2A3FD49FA1BF486CC83F63FA99BD04A9F73E960EB33FA975A8BC70CE623FBCBEA13FB1911CBFC783F93E3BC81E3F4BC3F13EE31947BF5EB812BF22793C3F1EA600C01DA81ABFB994B1BF6DED8E3FC9C1D8BEBEA2AF3D9C91BF3E90AECB3F1BEFEE3E0E3933BF673084BEB1B601BE42A80E3DB2BBBDBE79841FBF5E2015404931F1BD4485D4BDDD316840F159DEBE5C78273F42E0353FBA8E893F050F8EBFFCEF5F3F3F07F3BE9BBD9A3F809090BF9B47803F5308F5BFA5B5223DFD81A7BE8A1D0D3D44D0E2BF1074473FF1D8AFBE578E823E415BE03FB4C9B33F432EC23F72BFCBBEBDBA84BF4FC18EBDF6A4E73E42EC13BFB63C253F76181ABF013598BF6F28373FDB8EFC3FF268833F88B47FBFAA7F173FBD0CCB3DB80C753F12751C3F8F3982BF13F5373F0449183E1DF518BF443BB13E94A906BE2BFAD5BFC0BBF6BE75A8753F4E7D803EB138C13F0EE6A73E34D7B5BFBE7B36BE4A53513F590B03401FB73C3F72E10A3F099599BFF8E5C93EED35DB3DB04D89BE54CFC33F20EC72BF9E113CBF980BA2BFF91E373F8DB8183FE7BE8B3EDB8250BE6CDB57BFD2FF463F42F22D3F0341D43FD1D10E3F26B68EBF45408CBF1E67A2BFE0C90DBE7A8A80BD5A624FBE91B3DC3D61D51A3E58CCE6BEA9C0BEBF434A0A3FB76D52BFD0756CBF611627BE1F0E56BD7C71E13F01231C4000521D408CF9ADBF0CA6AB3FE5F9DC3F60E354BEF4A9ABBF7D40CA3E93236BBF36613B3FFE90A3BEC205E1BF26F7C2BF984172BF1D4E883E6A4F9C3EF739DEBEEF3662BF61452DBF46ADFFBF97FB57BFDD28503F8B044F3F933B993F1961DBBFF525ECBE47541CBF02C19F3F11EF98BFADBDDABC4F1AD7BF974F0C3FF1B388BF9CE4ABBEF98DDEBD48A5043FFE35A83E95ACC23F172E343EDB9ECFBF4C6ACD3EF4EC1D40F5BC19BEDEC1C33EFC38E33E093BF0BF5FAD9ABEC23B1FBF27EDB6BE08B9783F58225B3EAC87383DA5AE2ABF4F7E683FB38ABFBE6942D6BDBF29563FB25D8CBE01748ABE8883EB3FE45E20BF363F103DAF6E82BF87CB813C50461EBF961E09BFC642E2BD14CC383F8CF22F3F93B891BF2C8F8E3F146D10BEB1FE5A3F15F0BCBEDD6F583B707F03C0CC03FF3FE1A0B43F5D14023F7A6F243F87111F3FB23135BFD98A92BFAF89423F59EEF9BD4D64C13F7BD2E13E2C4971BD699A2D3CBB3CC4BF686E9DBF907330C01297C63F72C9793EECA4B9BF68C8D9BE2E53663F1588A9BFF4A2043FE5C6183F26F5D6BC620287BFD01E6ABF21C8733F70DD6FBF120862BF79327C3EF4CCE4BE4A1DF7BE1206813F29E8083F29C0EA3FD4DA513ED3C4CCBF6CA99F3F5B05A2BF2554FF3F7AF80440BD62A9BEA00810C08701E7BFB0862A3EE181A1BF5F3BB93E952B803F7C7F00C0B0FE10C05991F33FAB3909BF6EE8BBBEFB4C48BFDF66553F5623C03F2FD713C0178C9DBEB7715ABDAFC09CBF903C0BBFFFB123BF9F800ABF54259DBF8746C83EE2F389BF171E4A3F48AC303F1663A5BF19D0C4BFC6C02E3FC040B13E615A1B3F93F0433FCAE9C0BEB0CFB3BD1CFB2E4008ED1FBF4A45C2BFABAAC2BF050EEF3F235AE43E5A73B6BEFD27A53FAFDAF3BF3833A13F093D1E3FB47A7CBECF30CE3ED8522E3EA8AEF7BF0B992B3F5E82DCBF20ADB93EC47CB0BDB46B98BFC3F28F3F95CC9FBF2A48873EAFC1D43F1593C3BE909AD7BFA76073BDBFF310BF8CF36CBFC45D9ABEBCEA213F10579E3EAA99FCBF54303E3FBEFDA13EDE3E0D3F0072B3BFBBA09A3F30A5763E8DC9BD3F4B6ACE3DBC4268BE74CA1D3E1DBC283F25FB1DBF8852173F3E5CDABFB3A001BF7E6805BFB6F619BFACF3A4BFCF0825BFF0B6733F1C3806BF40B3E83D2DACDDBF45712EBF52BC1FBFAAB76DBEF107EFBF561269BFECE1133FDA478EBE2AA5583F4814F33FAFCA413E7998BFBFB022FABF9FA8FBBD91E58B3E6FD16B3F31E0CABEF9BDD6BE6531903EAFF7A03D07AC333E00DE53BFD97706C0506B8D3F5A0D383E772039BFC1466E3C2CD52C3E1E8FE6BF89C746BF462E323F70B6473FA401D1BF69EA4A3FE51D313EFB3BA03CCEC4643E697AC1BDB7CDA73E8569AEBFC1DD47BF582BBB3EB8CA00BF30D5AC3FBFFF703F7A4DAF3FD8F72140DED070BF4042153F056E003F1D55353F964FCABE74FF463F1A6FD73FF72AADBFF23CFABF24A98B3F70C6133F0C7FB03F5E8CB3BEE98131BF842CA3BE435A4D3F1DB8363EC45907BFFB0645BFB5E9453FF5968BBFD42A463D5F3E2F3FB9EA3FBC8822773F9F5925BFB25DA43F15D6DC3E3782883F2DF202BE2D703D3FF1DB923FBF5569BF9F240B407FA64DBDB731BC3FC2C7363F3EE8B23E3E560C3E78151A3F7015893F40E32DBFFE9AC33F2A7D0B3FE4FEBA3FA3F94C3F47EB123FF79227BF9A12AB3F99DA91BEBF9DFBBEFF0BDC3EFC4D0E3FC215E83FB9180EBE22171C3DBA01C0BFCE52B63F773D043EECD796BFC70A074088A44CBEDD1CE23F874A73BF0A812F3EFF9F1640B14D7E3F62617A3F10A8C3BECADDAB3EFDD48DBE04C1843F2654563E3A940640FC477C3F0EE565BF2B1EC6BF4FE3BABE36374A3FA06F973E9D57EB3E628B44BFAC09C1BFF4CD47BCED7A91BFD20CDB3B1794333FECF56BBE357BF1BE8CD215BFB8889BBF186F65BF7B294C3D52B340BD376B5E3E30A9AB3CE2BD30BE244E2940F348B9BFA85EAB3F8E8163BE38D970BF8B0DE63E204B82BF171A22BF53BB3BBF43C64D3FD172CABF13C8BABBFC133E3BD85A1BBEC6E61EBEDC6343BF081B8E3F8446B1BFC868EEBE154478BF5153ABBEBD9B673F637CEA3F7358323F4F6556BFFE5787BF9695D83F9EB15C3F778702C0D4BC80BE2E5FEC3E2863F73E9DF49F3E1085F83E4F87A0BFE84D683FDE0DE8BE386888BD828586BE861F41C06EF6E63F414F7A3F2691B3BFE046FDBEE758153E05A939BEBBAF87BFEA3AC63FE9D3A93F87D5723F194A79BF4E74BBBF29F7473F301AD03E53752FBF7E025E3FD30BC4BF716306C074F0483F7DD82A3F0660D13FF8AC7BBF8DF0EA3E50B3513E8171AABF4810E83FC4FA463FE49202BF1E0D813F7C85F3BE684C193FCF04A2BF27E2F9BEA921F6BC19948B3E316B36BE8917393FBBF5A23FD30319BE90B055BFB3524D3F4EA5D23F88F9C5BA68520F3F9F0291BF45E2E7BF7C07813F04C252BF036AFEBFC78A843FA990413F5CE9803E244F1E40720B8C3FF783CDBE375E19409FE7833E0D94143FF1C1E43EDDCC853FA591D9BDBBA8553E0365CF3FF1B3A5BFF835C53F61BBB53FB204D83E802F863FA3F99CBED6D31ABFA2AB86BF0E577CBFBA41713F5013B93FEC10C8BF4F79913F13E6023F0D85D8BE325B5B3F0E5A2B407562DC3F8AA855BE3673E1BE8087AF3E2C1C44BE7B58DFBD295D043F58F09DBE9481F2BECB76423FDFFE6BBDDDFF003ED54545BFD7B3A83F25399ABF74E628BF8A34803F16CFEB3F78B1963FFB1FBFBF9E3704C02858B33FEC6073BE791687BFC3888D3FB4FB27BFDF8ABB3E743BE6BF187819BF704EA03F1C9905BFB13566BE5D2BAFBE954A99BF56CFCCBE679A243FE2BF083DD4EA7C3E218D203DB7826DBEACA2683F56765DBECF05673F5C0302BF5A6209BEC98D893FEB147FBD5264D73ED8E2D1BF7C8B1640809BBB3FDD52B13D0C20CC3E119E1CBF393441BFAFE9D03F5222C93F1E78663FD2EA82BE949C0BC0BA84A93E1E2AE33E1238A03FDEE14C3EF0552B3D8E4E28BF8BCDE83F2A5DA8BFC8A6DDBF4FC0943F0D502BBFF490753ED5601CBEF84D73BF0AE1D1BF0924303F35B3014062C0B0BFEEF876BEBD837EBE1FA695BF465111BFB48FF63FC64260BE5C7F3BBFE445413F65B1103EDB11C8BC5A4FE7BE9E47CB3DCCD1FF3EF76516BF9468C03E58B4AB3F8E9FE53DFFFFB53F58C64E3D8A862B3E1703B4BE7E85DBBFC430123E7EA99BBFCD45A3BFC61E793FBF1E563F8FF8F1BE72D368BFCAB0DF3E3D62B13FE7CEE03F91F21EBF9765AFBF54ABD5BFA4873EBF5B805BBF2B2C7C3E27F51A3EBBBAF3BFE945C8BE6B40353E7BB446BF04AC673F7859233F7AF83EBECBA2A13F9909BE3FA29CA8BECF92963E0E999CBEAF91B1BD6D46B23F0DDEB3BF9757CF3FB08492BD5ACF8C3E8E5A88BE827885BEAB818BBF5ADD873FE06761BFDE79813E1B654A3F01C3ACBFA1B911BEAFD3353FEC14783FFFBE49BE5CFF7ABF35E97ABE49C0693E96CD153FA5A0B83E0571CA3E283FE6BF981689BE4DF82F3FA3A366BF40B257BFDF0A61BF4174BE3E9E0BC3BF29C629BF514CC53E55F1063F856A983F42DAB03E9A194DBF19BB9E3F9EEC423F45ACA0BFBA7AA93F4F0E1C40455F473F8BD47DBF6AE642BE97C42B3F15772BBFF9F910BF5A41F63DA9DAA63FD3CEB7BE03D34BBF871AE4BECB739CBEF29E4A3F5363653F98D327BFEDD810C062729B3F6F411EC014249B3F8122B1BDCEC901BE13F92ABF77CE0EBF6330283FEFCB64BFDCD51B3F91CF703FD7BF08C07C023F3E24C7E2BF62EB75BF55098EBF7C7EBA3FDC3C253FB50A98BE9EBB923EDEAFC2BF064513C0DBDFAC3F3108B93ECD0F9ABFB2A7833EE07853BFAB982FBB1919FC3E68B68ABF833165BED6B114402F118A3FCD68BBBD9596173E4D2C3C3E24A9143F97BB01BBBA7702BFE13A38BFB9447CBF7409243FE0C899BFEC7809C0B396663EFC9372BF280D7CBFAB43F53EA996EEBE1F9CF93E5808B3BFCF5F103F61F0E33EB7B693BFFD67D83F3D56553FDB6B853F351808C0161A6EBEDC80633F75CA403C83CC66BD68B9E13DE8F1FFBE70BB91BF1FE38C3E1458DD3F604A05BFB9F96EBF84529EBF7D59DEBF6B55A93F64115FBF3FFBEB3E447988BFA99A08405010783F8ACA2B3E6E8A22BF1C8C14BF579708C0B74D92BEB52397BF9CB76B3FD98AFD3ECE2C044070092A3E73A9DBBFE0BBB53EFE62E83D3DD54F3FA0BC883EFB9EBEBFBC872EBE4AEB363E75E9333F6E9F6DBF9498D63EC8697D3E0BF4D7BF1CA74EBEAF170CBF719495BED4931C3F417B10C0E212173E52FDB83FCEDDA93F86443CBF99808B3F425ED33F7397C0BF40C54BBD25288F3EF6B545BFE711B03F5455723E09E52D3F8272C8BFED818E3E866A933FE04438BF5372C33E29D52440DB4819BF814E69BF7921173F6E27C3BF8672A63F5ADAF13FE6BBB5BE045EBFBE41C7CCBFED4F783E3FD2A9BE927DD33E1C68CB3FDDB2693EF02F14BF0495853EA87347BF3F07ECBE2F0ABC3F14C6B13F5240E0BF9B7398BF21EF0BBF5323E93EEFB2AC3F3298A23C3C8CBBBCC108083FD566A03FFE1E8C3FD5D682BD0FE4CC3F03F07EBE6A3BB6BC8A8A5EBFF92FE3BEDC39833F8D1960BF020EBEBE9293A2BFFCA1903F611D153F0C7977BF079B87BF4C1ABF3F35798C3EAE90A6BF3D672C3F19B8603F3A82343FF656193E00F1103F530B6B3F03D0E63E6D682A3E6FDCACBE71E73F3F52635CBC498E103FB5CC72BF22CFAABFEA770CC06BE9AF3EAD3433BFD0271BBF2C700A3E968A173FFF9CD43FD4453CBED174C9BFA7F924BF9A1B58BFA3B7C43FFB3E843FF4D18BBF4657B7BD74D7BC3D5847693FE3B11BC075382240247F9EBEE952043F72A95E3EC65ADABE2F6F0FBDFD028ABFA56E41BFA95CF7BE7CADDBBEF2180FC04F0EBA3D05CB703C4B3DFE3E22BE0D40CA60803F2D605E3D6E34883FB030FEBE9B7A0240CBB830BF38FA9EBE5DD2723FB9F0513F1F27B73E7A2249BF26CCE23FCB890440712F58BDB3BC1FBF96973BBF6CA4ED3FE132783E3D73853FA17B323ED8A0A43FEF74903FC6B551BFB9E272BFDB0C733EF0DFAC3E722CD53F53D7043FD649AFBF2CD68B3F6E992DBF4457223F6964A53FF49EF23FF9D451BF7F1A003FBB45DABD5475ABBFD1FDD73FAB1F23BFCBED7ABF40E80EBF28F08BBF14FA363FA3670DBF6C229CBE3909D2BE0069823F570D933F63C17C3F61DA243F7FE8AEBD1282313F8380BE3E87F2CD3FB4640D3F183143BF3C68093EF343603F4A8E28BFD62415C0F430923FE414DE3E0A3BD63FDE3878BF537339BF467BD63F6E75A53E57FF6FBC1F536BBE00A903BF552C0EBF9624C3BE2D4027C0A7E5C1BF94DF6DBEED5D40BE841F9BBF28A49C3E519ABF3FA89D5E3ECBB9E13E81EEA7BF3866013F85FC20BFA74A47BFB16295BD757D48BF17F98A3FF57097BE75A687BF2FFFB6BD419BEDBD14A0FC3F6C71AA3FECBD563ECF38163E3EC7D7BE0D1148BF9466DBBFE0054F3F0D3029BF0C9D82BE1644EFBE2B69843FA0D9C2BE53E3C9BE16ECCB3F0FE0093F1E09033F868CE2BF9A75E13E5323E5BF84160EBF6E67A0BED196B5BEEA54853E3D75D33F5C0448BD4A51113FD5BDA1BF773E81BF923308BEB7C6653FBE4847BF7386713FC73DDCBDE57A983E1C4EFD3E4E4118BF2D58173ED32A7BBF390EECBF9EE44D3F72E11BBF634A54BFBF6070BFB20B5CBFE9D48DBFDE1C123FFF305FBF8F2185BF72839BBFE9C63DBFD6D16ABF099F52BEFA1FEA3E2B63F5BF40982240E552D2BF8779C7BC0736073E858F6C3F17AC713E45689F3F5E087BBE9E162BBFDA75893CA667EEBF79ED03C0D82AA93F571C263F2277CEBE2EF3663EE4622BBF551C85BF115FDD3F4AD48F3E8BA86D3FBED846BFC5EA1B3F3B4F88BEFA62ABBEF25AAC3ECE7613BF96E587BDA87808C02F0D00404F9A363FE6CC00BE90DFA9BF5D1130BE1EFCF2BEDBB7ABBE44B8403F931C7CBDA0B5CBBFEF295B3FAB9D9CBD8253B2BF29CF5CBE10B9453F6610AF3E44311E3E710519C06BB24CBF578EA53F997DC93E3F0AC4BFA58E5A3E9126B9BE53B2813F861413C070DF96BE5B89C8BE9BFB183FBA7CAF3FAF2F233FE54D56BFF86B323FEC05E0BE1E93ACBF93CEF73E00C61A3F044C393D01EA67C050C5783F3C78F3BE90B0CFBF6DA70B3FF0E537406D2349BE0169C9BEE102F0BE84686BBE3A169C3F062C533DC77EF53F838163BFE393D2BF3719DA3E6571893E800C363CF04F8D3FB8BAC13E74C82FBF9F406C3DD2FFEC3D9035F8BEED42B73FC9B6153FA292223E8D3445BEB9A6B9BD63201B3F56965ABF05DE62BFBF2C9E3E8BA629BF4568DFBFED2D94BFE8161B3F432C323EC16FEF3B9FC81B40766ED63ED16BB73E791339BF0F87B0BE011B3FBF199903C038C2C03D2A0EABBF8A6529BF6BC86EBE4D535A3F14CA16BFB5940BC0DBE8E3BF25D9E5BED2C466BF24765EBFD7C83BBEF7C7953ED790433ED02E4EBF32A691BF9586BA3FF03DA6BF027E9CBEB7C1D3BE91348C3ED9A75FBE6AF36F3F80D60B4065415A3E071E1EC0E5200F3FEC0FDFBE5649263F7787ADBFFF4BDF3CCE5684BFA185843ECCC853BF4442AB3F87BB12BF86232BC01CFF2AC067E32B3E1C11C9BDEFDD3FBF66C493BF875E66BF740DD33E86DA653F3ED075BF9123053EE532A13F31EB7C3F0C92283F2DB1CA3F115AC63EFEBB253F5D0E96BF0FCEC13F379912BF36A050BF12158BBC11CA9ABE24BDF1BE735DDE3F04E10A3F7D006CBFBCA7B83F31BECC3CCFBF72BFB45E3EBF1FB0D4BE9AAAF83E9DE5413F2F8B883F63D43DBF1145BCBF35FC3ABEB23B8B3F0F140640730666BF0AB07C3FD073983FE76E9ABF9E07A83E87BE833E705CF83E9DF292BFD8C789BFC47CD93F0B6DD83E0F89753FEE88B83CE599EB3FA3DA80BF5CE63DBFDBD9833EA708FA3E829D07BF8ACDC73E1ADA543FC2309B3E9C7354BF18E1D73FF3720FBDFD1D843FECC01CBF42461D40BC0FB53FAC9446BE35ED863F04BE1CBF4A3B1CBF7662B4BF1AEE383E6C1780BF3B228B3F22DED43E8CDC1ABE5F205BBFFD18A4BEF182063F66E6803FE8CA9BBF3EE1AB3FB40E97BFB1848E3E274930BFECE4573D7E2DF93FBDDD1C3FB1B947BFC247ECBE136BEC3EAAACD23FE3B97BBEB6B89E3FE4012A3E7EFFC63DB7A80C3E96FFCBBE32CC95BEBAEF75BE6DA47EBCF9E817BFB08031BEAFAA85BF1C2207BFD9CD7ABE5D88133FC3896D3ED76A8BBF1EDB41BD50D91F3F8CBCECBE3065DDBEC69C473FEDC39EBEBBEE373F9A5F0CBF6919F13EB2AFAE3EA54E03C08AF894BEFDFC2F3F5CBB0CBF099F9ABDB369813FEB6BD1BF4DCF51BFEC33FF3E051FF93EEF19B1BE4BFE783FD682423EE26E9B3F1917E7BCAC1C69BBC59E7A3F2EE1323D9DDF29BFE53C5C3E6A4F54BF4CBF933FFFCCA33F504302BFFB017FBFFF28FA3EA40679BF36F709BF94868FBED2CE883F147481BFBABD343F96D8B93E6D595F3F0D92CA3FE7DF0CBF05317FBFF26A67BEAAE681BF1BBFA2BF799B86BFB1AB1DBFCA82D53DB98A9CBFDCDE4FBF88D92DBEC4EF943FC57C8ABF162B983F843D853FB698C73EB469073E2EB280BF1BC3353FDC75AEBFD4F6D63FB15925BF4460F13EFE3B87BF7B9E103F766A153F10719FBF237A143EA40ABB3E90CC4DBEDF0006BFD7DDB8BF57CE893F662AAEBEC2BA093EAF503EBF849075BE9A64083F1F5872BFDBDEA1BF9FF7E83E9F1E8ABE293AB23F7CB047BF9DAE31BD1ABCB6BEBB33AF3EE929D43F9996943FF81EB03F37C96CBF3FD021400B8B95BF290AA3BD3890413F31E1BC3F573782BD5A10DBBD712B183F45F22B3F7C7F09BF5E3EDFBF88C8343FF0E21FBF0B3F903FDB8DC5BF3E8593BF54D42DBF05D5123FD72056BFFC725ABF134B12BEF061DABE9F63C03E99B329BFB2E3A33FA4A62F3F47138F3F9129E93F80FC913FE09C293FA1A980BF436EDC3B4E298E3F5838EB3FFF72F9BE3DED5BBFEB06C0BFA4B5BFBF21772CBFD7E16CBFF5810A3EFA842DBF28A392BD560346BFFF9A53BE676FCD3FE7F5383E55EBD4BF3E1F58BF47FE8DBC1CE1BDBE895B023E6B8FE33CB82611BF14D04A3D8005A23F5F7A6EBF481FC6BE67F3AE3F6E07F23E50C3083F7EB669BFB09D1CBF9CE21C3EDC42CFBF110C4F3FC92BB23F7672EB3F77F5AE3D4DBF033F38D0FFBE77489DBED25607BFE1FB3D3FFC5D893E3CA06D3B85A6A23F28E2BF3F7F0A4CBFEBEB913F939FD93E1ECF8FBD2283D53E373331BF092602BE32DB89BED09937BF1ACED93FE1ABE9BE43B2A0BE730B7C3F63D50A4025F8243F0D14E7BFDA75323F3FB3B63FD00D893CBBFE3FBE3FDAFEBE6BBEC4BFE852A9BD93508ABF64AB673F24FDE13EB5CC72BF2B3B833F6362D9BE298CD43FBAF3273FA9B675BFB62EB3BF296D52BF83825EBE772B29BF79FC53C0A21C803F5D051FC08053B83EBADE1ABF9377A13EABE062BE5DBF133F5BA24E3E479C813FC420DDBF046BB93F5B5A60BF53B08D3F940149BFF6353ABF82CB853F7EED183F1CFFFD3F8C90CCBE43BB08BF7842ACBE04A5BD3ED08922BFD1184BBF6D27A03FBA152B3F8C4E8A3F2AD054BE231C2440E707BF3EF69DB9BE0650973D07B150BFF3AD9FBF557DB23D466DBD3F6FD5973F7C08CB3DDD87F23B7CCBB1BECBC08EBF7173993FA19E763F76A37D3F174D61BE5B4D2FBF586A663F5C4C51BF8B3D64BF1101AA3EB1D3CFBF9A371BBF5AB0743D1E261740B078C23E3D458ABD53F33F3F94ABE33F223B29BF1482423FF4DC8ABF90E13A3EE7AE58BF937F613F25E8A03EAC6A8E3F92D6B83EC1C1853FB0DEDF3FBA862CBF7512A6BED4F38A3F7505613F84AA353FDD9C653F1569103FAB8AA83FF40D243D7541183F09F93A3F9BF379BF178C873F340149BF85839FBE4A1EF1BE4B274B3D9BB885BF958A823FAC9F05C05409913FC1DAA4BFA9983BBFFD89823FFE7C9F3FC3721E3F616780BB0047CCBE1D51AE3F537197BEF9F6CBBFFCD4D6BF9672CDBF2E34ECBF49904E3F8D0E07BFABE0AD3F2F2D003F355447BFABCFEF3E21106CBD4944DDBFE7DE3DBE25418FBD480C1F3F1AAB9C3F9675D8BE24C9E3BE817AFDBC574B8B3EF7B58EBF507B6DBE6AFC58BFACCDC1BFFEC3883DBAEAB1BEA0E087BE3BE2283F8269773F7F1E68BFC6DB1940C7EA4F3FDCABFF3E4C6BC8BF33FDA1BFFEBB0640F602A7BFC45316C0F50C9DBF3AA0F4BD97651B3E96D609C09EB07ABFCF8A063F7642703FA337F8BECC84C1BD838AA43DC549083FD55D243E9C42523F5ED95FBF4DE90F402978BEBDC621A2BF214000C0D15EED3FD5F5AC3EAC811B408292313F8F7304BFF4FF6BBFFA2DAB3EF5DBD3BE4693993E1582FABD7E86AABF6D69AABF52C0C2BDD296E73E650EDE3EFD41B6BEE16130BF3AFEDA3F77D518BF1EF6963EE86FFB3EC88BA33EF6F986BE6B3C114078D391BFADC4223FDD33263FDDE080BFA3E0C53F9B5D103F9D7C9CBE0BD6603F69292A40DC523A3DEED2E53ED04613C0D70E24C0011D0D401B6EADBF372E03BFADF25EBF24DB8EBFB7FF64BEFAB8063F6B52423FDF689FBE93141CC0D32163BF5CE3993F6072E73F206F69BEA013B3BF5C418E3EB0CD913E5B0E82BE6310E3BE6FD77E3F42049D3F1A5E86BF0A0BE93E336989BFC3876BBFE8F57FBE0F4212BFDE24AEBFDC4B8E3E158C2CC0CCE02ABEE7F415BFE4A606BE9F352DBF833070BE9EE62B3F75008FBE0E07763F9D99A63C4343DEBECD074A3E1C01B93B7F2B533F19F3AEBE59D781BE0B1B7FBFBA240F3D76C6CDBDC4537A3E899C20BEE10CC03E6EAD8DBE0031913FFD88483FD406883F46E98EBF2211823E549B213F21210DBFCF479A3F7C2B843F926883BE789CA0BFE99DC1BFD1D41DBFC3B3BCBF88A5BE3EE108833F7737C2BE2B5A883E74708DBDDEBEC53F0F7ED1BDEDBB82BFA52A553BD22EE63ED81A323EC4CABBBEC078CA3F84319BBEDD13843F9A91353D1681BA3F8C84FA3FE0EF1E3F9DA2663D7CFBA33D026D92BE3977A7BF671455BFF7A5EA3F82BDEFBEBBAA253E17C63BBF9F1DC63E95DEA93D0F9FF03B184F573F075C6D3D3EB398BF34F7423EE10BD8BD8942783EDA3EFFBEE8840C40BC06663E8D227DBFF3FF8FBE0EB0B8BEDF74083FFFD4D23DAA3117BF1E711F40AABEA43E9836EB3FC5E409BE2CB8D43F8912EA3FE349863F9850953CDDD294BE3F8FFF3E03BAA6BE6143313F47DE90BFB048F73F1CDF5EBFA8875640C57C963F9F14283E35156C3CF7C16DBF97FC843F6021BD3E0AD466BD3627F33D84D0C4BFC98F853EC477603E5C52BD3FAF941F3ED19B7D3F585DAB3CA9687FBF0F1D013FE6C0B3BF1258B9BD6B7A223F8B63383F30E4933FC462BA3FA7F8B33E6160C1BE373CACBE341EA63E5335053F5D1FD83E7C692DBF5DB269BF5F4DA6BE3BEC4A3FEB34CFBEDDA0053FB173833FC854633F66B445BE2B09A6BE2A07C4BE46D717BD88D71B3F0DA619C058435C3FAB00EFBD0B9C43409C8E4D3F4FE2623E7AD2583FFC41BF3AEC605DBF901BBF3DD8D81DBF059821BF1A0DAABF2C1E69BE167859BFAC1AB93FEE98E53EA285DEBF1C18043F4F5782BF0A0D19BF96EC7E3F4DC9903EE9EE254057210F3E71629E3FA401373FB99AC33E83B1B03FF3122E3F08DA903FF12EEC3FDFA9DD3F11ECC2BFD06D38BFCC11943E1AB1F63F2C2118BF748D82BFB4F19ABF341F3ABEE55B2E3F4E97B9BD8216A43F57E2B9BD298D2DBEA6A22C401B856BBFC65B59BFB0C77EBD05A70CBF05F8A13E003D3D3F4B33E7BF9178F7BEF780E53F456DBABF7190343F457A7BBE402450BFEF2A213F9BF065BF75B2813C0B253EBF01094B3FAA9EACBF02634CBE450344C039A8FF3E4C19A1BF37812ABFD9320BBE2C11853E81FAC8BF11A74CBFC1E271BF3CAA13BE0F64EABFE4431FBC12EFE43FCB5A03BF80D65C3E883C75BF2E1E743E1F98CC3E5FF543BF3354AB3F94C0E23FAA99FABF4F51BCBEAD903CBFB25B3FBF0DE11ABF75BEF73EE64B4EBEB3AC87BED4C976BF2912D8BE9F8D5C3F697E6C3FBFEC453F2D2F463F055C7F3DC1FB3B3FF6503ABFEF942CBF1AFA72BFC7E4213F251C97BF1881E6BE98BB3F3FAE5919BF17549C3EC64AD03FC9032EBFA25985BE19B9193FCD88493F9CF8034014E2D23F36CCF0BE67A082BFAE11843F761B83BF3AB3B3BFDAF6873F9E0EA8BFEB1D17BF5BDB15BF04FB863F8E70D73F93E5FC3EAC3DA3BF0E723A3F207102BFD0F93ABF7B227A3F6426E9BE55AAAD3FB879423F6DBD9B3F0FB50B3FAE6E5D3ECF2720BE161BBB3CEF3D4D3E82C5B7BFBDBA05C037F66BBFE5DB95BE53EE314050E273BF4EA3D13DF0430840B233593E915903BFADC184BE8C9B4C3E3CE1883FF6F8A2BF730E353EF22FE63E6848C8BEB6A07E3E8B86B3BF79F980BE8DE6093E0196FBBF484D5ABF61F94D3F4313CCBDB6DB9DBF0E590CC0F5671A3F1D67B1BF9DD08A3E87D2573F46CD9B3FA4A584BFF4352B3FF9D0933FBB8DC6BE7721C1BE7C2354BF3CCFDA3FF45839BF8F3174BE9578413FF96D3A3F86DFE03F57B0373F107E9FBF6AC65F3FCD87ABBEB6B25DBF1D6CD83F84946ABF616982BE320B8DBF29F3103F633795BFD6511B3F39C6003F5B948CBE3252E5BEBB7E48BFAC9467BF8556903F474A85BE1D724CBF22A81A3E466D89BEF1768EBF4282AA3E7D39AFBF52F99BBDAB44523FCC9D39BE7A1C1F3F8E81273F6D6E7CBE8B1A843C3DF95F3EFBC39A3E436DE5BF77B7EB3D5210D03E55A4A93FD1C014BF64FED6BEEDC5E73F55788FBF088BD8BF8E1F653E97B98FBF40A20DBEEA70313F63A8AE3C1A19B83FA16607BFAB60D83E638D34BFD72A4540744621BF0C81CABF4F75BABECC9FBFBFDF82CABE2A986E3FA3DCBE3F0F03C43E6436DBBED256F9BED78E0B3F378E7F3FBEF4F73F6D8023BE9621494093C7DABF9D60853F553D0EBF0D7B16BF4DE9603EDE55D93F7A387BBECE70D9BF8CC4263FDDB3DE3F151881BF881B993D990D063F60F6A7BFB0C5BE3EF433FD3E4F14653FAE97063EFAE6193FFC2CA73E95D69F3F8DB072BF8619563FDAB5843F586A6C3F1679AB3F80B089BFD368503C5F58853FFC064FBBA8DF663ED63AA2BFDFB5A0BF95EA9ABE8CCB76BF98CE903E65ACC4BFB1F081BFD2EECB3D3CD084BF145AE03F4CBDDA3ECFD36E3F2702A0BFB5DA06BF0A788E3F72D353BFADB889BF888B37BF88A47C3FEEDDC0BEF51242BFC20890BD4279A1BD5B2D78BE9B7786BDB845643FA9C1E23FF54A81BF6BEAB73E21430740B3FBE8BC0EFC033F9F240EC08F4666BE09B8A4BFB59500C020DA0A404501F03F5E3304BF0C5C7A3FE4BB18BCA91FBABFF46D6DBE7102AD3B6A1380BFE32FC1BE5D9EDCBF40BD9DBEBE87A93E174B1A3F63346F3DEB2231C03D43E33F3BD8C63FC437DD3C6ACD2E3F9E374BBF415CDC3F74B326BDF96CB4BE78AF3B3E5CF7ADBE1569A2BE4E50443FEC0B29BFD24D12BF882C00BF8758A73E68142A3F13D332BF25EF403F3BE21EBF2049BE3F4B0F553F310631BFBF0EA53F1D4B123EFDCBE13FD5D0A0BEB9C197BFC310DF3EA3A2BE3EBB1189BF038FC83FAE2FF23D016A213FAC616C3FA337CCBD6CCA1EBF9E90873F6D776E3F686B36BF1A6D88BF70478ABE8EA9CB3F93015E3C117A2A3FE9B5823F01ECA3BD771A24BFB2AA063F83A5F43DE5C3ADBF7B730E3EE17C3E3F237B073F171129BFCC599EBF3231F7BFB84058BF65289D3FC15C733F62171EBE1890D83FEE74DCBEAC7FB33FC1FB66BCFB03D8BF1A3A56BFEF23B13ED6258EBD3789EC3FD256A6BF39EFB73E36719ABF2FC0F9BEDECB6C3EECD09C3F464B1CBE61A8163EFD0B63BC4AE58DBFB383E3BD6D59A43F68C1C1BF97D2B03F77081FBE0C04C0BD331A163D072D953F6AD0D13CD303A63EE546043FB5D866BE79B2953F82A53EBF63A2F7BE973D98BE1A747D3F6C7903BFB56415400EF81CBCCE41BA3FB53E52BEE96DF8BE1CF11B3FE6F03ABEBE4A6F3F8C9FDBBFC1DEC23FD5BBFF3EAF5CBCBFB0E1763FB74F1E3FCD5CABBE18555C3DEA3FDF3F0D1DCD3E661058BE2424813FEF3CBABF97420EBF56E39F3F0C0DF1BEEFA437BF8834863E35276BBEA455D1BF30A051BF2787E9BE7B0ACF3EE614C6BE506E5EBF047647BF05A2FC3EE5BD653F80F0B13F4F85A8BE202D953FF8A4BEBE9D9DE53F0E822E3F2D692B3FE9FC88BD4523AE3F070FD63F6303A93F3B6E303F2375263FAD94413F469FA6BF233F1BC0D5F73A3FEE5EF8BE4ECE37BF88C150C08A14B3BDCFB0113E376AC3BEE0DEADBF4377DEBF496231BF49F679BD2C6C96BFFFCD69BE7FF3F0BEF89DD8BE543B16C06B3F59BFF24BE53E8285243E8993163D0CB43BBF6833C5BE2A03973F31EEC1BF6CC0CFBE8F581ABF4E702DBF9D3264BF9DD637BC11AE1BBFAF7A2BBF2B41983F839880BF9B54D63F4BCA13BF6FEF40BE48E3114018028C3F94FAB1BB26D4F2BDAEF908409EA1FE3D8CED55BE2707D8BF8B909E3F3162A4BF035E82BE24AD2FBFD2BC08BF806898BFDA48563F46CC93BEB4318E3FDAF75B3FD0538BBF49A1CABD45DCC83E5D3F1C3FA6B51C40F7B5F63EA886FABDE8472ABF31E0CA3FBB4716BE86BEEEBFCB6E46BF7EEDB53FCD56C33F35AA85BFC48C023F75851F3E7C22E23E58E2583F70303A3EE18043BFB5D18F3DC3946ABECB9A32408827E0BFF1959F3F2A5A88BFA1AAB23E58E4BE3FD66F8ABF4D9C0E405B1FCD3CE199A5BF455EDEBFEB09F83F836C8E3E689DD53DED8D19BD3F82963E09CCEB3E27D2BFBFB39EDCBE34DDC83E77A4643F3FD41BBF26765E3CD715E9BF996F1AC0381E4CBF17C68C3F2DF7B3BE25C6E13F07B3E8BF2E91C03F6E2C9CBE1E661A3D945CB0BE9E2D553FC64922BFC368C63F912EA63F0BD6573FAD6E15BFE55265BF0FA457BF06948FBF65347ABF1C86FABFF0AD333E7E1B1FBF87354EBFE40C57BFE10E33BFDC89FA3FE657B7BD9B5A443F5C4A3D3F911E80BFDAE89F3ECD8332BF93F140BF3DA957BE06C36EBED1B3D7BF2A58453F944D043E1B004ABF0AE31A3F211F88BF341D1BBE2997C73F7641EC3E648372BF891CA2BD5DA951BF56D229BF7E2CC5BF734E9C3F2CBEAF3FCE3013BF7AB36D3FA447963DA5A6963EDB3F72BE4FDA0C3F6C9B033FE87ABD3E9A1BA63E2C11BB3EC4052CBE18B5F93ED3A31340C3292ABF21B2E23E1CA5973EA3C487BF8C59053F14C5303E1098CABF22587D3F1E3269BF89FA6C3F80B3263F27AB91BD6526703F3AEF953F376EBBBF2F0A05BF3B0D393E36FD68BFE268373F22BEC5BEE015813FA3FFB3BFF656BEBD22150CBF6A70A03FE891CD3EE2C025BFC8FFE1BD49762ABE76981ABF0AB3463F88DB773FCD76173FBF25C3BFAE0ECEBEFFC7813F90CECC3F13F99A3EECBCBF3E4A71443F7D150740DC0B97BEB557A8BEBC84AEBF4AB7133F74C22DBF4487973FDCB996BF114C7A3FBBF2433E3CDFEA3F84E348BF7C7FDF3DECB39B3F9B75A33EE7324EBFCF6381BE63C51FBF7911B93FDE31053E705C00BF565D97BF6B109C3F3F4E903EDE876C3FCB15F9BD14AFD2BFF82C98BE790CC9BEF83D7E3FF40593BE0E32713F36AF8A3F2E2E963F990439BE1784EFBED75E853E77246F3EB619813E9C865B3EE3F0BF3F7E9E5F3FA2B347BC06F60740F6ED1CC0E06BA73F755C323EE72301BE0DA4A13F46A718BFE6823F3D88CF8B3CD0B5973F7C0B3A3EA5098E3F865CBF3E23A7184022D93B3EC0C78DBC99A0F43F51A2094060F2533F3DB1C6BEB973CD3EE0D7E63D24CD073F6048573F2AB87A3F55AB0B3F9E9102C0175E743E6D6A11C0F321823FA03D5FBF0433C8BED121D7BFC7AE46BE4E01A5BE86A04A3F524AD33F234D56BEE23FA93EC1CC76BFE32339BE7472163FE56E803F8F8F983D8EF794BE1618AABFF3141F3E3E69E0BE098488BFE5CD2EBF2EA5123FDE4FE73FC79D043FD59B86BF2564823F96043D3DD4C5AB3F98BFA5BDCFBB8A3ECB3E75BFAA5118BF124D3CBFF910103F7031F63F4D2A4F3F5D2A93BEEB1C063DC1A77D3F7D8F973DFEF02C3F8405C13E032E5A3FD19373BDB2A250BFA18EBF3E5945C3BFA79546BF3845BB3E649AE83FE8E6EFBFA8685A3E1D98D23F2AA56E3FF4BA24C0593ACA3BCE14C7BF8E1E65BF0218453F760983BF6FDE903F6532983F4ED8FD3FD8306FBF08102A3EAB09AF3E44D0003F192632BFA9FD13BE1D42C13F6C48FDBD89B437BF8EE3DF3EA60AAD3E5631E0BFD12AC4BE9E24113F4550343F6DE09CBF12676B3F9E0E3CBF7E9DBA3F9C33BDBFD12F373ED30C7A3EB233B9BE575C84BED17BCDBCD46D1440C626B63F3CBD52BFAC0DB33FA025CB3FA39553BF72D145BE9972A73DEBBB72BE901575BFBEA21DBF95FA353FE0D97C3FD58B1E40823C7ABF1D45DCBE0A2E17C04F2FC7BF35AAB1BE8AE18ABFF01B034002B6483F12CF97BF0CBBA5BF218A11C08E8350BF4EA411C0DBDFB13F48070D3D22ADBFBF12A1F7BE51D2E4BE4A161B40D83CF23F659DA0BF4C5407BFDF813ABEE0D064BF659EC6BF6CA49CBEBCDE3E40E317F03FDA619DBF6EA18BBF7A3A6E3E78EDB23F6C8A2C3C30E2BEBF09D8A03FB1C0233F0F06C73F09B8B13E678CE83F07BFD93F1D0E583ED492233FC1AF8CBFF3695C3E6E93C03F108C36BEA067083F45DB9E3D994DF1BE5A01423F51D943BE216B32BF8FA71EBF660A0F3E988DC9BFF14630BFF119F8BEBA371CBF4E528DBDE582903FAB0D8D3F862670BE409CAB3F7FF9983FD87359BF5FC2DD3E5A79E4BEF961BA3F36EEC9BA7DE9633E8AD70F3F3156A53EA063D23EB57907C03304E3BE8C66593FB0001EBF51E9CA3E2D4B613FEEC3B93FD0D63D3ED32470BFE9B6B7BF03050440B372EA3FC06BE3BEFA9C81BF278FD8BEA81202C01BE6673E7836B7BE953D68BFE0ABA8BF05B979BE7DF5883E0ED4393F889080BFDD938ABF0891A83E4711C1BF4D84BABF6038B8BFD146FB3E1437D0BFC2B0323EA0AE0640E6B7D3BF175A803FC49653BF80CDEABF6C801EBE2ADAAEBFBD359F3F37847D3F415458BF594A523ED7EEFD3E72758F3FC612C3BEA8391CC0D72B313F4A2AA8BF1E64993F1877E3BDA26D303F9B29E33EFD021BBF35F6A4BE40F6B2BE613FDFBE8AC0B7BEFC06A3BEBB431D3F0A781DBD0E1137BEC550E13F188FCB3EEFCEA9BE274C28BF454329BF367196BFD9A1933DB7B88CBE38B47A3EA962303F1C8FAE3E9324C4BFDE595C3FB7E4DA3B095720BD2010E33FE382AF3FF3279FBF231A6ABFD4B0AF3F67A55A3EB2DFA13F6B8312BE57913DBF5CE8A2BF7805093F2B3B833FC5013F3F24EA2CBF2E42C73EAC5962BDD6A0783FFD56B5BD735FB83DF3FAA23F94C813BF804BBABFC8F252BFAB7C55BFE3A860BF3BE8BEBCDB290CBFEECCFABE448E103E86C1BFBE550212BFB5692FBFA12292BF161F353EF1DDAC3DA6737FBF4E1233BE9D06003F6666953EB195813FB536A33F10BCE43D9F7C703FB117BF3E0ACD4C3FD3F8653F952C963E413E613F49827CBD28F925C04233A6BF88E3A03F586B09403D1399BF78B0A53F49FE54BF27EB324002D300BF0927B03EEF19883EDA973C3E4CEA52BD29F6FEBFB67A853F345221BF8CE7D4BE187049BEC300C4BE3109F03EE25EAFBF432A52BF95901C3E0049E53E52AFCFBFC73AEBBE7AA7183F9B7E4BBF6A67933DC8D4A63DA677593C6BE6D33D8790B73E62FB313FFC3E9BBF357CC6BE77E7C43F8ABBC93F34548C3F508BF3BE48E483BE5578653F7988F1BE48166C3FE9000F3F4178D03EAFE3E3BE351C2ABFADF7BA3ED4029CBE4EDE94BF16A72EBF7C0C773E927E83BFF88DCABEF5EA57BF603232BF7141163E265A19BF62C63B3F7F02343EC34F4F3E83C947BFBCFAAABD4DD287BE71D1203F7A2F543FFA83F9BEC158B43D6BB239BEE3B1B5BE1FD64CBFC48C38BE694920C05A799ABE2047223F1E44BBBE947A753FEFEE323F908C0EBFD52284BF4B4682BF3C7D863F57C939BFAAD9C63F4E67C0BFCFBA1BBE0365F93F7959853DCE2789BEA2FC044067D937BFB42ADF3D7F55B93F7C9416C0525F483F52252ABFF6EA243FE0240D3FFF5515BFAAFBA8BE6C1E2E3FF803A43F0923D03EE277813E1898883EB46400BF8EEB8F3E9B56E1BF613AB53F8864523F2303C23F770D803F89A08EBFADAA68BF69A71A40C71376BFC663993F2C526BBFADEE893FDE6A5E3C6B04EBBF60AEE1BE99EA2BBE5A575FBF9406B6BFB05865BF0C06973F43DB0BBF6B880DBFA9795DBF3CAE813F9769AABF866016C059CDF33D6FD7B43FE1A9E8BF40C000BFB5FA0FBD110A04BF81963F3F23A887BFF3797BBEACC4243FD676AA3F57F965BF85D53C3E1861903FDC98553F6129C5BF490BED3FC90A38BF136E34BF218CE23FCE2090BC07E09BBDDDA28DBD4C6727BF5E7CC53E85E494BFBD0FA8BEB686F6BDD97799BF5DA64A3F1A81D9BCAB186D3C0F709BBF831452BF9F39573FEF34F63E8F24223F6E3F1C3EF38F27BFFF81F7BC2936CDBEB15C28409AB36D3FB270353F11A53ABF652280BF7ABAA53C85A7533E8C78DFBE88F8383EA76E66BE7B0072BDAF23763F058B0B3F645CAD3F0134943F3AE0B9BE4965C13F54C8E0BE3ED13ABF77F6B3BE1165AF3E84700BC08F54C73F8AA5F3BE6A13C3BD059C80BBA8F66E3E52B1EBBF360B573F5A20FCBF0B8C933F4DB0A7BD53C03BBFCD634C3F18A18ABD9AF9383FDD4AC53D5A89533EB0CD00BEA270AB3F24EC983F1B2829C0E552B23E050F843E2FE2C13FD756DCBFCB73F03EBE3B543F273FFD3E50D619BF67D4A0BD1AAFC2BE3E2D203EC150B83FB9CAE9BFF02AFFBEC680D33F6B8F213EB4A492BE078C743E3D98533A406438BE74A7AE3F75BBABBF4917BDBFAE60913E2943ADBFE3EDAABE08878D3F1AE8D6BE2F4AE6BEFE5616BC7A0B6CBE07211540919DA0BE47D38DBECE74A63F473513C04987193E26CA88BFCAB6A3BFADC18C3F05A22EBFA5E3163F0552983FD162C23FA7FA883FC82EDF3E22E3983D9FC4693FBE6DB43E4BC7A5BE614385BFBFD80FBEA665743D8D5A813D525DE9BF4DDAA9BC05363C3E9B27B7BE1951BF3E2A90AE3FC1C9C2BEF76DD4BF422828BF41E7F7BE344DA13FB0F5353F91CCE33F821A88BFDB9A8EBF5C3EC03FC3800B3E93631EBFE50EE73D0B6D4D3FF512C53FD89095BE482A48BFEF0D39BFCEC948BFDC030C3F66BAD33E5027D6BDA2270FBFC9BE723EF9688A3EE28FA1BD30ACF33FAE5487BEC6EF86BF509A8C3EC6816B3F720F313DA35A00C09CE3183F0F57C03FE42CABBFD16E4F3F9D177F3F0FC72ABF77EF463ED4934D3FF3A3B73DDDF213400ACC64BD641DA2BE91D8C8BEFE4A82BFAEEE7ABF9731CABFE1A068BF220ACC3F41E97F3E649DAABED1FEC03F5704F2BE2641253F691FF2BE2B6487BF06D6393D556D3FBE9DF3573F4D533FBF8FEE84BFC3AD99BE37D7A73EDC400CBFEF1057BF448BA33F8125E5BF332DA83F807E3ABF7127283FAA3BD53E2AA4773F155CE6BE2A4B813D30B3873FAEB1F03EB494243BF873353FDAAE8BBF5E27A5BF580E1E3F729D0B3FBD87783F63D6683F2F315EBF8900DDBE728481BF40C352BF242C2B3E1E42D23F8D8B66BF0FDB323F23052740C4CE0140763A013FA4FF5ABF3F2172BFDD3FE3BFD7A1F13E078888BF0B689E3F40A129BFF711A33EA5A81FBFE1AC9CBEA5C0E33FF3382F3F59169B3F50AFDC3E8F4D083FEAC0C0BE53F6D33D2BA411C03391703F575936BFFD10A23D7FB876BE756528BD0354253F3C0A1EBFA208C1BF26E6FABE2297B33EB97EE9BEE96B843F1177BDBFDAF9813F605D683E740404BF086D5B3F8088F03B48ED2CC0D33901BF41965EBFFF0FA9BFC39F903F2BAF293F97EC2B404A18F4BF64E835BF7332BBBFD43CCCBD5AFBEB3CB4251D3F52AC30BF1881C7BFDE2F96BE242E8A3F764F09BE9632F33EF67FE13EC9A87BBFC762163EE0753EBF86B7C4BF55FD3BBF510A1DC0A58F6B3E84D3883EF315183FF73F9BBFAB2FE03E5C2B6EBF0997573F7B1CECBD15967DBF7C5844BF94F1993FE7946ABF6F42613F30F1C7BDBC67A5BD9882F7BFC81F943FBAA7A33E950FDDBE80EADC3EF788363F69C7023F62BBB2BE51A288BDC22A4ABF7AD0E23FB0BBB6BE66FD603FD463143F8E5A20BF95DD80BF61BFB93FF00E4D3E43C082BF3B86AC3F5AB4BF3E30A871BEB67F63BD882EE53F442BC5BE63EE923FA7924FBF29AC17BEB2A179BE8686803EAD67A33F6B0A8F3E0F1A1F3F1CD62EC08145443F30E4243F5BE1683FB8B6C93FCF164DBE44F695BE430A073FC1BF8FBF8FBBC7BE4A8C96BE8275A63F3B6D55BF8644B2BF977709BF234AA43F33F305C0D9B04EBDC5B03FBE81A16ABFB22589BE72F7873E4DA9843F064CF1BE4DE50BC0CB22423DBCC5213F16680740E8964D3FBCD916BFFF1D3A3F656F11BFD0B2DCBE0857E63E6BF381BEA0F8A63DFE05353F6F3D093F7D3D81BF538C0E3FC9CAAABD2670373F4A62ACBDA74EC1BF61B0F53F56FCEF3E0410E4BEFDA2793F9DCA5EBE96191FBE3CDB6D3FD2CB81BE5423983FE1A614BFA36D883DA5E0B83E2DE7383E00B2ECBF3D3E3BBEDA77693EA29785BFD2C474BF1A95263F755D1FBF494B94BECA72A8BE62A53F3F5288983F951433BF8AB21CBF0453EFBF0D7763BF33BE56BECE2C31BEF9D509BF0D6E633F94DF593FF967BD3F63FB9FBDE241803F8EF3DEBF179BA2BE80A310BFBC50803F1ACABB3FDE6DB73F51B4FDBE22B4BE3FD18D923F4937973E0C06533E046ECDBE454553BF56CB1A3F219623405868ACBF7F13CD3F9F89633EC06E893FDAF90ABF76C742BE3867B4BE577EECBF0187FEBD9C584CBF21BE81BF6C1B8CBF39C0273EAFB096BE5008053EB0B5D9BF556D52BF9916113D4521F93EC24B963FAE72CF3DD4184F3F88C527BDE6F711400E651CBF5F0902BF9F6D453F4C0E9F3E92AE793E19C7EC3F5614DE3E5B50A43D4EF84EBF9F544E3FE1FDE4BFFA89A8BF8C7100BE80BEA43FDE3B78BF8321F9BE990EFD3E072D5FBE94A8993E5612843E519E99BED1293CBD13AD2E3FA315373F41879D3F2A3CA93E79AEA6BFE84ED4BF5229F13DE794F4BFB105573F558A423E4280A7BF1C24EFBEBDEA833EAFBB263FDECAEB3D651E153FD1ABFCBE007BFBBF185B033F377A79BFAA84DA3EE36FC93EDF20983F98850E40F0D825BFAE85A83FFD372A3F045F8CBF6E3DE03F7387B53F133F02C0F4092B3FC3E88FBE85758DBEA5CBEF3E5F92733F7F4E6B3EDA8C233F7AB826401601D1BFDA8AA23FDC38DF3E9337B73E0F6A133F028B133EAFE54F3E0F3835BD04E7113F5BF89A3DD753B03FF82D343F"> : tensor<100x100xf32>
%1 = mhlo.constant dense<0.000000e+00> : tensor<f32>
%2 = "mhlo.broadcast_in_dim"(%1) {broadcast_dimensions = dense<> : tensor<0xi64>} : (tensor<f32>) -> tensor<100x100xf32>
%3 = mhlo.add %0, %2 : tensor<100x100xf32>
%4 = "mhlo.dot_general"(%arg0, %3) {dot_dimension_numbers = #mhlo.dot<lhs_contracting_dimensions = [0], rhs_contracting_dimensions = [0]>, precision_config = [#mhlo<"precision DEFAULT">, #mhlo<"precision DEFAULT">]} : (tensor<100xf32>, tensor<100x100xf32>) -> tensor<100xf32>
return %4 : tensor<100xf32>
}
} |
Beta Was this translation helpful? Give feedback.
-
@C-J-Cundy I am not an expert in JAX internals either. |
Beta Was this translation helpful? Give feedback.
-
#10585 (comment)
|
Beta Was this translation helpful? Give feedback.
#10585 (comment)
@hawkinsp said: